|
Rockbox mail archiveSubject: Re: my next crazy idea... rework the menu systemRe: my next crazy idea... rework the menu system
From: Jonathan Gordon <jdgordy_at_gmail.com>
Date: Wed, 23 Aug 2006 19:51:54 +1000 OK, well, I've started figuring out how to store everything and I think this is OK for a first go. enum { MT_MENU = 0, MT_FUNCTION_CALL, /* used when the standard code wont work */ MT_SETTING_BOOL, MT_SETTING_INT, /* int with min,max */ MT_SETTING_CHOICE, /* int where you have X choices, e.g replay mode */ } menu_item_type; struct menu_item { enum menu_item_type type; union { struct menu_item **submenu; /* used with MT_MENU */ /* this may have to be changed, but doing it this way does save some space */ struct { /* used with MT_SETTING_* */ void (*function)(int); /* int typecast to bool for BOOL options */ const struct opt_items** options; /* MT_SETTING_INT only */ void (*formatter)(char*, int, int, const char*); /* MT_SETTING_INT only */ void *variable; /* typecast to whatever we need */ } options; bool (*function)(void); /* used with MT_FUNCTION_CALL */ }; const char *title; }; so, hopefully we will be able to do something like static const struct menu_item main_menu = {MT_MENU, {&sound_menu, &playback_menu, &...}, STR(LANG_MAIN_MENU}; Oh, the text file is not needed... I was just testing you all :D Received on 2006-08-23 Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy |