工具界面转换字符编码

This commit is contained in:
2025-07-01 00:09:47 +08:00
parent 645f5aab72
commit 12afd677b6
3 changed files with 699 additions and 715 deletions

View File

@@ -7,7 +7,11 @@
"stm32f4xx.h": "c", "stm32f4xx.h": "c",
"libc.h": "c", "libc.h": "c",
"*.txt": "c", "*.txt": "c",
"*.tmp": "c" "*.tmp": "c",
"mywin_inc.h": "c",
"mywin_user_status_bar.h": "c",
"elf.h": "c",
"string.h": "c"
}, },
"cortex-debug.variableUseNaturalFormat": false "cortex-debug.variableUseNaturalFormat": false
} }

View File

@@ -13,14 +13,12 @@
#include "tools.h" #include "tools.h"
#include "nrf.h" #include "nrf.h"
#include "mywin_user_debug.h" #include "mywin_user_debug.h"
#include "string.h"
// 文件管理器 // 文件管理器
#define WIN_FILDER_TYPE "WIN_FilderStruct" #define WIN_FILDER_TYPE "WIN_FilderStruct"
static const char *g_popup_itmes[] = static const char *g_popup_itmes[] =
{ {
"打开", "打开",
@@ -31,10 +29,8 @@ static const char *g_popup_itmes[]=
"发送", "发送",
}; };
void FILDER_Delete(WIN_FilderStruct *up); void FILDER_Delete(WIN_FilderStruct *up);
WIN_FilderStruct *WIN_CreatFilder(WIN_WindowStruct *base, WIN_FilderStruct *WIN_CreatFilder(WIN_WindowStruct *base,
void (*msgLoop)(struct _WIN_WindowStruct *win, WIN_MsgStruct *msg), void (*msgLoop)(struct _WIN_WindowStruct *win, WIN_MsgStruct *msg),
int x, int y, int x_size, int y_size) int x, int y, int x_size, int y_size)
@@ -78,23 +74,17 @@ WIN_FilderStruct *WIN_CreatFilder (WIN_WindowStruct *base,
} }
} }
return ret; return ret;
} }
void FILDER_Delete(WIN_FilderStruct *up) void FILDER_Delete(WIN_FilderStruct *up)
{ {
tools_updata_off(); tools_updata_off();
// 调用父类的销毁函数 // 调用父类的销毁函数
WIN_DeleteWindow((WIN_WindowStruct *)up); WIN_DeleteWindow((WIN_WindowStruct *)up);
} }
// 设置文件索引 // 设置文件索引
int FILDER_SetIndex(WIN_FilderStruct *filder, int index); int FILDER_SetIndex(WIN_FilderStruct *filder, int index);
@@ -106,7 +96,6 @@ void FILDER_SetFileDir (WIN_FilderStruct *filder,char *dir)
FILDER_ScanFile(filder); FILDER_ScanFile(filder);
} }
// 清空条目 // 清空条目
void FILDER_ClearItem(WIN_FilderStruct *filder) void FILDER_ClearItem(WIN_FilderStruct *filder)
{ {
@@ -117,8 +106,6 @@ void FILDER_ClearItem (WIN_FilderStruct *filder)
FILDER_SetIndex(filder, 0); FILDER_SetIndex(filder, 0);
} }
// 添加一个文件条目 // 添加一个文件条目
void FILDER_AddItem(WIN_FilderStruct *filder, Filder_FildInfo *file) void FILDER_AddItem(WIN_FilderStruct *filder, Filder_FildInfo *file)
{ {
@@ -129,15 +116,17 @@ void FILDER_AddItem (WIN_FilderStruct *filder,Filder_FildInfo *file)
// 如果是文件夹文件夹数目加1 // 如果是文件夹文件夹数目加1
if (file->type == FILDER_DIR_TYPE) if (file->type == FILDER_DIR_TYPE)
{ filder->dirNum++; } {
filder->dirNum++;
}
} }
} }
// 在指定位置插入一个条目 // 在指定位置插入一个条目
void FILDER_InsertItem(WIN_FilderStruct *filder, Filder_FildInfo *file, int index) void FILDER_InsertItem(WIN_FilderStruct *filder, Filder_FildInfo *file, int index)
{ {
if (index<0) return; if (index < 0)
return;
if (filder->fileNum < FILDER_FILE_MAXNUM) if (filder->fileNum < FILDER_FILE_MAXNUM)
{ {
// 在列表中间插入条目 // 在列表中间插入条目
@@ -154,7 +143,9 @@ void FILDER_InsertItem (WIN_FilderStruct *filder,Filder_FildInfo *file,int index
// 如果是文件夹文件夹数目加1 // 如果是文件夹文件夹数目加1
if (file->type == FILDER_DIR_TYPE) if (file->type == FILDER_DIR_TYPE)
{ filder->dirNum++; } {
filder->dirNum++;
}
} }
else else
{ {
@@ -163,7 +154,6 @@ void FILDER_InsertItem (WIN_FilderStruct *filder,Filder_FildInfo *file,int index
} }
} }
// 入栈 // 入栈
int FILDER_PathPush(WIN_FilderStruct *filder) int FILDER_PathPush(WIN_FilderStruct *filder)
{ {
@@ -200,8 +190,6 @@ int FILDER_PathPull (WIN_FilderStruct *filder)
return -1; return -1;
} }
// 把文件名追加到目录,同时扫描路径下的文件,目标不是目录时返回-1 // 把文件名追加到目录,同时扫描路径下的文件,目标不是目录时返回-1
int FILDER_DirAppend(WIN_FilderStruct *filder, Filder_FildInfo *file) int FILDER_DirAppend(WIN_FilderStruct *filder, Filder_FildInfo *file)
{ {
@@ -228,9 +216,14 @@ int FILDER_DirAppend (WIN_FilderStruct *filder,Filder_FildInfo *file)
int FILDER_DirCut(WIN_FilderStruct *filder) int FILDER_DirCut(WIN_FilderStruct *filder)
{ {
int dir_len = strlen(filder->dirName); int dir_len = strlen(filder->dirName);
if (dir_len==0) return -1; if (dir_len == 0)
return -1;
char *ptr_name = &filder->dirName[dir_len - 1]; char *ptr_name = &filder->dirName[dir_len - 1];
while (*ptr_name&&(*ptr_name!='/')&&(*ptr_name!=':')) {*ptr_name=0;ptr_name--;} while (*ptr_name && (*ptr_name != '/') && (*ptr_name != ':'))
{
*ptr_name = 0;
ptr_name--;
}
if (*ptr_name == '/') if (*ptr_name == '/')
{ {
*ptr_name = 0; *ptr_name = 0;
@@ -246,7 +239,6 @@ int FILDER_DirCut (WIN_FilderStruct *filder)
} }
} }
// 生成文件路径 // 生成文件路径
void FILDER_GetFileRoute(WIN_FilderStruct *filder) void FILDER_GetFileRoute(WIN_FilderStruct *filder)
{ {
@@ -257,7 +249,6 @@ void FILDER_GetFileRoute (WIN_FilderStruct *filder)
mymemcpy(&filder->fileName[dir_len], filder->file[filder->index].name, strlen(filder->file[filder->index].name) + 1); mymemcpy(&filder->fileName[dir_len], filder->file[filder->index].name, strlen(filder->file[filder->index].name) + 1);
} }
// 扫描文件 // 扫描文件
void FILDER_ScanFile(WIN_FilderStruct *filder) void FILDER_ScanFile(WIN_FilderStruct *filder)
{ {
@@ -273,8 +264,13 @@ void FILDER_ScanFile (WIN_FilderStruct *filder)
mymemcpy(file_info_x->name, file_info->fname, strlen(file_info->fname) + 1); mymemcpy(file_info_x->name, file_info->fname, strlen(file_info->fname) + 1);
file_info_x->size = file_info->fsize; file_info_x->size = file_info->fsize;
if (AM_DIR & file_info->fattrib) if (AM_DIR & file_info->fattrib)
{file_info_x->type=FILDER_DIR_TYPE;} {
else {file_info_x->type=FILDER_FILE_TYPE;} file_info_x->type = FILDER_DIR_TYPE;
}
else
{
file_info_x->type = FILDER_FILE_TYPE;
}
if (filder->fileNum < FILDER_FILE_MAXNUM) if (filder->fileNum < FILDER_FILE_MAXNUM)
{ {
if (file_info_x->type == FILDER_DIR_TYPE) if (file_info_x->type == FILDER_DIR_TYPE)
@@ -296,9 +292,6 @@ void FILDER_ScanFile (WIN_FilderStruct *filder)
myfree(file_info_x); myfree(file_info_x);
} }
// 打开文件 // 打开文件
void FILDER_OpenFile(WIN_FilderStruct *filder) void FILDER_OpenFile(WIN_FilderStruct *filder)
{ {
@@ -335,7 +328,10 @@ void FILDER_OpenFile (WIN_FilderStruct *filder)
f_read(file, data, file_info->fsize, &br); f_read(file, data, file_info->fsize, &br);
f_close(file); f_close(file);
res = WIN_GetImageSize((u8 *)data, &pic.xsize, &pic.ysize); res = WIN_GetImageSize((u8 *)data, &pic.xsize, &pic.ysize);
if (res==0){pic.data=(u16*)(data+8);} if (res == 0)
{
pic.data = (u16 *)(data + 8);
}
PHOTO_ShowPic((WIN_WindowStruct *)filder, &pic); PHOTO_ShowPic((WIN_WindowStruct *)filder, &pic);
myfree(data); myfree(data);
myfree(file); myfree(file);
@@ -352,7 +348,6 @@ void FILDER_OpenFile (WIN_FilderStruct *filder)
WIN_KeyShieldOn(); WIN_KeyShieldOn();
// nes_load ((u8*)filder->fileName,LCD_GetShowAddr(),LCD_GetLcdSizeX()/2-128,LCD_GetLcdSizeY()/2-120); // nes_load ((u8*)filder->fileName,LCD_GetShowAddr(),LCD_GetLcdSizeX()/2-128,LCD_GetLcdSizeY()/2-120);
WIN_KeyShieldOff(); WIN_KeyShieldOff();
} }
else if (strcmp(p_str, ".avi") == 0) else if (strcmp(p_str, ".avi") == 0)
{ {
@@ -384,12 +379,10 @@ void FILDER_OpenFile (WIN_FilderStruct *filder)
} }
} }
void FILDER_PaintItem(WIN_FilderStruct *filder, int index) void FILDER_PaintItem(WIN_FilderStruct *filder, int index)
{ {
if(index<0||index>=filder->fileNum) return ; if (index < 0 || index >= filder->fileNum)
return;
int x = 0; int x = 0;
int y = filder->titleHight + filder->y_off + (index - filder->firstItemOnPage) * filder->itemHight; int y = filder->titleHight + filder->y_off + (index - filder->firstItemOnPage) * filder->itemHight;
@@ -401,7 +394,13 @@ void FILDER_PaintItem(WIN_FilderStruct *filder,int index)
int img_ysize = 0; int img_ysize = 0;
char *img = 0; char *img = 0;
if (file->type == FILDER_DIR_TYPE) if (file->type == FILDER_DIR_TYPE)
{img=filder->imgDir;} else {img=filder->imgFile;} {
img = filder->imgDir;
}
else
{
img = filder->imgFile;
}
if (img) if (img)
{ {
WIN_PicStruct *pic = WIN_GetPic(img); WIN_PicStruct *pic = WIN_GetPic(img);
@@ -423,8 +422,6 @@ void FILDER_PaintItem(WIN_FilderStruct *filder,int index)
WIN_DrawTxtAt(file->name, x + filder->itemIndent, y + y_size / 2 - WIN_GetFontHight() / 2); WIN_DrawTxtAt(file->name, x + filder->itemIndent, y + y_size / 2 - WIN_GetFontHight() / 2);
} }
// 绘制函数 // 绘制函数
void FILDER_DefaultPaint(WIN_FilderStruct *filder) void FILDER_DefaultPaint(WIN_FilderStruct *filder)
{ {
@@ -471,7 +468,8 @@ void FILDER_DefaultPaint (WIN_FilderStruct *filder)
// 显示文件 // 显示文件
RECT_Struct rs = {0}; // 用于裁剪绘图区的矩形 RECT_Struct rs = {0}; // 用于裁剪绘图区的矩形
rs.x=x;rs.y=y+filder->titleHight; rs.x = x;
rs.y = y + filder->titleHight;
rs.x_size = x_size - scrollbar_xsize - 1; rs.x_size = x_size - scrollbar_xsize - 1;
rs.y_size = y_size - rs.y; rs.y_size = y_size - rs.y;
WIN_SetLcdColor(((WIN_WindowStruct *)filder)->color); WIN_SetLcdColor(((WIN_WindowStruct *)filder)->color);
@@ -481,22 +479,14 @@ void FILDER_DefaultPaint (WIN_FilderStruct *filder)
FILDER_PaintItem(filder, i + filder->firstItemOnPage - 1); FILDER_PaintItem(filder, i + filder->firstItemOnPage - 1);
} }
WIN_SetWinInvalidRect(((WIN_WindowStruct *)filder), 0); WIN_SetWinInvalidRect(((WIN_WindowStruct *)filder), 0);
} }
typedef struct typedef struct
{ {
char *name; char *name;
char *path; char *path;
} sysfile_updata_struct; } sysfile_updata_struct;
static int sysfile_updata(void *ptr) static int sysfile_updata(void *ptr)
{ {
sysfile_updata_struct *t = ptr; sysfile_updata_struct *t = ptr;
@@ -504,7 +494,6 @@ static int sysfile_updata (void *ptr)
return 0; return 0;
} }
static void FILDER_Down(WIN_FilderStruct *filder) static void FILDER_Down(WIN_FilderStruct *filder)
{ {
if (filder->index < filder->fileNum - 1) if (filder->index < filder->fileNum - 1)
@@ -522,8 +511,6 @@ static void FILDER_Down (WIN_FilderStruct *filder)
} }
} }
static void FILDER_Up(WIN_FilderStruct *filder) static void FILDER_Up(WIN_FilderStruct *filder)
{ {
if (filder->index > 0) if (filder->index > 0)
@@ -539,19 +526,16 @@ static void FILDER_Up (WIN_FilderStruct *filder)
FILDER_SetIndex(filder, filder->fileNum - 1); FILDER_SetIndex(filder, filder->fileNum - 1);
if (filder->fileNum > filder->itemNumOnePage) if (filder->fileNum > filder->itemNumOnePage)
filder->firstItemOnPage = filder->fileNum - filder->itemNumOnePage; filder->firstItemOnPage = filder->fileNum - filder->itemNumOnePage;
else filder->firstItemOnPage=0; else
filder->firstItemOnPage = 0;
} }
} }
static int g_send_file(void *t); static int g_send_file(void *t);
static int set_progress(int now, int all); static int set_progress(int now, int all);
static void get_progress(int *now, int *all); static void get_progress(int *now, int *all);
static int g_send(void *data, int size); static int g_send(void *data, int size);
static void FILDER_Enter(WIN_FilderStruct *filder, int x, int y) static void FILDER_Enter(WIN_FilderStruct *filder, int x, int y)
{ {
// 打开 // 打开
@@ -578,7 +562,8 @@ static void FILDER_Enter (WIN_FilderStruct *filder,int x,int y)
if (f_rename(txt_path_old, filder->fileName) == FR_OK) if (f_rename(txt_path_old, filder->fileName) == FR_OK)
{ {
MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件名修改成功", "确定", 5000); MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件名修改成功", "确定", 5000);
}else }
else
{ {
MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件名修改失败", "确定", 5000); MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件名修改失败", "确定", 5000);
} }
@@ -638,14 +623,10 @@ static void FILDER_Enter (WIN_FilderStruct *filder,int x,int y)
MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件发送成功", "确定", 5000); MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件发送成功", "确定", 5000);
else else
MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件发送失败", "确定", 5000); MSGBOX_TipsTime((WIN_WindowStruct *)filder, "提示", "文件发送失败", "确定", 5000);
} }
} // if (FILDER_DirAppend (filder,&filder->file[filder->index])==-1) } // if (FILDER_DirAppend (filder,&filder->file[filder->index])==-1)
} }
static int g_send_now; static int g_send_now;
static int g_send_all; static int g_send_all;
static int set_progress(int now, int all) static int set_progress(int now, int all)
@@ -663,7 +644,8 @@ static int g_send(void *data,int size)
{ {
if (nrf_send(data, size, 0) == NRF_OK) if (nrf_send(data, size, 0) == NRF_OK)
return 0; return 0;
else return -1; else
return -1;
} }
static int g_send_file(void *t) static int g_send_file(void *t)
{ {
@@ -672,23 +654,17 @@ static int g_send_file(void *t)
SysFile_SendStruct *send = t; SysFile_SendStruct *send = t;
int ret = 0; int ret = 0;
ret = SysFile_SendFileName(send); ret = SysFile_SendFileName(send);
if(ret!=0) return ret; if (ret != 0)
return ret;
ret = SysFile_SendFileInfo(send); ret = SysFile_SendFileInfo(send);
if(ret!=0) return ret; if (ret != 0)
return ret;
ret = SysFile_SendFileData(send); ret = SysFile_SendFileData(send);
return ret; return ret;
} }
static void FILDER_Home(WIN_FilderStruct *filder) static void FILDER_Home(WIN_FilderStruct *filder)
{ {
// 后退 // 后退
@@ -701,7 +677,8 @@ static void FILDER_Home (WIN_FilderStruct *filder)
int FILDER_GetTouchIndex(WIN_FilderStruct *filder, int x, int y) int FILDER_GetTouchIndex(WIN_FilderStruct *filder, int x, int y)
{ {
if(y<filder->titleHight) return -1; if (y < filder->titleHight)
return -1;
return (y - filder->titleHight) / filder->itemHight + filder->firstItemOnPage; return (y - filder->titleHight) / filder->itemHight + filder->firstItemOnPage;
} }
@@ -741,14 +718,30 @@ void FILDER_ScrollTimer(WIN_FilderStruct *filder)
WIN_SetInvalidRectWhenTop((WIN_WindowStruct *)filder, filder->itemIndent, y, x_size, filder->itemHight); WIN_SetInvalidRectWhenTop((WIN_WindowStruct *)filder, filder->itemIndent, y, x_size, filder->itemHight);
} }
#define FIRST_ADD() \
#define FIRST_ADD() {if (filder->firstItemOnPage<filder->fileNum-filder->itemNumOnePage) {filder->firstItemOnPage++;\ { \
if(filder->index<filder->firstItemOnPage) FILDER_SetIndex(filder,filder->firstItemOnPage);\ if (filder->firstItemOnPage < filder->fileNum - filder->itemNumOnePage) \
filder->y_off+=filder->itemHight;}else filder->y_off=0;} { \
#define FIRST_SUB() {if (filder->firstItemOnPage>0) {filder->firstItemOnPage--;\ filder->firstItemOnPage++; \
if (filder->index < filder->firstItemOnPage) \
FILDER_SetIndex(filder, filder->firstItemOnPage); \
filder->y_off += filder->itemHight; \
} \
else \
filder->y_off = 0; \
}
#define FIRST_SUB() \
{ \
if (filder->firstItemOnPage > 0) \
{ \
filder->firstItemOnPage--; \
if (filder->index > filder->firstItemOnPage + filder->itemNumOnePage - 1) \ if (filder->index > filder->firstItemOnPage + filder->itemNumOnePage - 1) \
FILDER_SetIndex(filder, filder->firstItemOnPage + filder->itemNumOnePage - 1); \ FILDER_SetIndex(filder, filder->firstItemOnPage + filder->itemNumOnePage - 1); \
filder->y_off-=filder->itemHight;}else filder->y_off=0;} filder->y_off -= filder->itemHight; \
} \
else \
filder->y_off = 0; \
}
#define IS_MIDDLE() (filder->firstItemOnPage > 0 || m->y_move < 0) && (filder->firstItemOnPage < filder->fileNum - filder->itemNumOnePage || m->y_move > 0) #define IS_MIDDLE() (filder->firstItemOnPage > 0 || m->y_move < 0) && (filder->firstItemOnPage < filder->fileNum - filder->itemNumOnePage || m->y_move > 0)
@@ -882,7 +875,6 @@ void FILDER_defaultMsgLoop (WIN_FilderStruct *filder,WIN_MsgStruct *msg)
} }
} }
// 选则文件 // 选则文件
int FILDER_ChooseFile(WIN_WindowStruct *win, char *dir) int FILDER_ChooseFile(WIN_WindowStruct *win, char *dir)
{ {
@@ -891,13 +883,11 @@ int FILDER_ChooseFile (WIN_WindowStruct *win,char *dir)
{ {
filder = WIN_CreatFilder(win, 0, 0, 0, win->x_size, win->y_size); filder = WIN_CreatFilder(win, 0, 0, 0, win->x_size, win->y_size);
} }
else filder=WIN_CreatFilder (0,0,0,0,WIN_GetWinStruct()->lcd->getLcdSizeX(),WIN_GetWinStruct()->lcd->getLcdSizeY()); else
filder = WIN_CreatFilder(0, 0, 0, 0, WIN_GetWinStruct()->lcd->getLcdSizeX(), WIN_GetWinStruct()->lcd->getLcdSizeY());
WIN_SetBackPicPath((WIN_WindowStruct *)filder, win->pic_path); WIN_SetBackPicPath((WIN_WindowStruct *)filder, win->pic_path);
FILDER_SetFileDir(filder, dir); FILDER_SetFileDir(filder, dir);
WIN_ShowWindow((WIN_WindowStruct *)filder); WIN_ShowWindow((WIN_WindowStruct *)filder);
// return WIN_RunBlock ((WIN_WindowStruct *)filder); // return WIN_RunBlock ((WIN_WindowStruct *)filder);
return 0; return 0;
} }

View File

@@ -4,15 +4,11 @@
#include "mywin_user_tool.h" #include "mywin_user_tool.h"
#include "ff.h" #include "ff.h"
#include "elf.h" #include "elf.h"
#include "char_encode.h"
#include "string.h"
void MENU_ToolScanFile(WIN_MenuStruct *menu); void MENU_ToolScanFile(WIN_MenuStruct *menu);
// 进入设置页面 // 进入设置页面
WIN_MenuStruct *MENU_Tool(WIN_WindowStruct *base, WIN_PicStruct *pic) WIN_MenuStruct *MENU_Tool(WIN_WindowStruct *base, WIN_PicStruct *pic)
{ {
@@ -30,51 +26,45 @@ WIN_MenuStruct *MENU_Tool (WIN_WindowStruct *base,WIN_PicStruct *pic)
return menu; return menu;
} }
void MENU_ToolScanFile(WIN_MenuStruct *menu) void MENU_ToolScanFile(WIN_MenuStruct *menu)
{ {
FRESULT ret = FR_OK; FRESULT ret = FR_OK;
DIR dir = {0}; DIR dir = {0};
FILINFO *file_info = 0; FILINFO *file_info = 0;
char *tmp = mymalloc(256);
file_info = mymalloc(sizeof(FILINFO)); file_info = mymalloc(sizeof(FILINFO));
ret = f_findfirst(&dir, file_info, TOOL_APP_PATH, "*.axf"); ret = f_findfirst(&dir, file_info, TOOL_APP_PATH, "*.axf");
while ((ret == FR_OK) && (file_info->fname[0] != 0)) while ((ret == FR_OK) && (file_info->fname[0] != 0))
{ {
if (AM_DIR&file_info->fattrib) continue; if (AM_DIR & file_info->fattrib)
continue;
gbk2utf8_str(file_info->fname, tmp);
if (MENU_GetAllItemNum(menu) < TOOL_APP_MAXNUM) if (MENU_GetAllItemNum(menu) < TOOL_APP_MAXNUM)
MENU_AddItem (menu,0,file_info->fname); MENU_AddItem(menu, 0, tmp);
else break; else
break;
ret = f_findnext(&dir, file_info); ret = f_findnext(&dir, file_info);
} }
myfree(file_info); myfree(file_info);
myfree(tmp);
} }
static void MENU_ToolEnter(WIN_MenuStruct *menu) static void MENU_ToolEnter(WIN_MenuStruct *menu)
{ {
// 选择了一个 // 选择了一个
char *path = mymalloc(256); char *path = mymalloc(256);
sprintf(path,"%s/%s",TOOL_APP_PATH,MENU_GetSelectItem(menu)); char *tmp = mymalloc(256);
utf82gbk_str(MENU_GetSelectItem(menu), tmp);
sprintf(path, "%s/%s", TOOL_APP_PATH, tmp);
app_run_path(path); app_run_path(path);
myfree(path); myfree(path);
myfree(tmp);
} }
static void MENU_ToolDeleteFun(WIN_MenuStruct *menu) static void MENU_ToolDeleteFun(WIN_MenuStruct *menu)
{ {
} }
// 消息处理函数 // 消息处理函数
void MENU_ToolMsgLoop(WIN_MenuStruct *menu, WIN_MsgStruct *msg) void MENU_ToolMsgLoop(WIN_MenuStruct *menu, WIN_MsgStruct *msg)
{ {