Comment the macros a bit, no actual code change

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12271 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jonathan Gordon 2007-02-11 10:31:50 +00:00
parent 7c776d4e16
commit 37d246ab4b

View file

@ -99,34 +99,44 @@ typedef int (*menu_callback_type)(int action,
int do_menu(const struct menu_item_ex *menu); int do_menu(const struct menu_item_ex *menu);
#define MENU_ITEM_COUNT(c) (c<<MENU_COUNT_SHIFT) #define MENU_ITEM_COUNT(c) (c<<MENU_COUNT_SHIFT)
/* In all the following macros the argument names are as follows:
- name: The name for the variable (so it can be used in a MAKE_MENU()
- str: the string to display for this menu item. use ID2P() for LANG_* id's
- callback: The callback function to call for this menu item.
*/
/* Use this to put a setting into a menu.
The setting must appear in settings_list.c.
If the setting is not configured properly, the menu will display "Not Done yet!"
When the user selects this item the setting select screen will load,
when that screen exits the user wll be back in the menu */
#define MENUITEM_SETTING(name,var,callback) \ #define MENUITEM_SETTING(name,var,callback) \
static const struct menu_item_ex name = \ static const struct menu_item_ex name = \
{MT_SETTING, {.variable = (void*)var},{callback}}; {MT_SETTING, {.variable = (void*)var},{callback}};
#define MAKE_MENU( name, str, cb, ... ) \ /* Use this To create a list of NON-XLATABLE (for the time being) Strings
static const struct menu_item_ex *name##_[] = {__VA_ARGS__}; \ When the user enters this list and selects one, the menu will exits
static const struct menu_callback_with_desc name##__ = {cb,str}; \ and its return value will be the index of the chosen item */
const struct menu_item_ex name = \ #define MENUITEM_STRINGLIST(name, str, callback, ... ) \
{MT_MENU|MENU_HAS_DESC| \
MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \
{ (void*)name##_},{.callback_and_desc = & name##__}};
#define MENUITEM_STRINGLIST(name, str, cb, ... ) \
static const char *name##_[] = {__VA_ARGS__}; \ static const char *name##_[] = {__VA_ARGS__}; \
static const struct menu_callback_with_desc name##__ = {cb,str}; \ static const struct menu_callback_with_desc name##__ = {callback,str}; \
static const struct menu_item_ex name = \ static const struct menu_item_ex name = \
{MT_RETURN_ID|MENU_HAS_DESC| \ {MT_RETURN_ID|MENU_HAS_DESC| \
MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \ MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \
{ .submenus = name##_},{.callback_and_desc = & name##__}}; { .submenus = name##_},{.callback_and_desc = & name##__}};
/* This one should be static'ed also, /* This one should be static'ed also,
but cannot be done untill sound and playlist menus are done */ but cannot be done untill settings menu is done */
#define MENUITEM_FUNCTION(name, str, func, cb) \ /* Use this to put a function call into the menu.
static const struct menu_callback_with_desc name##_ = {cb,str}; \ When the user selects this item the function will be run,
when it exits the user will be back in the menu. return value is ignored */
#define MENUITEM_FUNCTION(name, str, func, callback) \
static const struct menu_callback_with_desc name##_ = {callback,str}; \
const struct menu_item_ex name = \ const struct menu_item_ex name = \
{ MT_FUNCTION_CALL|MENU_HAS_DESC, { .function = func}, \ { MT_FUNCTION_CALL|MENU_HAS_DESC, { .function = func}, \
{.callback_and_desc = & name##_}}; {.callback_and_desc = & name##_}};
/* Same as above, except the function will be called with a (void*)param. */
#define MENUITEM_FUNCTION_WPARAM(name, str, func, param, callback) \ #define MENUITEM_FUNCTION_WPARAM(name, str, func, param, callback) \
static const struct menu_callback_with_desc name##_ = {callback,str}; \ static const struct menu_callback_with_desc name##_ = {callback,str}; \
static const struct menu_func_with_param name##__ = {func, param}; \ static const struct menu_func_with_param name##__ = {func, param}; \
@ -135,5 +145,13 @@ int do_menu(const struct menu_item_ex *menu);
{ .func_with_param = &name##__}, \ { .func_with_param = &name##__}, \
{.callback_and_desc = & name##_}}; {.callback_and_desc = & name##_}};
/* Use this to actually create a menu. the ... argument is a list of pointers
to any of the above macro'd variables. (It can also have other menus in the list. */
#define MAKE_MENU( name, str, callback, ... ) \
static const struct menu_item_ex *name##_[] = {__VA_ARGS__}; \
static const struct menu_callback_with_desc name##__ = {callback,str}; \
const struct menu_item_ex name = \
{MT_MENU|MENU_HAS_DESC| \
MENU_ITEM_COUNT(sizeof( name##_)/sizeof(*name##_)), \
{ (void*)name##_},{.callback_and_desc = & name##__}};
#endif /* End __MENU_H__ */ #endif /* End __MENU_H__ */