1 
2         static float ratio[] = {0.25f, NK_UNDEFINED};
3         float spacing_x = ctx->style.window.spacing.x;
4 
5         /* output path directory selector in the menubar */
6         ctx->style.window.spacing.x = 0;
7         nk_menubar_begin(ctx);
8         {
9             char *d = browser->directory;
10             char *begin = d + 1;
11             nk_layout_row_dynamic(ctx, 16, 6);
12 
13             while (*d++) {
14                 if (*d == '/') {
15                     *d = '\0';
16                     if (nk_button_label(ctx, begin)) {
17                         *d++ = '/'; *d = '\0';
18                         file_browser_reload_directory_content(browser, browser->directory);
19                         break;
20                     }
21                     *d = '/';
22                     begin = d + 1;
23                 }
24             }
25         }
26         nk_menubar_end(ctx);
27         ctx->style.window.spacing.x = spacing_x;
28 
29         /* window layout */
30         total_space = nk_window_get_content_region(ctx);
31         nk_layout_row(ctx, NK_DYNAMIC, total_space.h, 2, ratio);
32         nk_group_begin(ctx,"Special", NK_WINDOW_NO_SCROLLBAR);
33         {
34 
35             nk_layout_row_dynamic(ctx, 16, 1);
36             if (nk_button_label(ctx,  "Home"))
37                 file_browser_reload_directory_content(browser, browser->home);
38             if (nk_button_label(ctx,"Desktop"))
39                 file_browser_reload_directory_content(browser, browser->desktop);
40             if (nk_button_label(ctx,"/"))
41                 file_browser_reload_directory_content(browser, "/");
42             if (nk_button_label(ctx,"Cancel"))
43 		LOADCONTENT=-1;
44             nk_group_end(ctx);
45         }
46 
47         /* output directory content window */
48         nk_group_begin(ctx, "Content", 0);
49         {
50             int index = -1;
51             size_t i = 0, j = 0, k = 0;
52             size_t rows = 0, cols = 0;
53             size_t count = browser->dir_count + browser->file_count;
54 
55             cols = 1;
56             rows = count / cols;
57             for (i = 0; i <= rows; i += 1) {
58 
59                 {size_t n = j + cols;
60                 nk_layout_row_dynamic(ctx, 16, (int)cols);
61                 for (; j < count && j < n; ++j) {
62                     /* draw one row of icons */
63                     if (j < browser->dir_count) {
64                         /* draw and execute directory buttons */
65                         if (nk_button_label(ctx,browser->directories[j]))
66                             index = (int)j;
67                     } else {
68                         /* draw and execute files buttons */
69 
70                         size_t fileIndex = ((size_t)j - browser->dir_count);
71 
72                         if (nk_button_label(ctx, browser->files[fileIndex])) {
73                             strncpy(browser->file, browser->directory, MAX_PATH_LEN);
74                             n = strlen(browser->file);
75                             strncpy(browser->file + n, browser->files[fileIndex], MAX_PATH_LEN - n);
76                             //ret = 1;
77 			    sprintf(LCONTENT,"%s",browser->file);
78 			    LOADCONTENT=2;
79                         }
80                     }
81                 }}
82 
83             }
84 
85             if (index != -1) {
86                 size_t n = strlen(browser->directory);
87                 strncpy(browser->directory + n, browser->directories[index], MAX_PATH_LEN - n);
88                 n = strlen(browser->directory);
89                 if (n < MAX_PATH_LEN - 1) {
90                     browser->directory[n] = '/';
91                     browser->directory[n+1] = '\0';
92                 }
93                 file_browser_reload_directory_content(browser, browser->directory);
94 
95             }
96             nk_group_end(ctx);
97         }
98 
99 
100