1
0
Fork 0
forked from len0rd/rockbox

Removed #defines

Added structs, function pointers and enum of menu items.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@416 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Hak 2002-05-04 10:03:41 +00:00
parent 523f228bbe
commit 225f620ac9

View file

@ -22,7 +22,9 @@
#include "button.h" #include "button.h"
#include "kernel.h" #include "kernel.h"
/* Apps to include */
#include "tree.h" #include "tree.h"
#include "screensaver.h"
extern void tetris(void); extern void tetris(void);
@ -30,16 +32,25 @@ extern void tetris(void);
#define MENU_ITEM_Y_LOC 6 #define MENU_ITEM_Y_LOC 6
#define MENU_LINE_HEIGHT 8 #define MENU_LINE_HEIGHT 8
/* menu ids */ enum Menu_Ids {
#define ITEM_TETRIS 0 Tetris, Screen_Saver, Browse, Last_Id
#define ITEM_SCREENSAVER 1 };
#define ITEM_BROWSE 2
/* the last index with info, starting on 0 */ struct Menu_Items {
#define MAX_LINE ITEM_BROWSE int menu_id;
const char *menu_desc;
void (*function) (void);
};
int menu_top = 0; struct Menu_Items items[] = {
int menu_bottom = MAX_LINE; { Tetris, "Tetris", tetris },
{ Screen_Saver, "Screen Saver", screensaver },
{ Browse, "Browse", dirbrowse },
};
int menu_top = Tetris;
int menu_bottom = Last_Id-1;
void add_menu_item(int location, char *string) void add_menu_item(int location, char *string)
{ {
@ -53,9 +64,9 @@ void add_menu_item(int location, char *string)
void menu_init(void) void menu_init(void)
{ {
add_menu_item(ITEM_SCREENSAVER, "Screen Saver"); int i = 0;
add_menu_item(ITEM_BROWSE, "Browse"); for (i = i; i < Last_Id; i++)
add_menu_item(ITEM_TETRIS, "Tetris"); add_menu_item(items[i].menu_id, (char *) items[i].menu_desc);
lcd_puts(8, 38, "Rockbox!", 2); lcd_puts(8, 38, "Rockbox!", 2);
} }
@ -114,13 +125,14 @@ void app_main(void)
lcd_clear_display(); lcd_clear_display();
switch(cursor) { switch(cursor) {
case ITEM_TETRIS: case Tetris:
tetris(); tetris();
break; break;
case ITEM_BROWSE: case Browse:
dirbrowse("/"); printf("at browse\n");
browse_root();
break; break;
case ITEM_SCREENSAVER: case Screen_Saver:
screensaver(); screensaver();
break; break;
default: default: