2025-06-27 00:32:57 +08:00
|
|
|
|
#ifndef MYWIN_USER_FILDER_H__
|
|
|
|
|
#define MYWIN_USER_FILDER_H__
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
#define FILDER_FILE_MAXNUM 1000
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
#define FILDER_DIR_DEPTH 10
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
#define FILDER_FILE_TYPE 1
|
|
|
|
|
#define FILDER_DIR_TYPE 0
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// ·<><C2B7>ջ
|
2025-06-27 00:32:57 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
int index[FILDER_DIR_DEPTH];
|
|
|
|
|
int first[FILDER_DIR_DEPTH];
|
|
|
|
|
int fileNum;
|
|
|
|
|
} Filder_Path;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
char name[256];
|
2025-07-05 19:47:28 +08:00
|
|
|
|
int type; // 1,<2C>ļ<EFBFBD><C4BC><EFBFBD>0<EFBFBD><30><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
uint64_t size;
|
2025-07-05 19:05:35 +08:00
|
|
|
|
} Filder_FildInfo;
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
WIN_TouchWinStruct win;
|
|
|
|
|
Filder_FildInfo file[FILDER_FILE_MAXNUM];
|
|
|
|
|
char *imgFile;
|
|
|
|
|
char *imgDir;
|
|
|
|
|
char dirName[256];
|
2025-07-05 19:47:28 +08:00
|
|
|
|
char fileName[256]; // <20>ļ<EFBFBD>·<EFBFBD><C2B7>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
Filder_Path path;
|
|
|
|
|
int index;
|
2025-07-05 19:47:28 +08:00
|
|
|
|
int fileNum; // <20><>Ŀ<EFBFBD><C4BF>
|
|
|
|
|
int dirNum; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
2025-06-27 00:32:57 +08:00
|
|
|
|
int titleHight;
|
|
|
|
|
int itemHight;
|
|
|
|
|
int itemIndent;
|
2025-07-05 19:47:28 +08:00
|
|
|
|
int scrollbar_xsize; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int itemNumOnePage; // ÿҳ<C3BF><D2B3>ʾ<EFBFBD><CABE>Ŀ<EFBFBD><C4BF>
|
|
|
|
|
int firstItemOnPage; // <20><>ʾ<EFBFBD><CABE>ҳ<EFBFBD><EFBFBD><D7B5><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
int scroll_x; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>x<EFBFBD><78><EFBFBD><EFBFBD>
|
|
|
|
|
int scroll_xsize; // <20>춯<EFBFBD><ECB6AF>ʾ<EFBFBD><CABE>x<EFBFBD><78><EFBFBD><EFBFBD>
|
|
|
|
|
int scroll_timer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾʹ<CABE>õĶ<C3B5>ʱ<EFBFBD><CAB1>
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
int y_off; // ֧<>ִ<EFBFBD><D6B4><EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
} 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);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ͬʱɨ<CAB1><C9A8>·<EFBFBD><C2B7><EFBFBD>µ<EFBFBD><C2B5>ļ<EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_SetFileDir(WIN_FilderStruct *filder, char *dir);
|
2025-06-27 00:32:57 +08:00
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><>ջ
|
2025-07-05 19:05:35 +08:00
|
|
|
|
int FILDER_PathPush(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><>ջ
|
2025-07-05 19:05:35 +08:00
|
|
|
|
int FILDER_PathPull(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ӵ<EFBFBD>Ŀ¼<C4BF><C2BC>ͬʱɨ<CAB1><C9A8>·<EFBFBD><C2B7><EFBFBD>µ<EFBFBD><C2B5>ļ<EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
int FILDER_DirAppend(WIN_FilderStruct *filder, Filder_FildInfo *file);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ŀ¼<C4BF><C2BC>ͬʱɨ<CAB1><C9A8>Ŀ¼<C4BF>µ<EFBFBD><C2B5>ļ<EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
int FILDER_DirCut(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_GetFileRoute(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_ClearItem(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ŀ
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_AddItem(WIN_FilderStruct *filder, Filder_FildInfo *file);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><>ָ<EFBFBD><D6B8>λ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ŀ
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_InsertItem(WIN_FilderStruct *filder, Filder_FildInfo *file, int index);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// ɨ<><C9A8><EFBFBD>ļ<EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_ScanFile(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_OpenFile(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><>Ϣ<EFBFBD><CFA2><EFBFBD>Ļ<EFBFBD><C4BB>ƺ<EFBFBD><C6BA><EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_DefaultPaint(WIN_FilderStruct *filder);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
void FILDER_defaultMsgLoop(WIN_FilderStruct *filder, WIN_MsgStruct *msg);
|
|
|
|
|
|
2025-07-05 19:47:28 +08:00
|
|
|
|
// ѡ<><D1A1><EFBFBD>ļ<EFBFBD>
|
2025-07-05 19:05:35 +08:00
|
|
|
|
int FILDER_ChooseFile(WIN_WindowStruct *win, char *dir);
|
|
|
|
|
|
|
|
|
|
#endif
|