summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Fleischer <calcurse@cryptocrack.de>2012-02-20 19:23:25 +0100
committerLukas Fleischer <calcurse@cryptocrack.de>2012-03-02 09:43:06 +0100
commit17aa73b73fdb3181b2b2e696d094a04b8b95ed60 (patch)
tree485ac44d1902bd8396a6b98a5a69800ec03f1472
parentb5c1981842402f6fe8d4c02176db923e1955175b (diff)
downloadcalcurse-17aa73b73fdb3181b2b2e696d094a04b8b95ed60.tar.gz
calcurse-17aa73b73fdb3181b2b2e696d094a04b8b95ed60.zip
Break out configuration main menu
This was the only big block of code left in our main loop. Move it to a separate function, making the main loop a bit clearer. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
-rw-r--r--src/calcurse.c51
-rw-r--r--src/calcurse.h1
-rw-r--r--src/custom.c55
3 files changed, 58 insertions, 49 deletions
diff --git a/src/calcurse.c b/src/calcurse.c
index 756a79f..4216462 100644
--- a/src/calcurse.c
+++ b/src/calcurse.c
@@ -68,9 +68,6 @@ main (int argc, char **argv)
int non_interactive;
int no_data_file = 1;
int cut_item = 0;
- char *no_color_support =
- _("Sorry, colors are not supported by your terminal\n"
- "(Press [ENTER] to continue)");
char *quit_message = _("Do you really want to quit ?");
char choices[] = "[y/n] ";
int count;
@@ -242,52 +239,8 @@ main (int argc, char **argv)
case KEY_GENERIC_CONFIG_MENU:
wins_erase_status_bar ();
- custom_config_bar ();
- while ((key = wgetch (win[STA].p)) != 'q')
- {
- switch (key)
- {
- case 'C':
- case 'c':
- if (has_colors ())
- custom_color_config ();
- else
- {
- colorize = 0;
- wins_erase_status_bar ();
- mvwprintw (win[STA].p, 0, 0, _(no_color_support));
- wgetch (win[STA].p);
- }
- break;
- case 'L':
- case 'l':
- custom_layout_config ();
- break;
- case 'G':
- case 'g':
- custom_general_config ();
- break;
- case 'N':
- case 'n':
- notify_config_bar ();
- break;
- case 'K':
- case 'k':
- custom_keys_config ();
- break;
- case 's':
- case 'S':
- custom_sidebar_config ();
- break;
- default:
- continue;
- }
- wins_reset ();
- wins_update (FLAG_ALL);
- wins_erase_status_bar ();
- custom_config_bar ();
- inday = do_storage (0);
- }
+ custom_config_main ();
+ inday = do_storage (0);
wins_update (FLAG_ALL);
break;
diff --git a/src/calcurse.h b/src/calcurse.h
index e475627..c260ef6 100644
--- a/src/calcurse.h
+++ b/src/calcurse.h
@@ -644,6 +644,7 @@ void custom_confwin_init (struct window *, char *);
void custom_set_swsiz (struct scrollwin *);
void custom_general_config (void);
void custom_keys_config (void);
+void custom_config_main (void);
/* day.c */
void day_free_list (void);
diff --git a/src/custom.c b/src/custom.c
index 6dc6f04..d242b7f 100644
--- a/src/custom.c
+++ b/src/custom.c
@@ -1097,3 +1097,58 @@ custom_keys_config (void)
wins_scrollwin_display (&kwin);
}
}
+
+void
+custom_config_main (void)
+{
+ char *no_color_support =
+ _("Sorry, colors are not supported by your terminal\n"
+ "(Press [ENTER] to continue)");
+ int ch;
+
+ custom_config_bar ();
+ while ((ch = wgetch (win[STA].p)) != 'q')
+ {
+ switch (ch)
+ {
+ case 'C':
+ case 'c':
+ if (has_colors ())
+ custom_color_config ();
+ else
+ {
+ colorize = 0;
+ wins_erase_status_bar ();
+ mvwprintw (win[STA].p, 0, 0, _(no_color_support));
+ wgetch (win[STA].p);
+ }
+ break;
+ case 'L':
+ case 'l':
+ custom_layout_config ();
+ break;
+ case 'G':
+ case 'g':
+ custom_general_config ();
+ break;
+ case 'N':
+ case 'n':
+ notify_config_bar ();
+ break;
+ case 'K':
+ case 'k':
+ custom_keys_config ();
+ break;
+ case 's':
+ case 'S':
+ custom_sidebar_config ();
+ break;
+ default:
+ continue;
+ }
+ wins_reset ();
+ wins_update (FLAG_ALL);
+ wins_erase_status_bar ();
+ custom_config_bar ();
+ }
+}