Index: settings.c
===================================================================
RCS file: /cvsroot/rockbox/apps/settings.c,v
retrieving revision 1.46
diff -r1.46 settings.c
458,497c458,459
<     bool done = false;
<     int button;
< 
< #ifdef HAVE_LCD_BITMAP
<     if(global_settings.statusbar)
<         lcd_setmargins(0, STATUSBAR_HEIGHT);
<     else
<         lcd_setmargins(0, 0);
< #endif
<     lcd_clear_display();
<     lcd_puts_scroll(0, 0, string);
< 
<     while ( !done ) {
<         lcd_puts(0, 1, *variable ? "on " : "off");
< #ifdef HAVE_LCD_BITMAP
<         status_draw();
< #endif
<         lcd_update();
< 
<         button = button_get_w_tmo(HZ/2);
<         switch ( button ) {
< #ifdef HAVE_RECORDER_KEYPAD
<             case BUTTON_LEFT:
< #else
<             case BUTTON_STOP:
<             case BUTTON_MENU:
< #endif
<                 done = true;
<                 break;
< 
< #ifdef HAVE_RECORDER_KEYPAD
<             case BUTTON_UP:
<             case BUTTON_DOWN:
< #else
<             case BUTTON_LEFT:
<             case BUTTON_RIGHT:
< #endif
<                 if(!(button & BUTTON_REL))
<                    *variable = !*variable;
<                 break;
---
>     set_bool_options(string, variable, "yes", "no ");
> }
499,515c461,466
< #ifdef HAVE_RECORDER_KEYPAD
<             case BUTTON_F3:
< #ifdef HAVE_LCD_BITMAP
<                 global_settings.statusbar = !global_settings.statusbar;
<                 settings_save();
<                 if(global_settings.statusbar)
<                     lcd_setmargins(0, STATUSBAR_HEIGHT);
<                 else
<                     lcd_setmargins(0, 0);
<                 lcd_clear_display();
<                 lcd_puts_scroll(0, 0, string);
< #endif
<                 break;
< #endif
<         }
<     }
<     lcd_stop_scroll();
---
> void set_bool_options(char* string, bool* variable, char* yes_str, char* no_str )
> {
>     char* names[] = { yes_str, no_str };
>     int value = !*variable;
>     set_option(string, &value, names, 2);
>     *variable = !value;
602a554
> 
Index: settings.h
===================================================================
RCS file: /cvsroot/rockbox/apps/settings.h,v
retrieving revision 1.35
diff -r1.35 settings.h
108a109
> void set_bool_options(char* string, bool* variable, char* yes_str, char* no_str );
Index: settings_menu.c
===================================================================
RCS file: /cvsroot/rockbox/apps/settings_menu.c,v
retrieving revision 1.46
diff -r1.46 settings_menu.c
42c42,43
<     set_bool( "[Show hidden files]", &global_settings.show_hidden_files );
---
>     set_bool_options( "Hidden Files", &global_settings.show_hidden_files,
>                       "show", "hide" );
48c49
<     set_int( "[Contrast]", "", &global_settings.contrast, 
---
>     set_int( "Contrast", "", &global_settings.contrast, 
56c57
<     set_bool( "[Shuffle]", &global_settings.playlist_shuffle );
---
>     set_bool( "Shuffle", &global_settings.playlist_shuffle );
63c64
<     set_bool( "[MP3/M3U filter]", &global_settings.mp3filter );
---
>     set_bool( "Music Filter", &global_settings.mp3filter );
69c70
<     set_bool( "[Sort case sensitive]", &global_settings.sort_case );
---
>     set_bool( "Sort Case Sensitive", &global_settings.sort_case );
76c77
<     set_option( "[Resume]", &global_settings.resume, names, 3 );
---
>     set_option( "Resume", &global_settings.resume, names, 3 );
87c88
<     set_option("[Backlight]", &global_settings.backlight, names, 19 );
---
>     set_option("Backlight", &global_settings.backlight, names, 19 );
94c95
<     set_int("Scroll speed indicator...   ", "", &global_settings.scroll_speed, 
---
>     set_int("Scroll Speed", "", &global_settings.scroll_speed, 
102c103
<     set_bool( "[Deep discharge]", &global_settings.discharge );
---
>     set_bool( "Deep Discharge", &global_settings.discharge );
136c137
<     set_time("[Set time/date]",timedate);
---
>     set_time("Set time/date",timedate);
167c168
<     set_int("[Disk spindown]", "s", &global_settings.disk_spindown,
---
>     set_int("Disk Spindown", "s", &global_settings.disk_spindown,
178c179
<     set_option("[FF/rewind min step]", &global_settings.ff_rewind_min_step,
---
>     set_option("FF/RW Min Step", &global_settings.ff_rewind_min_step,
189c190
<     set_option("[FF/rewind accel]", &global_settings.ff_rewind_accel, 
---
>     set_option("FF/RW Accel", &global_settings.ff_rewind_accel, 
199a201,218
>         { "Playback",        playback_settings_menu },
>         { "File View",       fileview_settings_menu },
>         { "Display",         display_settings_menu  },
>         { "System",          system_settings_menu   },
>     };
>     
>     m=menu_init( items, sizeof items / sizeof(struct menu_items) );
>     result = menu_run(m);
>     menu_exit(m);
>     return result;
> }
> 
> Menu playback_settings_menu(void)
> {
>     int m;
>     Menu result;
> 
>     struct menu_items items[] = {
201c220
<         { "Shuffle",         shuffle         }, 
---
>         { "Shuffle",        shuffle            },
203,218c222,224
<         { "MP3/M3U filter",  mp3_filter      },
<         { "Sort mode",       sort_case       },
<         { "Backlight Timer", backlight_timer },
<         { "Contrast",        contrast    },  
<         { "Scroll speed",    scroll_speed    },  
< #ifdef HAVE_CHARGE_CTRL
<         { "Deep discharge",  deep_discharge  },
< #endif
< #ifdef HAVE_RTC
<         { "Time/Date",       timedate_set    },
< #endif
<         { "Show hidden files", show_hidden_files },
<         { "FF/Rewind Min Step", ff_rewind_min_step },
<         { "FF/Rewind Accel", ff_rewind_accel },
<         { "Resume",          resume          },
<         { "Disk spindown",   spindown        },
---
>         { "Resume",         resume             },
>         { "FF/RW Min Step", ff_rewind_min_step },
>         { "FF/RW Accel",    ff_rewind_accel    },
236a243,297
>     return result;
> }
> 
> Menu fileview_settings_menu(void)
> {
>     int m;
>     Menu result;
> 
>     struct menu_items items[] = {
>         { "Sort Mode",       sort_case           },
>         { "Music Filter",    mp3_filter          },
>         { "Hidden Files",    show_hidden_files   },
>     };
> 
>     m=menu_init( items, sizeof items / sizeof(struct menu_items) );
>     result = menu_run(m);
>     menu_exit(m);
>     return result;
> }
> 
> Menu display_settings_menu(void)
> {
>     int m;
>     Menu result;
> 
>     struct menu_items items[] = {
>         { "Scroll Speed",    scroll_speed    },  
>         { "Backlight",       backlight_timer },
>         { "Contrast",        contrast        },  
>     };
>     
>     m=menu_init( items, sizeof items / sizeof(struct menu_items) );
>     result = menu_run(m);
>     menu_exit(m);
>     return result;
> }
> 
> Menu system_settings_menu(void)
> {
>     int m;
>     Menu result;
> 
>     struct menu_items items[] = {
>         { "Disk Spindown",   spindown        },
> #ifdef HAVE_CHARGE_CTRL
>         { "Deep Discharge",  deep_discharge  },
> #endif
> #ifdef HAVE_RTC
>         { "Time/Date",       timedate_set    },
> #endif
>     };
>     
>     m=menu_init( items, sizeof items / sizeof(struct menu_items) );
>     result = menu_run(m);
>     menu_exit(m);
Index: settings_menu.h
===================================================================
RCS file: /cvsroot/rockbox/apps/settings_menu.h,v
retrieving revision 1.2
diff -r1.2 settings_menu.h
23a24,27
> Menu playback_settings_menu(void);
> Menu fileview_settings_menu(void);
> Menu display_settings_menu(void);
> Menu system_settings_menu(void);

