diff options
Diffstat (limited to 'apps/tree.h')
-rw-r--r-- | apps/tree.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/apps/tree.h b/apps/tree.h index a74960f7a5..103a20eea6 100644 --- a/apps/tree.h +++ b/apps/tree.h | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <stdbool.h> | 24 | #include <stdbool.h> |
25 | #include <applimits.h> | 25 | #include <applimits.h> |
26 | #include <file.h> | 26 | #include <file.h> |
27 | #include "icon.h" | ||
27 | 28 | ||
28 | struct entry { | 29 | struct entry { |
29 | short attr; /* FAT attributes + file type flags */ | 30 | short attr; /* FAT attributes + file type flags */ |
@@ -32,6 +33,26 @@ struct entry { | |||
32 | }; | 33 | }; |
33 | 34 | ||
34 | 35 | ||
36 | #define BROWSE_SELECTONLY 0x0001 /* exit on selecting a file */ | ||
37 | #define BROWSE_SELECTED 0x0100 /* this bit is set if user selected item */ | ||
38 | |||
39 | struct tree_context; | ||
40 | |||
41 | struct browse_context { | ||
42 | int dirfilter; | ||
43 | unsigned flags; /* ored BROWSE_* */ | ||
44 | bool (*callback_show_item)(char *name, int attr, struct tree_context *tc); | ||
45 | /* callback function to determine to show/hide | ||
46 | the item for custom browser */ | ||
47 | char *title; /* title of the browser. if set to NULL, | ||
48 | directory name is used. */ | ||
49 | enum themable_icons icon; /* title icon */ | ||
50 | const char *root; /* full path of start directory */ | ||
51 | const char *selected; /* name of selected file in the root */ | ||
52 | char *buf; /* buffer to store selected file */ | ||
53 | size_t bufsize; /* size of the buffer */ | ||
54 | }; | ||
55 | |||
35 | /* browser context for file or db */ | 56 | /* browser context for file or db */ |
36 | struct tree_context { | 57 | struct tree_context { |
37 | /* The directory we are browsing */ | 58 | /* The directory we are browsing */ |
@@ -68,6 +89,7 @@ struct tree_context { | |||
68 | int dentry_size; | 89 | int dentry_size; |
69 | bool dirfull; | 90 | bool dirfull; |
70 | int sort_dir; /* directory sort order */ | 91 | int sort_dir; /* directory sort order */ |
92 | struct browse_context *browse; | ||
71 | }; | 93 | }; |
72 | 94 | ||
73 | void tree_drawlists(void); | 95 | void tree_drawlists(void); |
@@ -76,7 +98,11 @@ void tree_gui_init(void) INIT_ATTR; | |||
76 | char* get_current_file(char* buffer, size_t buffer_len); | 98 | char* get_current_file(char* buffer, size_t buffer_len); |
77 | void set_dirfilter(int l_dirfilter); | 99 | void set_dirfilter(int l_dirfilter); |
78 | void set_current_file(const char *path); | 100 | void set_current_file(const char *path); |
79 | int rockbox_browse(const char *root, int dirfilter); | 101 | void browse_context_init(struct browse_context *browse, |
102 | int dirfilter, unsigned flags, | ||
103 | char *title, enum themable_icons icon, | ||
104 | const char *root, const char *selected); | ||
105 | int rockbox_browse(struct browse_context *browse); | ||
80 | bool create_playlist(void); | 106 | bool create_playlist(void); |
81 | void resume_directory(const char *dir); | 107 | void resume_directory(const char *dir); |
82 | #ifdef WIN32 | 108 | #ifdef WIN32 |