diff options
Diffstat (limited to 'src/custom.c')
-rwxr-xr-x | src/custom.c | 1419 |
1 files changed, 726 insertions, 693 deletions
diff --git a/src/custom.c b/src/custom.c index ce77cde..b59ec4e 100755 --- a/src/custom.c +++ b/src/custom.c @@ -1,4 +1,4 @@ -/* $calcurse: custom.c,v 1.19 2008/04/09 20:38:29 culot Exp $ */ +/* $calcurse: custom.c,v 1.20 2008/04/12 21:14:03 culot Exp $ */ /* * Calcurse - text-based organizer @@ -35,18 +35,19 @@ static struct attribute_s attr; -static bool -fill_config_var(char *string) +static bool +fill_config_var (char *string) { - if (strncmp(string, "yes", 3) == 0) - return (true); - else if (strncmp(string, "no", 2) == 0) - return (false); - else { - fputs(_("FATAL ERROR in fill_config_var: " - "wrong configuration variable format.\n"), stderr); - return (EXIT_FAILURE); - } + if (strncmp (string, "yes", 3) == 0) + return (true); + else if (strncmp (string, "no", 2) == 0) + return (false); + else + { + fputs (_("FATAL ERROR in fill_config_var: " + "wrong configuration variable format.\n"), stderr); + return (EXIT_FAILURE); + } } /* @@ -55,103 +56,109 @@ fill_config_var(char *string) * differently (number between 1 and 8). */ static void -custom_load_color(char *color, int background) +custom_load_color (char *color, int background) { #define AWAITED_COLORS 2 - int i, len, color_num; - char c[AWAITED_COLORS][BUFSIZ]; - int colr[AWAITED_COLORS]; - const char *wrong_color_number = - _("FATAL ERROR in custom_load_color: wrong color number.\n"); - const char *wrong_color_name = - _("FATAL ERROR in custom_load_color: wrong color name.\n"); - const char *wrong_variable_format = - _("FATAL ERROR in custom_load_color: " - "wrong configuration variable format.\n"); - - len = strlen(color); - - if (len > 1) { - /* New version configuration */ - if (sscanf(color, "%s on %s", c[0], c[1]) != AWAITED_COLORS) { - fputs(_("FATAL ERROR in custom_load_color: " - "missing colors in config file.\n"), stderr); - exit(EXIT_FAILURE); - /* NOTREACHED */ - }; - - for (i = 0; i < AWAITED_COLORS; i++) { - if (!strncmp(c[i], "black", 5)) - colr[i] = COLOR_BLACK; - else if (!strncmp(c[i], "red", 3)) - colr[i] = COLOR_RED; - else if (!strncmp(c[i], "green", 5)) - colr[i] = COLOR_GREEN; - else if (!strncmp(c[i], "yellow", 6)) - colr[i] = COLOR_YELLOW; - else if (!strncmp(c[i], "blue", 4)) - colr[i] = COLOR_BLUE; - else if (!strncmp(c[i], "magenta", 7)) - colr[i] = COLOR_MAGENTA; - else if (!strncmp(c[i], "cyan", 4)) - colr[i] = COLOR_CYAN; - else if (!strncmp(c[i], "white", 5)) - colr[i] = COLOR_WHITE; - else if (!strncmp(c[i], "default", 7)) - colr[i] = background; - else { - fputs(wrong_color_name, stderr); - exit(EXIT_FAILURE); - /* NOTREACHED */ - } - } - - init_pair(COLR_CUSTOM, colr[0], colr[1]); - - } else if (len > 0 && len < 2) { - /* Old version configuration */ - color_num = atoi(color); - - switch (color_num) { - case 0: - colorize = false; - break; - case 1: - init_pair(COLR_CUSTOM, COLOR_RED, background); - break; - case 2: - init_pair(COLR_CUSTOM, COLOR_GREEN, background); - break; - case 3: - init_pair(COLR_CUSTOM, COLOR_BLUE, background); - break; - case 4: - init_pair(COLR_CUSTOM, COLOR_CYAN, background); - break; - case 5: - init_pair(COLR_CUSTOM, COLOR_YELLOW, background); - break; - case 6: - init_pair(COLR_CUSTOM, COLOR_BLACK, COLR_GREEN); - break; - case 7: - init_pair(COLR_CUSTOM, COLOR_BLACK, COLR_YELLOW); - break; - case 8: - init_pair(COLR_CUSTOM, COLOR_RED, COLR_BLUE); - break; - default: - fputs(wrong_color_number, stderr); - exit(EXIT_FAILURE); - /* NOTREACHED */ - } - - } else { - fputs(wrong_variable_format, stderr); - exit(EXIT_FAILURE); - /* NOTREACHED */ + int i, len, color_num; + char c[AWAITED_COLORS][BUFSIZ]; + int colr[AWAITED_COLORS]; + const char *wrong_color_number = + _("FATAL ERROR in custom_load_color: wrong color number.\n"); + const char *wrong_color_name = + _("FATAL ERROR in custom_load_color: wrong color name.\n"); + const char *wrong_variable_format = + _("FATAL ERROR in custom_load_color: " + "wrong configuration variable format.\n"); + + len = strlen (color); + + if (len > 1) + { + /* New version configuration */ + if (sscanf (color, "%s on %s", c[0], c[1]) != AWAITED_COLORS) + { + fputs (_("FATAL ERROR in custom_load_color: " + "missing colors in config file.\n"), stderr); + exit (EXIT_FAILURE); + /* NOTREACHED */ + }; + + for (i = 0; i < AWAITED_COLORS; i++) + { + if (!strncmp (c[i], "black", 5)) + colr[i] = COLOR_BLACK; + else if (!strncmp (c[i], "red", 3)) + colr[i] = COLOR_RED; + else if (!strncmp (c[i], "green", 5)) + colr[i] = COLOR_GREEN; + else if (!strncmp (c[i], "yellow", 6)) + colr[i] = COLOR_YELLOW; + else if (!strncmp (c[i], "blue", 4)) + colr[i] = COLOR_BLUE; + else if (!strncmp (c[i], "magenta", 7)) + colr[i] = COLOR_MAGENTA; + else if (!strncmp (c[i], "cyan", 4)) + colr[i] = COLOR_CYAN; + else if (!strncmp (c[i], "white", 5)) + colr[i] = COLOR_WHITE; + else if (!strncmp (c[i], "default", 7)) + colr[i] = background; + else + { + fputs (wrong_color_name, stderr); + exit (EXIT_FAILURE); + /* NOTREACHED */ + } } + init_pair (COLR_CUSTOM, colr[0], colr[1]); + } + else if (len > 0 && len < 2) + { + /* Old version configuration */ + color_num = atoi (color); + + switch (color_num) + { + case 0: + colorize = false; + break; + case 1: + init_pair (COLR_CUSTOM, COLOR_RED, background); + break; + case 2: + init_pair (COLR_CUSTOM, COLOR_GREEN, background); + break; + case 3: + init_pair (COLR_CUSTOM, COLOR_BLUE, background); + break; + case 4: + init_pair (COLR_CUSTOM, COLOR_CYAN, background); + break; + case 5: + init_pair (COLR_CUSTOM, COLOR_YELLOW, background); + break; + case 6: + init_pair (COLR_CUSTOM, COLOR_BLACK, COLR_GREEN); + break; + case 7: + init_pair (COLR_CUSTOM, COLOR_BLACK, COLR_YELLOW); + break; + case 8: + init_pair (COLR_CUSTOM, COLOR_RED, COLR_BLUE); + break; + default: + fputs (wrong_color_number, stderr); + exit (EXIT_FAILURE); + /* NOTREACHED */ + } + } + else + { + fputs (wrong_variable_format, stderr); + exit (EXIT_FAILURE); + /* NOTREACHED */ + } } /* @@ -162,233 +169,241 @@ custom_load_color(char *color, int background) * ATTR_LOW are for days inside calendar panel which contains an event * ATTR_LOWEST are for current day inside calendar panel */ -void -custom_init_attr(void) +void +custom_init_attr (void) { - attr.color[ATTR_HIGHEST] = COLOR_PAIR(COLR_CUSTOM); - attr.color[ATTR_HIGH] = COLOR_PAIR(COLR_HIGH); - attr.color[ATTR_MIDDLE] = COLOR_PAIR(COLR_RED); - attr.color[ATTR_LOW] = COLOR_PAIR(COLR_CYAN); - attr.color[ATTR_LOWEST] = COLOR_PAIR(COLR_YELLOW); - attr.color[ATTR_TRUE] = COLOR_PAIR(COLR_GREEN); - attr.color[ATTR_FALSE] = COLOR_PAIR(COLR_RED); - - attr.nocolor[ATTR_HIGHEST] = A_BOLD; - attr.nocolor[ATTR_HIGH] = A_REVERSE; - attr.nocolor[ATTR_MIDDLE] = A_REVERSE; - attr.nocolor[ATTR_LOW] = A_UNDERLINE; - attr.nocolor[ATTR_LOWEST] = A_BOLD; - attr.nocolor[ATTR_TRUE] = A_BOLD; - attr.nocolor[ATTR_FALSE] = A_DIM; + attr.color[ATTR_HIGHEST] = COLOR_PAIR (COLR_CUSTOM); + attr.color[ATTR_HIGH] = COLOR_PAIR (COLR_HIGH); + attr.color[ATTR_MIDDLE] = COLOR_PAIR (COLR_RED); + attr.color[ATTR_LOW] = COLOR_PAIR (COLR_CYAN); + attr.color[ATTR_LOWEST] = COLOR_PAIR (COLR_YELLOW); + attr.color[ATTR_TRUE] = COLOR_PAIR (COLR_GREEN); + attr.color[ATTR_FALSE] = COLOR_PAIR (COLR_RED); + + attr.nocolor[ATTR_HIGHEST] = A_BOLD; + attr.nocolor[ATTR_HIGH] = A_REVERSE; + attr.nocolor[ATTR_MIDDLE] = A_REVERSE; + attr.nocolor[ATTR_LOW] = A_UNDERLINE; + attr.nocolor[ATTR_LOWEST] = A_BOLD; + attr.nocolor[ATTR_TRUE] = A_BOLD; + attr.nocolor[ATTR_FALSE] = A_DIM; } /* Apply window attribute */ -void -custom_apply_attr(WINDOW *win, int attr_num) +void +custom_apply_attr (WINDOW * win, int attr_num) { - if (colorize) - wattron(win, attr.color[attr_num]); - else - wattron(win, attr.nocolor[attr_num]); + if (colorize) + wattron (win, attr.color[attr_num]); + else + wattron (win, attr.nocolor[attr_num]); } /* Remove window attribute */ -void -custom_remove_attr(WINDOW *win, int attr_num) +void +custom_remove_attr (WINDOW * win, int attr_num) { - if (colorize) - wattroff(win, attr.color[attr_num]); - else - wattroff(win, attr.nocolor[attr_num]); + if (colorize) + wattroff (win, attr.color[attr_num]); + else + wattroff (win, attr.nocolor[attr_num]); } /* Load the user configuration. */ -void -custom_load_conf(conf_t *conf, int background) +void +custom_load_conf (conf_t * conf, int background) { - FILE *data_file; - char *mesg_line1 = _("Failed to open config file"); - char *mesg_line2 = _("Press [ENTER] to continue"); - char buf[100], e_conf[100]; - int var; - - data_file = fopen(path_conf, "r"); - if (data_file == NULL) { - status_mesg(mesg_line1, mesg_line2); - wnoutrefresh(win[STA].p); - doupdate(); - wgetch(win[STA].p); + FILE *data_file; + char *mesg_line1 = _("Failed to open config file"); + char *mesg_line2 = _("Press [ENTER] to continue"); + char buf[100], e_conf[100]; + int var; + + data_file = fopen (path_conf, "r"); + if (data_file == NULL) + { + status_mesg (mesg_line1, mesg_line2); + wnoutrefresh (win[STA].p); + doupdate (); + wgetch (win[STA].p); + } + var = 0; + pthread_mutex_lock (&nbar->mutex); + for (;;) + { + if (fgets (buf, 99, data_file) == NULL) + { + break; } - var = 0; - pthread_mutex_lock(&nbar->mutex); - for (;;) { - if (fgets(buf, 99, data_file) == NULL) { - break; - } - io_extract_data(e_conf, buf, strlen(buf)); - - switch (var) { - case CUSTOM_CONF_NOVARIABLE: - break; - case CUSTOM_CONF_AUTOSAVE: - conf->auto_save = fill_config_var(e_conf); - var = 0; - break; - case CUSTOM_CONF_CONFIRMQUIT: - conf->confirm_quit = fill_config_var(e_conf); - var = 0; - break; - case CUSTOM_CONF_CONFIRMDELETE: - conf->confirm_delete = fill_config_var(e_conf); - var = 0; - break; - case CUSTOM_CONF_SKIPSYSTEMDIALOGS: - conf->skip_system_dialogs = fill_config_var(e_conf); - var = 0; - break; - case CUSTOM_CONF_SKIPPROGRESSBAR: - conf->skip_progress_bar = fill_config_var(e_conf); - var = 0; - break; - case CUSTOM_CONF_WEEKBEGINSONMONDAY: - if (fill_config_var(e_conf)) - calendar_set_first_day_of_week(MONDAY); - else - calendar_set_first_day_of_week(SUNDAY); - var = 0; - break; - case CUSTOM_CONF_COLORTHEME: - custom_load_color(e_conf, background); - var = 0; - break; - case CUSTOM_CONF_LAYOUT: - wins_set_layout(atoi(e_conf)); - var = 0; - break; - case CUSTOM_CONF_NOTIFYBARSHOW: - nbar->show = fill_config_var(e_conf); - var = 0; - break; - case CUSTOM_CONF_NOTIFYBARDATE: - strncpy(nbar->datefmt, e_conf, strlen(e_conf) + 1); - var = 0; - break; - case CUSTOM_CONF_NOTIFYBARCLOCK: - strncpy(nbar->timefmt, e_conf, strlen(e_conf) + 1); - var = 0; - break; - case CUSTOM_CONF_NOTIFYBARWARNING: - nbar->cntdwn = atoi(e_conf); - var = 0; - break; - case CUSTOM_CONF_NOTIFYBARCOMMAND: - strncpy(nbar->cmd, e_conf, strlen(e_conf) + 1); - var = 0; - break; - case CUSTOM_CONF_OUTPUTDATEFMT: - if (e_conf[0] != '\0') - strncpy(conf->output_datefmt, e_conf, strlen(e_conf) + 1); - var = 0; - break; - case CUSTOM_CONF_INPUTDATEFMT: - conf->input_datefmt = atoi(e_conf); - if (conf->input_datefmt < 1 || conf->input_datefmt > 3) - conf->input_datefmt = 1; - var = 0; - break; - default: - fputs(_("FATAL ERROR in custom_load_conf: " - "configuration variable unknown.\n"), stderr); - exit(EXIT_FAILURE); - /* NOTREACHED */ - } - - if (strncmp(e_conf, "auto_save=", 10) == 0) - var = CUSTOM_CONF_AUTOSAVE; - else if (strncmp(e_conf, "confirm_quit=", 13) == 0) - var = CUSTOM_CONF_CONFIRMQUIT; - else if (strncmp(e_conf, "confirm_delete=", 15) == 0) - var = CUSTOM_CONF_CONFIRMDELETE; - else if (strncmp(e_conf, "skip_system_dialogs=", 20) == 0) - var = CUSTOM_CONF_SKIPSYSTEMDIALOGS; - else if (strncmp(e_conf, "skip_progress_bar=", 18) == 0) - var = CUSTOM_CONF_SKIPPROGRESSBAR; - else if (strncmp(e_conf, "week_begins_on_monday=", 23) == 0) - var = CUSTOM_CONF_WEEKBEGINSONMONDAY; - else if (strncmp(e_conf, "color-theme=", 12) == 0) - var = CUSTOM_CONF_COLORTHEME; - else if (strncmp(e_conf, "layout=", 7) == 0) - var = CUSTOM_CONF_LAYOUT; - else if (strncmp(e_conf, "notify-bar_show=", 16) ==0) - var = CUSTOM_CONF_NOTIFYBARSHOW; - else if (strncmp(e_conf, "notify-bar_date=", 16) ==0) - var = CUSTOM_CONF_NOTIFYBARDATE; - else if (strncmp(e_conf, "notify-bar_clock=", 17) ==0) - var = CUSTOM_CONF_NOTIFYBARCLOCK; - else if (strncmp(e_conf, "notify-bar_warning=", 19) ==0) - var = CUSTOM_CONF_NOTIFYBARWARNING; - else if (strncmp(e_conf, "notify-bar_command=", 19) ==0) - var = CUSTOM_CONF_NOTIFYBARCOMMAND; - else if (strncmp(e_conf, "output_datefmt=", 12) ==0) - var = CUSTOM_CONF_OUTPUTDATEFMT; - else if (strncmp(e_conf, "input_datefmt=", 12) ==0) - var = CUSTOM_CONF_INPUTDATEFMT; + io_extract_data (e_conf, buf, strlen (buf)); + + switch (var) + { + case CUSTOM_CONF_NOVARIABLE: + break; + case CUSTOM_CONF_AUTOSAVE: + conf->auto_save = fill_config_var (e_conf); + var = 0; + break; + case CUSTOM_CONF_CONFIRMQUIT: + conf->confirm_quit = fill_config_var (e_conf); + var = 0; + break; + case CUSTOM_CONF_CONFIRMDELETE: + conf->confirm_delete = fill_config_var (e_conf); + var = 0; + break; + case CUSTOM_CONF_SKIPSYSTEMDIALOGS: + conf->skip_system_dialogs = fill_config_var (e_conf); + var = 0; + break; + case CUSTOM_CONF_SKIPPROGRESSBAR: + conf->skip_progress_bar = fill_config_var (e_conf); + var = 0; + break; + case CUSTOM_CONF_WEEKBEGINSONMONDAY: + if (fill_config_var (e_conf)) + calendar_set_first_day_of_week (MONDAY); + else + calendar_set_first_day_of_week (SUNDAY); + var = 0; + break; + case CUSTOM_CONF_COLORTHEME: + custom_load_color (e_conf, background); + var = 0; + break; + case CUSTOM_CONF_LAYOUT: + wins_set_layout (atoi (e_conf)); + var = 0; + break; + case CUSTOM_CONF_NOTIFYBARSHOW: + nbar->show = fill_config_var (e_conf); + var = 0; + break; + case CUSTOM_CONF_NOTIFYBARDATE: + strncpy (nbar->datefmt, e_conf, strlen (e_conf) + 1); + var = 0; + break; + case CUSTOM_CONF_NOTIFYBARCLOCK: + strncpy (nbar->timefmt, e_conf, strlen (e_conf) + 1); + var = 0; + break; + case CUSTOM_CONF_NOTIFYBARWARNING: + nbar->cntdwn = atoi (e_conf); + var = 0; + break; + case CUSTOM_CONF_NOTIFYBARCOMMAND: + strncpy (nbar->cmd, e_conf, strlen (e_conf) + 1); + var = 0; + break; + case CUSTOM_CONF_OUTPUTDATEFMT: + if (e_conf[0] != '\0') + strncpy (conf->output_datefmt, e_conf, strlen (e_conf) + 1); + var = 0; + break; + case CUSTOM_CONF_INPUTDATEFMT: + conf->input_datefmt = atoi (e_conf); + if (conf->input_datefmt < 1 || conf->input_datefmt > 3) + conf->input_datefmt = 1; + var = 0; + break; + default: + fputs (_("FATAL ERROR in custom_load_conf: " + "configuration variable unknown.\n"), stderr); + exit (EXIT_FAILURE); + /* NOTREACHED */ } - fclose(data_file); - pthread_mutex_unlock(&nbar->mutex); + + if (strncmp (e_conf, "auto_save=", 10) == 0) + var = CUSTOM_CONF_AUTOSAVE; + else if (strncmp (e_conf, "confirm_quit=", 13) == 0) + var = CUSTOM_CONF_CONFIRMQUIT; + else if (strncmp (e_conf, "confirm_delete=", 15) == 0) + var = CUSTOM_CONF_CONFIRMDELETE; + else if (strncmp (e_conf, "skip_system_dialogs=", 20) == 0) + var = CUSTOM_CONF_SKIPSYSTEMDIALOGS; + else if (strncmp (e_conf, "skip_progress_bar=", 18) == 0) + var = CUSTOM_CONF_SKIPPROGRESSBAR; + else if (strncmp (e_conf, "week_begins_on_monday=", 23) == 0) + var = CUSTOM_CONF_WEEKBEGINSONMONDAY; + else if (strncmp (e_conf, "color-theme=", 12) == 0) + var = CUSTOM_CONF_COLORTHEME; + else if (strncmp (e_conf, "layout=", 7) == 0) + var = CUSTOM_CONF_LAYOUT; + else if (strncmp (e_conf, "notify-bar_show=", 16) == 0) + var = CUSTOM_CONF_NOTIFYBARSHOW; + else if (strncmp (e_conf, "notify-bar_date=", 16) == 0) + var = CUSTOM_CONF_NOTIFYBARDATE; + else if (strncmp (e_conf, "notify-bar_clock=", 17) == 0) + var = CUSTOM_CONF_NOTIFYBARCLOCK; + else if (strncmp (e_conf, "notify-bar_warning=", 19) == 0) + var = CUSTOM_CONF_NOTIFYBARWARNING; + else if (strncmp (e_conf, "notify-bar_command=", 19) == 0) + var = CUSTOM_CONF_NOTIFYBARCOMMAND; + else if (strncmp (e_conf, "output_datefmt=", 12) == 0) + var = CUSTOM_CONF_OUTPUTDATEFMT; + else if (strncmp (e_conf, "input_datefmt=", 12) == 0) + var = CUSTOM_CONF_INPUTDATEFMT; + } + fclose (data_file); + pthread_mutex_unlock (&nbar->mutex); } /* Draws the configuration bar */ -void -config_bar(void) +void +config_bar (void) { - int smlspc, spc; - - smlspc = 2; - spc = 15; - - custom_apply_attr(win[STA].p, ATTR_HIGHEST); - mvwprintw(win[STA].p, 0, 2, "Q"); - mvwprintw(win[STA].p, 1, 2, "G"); - mvwprintw(win[STA].p, 0, 2 + spc, "L"); - mvwprintw(win[STA].p, 1, 2 + spc, "C"); - mvwprintw(win[STA].p, 0, 2 + 2*spc, "N"); - custom_remove_attr(win[STA].p, ATTR_HIGHEST); - - mvwprintw(win[STA].p, 0, 2 + smlspc, _("Exit")); - mvwprintw(win[STA].p, 1, 2 + smlspc, _("General")); - mvwprintw(win[STA].p, 0, 2 + spc + smlspc, _("Layout")); - mvwprintw(win[STA].p, 1, 2 + spc + smlspc, _("Color")); - mvwprintw(win[STA].p, 0, 2 + 2*spc + smlspc, _("Notify")); - - wnoutrefresh(win[STA].p); - wmove(win[STA].p, 0, 0); - doupdate(); + int smlspc, spc; + + smlspc = 2; + spc = 15; + + custom_apply_attr (win[STA].p, ATTR_HIGHEST); + mvwprintw (win[STA].p, 0, 2, "Q"); + mvwprintw (win[STA].p, 1, 2, "G"); + mvwprintw (win[STA].p, 0, 2 + spc, "L"); + mvwprintw (win[STA].p, 1, 2 + spc, "C"); + mvwprintw (win[STA].p, 0, 2 + 2 * spc, "N"); + custom_remove_attr (win[STA].p, ATTR_HIGHEST); + + mvwprintw (win[STA].p, 0, 2 + smlspc, _("Exit")); + mvwprintw (win[STA].p, 1, 2 + smlspc, _("General")); + mvwprintw (win[STA].p, 0, 2 + spc + smlspc, _("Layout")); + mvwprintw (win[STA].p, 1, 2 + spc + smlspc, _("Color")); + mvwprintw (win[STA].p, 0, 2 + 2 * spc + smlspc, _("Notify")); + + wnoutrefresh (win[STA].p); + wmove (win[STA].p, 0, 0); + doupdate (); } /* Choose the layout */ -void -layout_config(void) +void +layout_config (void) { - int ch; - char *layout_mesg = _("Pick the desired layout on next screen [press ENTER]"); - char *choice_mesg = _("('A'= Appointment panel, 'C'= calendar panel, 'T'= todo panel)"); - char *layout_up_mesg = - _(" AC AT CA TA TC TA CT AT"); - char *layout_down_mesg = - _(" [1]AT [2]AC [3]TA [4]CA [5]TA [6]TC [7]AT [8]CT"); - - status_mesg(layout_mesg, choice_mesg); - wgetch(win[STA].p); - status_mesg(layout_up_mesg, layout_down_mesg); - wnoutrefresh(win[STA].p); - doupdate(); - while ((ch = wgetch(win[STA].p)) != 'q') { - if ( ch <= '8' && ch >= '1' ) { - wins_set_layout(ch - '0'); - return; - } + int ch; + char *layout_mesg = + _("Pick the desired layout on next screen [press ENTER]"); + char *choice_mesg = + _("('A'= Appointment panel, 'C'= calendar panel, 'T'= todo panel)"); + char *layout_up_mesg = + _(" AC AT CA TA TC TA CT AT"); + char *layout_down_mesg = + _(" [1]AT [2]AC [3]TA [4]CA [5]TA [6]TC [7]AT [8]CT"); + + status_mesg (layout_mesg, choice_mesg); + wgetch (win[STA].p); + status_mesg (layout_up_mesg, layout_down_mesg); + wnoutrefresh (win[STA].p); + doupdate (); + while ((ch = wgetch (win[STA].p)) != 'q') + { + if (ch <= '8' && ch >= '1') + { + wins_set_layout (ch - '0'); + return; } + } } /* @@ -396,22 +411,21 @@ layout_config(void) * (useful in case of window resize). */ void -custom_confwin_init(window_t *confwin, char *label) +custom_confwin_init (window_t *confwin, char *label) { - wins_get_config(); - confwin->h = (notify_bar()) ? row - 3 : row - 2; - confwin->p = newwin(confwin->h, col, 0, 0); - box(confwin->p, 0, 0); - wins_show(confwin->p, label); - delwin(win[STA].p); - win[STA].p = newwin(win[STA].h, win[STA].w, win[STA].y, - win[STA].x); - keypad(win[STA].p, TRUE); - if (notify_bar()) { - notify_reinit_bar(win[NOT].h, win[NOT].w, - win[NOT].y, win[NOT].x); - notify_update_bar(); - } + wins_get_config (); + confwin->h = (notify_bar ())? row - 3 : row - 2; + confwin->p = newwin (confwin->h, col, 0, 0); + box (confwin->p, 0, 0); + wins_show (confwin->p, label); + delwin (win[STA].p); + win[STA].p = newwin (win[STA].h, win[STA].w, win[STA].y, win[STA].x); + keypad (win[STA].p, TRUE); + if (notify_bar ()) + { + notify_reinit_bar (win[NOT].h, win[NOT].w, win[NOT].y, win[NOT].x); + notify_update_bar (); + } } /* @@ -419,8 +433,8 @@ custom_confwin_init(window_t *confwin, char *label) * This is useful for window resizing. */ static void -display_color_config(window_t *cwin, int *mark_fore, int *mark_back, - int cursor, int need_reset, int theme_changed) +display_color_config (window_t *cwin, int *mark_fore, int *mark_back, + int cursor, int need_reset, int theme_changed) { #define SIZE (2 * (NBUSERCOLORS + 1)) #define DEFAULTCOLOR 255 @@ -429,201 +443,207 @@ display_color_config(window_t *cwin, int *mark_fore, int *mark_back, #define SPACE 32 #define MARK 88 - char *fore_txt = _("Foreground"); - char *back_txt = _("Background"); - char *default_txt = _("(terminal's default)"); - char *bar = " "; - char *box = "[ ]"; - char *choose_color_1 = _("Use 'X' or SPACE to select a color, " - "'H/L' 'J/K' or arrow keys to move"); - char *choose_color_2 = _("('0' for no color, 'Q' to exit) :"); - char label[BUFSIZ]; - const unsigned Y = 3; - const unsigned XOFST = 5; - const unsigned YSPC = (row - 8) / (NBUSERCOLORS + 1); - const unsigned BARSIZ = strlen(bar); - const unsigned BOXSIZ = strlen(box); - const unsigned XSPC = (col - 2 * BARSIZ - 2 * BOXSIZ - 6) / 3; - const unsigned XFORE = XSPC; - const unsigned XBACK = 2 * XSPC + BOXSIZ + XOFST + BARSIZ; - enum {YPOS, XPOS, NBPOS}; - unsigned i; - int pos[SIZE][NBPOS]; - short colr_fore, colr_back; - int colr[SIZE] = { - COLR_RED, COLR_GREEN, COLR_YELLOW, COLR_BLUE, - COLR_MAGENTA, COLR_CYAN, COLR_DEFAULT, - COLR_RED, COLR_GREEN, COLR_YELLOW, COLR_BLUE, - COLR_MAGENTA, COLR_CYAN, COLR_DEFAULT - }; - - for (i = 0; i < NBUSERCOLORS + 1; i++) { - pos[i][YPOS] = Y + YSPC * (i + 1); - pos[NBUSERCOLORS + i + 1][YPOS] = Y + YSPC * (i + 1); - pos[i][XPOS] = XFORE; - pos[NBUSERCOLORS + i + 1][XPOS] = XBACK; - } - - if (need_reset) { - if (cwin->p != NULL) - delwin(cwin->p); - snprintf(label, BUFSIZ, _("CalCurse %s | color theme"), - VERSION); - custom_confwin_init(cwin, label); - } - - if (colorize) { - if (theme_changed) { - pair_content(colr[*mark_fore], &colr_fore, 0L); - if (colr_fore == 255) - colr_fore = -1; - pair_content(colr[*mark_back], &colr_back, 0L); - if (colr_back == 255) - colr_back = -1; - init_pair(COLR_CUSTOM, colr_fore, colr_back); - } else { - /* Retrieve the actual color theme. */ - pair_content(COLR_CUSTOM, &colr_fore, &colr_back); - - if ((colr_fore == DEFAULTCOLOR) || - (colr_fore == DEFAULTCOLOR_EXT)) - *mark_fore = NBUSERCOLORS; - else - for (i = 0; i < NBUSERCOLORS + 1; i++) - if (colr_fore == colr[i]) - *mark_fore = i; - - if ((colr_back == DEFAULTCOLOR) || - (colr_back == DEFAULTCOLOR_EXT)) - *mark_back = SIZE - 1; - else - for (i = 0; i < NBUSERCOLORS + 1; i++) - if (colr_back == - colr[NBUSERCOLORS + 1 + i]) - *mark_back = - NBUSERCOLORS + 1 + i; - } + char *fore_txt = _("Foreground"); + char *back_txt = _("Background"); + char *default_txt = _("(terminal's default)"); + char *bar = " "; + char *box = "[ ]"; + char *choose_color_1 = _("Use 'X' or SPACE to select a color, " + "'H/L' 'J/K' or arrow keys to move"); + char *choose_color_2 = _("('0' for no color, 'Q' to exit) :"); + char label[BUFSIZ]; + const unsigned Y = 3; + const unsigned XOFST = 5; + const unsigned YSPC = (row - 8) / (NBUSERCOLORS + 1); + const unsigned BARSIZ = strlen (bar); + const unsigned BOXSIZ = strlen (box); + const unsigned XSPC = (col - 2 * BARSIZ - 2 * BOXSIZ - 6) / 3; + const unsigned XFORE = XSPC; + const unsigned XBACK = 2 * XSPC + BOXSIZ + XOFST + BARSIZ; + enum + { YPOS, XPOS, NBPOS }; + unsigned i; + int pos[SIZE][NBPOS]; + short colr_fore, colr_back; + int colr[SIZE] = { + COLR_RED, COLR_GREEN, COLR_YELLOW, COLR_BLUE, + COLR_MAGENTA, COLR_CYAN, COLR_DEFAULT, + COLR_RED, COLR_GREEN, COLR_YELLOW, COLR_BLUE, + COLR_MAGENTA, COLR_CYAN, COLR_DEFAULT + }; + + for (i = 0; i < NBUSERCOLORS + 1; i++) + { + pos[i][YPOS] = Y + YSPC * (i + 1); + pos[NBUSERCOLORS + i + 1][YPOS] = Y + YSPC * (i + 1); + pos[i][XPOS] = XFORE; + pos[NBUSERCOLORS + i + 1][XPOS] = XBACK; + } + + if (need_reset) + { + if (cwin->p != NULL) + delwin (cwin->p); + snprintf (label, BUFSIZ, _("CalCurse %s | color theme"), VERSION); + custom_confwin_init (cwin, label); + } + + if (colorize) + { + if (theme_changed) + { + pair_content (colr[*mark_fore], &colr_fore, 0L); + if (colr_fore == 255) + colr_fore = -1; + pair_content (colr[*mark_back], &colr_back, 0L); + if (colr_back == 255) + colr_back = -1; + init_pair (COLR_CUSTOM, colr_fore, colr_back); } - - /* color boxes */ - for (i = 0; i < SIZE - 1; i++) { - mvwprintw(cwin->p, pos[i][YPOS], pos[i][XPOS], box); - wattron(cwin->p, COLOR_PAIR(colr[i]) | A_REVERSE); - mvwprintw(cwin->p, pos[i][YPOS], pos[i][XPOS] + XOFST, bar); - wattroff(cwin->p, COLOR_PAIR(colr[i]) | A_REVERSE); - } - - /* Terminal's default color */ - i = SIZE - 1; - mvwprintw(cwin->p, pos[i][YPOS], pos[i][XPOS], box); - wattron(cwin->p, COLOR_PAIR(colr[i])); - mvwprintw(cwin->p, pos[i][YPOS], pos[i][XPOS] + XOFST, bar); - wattroff(cwin->p, COLOR_PAIR(colr[i])); - mvwprintw(cwin->p, pos[NBUSERCOLORS][YPOS] + 1, - pos[NBUSERCOLORS][XPOS] + XOFST, default_txt); - mvwprintw(cwin->p, pos[SIZE - 1][YPOS] + 1, - pos[SIZE - 1][XPOS] + XOFST, default_txt); - - custom_apply_attr(cwin->p, ATTR_HIGHEST); - mvwprintw(cwin->p, Y, XFORE + XOFST, fore_txt); - mvwprintw(cwin->p, Y, XBACK + XOFST, back_txt); - custom_remove_attr(cwin->p, ATTR_HIGHEST); - - if (colorize) { - mvwaddch(cwin->p, pos[*mark_fore][YPOS], - pos[*mark_fore][XPOS] + 1, MARK); - mvwaddch(cwin->p, pos[*mark_back][YPOS], - pos[*mark_back][XPOS] + 1, MARK); + else + { + /* Retrieve the actual color theme. */ + pair_content (COLR_CUSTOM, &colr_fore, &colr_back); + + if ((colr_fore == DEFAULTCOLOR) || (colr_fore == DEFAULTCOLOR_EXT)) + *mark_fore = NBUSERCOLORS; + else + for (i = 0; i < NBUSERCOLORS + 1; i++) + if (colr_fore == colr[i]) + *mark_fore = i; + + if ((colr_back == DEFAULTCOLOR) || (colr_back == DEFAULTCOLOR_EXT)) + *mark_back = SIZE - 1; + else + for (i = 0; i < NBUSERCOLORS + 1; i++) + if (colr_back == colr[NBUSERCOLORS + 1 + i]) + *mark_back = NBUSERCOLORS + 1 + i; } - - mvwaddch(cwin->p, pos[cursor][YPOS], pos[cursor][XPOS] + 1, CURSOR); - status_mesg(choose_color_1, choose_color_2); - wnoutrefresh(win[STA].p); - wnoutrefresh(cwin->p); - doupdate(); - if (notify_bar()) - notify_update_bar(); + } + + /* color boxes */ + for (i = 0; i < SIZE - 1; i++) + { + mvwprintw (cwin->p, pos[i][YPOS], pos[i][XPOS], box); + wattron (cwin->p, COLOR_PAIR (colr[i]) | A_REVERSE); + mvwprintw (cwin->p, pos[i][YPOS], pos[i][XPOS] + XOFST, bar); + wattroff (cwin->p, COLOR_PAIR (colr[i]) | A_REVERSE); + } + + /* Terminal's default color */ + i = SIZE - 1; + mvwprintw (cwin->p, pos[i][YPOS], pos[i][XPOS], box); + wattron (cwin->p, COLOR_PAIR (colr[i])); + mvwprintw (cwin->p, pos[i][YPOS], pos[i][XPOS] + XOFST, bar); + wattroff (cwin->p, COLOR_PAIR (colr[i])); + mvwprintw (cwin->p, pos[NBUSERCOLORS][YPOS] + 1, + pos[NBUSERCOLORS][XPOS] + XOFST, default_txt); + mvwprintw (cwin->p, pos[SIZE - 1][YPOS] + 1, + pos[SIZE - 1][XPOS] + XOFST, default_txt); + + custom_apply_attr (cwin->p, ATTR_HIGHEST); + mvwprintw (cwin->p, Y, XFORE + XOFST, fore_txt); + mvwprintw (cwin->p, Y, XBACK + XOFST, back_txt); + custom_remove_attr (cwin->p, ATTR_HIGHEST); + + if (colorize) + { + mvwaddch (cwin->p, pos[*mark_fore][YPOS], + pos[*mark_fore][XPOS] + 1, MARK); + mvwaddch (cwin->p, pos[*mark_back][YPOS], + pos[*mark_back][XPOS] + 1, MARK); + } + + mvwaddch (cwin->p, pos[cursor][YPOS], pos[cursor][XPOS] + 1, CURSOR); + status_mesg (choose_color_1, choose_color_2); + wnoutrefresh (win[STA].p); + wnoutrefresh (cwin->p); + doupdate (); + if (notify_bar ()) + notify_update_bar (); } /* Color theme configuration. */ void -custom_color_config(void) +custom_color_config (void) { - window_t conf_win; - int ch, cursor, need_reset, theme_changed; - int mark_fore, mark_back; - - mark_fore = NBUSERCOLORS; - mark_back = SIZE - 1; - clear(); - cursor = 0; - need_reset = 1; - theme_changed = 0; - conf_win.p = NULL; - display_color_config(&conf_win, &mark_fore, &mark_back, cursor, - need_reset, theme_changed); - - while ((ch = wgetch(win[STA].p)) != 'q') { - need_reset = 0; - theme_changed = 0; - - switch (ch) { - case KEY_RESIZE: - endwin(); - refresh(); - curs_set(0); - need_reset = 1; - break; - - case SPACE: - case 'X': - case 'x': - colorize = true; - need_reset = 1; - theme_changed = 1; - if (cursor > NBUSERCOLORS) - mark_back = cursor; - else - mark_fore = cursor; - break; - - case 258: - case 'J': - case 'j': - if (cursor < SIZE - 1) - ++cursor; - break; - - case 259: - case 'K': - case 'k': - if (cursor > 0) - --cursor; - break; - - case 260: - case 'H': - case 'h': - if (cursor > NBUSERCOLORS) - cursor -= (NBUSERCOLORS + 1); - break; - - case 261: - case 'L': - case 'l': - if (cursor <= NBUSERCOLORS) - cursor += (NBUSERCOLORS + 1); - break; - - case '0': - colorize = false; - need_reset = 1; - break; - } - display_color_config(&conf_win, &mark_fore, &mark_back, cursor, - need_reset, theme_changed); + window_t conf_win; + int ch, cursor, need_reset, theme_changed; + int mark_fore, mark_back; + + mark_fore = NBUSERCOLORS; + mark_back = SIZE - 1; + clear (); + cursor = 0; + need_reset = 1; + theme_changed = 0; + conf_win.p = NULL; + display_color_config (&conf_win, &mark_fore, &mark_back, cursor, + need_reset, theme_changed); + + while ((ch = wgetch (win[STA].p)) != 'q') + { + need_reset = 0; + theme_changed = 0; + + switch (ch) + { + case KEY_RESIZE: + endwin (); + refresh (); + curs_set (0); + need_reset = 1; + break; + + case SPACE: + case 'X': + case 'x': + colorize = true; + need_reset = 1; + theme_changed = 1; + if (cursor > NBUSERCOLORS) + mark_back = cursor; + else + mark_fore = cursor; + break; + + case 258: + case 'J': + case 'j': + if (cursor < SIZE - 1) + ++cursor; + break; + + case 259: + case 'K': + case 'k': + if (cursor > 0) + --cursor; + break; + + case 260: + case 'H': + case 'h': + if (cursor > NBUSERCOLORS) + cursor -= (NBUSERCOLORS + 1); + break; + + case 261: + case 'L': + case 'l': + if (cursor <= NBUSERCOLORS) + cursor += (NBUSERCOLORS + 1); + break; + + case '0': + colorize = false; + need_reset = 1; + break; } - delwin(conf_win.p); + display_color_config (&conf_win, &mark_fore, &mark_back, cursor, + need_reset, theme_changed); + } + delwin (conf_win.p); } /* @@ -635,201 +655,214 @@ custom_color_config(void) * then default color is -1. */ void -custom_color_theme_name(char *theme_name) +custom_color_theme_name (char *theme_name) { #define MAXCOLORS 8 #define NBCOLORS 2 #define DEFAULTCOLOR 255 #define DEFAULTCOLOR_EXT -1 - int i; - short color[NBCOLORS]; - char *color_name[NBCOLORS]; - char *default_color = "default"; - char *name[MAXCOLORS] = { - "black", - "red", - "green", - "yellow", - "blue", - "magenta", - "cyan", - "white"}; - const char *error_txt = - _("FATAL ERROR in custom_color_theme_name: unknown color\n"); - - if (!colorize) - snprintf(theme_name, BUFSIZ, "0"); - else { - pair_content(COLR_CUSTOM, &color[0], &color[1]); - for (i = 0; i < NBCOLORS; i++) { - if ((color[i] == DEFAULTCOLOR) || - (color[i] == DEFAULTCOLOR_EXT)) - color_name[i] = default_color; - else if (color[i] >= 0 && color[i] <= MAXCOLORS) - color_name[i] = name[color[i]]; - else { - fputs(error_txt, stderr); - exit(EXIT_FAILURE); - /* NOTREACHED */ - } - } - snprintf(theme_name, BUFSIZ, "%s on %s", color_name[0], - color_name[1]); + int i; + short color[NBCOLORS]; + char *color_name[NBCOLORS]; + char *default_color = "default"; + char *name[MAXCOLORS] = { + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white" + }; + const char *error_txt = + _("FATAL ERROR in custom_color_theme_name: unknown color\n"); + + if (!colorize) + snprintf (theme_name, BUFSIZ, "0"); + else + { + pair_content (COLR_CUSTOM, &color[0], &color[1]); + for (i = 0; i < NBCOLORS; i++) + { + if ((color[i] == DEFAULTCOLOR) || (color[i] == DEFAULTCOLOR_EXT)) + color_name[i] = default_color; + else if (color[i] >= 0 && color[i] <= MAXCOLORS) + color_name[i] = name[color[i]]; + else + { + fputs (error_txt, stderr); + exit (EXIT_FAILURE); + /* NOTREACHED */ + } } + snprintf (theme_name, BUFSIZ, "%s on %s", color_name[0], color_name[1]); + } } /* Prints the general options. */ -static void -custom_print_general_options(WINDOW *optwin, conf_t *conf) +static void +custom_print_general_options (WINDOW *optwin, conf_t *conf) { - int x_pos, y_pos; - char *option1 = _("auto_save = "); - char *option2 = _("confirm_quit = "); - char *option3 = _("confirm_delete = "); - char *option4 = _("skip_system_dialogs = "); - char *option5 = _("skip_progress_bar = "); - char *option6 = _("week_begins_on_monday = "); - char *option7 = _("output_datefmt = "); - char *option8 = _("input_datefmt = "); - - x_pos = 3; - y_pos = 3; - - mvwprintw(optwin, y_pos, x_pos, "[1] %s ", option1); - print_option_incolor(optwin, conf->auto_save, y_pos, - x_pos + 4 + strlen(option1)); - mvwprintw(optwin, y_pos + 1, x_pos, - _("(if set to YES, automatic save is done when quitting)")); - - mvwprintw(optwin, y_pos + 3, x_pos, "[2] %s ", option2); - print_option_incolor(optwin, conf->confirm_quit, y_pos + 3, - x_pos + 4 + strlen(option2)); - mvwprintw(optwin, y_pos + 4, x_pos, - _("(if set to YES, confirmation is required before quitting)")); - - mvwprintw(optwin, y_pos + 6, x_pos, "[3] %s ", option3); - print_option_incolor(optwin, conf->confirm_delete, y_pos + 6, - x_pos + 4 + strlen(option3)); - mvwprintw(optwin, y_pos + 7, x_pos, - _("(if set to YES, confirmation is required before deleting an event)")); - - mvwprintw(optwin, y_pos + 9, x_pos, "[4] %s ", option4); - print_option_incolor(optwin, conf->skip_system_dialogs, y_pos + 9, - x_pos + 4 + strlen(option4)); - mvwprintw(optwin, y_pos + 10, x_pos, - _("(if set to YES, messages about loaded and saved data will not be displayed)")); - - mvwprintw(optwin, y_pos + 12, x_pos, "[5] %s ", option5); - print_option_incolor(optwin, conf->skip_progress_bar , y_pos + 12, - x_pos + 4 + strlen(option5)); - mvwprintw(optwin, y_pos + 13, x_pos, - _("(if set to YES, progress bar will not be displayed when saving data)")); - - mvwprintw(optwin, y_pos + 15, x_pos, "[6] %s ", option6); - print_option_incolor(optwin, calendar_week_begins_on_monday(), y_pos + 15, - x_pos + 4 + strlen(option6)); - mvwprintw(optwin, y_pos + 16, x_pos, - _("(if set to YES, monday is the first day of the week, else it is sunday)")); - - mvwprintw(optwin, y_pos + 18, x_pos, "[7] %s ", option7); - custom_apply_attr(optwin, ATTR_HIGHEST); - mvwprintw(optwin, y_pos + 18, x_pos + 4 + strlen(option7), "%s", - conf->output_datefmt); - custom_remove_attr(optwin, ATTR_HIGHEST); - mvwprintw(optwin, y_pos + 19, x_pos, - _("(Format of the date to be displayed in non-interactive mode)")); - - mvwprintw(optwin, y_pos + 21, x_pos, "[8] %s ", option8); - custom_apply_attr(optwin, ATTR_HIGHEST); - mvwprintw(optwin, y_pos + 21, x_pos + 4 + strlen(option7), "%d", - conf->input_datefmt); - custom_remove_attr(optwin, ATTR_HIGHEST); - mvwprintw(optwin, y_pos + 22, x_pos, - _("(Format to be used when entering a date: 1-mm/dd/yyyy, 2-dd/mm/yyyy, 3-yyyy/mm/dd)")); - - wmove(win[STA].p, 1, 0); - wnoutrefresh(optwin); - doupdate(); + int x_pos, y_pos; + char *option1 = _("auto_save = "); + char *option2 = _("confirm_quit = "); + char *option3 = _("confirm_delete = "); + char *option4 = _("skip_system_dialogs = "); + char *option5 = _("skip_progress_bar = "); + char *option6 = _("week_begins_on_monday = "); + char *option7 = _("output_datefmt = "); + char *option8 = _("input_datefmt = "); + + x_pos = 3; + y_pos = 3; + + mvwprintw (optwin, y_pos, x_pos, "[1] %s ", option1); + print_option_incolor (optwin, conf->auto_save, y_pos, + x_pos + 4 + strlen (option1)); + mvwprintw (optwin, y_pos + 1, x_pos, + _("(if set to YES, automatic save is done when quitting)")); + + mvwprintw (optwin, y_pos + 3, x_pos, "[2] %s ", option2); + print_option_incolor (optwin, conf->confirm_quit, y_pos + 3, + x_pos + 4 + strlen (option2)); + mvwprintw (optwin, y_pos + 4, x_pos, + _("(if set to YES, confirmation is required before quitting)")); + + mvwprintw (optwin, y_pos + 6, x_pos, "[3] %s ", option3); + print_option_incolor (optwin, conf->confirm_delete, y_pos + 6, + x_pos + 4 + strlen (option3)); + mvwprintw (optwin, y_pos + 7, x_pos, + _("(if set to YES, confirmation is required " + "before deleting an event)")); + + mvwprintw (optwin, y_pos + 9, x_pos, "[4] %s ", option4); + print_option_incolor (optwin, conf->skip_system_dialogs, y_pos + 9, + x_pos + 4 + strlen (option4)); + mvwprintw (optwin, y_pos + 10, x_pos, + _("(if set to YES, messages about loaded " + "and saved data will not be displayed)")); + + mvwprintw (optwin, y_pos + 12, x_pos, "[5] %s ", option5); + print_option_incolor (optwin, conf->skip_progress_bar, y_pos + 12, + x_pos + 4 + strlen (option5)); + mvwprintw (optwin, y_pos + 13, x_pos, + _("(if set to YES, progress bar will not be displayed " + "when saving data)")); + + mvwprintw (optwin, y_pos + 15, x_pos, "[6] %s ", option6); + print_option_incolor (optwin, calendar_week_begins_on_monday (), y_pos + 15, + x_pos + 4 + strlen (option6)); + mvwprintw (optwin, y_pos + 16, x_pos, + _("(if set to YES, monday is the first day of the week, " + "else it is sunday)")); + + mvwprintw (optwin, y_pos + 18, x_pos, "[7] %s ", option7); + custom_apply_attr (optwin, ATTR_HIGHEST); + mvwprintw (optwin, y_pos + 18, x_pos + 4 + strlen (option7), "%s", + conf->output_datefmt); + custom_remove_attr (optwin, ATTR_HIGHEST); + mvwprintw (optwin, y_pos + 19, x_pos, + _("(Format of the date to be displayed in non-interactive mode)")); + + mvwprintw (optwin, y_pos + 21, x_pos, "[8] %s ", option8); + custom_apply_attr (optwin, ATTR_HIGHEST); + mvwprintw (optwin, y_pos + 21, x_pos + 4 + strlen (option7), "%d", + conf->input_datefmt); + custom_remove_attr (optwin, ATTR_HIGHEST); + mvwprintw (optwin, y_pos + 22, x_pos, + _("(Format to be used when entering a date: " + "1-mm/dd/yyyy, 2-dd/mm/yyyy, 3-yyyy/mm/dd)")); + + wmove (win[STA].p, 1, 0); + wnoutrefresh (optwin); + doupdate (); } /* General configuration. */ -void -custom_general_config(conf_t *conf) +void +custom_general_config (conf_t *conf) { - window_t conf_win; - char *number_str = _("Enter an option number to change its value [Q to quit] "); - char *output_datefmt_str = - _("Enter the date format (see 'man 3 strftime' for possible formats) "); - char *input_datefmt_str = - _("Enter the date format (1-mm/dd/yyyy, 2-dd/mm/yyyy, 3-yyyy/mm/dd) "); - int ch; - char label[BUFSIZ]; - char *buf = (char *) malloc(BUFSIZ); - - clear(); - snprintf(label, BUFSIZ, _("CalCurse %s | general options"), VERSION); - custom_confwin_init(&conf_win, label); - status_mesg(number_str, ""); - custom_print_general_options(conf_win.p, conf); - while ((ch = wgetch(win[STA].p)) != 'q') { - switch (ch) { - case KEY_RESIZE: - endwin(); - refresh(); - curs_set(0); - delwin(conf_win.p); - custom_confwin_init(&conf_win, label); - delwin(win[STA].p); - win[STA].p = newwin(win[STA].h, win[STA].w, win[STA].y, - win[STA].x); - keypad(win[STA].p, TRUE); - if (notify_bar()) { - notify_reinit_bar(win[NOT].h, win[NOT].w, - win[NOT].y, win[NOT].x); - notify_update_bar(); - } - break; - case '1': - conf->auto_save = !conf->auto_save; - break; - case '2': - conf->confirm_quit = !conf->confirm_quit; - break; - case '3': - conf->confirm_delete = !conf->confirm_delete; - break; - case '4': - conf->skip_system_dialogs = - !conf->skip_system_dialogs; - break; - case '5': - conf->skip_progress_bar = - !conf->skip_progress_bar; - break; - case '6': - calendar_change_first_day_of_week(); - break; - case '7': - status_mesg(output_datefmt_str, ""); - strncpy(buf, conf->output_datefmt, strlen(conf->output_datefmt) + 1); - if (updatestring(win[STA].p, &buf, 0, 1) == 0) { - strncpy(conf->output_datefmt, buf, strlen(buf) + 1); - } - status_mesg(number_str, ""); - break; - case '8': - status_mesg(input_datefmt_str, ""); - if (updatestring(win[STA].p, &buf, 0, 1) == 0) { - int val = atoi(buf); - if (val >= 1 && val <= 3) conf->input_datefmt = val; - } - status_mesg(number_str, ""); - break; - } - status_mesg(number_str, ""); - custom_print_general_options(conf_win.p, conf); + window_t conf_win; + char *number_str = + _("Enter an option number to change its value [Q to quit] "); + char *output_datefmt_str = + _("Enter the date format (see 'man 3 strftime' for possible formats) "); + char *input_datefmt_str = + _("Enter the date format (1-mm/dd/yyyy, 2-dd/mm/yyyy, 3-yyyy/mm/dd) "); + int ch; + char label[BUFSIZ]; + char *buf = (char *) malloc (BUFSIZ); + + clear (); + snprintf (label, BUFSIZ, _("CalCurse %s | general options"), VERSION); + custom_confwin_init (&conf_win, label); + status_mesg (number_str, ""); + custom_print_general_options (conf_win.p, conf); + while ((ch = wgetch (win[STA].p)) != 'q') + { + switch (ch) + { + case KEY_RESIZE: + endwin (); + refresh (); + curs_set (0); + delwin (conf_win.p); + custom_confwin_init (&conf_win, label); + delwin (win[STA].p); + win[STA].p = newwin (win[STA].h, win[STA].w, win[STA].y, + win[STA].x); + keypad (win[STA].p, TRUE); + if (notify_bar ()) + { + notify_reinit_bar (win[NOT].h, win[NOT].w, win[NOT].y, + win[NOT].x); + notify_update_bar (); + } + break; + case '1': + conf->auto_save = !conf->auto_save; + break; + case '2': + conf->confirm_quit = !conf->confirm_quit; + break; + case '3': + conf->confirm_delete = !conf->confirm_delete; + break; + case '4': + conf->skip_system_dialogs = !conf->skip_system_dialogs; + break; + case '5': + conf->skip_progress_bar = !conf->skip_progress_bar; + break; + case '6': + calendar_change_first_day_of_week (); + break; + case '7': + status_mesg (output_datefmt_str, ""); + strncpy (buf, conf->output_datefmt, + strlen (conf->output_datefmt) + 1); + if (updatestring (win[STA].p, &buf, 0, 1) == 0) + { + strncpy (conf->output_datefmt, buf, strlen (buf) + 1); + } + status_mesg (number_str, ""); + break; + case '8': + status_mesg (input_datefmt_str, ""); + if (updatestring (win[STA].p, &buf, 0, 1) == 0) + { + int val = atoi (buf); + if (val >= 1 && val <= 3) + conf->input_datefmt = val; + } + status_mesg (number_str, ""); + break; } - free(buf); - delwin(conf_win.p); + status_mesg (number_str, ""); + custom_print_general_options (conf_win.p, conf); + } + free (buf); + delwin (conf_win.p); } |