custom_color_theme_name() created to return new version of user-defined
color theme custom_load_color() updated to load new version of user-defined color theme
This commit is contained in:
parent
f29a854ddf
commit
7ca3bc06be
124
src/custom.c
124
src/custom.c
@ -1,4 +1,4 @@
|
|||||||
/* $calcurse: custom.c,v 1.4 2007/03/04 16:12:18 culot Exp $ */
|
/* $calcurse: custom.c,v 1.5 2007/03/10 15:58:20 culot Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calcurse - text-based organizer
|
* Calcurse - text-based organizer
|
||||||
@ -82,7 +82,8 @@ void custom_remove_attr(WINDOW *win, int attr_num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Draws the configuration bar */
|
/* Draws the configuration bar */
|
||||||
void config_bar()
|
void
|
||||||
|
config_bar(void)
|
||||||
{
|
{
|
||||||
int smlspc, spc;
|
int smlspc, spc;
|
||||||
|
|
||||||
@ -109,7 +110,8 @@ void config_bar()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Choose the layout */
|
/* Choose the layout */
|
||||||
int layout_config(int layout, int colr)
|
int
|
||||||
|
layout_config(int layout)
|
||||||
{
|
{
|
||||||
int ch, old_layout;
|
int ch, old_layout;
|
||||||
char *layout_mesg = _("Pick the desired layout on next screen [press ENTER]");
|
char *layout_mesg = _("Pick the desired layout on next screen [press ENTER]");
|
||||||
@ -325,24 +327,57 @@ custom_color_config(int notify_bar)
|
|||||||
void
|
void
|
||||||
custom_load_color(char *color, int background)
|
custom_load_color(char *color, int background)
|
||||||
{
|
{
|
||||||
int len, color_num;
|
#define AWAITED_COLORS 2
|
||||||
|
|
||||||
|
int i, len, color_num;
|
||||||
|
char c[AWAITED_COLORS][MAX_LENGTH];
|
||||||
|
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);
|
len = strlen(color);
|
||||||
|
|
||||||
if (len > 1) {
|
if (len > 1) {
|
||||||
/* New version configuration */
|
/* New version configuration */
|
||||||
if (!strncmp(color, "red", 3))
|
if (sscanf(color, "%s on %s", c[0], c[1]) != AWAITED_COLORS) {
|
||||||
init_pair(COLR_CUSTOM, COLR_RED, background);
|
fputs(_("FATAL ERROR in custom_load_color: "
|
||||||
else if (!strncmp(color, "green", 5))
|
"missing colors in config file.\n"), stderr);
|
||||||
init_pair(COLR_CUSTOM, COLR_GREEN, background);
|
exit(EXIT_FAILURE);
|
||||||
else if (!strncmp(color, "yellow", 6))
|
/* NOTREACHED */
|
||||||
init_pair(COLR_CUSTOM, COLR_YELLOW, background);
|
};
|
||||||
else if (!strncmp(color, "blue", 4))
|
|
||||||
init_pair(COLR_CUSTOM, COLR_BLUE, background);
|
for (i = 0; i < AWAITED_COLORS; i++) {
|
||||||
else if (!strncmp(color, "magenta", 7))
|
if (!strncmp(c[i], "black", 5))
|
||||||
init_pair(COLR_CUSTOM, COLR_MAGENTA, background);
|
colr[i] = COLOR_BLACK;
|
||||||
else if (!strncmp(color, "cyan", 4))
|
else if (!strncmp(c[i], "red", 3))
|
||||||
init_pair(COLR_CUSTOM, COLR_CYAN, background);
|
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) {
|
} else if (len > 0 && len < 2) {
|
||||||
/* Old version configuration */
|
/* Old version configuration */
|
||||||
@ -377,16 +412,61 @@ custom_load_color(char *color, int background)
|
|||||||
init_pair(COLR_CUSTOM, COLOR_RED, COLR_BLUE);
|
init_pair(COLR_CUSTOM, COLOR_RED, COLR_BLUE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* NOTREACHED */
|
fputs(wrong_color_number, stderr);
|
||||||
fputs(_("FATAL ERROR in custom_load_color: "
|
|
||||||
"wrong color number.\n"), stderr);
|
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
/* NOTREACHED */
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
/* NOTREACHED */
|
fputs(wrong_variable_format, stderr);
|
||||||
fputs(_("FATAL ERROR in custom_load_color: "
|
|
||||||
"wrong configuration variable format.\n"), stderr);
|
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
|
/* NOTREACHED */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return a string defining the color theme in the form:
|
||||||
|
* foreground color 'on' background color
|
||||||
|
* in order to dump this data in the configuration file.
|
||||||
|
* Color numbers follow the ncurses library definitions.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
custom_color_theme_name(char *theme_name)
|
||||||
|
{
|
||||||
|
#define MAXCOLORS 8
|
||||||
|
#define NBCOLORS 2
|
||||||
|
#define DEFAULTCOLOR 255
|
||||||
|
|
||||||
|
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");
|
||||||
|
|
||||||
|
pair_content(COLR_CUSTOM, &color[0], &color[1]);
|
||||||
|
|
||||||
|
for (i = 0; i < NBCOLORS; i++) {
|
||||||
|
if (color[i] == DEFAULTCOLOR)
|
||||||
|
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, MAX_LENGTH, "%s on %s", color_name[0],
|
||||||
|
color_name[1]);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user