123 lines
2.5 KiB
C
123 lines
2.5 KiB
C
|
#ifndef MYWIN_USER_FILDER_H__
|
|||
|
#define MYWIN_USER_FILDER_H__
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//定义列表中最大显示文件数
|
|||
|
#define FILDER_FILE_MAXNUM 1000
|
|||
|
|
|||
|
//定义最大路径深度
|
|||
|
#define FILDER_DIR_DEPTH 10
|
|||
|
|
|||
|
//定义文件类型
|
|||
|
#define FILDER_FILE_TYPE 1
|
|||
|
#define FILDER_DIR_TYPE 0
|
|||
|
|
|||
|
|
|||
|
//路径栈
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
int index[FILDER_DIR_DEPTH];
|
|||
|
int first[FILDER_DIR_DEPTH];
|
|||
|
int fileNum;
|
|||
|
} Filder_Path;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
char name[256];
|
|||
|
int type; //1,文件,0,文件夹
|
|||
|
uint64_t size;
|
|||
|
}Filder_FildInfo;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
WIN_TouchWinStruct win;
|
|||
|
Filder_FildInfo file[FILDER_FILE_MAXNUM];
|
|||
|
char *imgFile;
|
|||
|
char *imgDir;
|
|||
|
char dirName[256];
|
|||
|
char fileName[256];//文件路径
|
|||
|
Filder_Path path;
|
|||
|
int index;
|
|||
|
int fileNum; //条目数
|
|||
|
int dirNum; //文件夹数目
|
|||
|
int titleHight;
|
|||
|
int itemHight;
|
|||
|
int itemIndent;
|
|||
|
int scrollbar_xsize;//滚动条宽度
|
|||
|
int itemNumOnePage; //每页显示条目数
|
|||
|
int firstItemOnPage;//显示在页首的条目编号
|
|||
|
|
|||
|
int scroll_x; //滚动显示的x坐标
|
|||
|
int scroll_xsize; //混动显示的x长度
|
|||
|
int scroll_timer; //滚动显示使用的定时器
|
|||
|
|
|||
|
int y_off; //支持触屏
|
|||
|
}WIN_FilderStruct;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
WIN_FilderStruct *WIN_CreatFilder (WIN_WindowStruct *base,
|
|||
|
void (*msgLoop)(struct _WIN_WindowStruct *win,WIN_MsgStruct *msg),
|
|||
|
int x,int y,int x_size,int y_size);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//设置文件路径,同时扫描路径下的文件
|
|||
|
void FILDER_SetFileDir (WIN_FilderStruct *filder,char *dir);
|
|||
|
|
|||
|
//入栈
|
|||
|
int FILDER_PathPush (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
//出栈
|
|||
|
int FILDER_PathPull (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
//把文件名追加到目录,同时扫描路径下的文件
|
|||
|
int FILDER_DirAppend (WIN_FilderStruct *filder,Filder_FildInfo *file);
|
|||
|
|
|||
|
//剪短一层目录,同时扫描目录下的文件
|
|||
|
int FILDER_DirCut (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
//生成文件路径
|
|||
|
void FILDER_GetFileRoute (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
//清空条目
|
|||
|
void FILDER_ClearItem (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
|
|||
|
//添加一个文件条目
|
|||
|
void FILDER_AddItem (WIN_FilderStruct *filder,Filder_FildInfo *file);
|
|||
|
|
|||
|
|
|||
|
//在指定位置插入一个条目
|
|||
|
void FILDER_InsertItem (WIN_FilderStruct *filder,Filder_FildInfo *file,int index);
|
|||
|
|
|||
|
|
|||
|
//扫描文件
|
|||
|
void FILDER_ScanFile (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
//打开文件
|
|||
|
void FILDER_OpenFile (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
//消息框的绘制函数
|
|||
|
void FILDER_DefaultPaint (WIN_FilderStruct *filder);
|
|||
|
|
|||
|
//消息框的消息处理函数
|
|||
|
void FILDER_defaultMsgLoop (WIN_FilderStruct *filder,WIN_MsgStruct *msg);
|
|||
|
|
|||
|
//选则文件
|
|||
|
int FILDER_ChooseFile (WIN_WindowStruct *win,char *dir);
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
|