summaryrefslogtreecommitdiff
path: root/apps/settings_list.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2008-11-03 10:43:37 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2008-11-03 10:43:37 +0000
commit5395957549c9b04fefa87a0aedb6bc15bf360739 (patch)
treef80721fe66ef078c92a1b0180c4d108c505c5289 /apps/settings_list.c
parentee0111a53986ab309e3ae1a819d55318a950e99a (diff)
downloadrockbox-5395957549c9b04fefa87a0aedb6bc15bf360739.zip
rockbox-5395957549c9b04fefa87a0aedb6bc15bf360739.tar.gz
rockbox-5395957549c9b04fefa87a0aedb6bc15bf360739.tar.bz2
rockbox-5395957549c9b04fefa87a0aedb6bc15bf360739.tar.xz
Add a setting type which is completly user-defined. This setting type cannot be used by the regular menu macros (e.g MENUITEM_SETTING() macro) so if you are goign to use this type remember to implement the setting screen seperately (using option_select() if you can)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18983 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings_list.c')
-rw-r--r--apps/settings_list.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 3eeeffd..99a4601 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -165,6 +165,14 @@
{cb, formatter, get_talk_id, unit, count, \
(const int[]){__VA_ARGS__}}}}}
+#define CUSTOM_SETTING(flags, var, lang_id, default, name, \
+ load_from_cfg, write_to_cfg, \
+ is_change, set_default) \
+ {flags|F_CUSTOM_SETTING|F_T_CUSTOM|F_BANFROMQS, \
+ &global_settings.var, lang_id, \
+ {.custom = (void*)default}, name, NULL, \
+ {.custom_setting = (struct custom_setting[]){ \
+ {load_from_cfg, write_to_cfg, is_change, set_default}}}}
/* some sets of values which are used more than once, to save memory */
static const char off_on[] = "off,on";
static const char off_on_ask[] = "off,on,ask";