diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-02 23:08:48 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-02 23:08:48 +0000 |
| commit | 14d63b7fdc58b175a528e2524fc016a17802c50b (patch) | |
| tree | 68c007cd30924598547a25c49336b90ed2cab22a /apps | |
| parent | a8e6fbad3e72f028a36b7444b54c95bf2473fa62 (diff) | |
| download | rockbox-14d63b7fdc58b175a528e2524fc016a17802c50b.zip rockbox-14d63b7fdc58b175a528e2524fc016a17802c50b.tar.gz rockbox-14d63b7fdc58b175a528e2524fc016a17802c50b.tar.bz2 rockbox-14d63b7fdc58b175a528e2524fc016a17802c50b.tar.xz | |
Now only reacts to UP/DOWN keypresses if there are files in the directory
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1316 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/tree.c | 113 |
1 files changed, 62 insertions, 51 deletions
diff --git a/apps/tree.c b/apps/tree.c index cef63a0..0d583a7 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -354,60 +354,71 @@ bool dirbrowse(char *root) break; case TREE_PREV: - if(dircursor) { - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); - dircursor--; - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); - } - else { - if (start) { - start--; - numentries = showdir(currdir, start); - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); - } - else { - if (numentries < TREE_MAX_ON_SCREEN) { - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); - dircursor = numentries - 1; - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); - } - else { - start = numentries - TREE_MAX_ON_SCREEN; - dircursor = TREE_MAX_ON_SCREEN - 1; - numentries = showdir(currdir, start); - put_cursorxy(0, CURSOR_Y + LINE_Y + TREE_MAX_ON_SCREEN - 1, true); - } - } - } - lcd_update(); + if(filesindir) + { + if(dircursor) { + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); + dircursor--; + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); + } + else { + if (start) { + start--; + numentries = showdir(currdir, start); + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); + } + else { + if (numentries < TREE_MAX_ON_SCREEN) { + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, + false); + dircursor = numentries - 1; + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, + true); + } + else { + start = numentries - TREE_MAX_ON_SCREEN; + dircursor = TREE_MAX_ON_SCREEN - 1; + numentries = showdir(currdir, start); + put_cursorxy(0, CURSOR_Y + LINE_Y + + TREE_MAX_ON_SCREEN - 1, true); + } + } + } + lcd_update(); + } break; case TREE_NEXT: - if (dircursor + start + 1 < numentries ) { - if(dircursor+1 < TREE_MAX_ON_SCREEN) { - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); - dircursor++; - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); - } - else { - start++; - numentries = showdir(currdir, start); - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); - } - } - else { - if(numentries < TREE_MAX_ON_SCREEN) { - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); - start = dircursor = 0; - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); - } - else { - start = dircursor = 0; - numentries = showdir(currdir, start); - put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); - } - } - lcd_update(); + if(filesindir) + { + if (dircursor + start + 1 < numentries ) { + if(dircursor+1 < TREE_MAX_ON_SCREEN) { + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, + false); + dircursor++; + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); + } + else { + start++; + numentries = showdir(currdir, start); + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); + } + } + else { + if(numentries < TREE_MAX_ON_SCREEN) { + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, + false); + start = dircursor = 0; + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); + } + else { + start = dircursor = 0; + numentries = showdir(currdir, start); + put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); + } + } + lcd_update(); + } break; case TREE_MENU: { |