diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2002-05-21 14:30:54 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2002-05-21 14:30:54 +0000 |
| commit | e493efd12b0840541be2e98df30597692ab2eb8f (patch) | |
| tree | d0dd51d5e811b137246f3bcab0d5a6b0ad304c7d /apps | |
| parent | 55c7da2c2c03e002a538c210ec4235e3efe8de44 (diff) | |
| download | rockbox-e493efd12b0840541be2e98df30597692ab2eb8f.zip rockbox-e493efd12b0840541be2e98df30597692ab2eb8f.tar.gz rockbox-e493efd12b0840541be2e98df30597692ab2eb8f.tar.bz2 rockbox-e493efd12b0840541be2e98df30597692ab2eb8f.tar.xz | |
Added main_menu access
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@643 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/tree.c | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/apps/tree.c b/apps/tree.c index b873b11..d8dc779 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -185,18 +185,12 @@ bool dirbrowse(char *root) } switch(key) { #ifdef HAVE_RECORDER_KEYPAD - case BUTTON_OFF: - return false; - break; case BUTTON_LEFT: #else case BUTTON_STOP: #endif i=strlen(currdir); - if (i==1) { - return false; - } - else { + if (i>1) { while (currdir[i-1]!='/') i--; strcpy(buf,&currdir[i]); @@ -222,9 +216,7 @@ bool dirbrowse(char *root) if (dircursor==TREE_MAX_ON_SCREEN) dircursor=0; lcd_puts(0, LINE_Y+dircursor, "-"); -#ifdef HAVE_LCD_BITMAP lcd_update(); -#endif } break; @@ -272,9 +264,7 @@ bool dirbrowse(char *root) lcd_puts(0, LINE_Y+dircursor, " "); dircursor--; lcd_puts(0, LINE_Y+dircursor, "-"); -#ifdef HAVE_LCD_BITMAP lcd_update(); -#endif } else { if (start) { @@ -318,6 +308,39 @@ bool dirbrowse(char *root) } } break; + +#ifdef HAVE_RECORDER_KEYPAD + case BUTTON_F1: + case BUTTON_F2: + case BUTTON_F3: +#else + case BUTTON_MENU: +#endif + main_menu(); + + /* restore display */ + /* TODO: this is just a copy from BUTTON_STOP, fix it */ + lcd_clear_display(); +#ifdef HAVE_LCD_BITMAP + lcd_putsxy(0,0, "[Browse]",0); + lcd_setmargins(0,MARGIN_Y); + lcd_setfont(0); +#endif + if ( dirlevel < MAX_DIR_LEVELS ) + start = dirpos[dirlevel]; + else + start = 0; + numentries = showdir(currdir, buffer, 0, start, &at_end); + dircursor=0; + while ( (dircursor < TREE_MAX_ON_SCREEN) && + (strcmp(buffer[dircursor].name,buf)!=0)) + dircursor++; + if (dircursor==TREE_MAX_ON_SCREEN) + dircursor=0; + lcd_puts(0, LINE_Y+dircursor, "-"); + lcd_update(); + + break; } } |