annotate examples/menu/filebrowser.c @ 509:3e0d63d7c7ae Android_Skia

Remove absolute pathes from config.cache. Absolute pathes in config.cache would be the source of problems when the source tree of Android is different from what is in config.cache. So, these cached values are removed and re-computed when running configure.
author Thinker K.F. Li <thinker@branda.to>
date Tue, 01 Dec 2009 22:55:27 +0800
parents 26c302b47de1
children d7f224b97b7f
rev   line source
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
1 /*! \file
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
2 *
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
3 * This is the demo program for the animated menu. We will use to test the MBAF API.
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
4 * We need to have group item1-item9 in the SVG file. Initially, we will show
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
5 * item1-item8 only. When a up/down key is pressed, we will draw the next item in item9 and
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
6 * add two words to move item1-item9 smoothly. The first word move items to the 3/4 position
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
7 * fastly. The second will move it from 3/4 to the final position slowly to make retard effect.
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
8 *
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
9 * If we press another key before the second words finish, we will delete the word and replace
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
10 * it with a word to move it fastly to the final position and then we will repeat the procedure
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
11 * to add another two words to move it to the next position.
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
12 */
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
13 #include <stdio.h>
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
14 #include <mb.h>
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
15 #include <string.h>
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
16 #include <dirent.h>
325
4453ea44a83d Remove the menu.h
root@localhost.localdomain
parents: 309
diff changeset
17 //#include "menu.h"
456
26c302b47de1 Change name of header files.
Thinker K.F. Li <thinker@branda.to>
parents: 454
diff changeset
18 #include "mb_af.h"
26c302b47de1 Change name of header files.
Thinker K.F. Li <thinker@branda.to>
parents: 454
diff changeset
19 #include <mb_ani_menu.h>
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
20
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
21
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
22
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
23 struct fileinfo {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
24 int height;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
25 int width;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
26 int depth;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
27 int bitrate;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
28 int duration;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
29 int year;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
30 char *comment;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
31 };
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
32 #define MAX_ENTRY 1000
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
33 typedef struct {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
34 mb_animated_menu_t *m;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
35 char *curDir;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
36 struct fileinfo *files[MAX_ENTRY];
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
37 char *titles[MAX_ENTRY];
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
38 int nFiles;
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
39 }app_data_t;
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
40
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
41 mbaf_t *app;
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
42
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
43
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
44
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
45 void myselect(mb_animated_menu_t *m, int select)
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
46 {
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
47 app_data_t *data = MBAF_DATA(app,app_data_t);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
48 char path[1024];
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
49 int len,i;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
50
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
51 if (strcmp(data->titles[select],"..")==0) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
52 strcpy(path, data->curDir);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
53 len = strlen(path);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
54 for(i=len-1;i>0;i--) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
55 if (path[i] == '/') {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
56 path[i] = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
57 break;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
58 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
59 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
60 } else {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
61 snprintf(path,1024,"%s/%s", data->curDir,data->titles[select]);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
62 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
63
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
64 MyApp_fillDirInfo(app, path);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
65 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
66
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
67
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
68 void mypreview(app_data_t *data, char *path)
344
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
69 {
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
70 redraw_man_t *rdman = MBAF_RDMAN(app);
356
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
71 paint_t *paint, *old_paint;
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
72 paint_t *previewimg_paint;
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
73 shape_t *obj = (shape_t *) MB_SPRITE_GET_OBJ(app->rootsprite, "previewimg");
356
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
74 int w, h;
344
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
75
356
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
76 previewimg_paint =
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
77 (paint_t *)MB_SPRITE_GET_OBJ(app->rootsprite,
356
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
78 "previewimg_paint_img");
344
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
79 printf("Preview %s\n",path);
356
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
80 paint = rdman_img_ldr_load_paint(rdman, path);
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
81 if (paint) {
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
82 paint_image_get_size(paint, &w, &h);
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
83 printf("image %d %d\n",w, h);
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
84 old_paint = sh_get_fill(obj);
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
85 rdman_paint_fill(rdman, paint, obj);
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
86 if(old_paint != previewimg_paint)
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
87 rdman_paint_free(rdman, old_paint);
3e84458968ec Move mb_img_data_t out from argument list of rdman_shape_image_new().
Thinker K.F. Li <thinker@branda.to>
parents: 348
diff changeset
88
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
89 rdman_shape_changed(MBAF_RDMAN(app),obj);
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
90 rdman_redraw_changed(MBAF_RDMAN(app));
344
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
91 }
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
92 }
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
93
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
94 int endWith(char *path, char *ext)
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
95 {
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
96 int i;
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
97 char *s;
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
98
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
99 s = path+strlen(path)-1;
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
100 for(i=strlen(ext)-1;i>=0;i--) {
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
101 if (*s != ext[i]) return 0;
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
102 s--;
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
103 if (s < path) return 0;
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
104 }
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
105 return 1;
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
106 }
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
107
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
108 void myupdate(mb_animated_menu_t *m, int select)
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
109 {
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
110 app_data_t *data = MBAF_DATA(app,app_data_t);
344
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
111 char *s = data->titles[select];
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
112 char path[1024];
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
113
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
114 printf("check %s\n",s);
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
115
345
d04085404583 Remove jpg sinc ethe image loader is not ready yet.
wycc
parents: 344
diff changeset
116 if (endWith(s,".png")) {
344
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
117 snprintf(path,1024,"%s%s", data->curDir,data->titles[select]);
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
118 mypreview(data,path);
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
119 }
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
120 }
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
121
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
122
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
123
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
124 struct fileinfo *fileinfo_new()
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
125 {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
126 struct fileinfo *f = (struct fileinfo *) malloc(sizeof(struct fileinfo));
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
127
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
128 f->width = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
129 f->height = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
130 f->depth = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
131 f->bitrate = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
132 f->duration = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
133 f->year = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
134 f->comment = NULL;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
135 return f;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
136 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
137
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
138 void fileinfo_free(struct fileinfo *f)
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
139 {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
140 free(f);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
141 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
142
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
143
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
144 MyApp_fillDirInfo(mbaf_t *app,char *curdir)
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
145 {
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
146 app_data_t *data = MBAF_DATA(app,app_data_t);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
147 DIR *dir;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
148 struct dirent *e;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
149 struct fileinfo *f;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
150 int i;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
151
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
152 dir = opendir(curdir);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
153 if (dir == NULL) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
154 printf("We can not open the direftory %s\n", curdir);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
155 return;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
156 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
157
329
740844ee48c4 Update position of light-bar after update menu item
Thinker K.F. Li <thinker@branda.to>
parents: 325
diff changeset
158 if (data->curDir)
740844ee48c4 Update position of light-bar after update menu item
Thinker K.F. Li <thinker@branda.to>
parents: 325
diff changeset
159 free(data->curDir);
740844ee48c4 Update position of light-bar after update menu item
Thinker K.F. Li <thinker@branda.to>
parents: 325
diff changeset
160 data->curDir = strdup(curdir);
740844ee48c4 Update position of light-bar after update menu item
Thinker K.F. Li <thinker@branda.to>
parents: 325
diff changeset
161
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
162 if (data->files) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
163 for(i=0;i<data->nFiles;i++) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
164 fileinfo_free(data->files[i]);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
165 free(data->titles[i]);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
166 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
167 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
168 data->nFiles = 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
169 while(e = readdir(dir)) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
170 if (strcmp(e->d_name,".")==0) continue;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
171 if (e->d_type == DT_DIR) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
172 if (data->nFiles < MAX_ENTRY) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
173 f = fileinfo_new();
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
174 data->files[data->nFiles] = f;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
175 data->titles[data->nFiles++] = strdup(e->d_name);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
176 printf("%s\n", e->d_name);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
177 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
178 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
179 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
180
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
181 closedir(dir);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
182 dir = opendir(curdir);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
183 while(e = readdir(dir)) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
184 if (strcmp(e->d_name,".")==0) continue;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
185 if (e->d_type == DT_REG) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
186 if (data->nFiles < MAX_ENTRY) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
187 f = fileinfo_new();
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
188 data->files[data->nFiles] = f;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
189 data->titles[data->nFiles++] = strdup(e->d_name);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
190 printf("%s\n", e->d_name);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
191 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
192 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
193 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
194 closedir(dir);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
195 data->titles[data->nFiles] = NULL;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
196 mb_animated_menu_set_titles(data->m,data->titles);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
197 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
198
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
199
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
200 MyApp_InitContent(char *dir)
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
201 {
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
202 app_data_t *data = MBAF_DATA(app,app_data_t);
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
203 subject_t *key = MBAF_KB_SUBJECT(app);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
204 char name[255];
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
205 coord_t *l;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
206 int i;
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
207 mb_sprite_t *sprite=app->rootsprite;
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
208
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
209 data->m = mb_animated_menu_new(app,app->rootsprite,"item",NULL);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
210 mb_animated_menu_set_callback(data->m, myselect);
344
ab7f3c00fd05 Implement PMNG viewer
wycc
parents: 329
diff changeset
211 mb_animated_menu_set_update_callback(data->m, myupdate);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
212 data->curDir = NULL;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
213 data->nFiles=0;
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
214 MyApp_fillDirInfo(app,dir);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
215 mb_animated_menu_set_speed(data->m,300);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
216 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
217
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
218 int main(int argc, char * const argv[]) {
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
219 subject_t *subject;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
220 mb_obj_t *button;
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
221 app_data_t data;
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
222 mb_timeval_t tmo,interval;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
223 char *dir;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
224
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
225 if (argc > 1)
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
226 dir = argv[1];
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
227 else
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
228 dir ="/tmp";
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
229 app = mbaf_init("browser", ".libs");
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
230 mbaf_set_data(app,&data);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
231 MyApp_InitContent(dir);
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
232
454
9b8dda201ccb Make naming convention consistent with MadButterfly.
Thinker K.F. Li <thinker@branda.to>
parents: 453
diff changeset
233 mbaf_loop(app);
309
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
234
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
235 return 0;
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
236 }
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
237
4dfb850dee92 Add filebrowser program and SVG file.
wycc
parents:
diff changeset
238 /* vim: set ts=4 */