summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-07-02 23:08:48 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-07-02 23:08:48 +0000
commit14d63b7fdc58b175a528e2524fc016a17802c50b (patch)
tree68c007cd30924598547a25c49336b90ed2cab22a /apps
parenta8e6fbad3e72f028a36b7444b54c95bf2473fa62 (diff)
downloadrockbox-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.c113
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: {