1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-11-22 22:53:03 +01:00

Custom colors proof of concept

Fix formatting

Fix repeated variable in example config
This commit is contained in:
Lily 2020-12-05 14:39:33 -06:00
parent 2640919318
commit 2ff9d29491
No known key found for this signature in database
GPG Key ID: CE3EB9E45977613D
9 changed files with 234 additions and 89 deletions

View File

@ -23,6 +23,18 @@ ui = {
// true to use native terminal colours, false to use toxic default colour theme // true to use native terminal colours, false to use toxic default colour theme
native_colors=false; native_colors=false;
// set background color of chat status bars (black, white, red, green, blue, cyan, yellow, magenta)
color_bar_bg = "blue";
// set foreground (text) color of chat status bars (black, white, red, green, blue, cyan, yellow, magenta)
color_bar_fg = "white";
// set foreground accent color of chat status bars (black, white, red, green, blue, cyan, yellow, magenta)
color_bar_accent = "cyan";
// set foreground notify (and typing) color in chat status bar (black, white, red, green, blue, cyan, yellow, magenta)
color_bar_notify = "yellow";
// true to enable autologging, false to disable // true to enable autologging, false to disable
autolog=false; autolog=false;

View File

@ -1215,63 +1215,63 @@ static void chat_onDraw(ToxWindow *self, Tox *m)
switch (status) { switch (status) {
case TOX_USER_STATUS_NONE: case TOX_USER_STATUS_NONE:
colour = GREEN_BLUE; colour = STATUS_ONLINE;
break; break;
case TOX_USER_STATUS_AWAY: case TOX_USER_STATUS_AWAY:
colour = YELLOW_BLUE; colour = STATUS_AWAY;
break; break;
case TOX_USER_STATUS_BUSY: case TOX_USER_STATUS_BUSY:
colour = RED_BLUE; colour = STATUS_ONLINE;
break; break;
} }
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, " ["); wprintw(statusbar->topline, " [");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(colour) | A_BOLD); wattron(statusbar->topline, COLOR_PAIR(colour) | A_BOLD);
wprintw(statusbar->topline, "%s", ONLINE_CHAR); wprintw(statusbar->topline, "%s", ONLINE_CHAR);
wattroff(statusbar->topline, COLOR_PAIR(colour) | A_BOLD); wattroff(statusbar->topline, COLOR_PAIR(colour) | A_BOLD);
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, "] "); wprintw(statusbar->topline, "] ");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
pthread_mutex_lock(&Winthread.lock); pthread_mutex_lock(&Winthread.lock);
const bool is_typing = Friends.list[self->num].is_typing; const bool is_typing = Friends.list[self->num].is_typing;
pthread_mutex_unlock(&Winthread.lock); pthread_mutex_unlock(&Winthread.lock);
if (is_typing) { if (is_typing) {
wattron(statusbar->topline, A_BOLD | COLOR_PAIR(YELLOW_BLUE)); wattron(statusbar->topline, A_BOLD | COLOR_PAIR(BAR_NOTIFY));
} else { } else {
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
} }
wprintw(statusbar->topline, "%s", statusbar->nick); wprintw(statusbar->topline, "%s", statusbar->nick);
if (is_typing) { if (is_typing) {
wattroff(statusbar->topline, A_BOLD | COLOR_PAIR(YELLOW_BLUE)); wattroff(statusbar->topline, A_BOLD | COLOR_PAIR(BAR_NOTIFY));
} else { } else {
wattroff(statusbar->topline, A_BOLD | COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, A_BOLD | COLOR_PAIR(BAR_TEXT));
} }
} else { } else {
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, " ["); wprintw(statusbar->topline, " [");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wprintw(statusbar->topline, "%s", OFFLINE_CHAR); wprintw(statusbar->topline, "%s", OFFLINE_CHAR);
wattroff(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, "] "); wprintw(statusbar->topline, "] ");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wprintw(statusbar->topline, "%s", statusbar->nick); wprintw(statusbar->topline, "%s", statusbar->nick);
wattroff(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_TEXT));
} }
/* Reset statusbar->statusmsg on window resize */ /* Reset statusbar->statusmsg on window resize */
@ -1300,14 +1300,14 @@ static void chat_onDraw(ToxWindow *self, Tox *m)
} }
if (statusbar->statusmsg[0]) { if (statusbar->statusmsg[0]) {
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, " | "); wprintw(statusbar->topline, " | ");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wprintw(statusbar->topline, "%s ", statusbar->statusmsg); wprintw(statusbar->topline, "%s ", statusbar->statusmsg);
} else { } else {
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
} }
int s_y; int s_y;
@ -1315,25 +1315,25 @@ static void chat_onDraw(ToxWindow *self, Tox *m)
getyx(statusbar->topline, s_y, s_x); getyx(statusbar->topline, s_y, s_x);
mvwhline(statusbar->topline, s_y, s_x, ' ', x2 - s_x - (KEY_IDENT_DIGITS * 2) - 3); mvwhline(statusbar->topline, s_y, s_x, ' ', x2 - s_x - (KEY_IDENT_DIGITS * 2) - 3);
wattroff(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wmove(statusbar->topline, 0, x2 - (KEY_IDENT_DIGITS * 2) - 3); wmove(statusbar->topline, 0, x2 - (KEY_IDENT_DIGITS * 2) - 3);
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, "{"); wprintw(statusbar->topline, "{");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
for (size_t i = 0; i < KEY_IDENT_DIGITS; ++i) { for (size_t i = 0; i < KEY_IDENT_DIGITS; ++i) {
wprintw(statusbar->topline, "%02X", Friends.list[self->num].pub_key[i] & 0xff); wprintw(statusbar->topline, "%02X", Friends.list[self->num].pub_key[i] & 0xff);
} }
wattroff(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, "} "); wprintw(statusbar->topline, "} ");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
int y; int y;
int x; int x;

View File

@ -341,51 +341,51 @@ static void prompt_onDraw(ToxWindow *self, Tox *m)
switch (status) { switch (status) {
case TOX_USER_STATUS_NONE: case TOX_USER_STATUS_NONE:
status_text = "Online"; status_text = "Online";
colour = GREEN_BLUE; colour = STATUS_ONLINE;
break; break;
case TOX_USER_STATUS_AWAY: case TOX_USER_STATUS_AWAY:
status_text = "Away"; status_text = "Away";
colour = YELLOW_BLUE; colour = STATUS_AWAY;
break; break;
case TOX_USER_STATUS_BUSY: case TOX_USER_STATUS_BUSY:
status_text = "Busy"; status_text = "Busy";
colour = RED_BLUE; colour = STATUS_BUSY;
break; break;
} }
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, " ["); wprintw(statusbar->topline, " [");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, A_BOLD | COLOR_PAIR(colour)); wattron(statusbar->topline, A_BOLD | COLOR_PAIR(colour));
wprintw(statusbar->topline, "%s", status_text); wprintw(statusbar->topline, "%s", status_text);
wattroff(statusbar->topline, A_BOLD | COLOR_PAIR(colour)); wattroff(statusbar->topline, A_BOLD | COLOR_PAIR(colour));
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, "]"); wprintw(statusbar->topline, "]");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
pthread_mutex_lock(&Winthread.lock); pthread_mutex_lock(&Winthread.lock);
wprintw(statusbar->topline, " %s", statusbar->nick); wprintw(statusbar->topline, " %s", statusbar->nick);
pthread_mutex_unlock(&Winthread.lock); pthread_mutex_unlock(&Winthread.lock);
} else { } else {
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, " ["); wprintw(statusbar->topline, " [");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wprintw(statusbar->topline, "Offline"); wprintw(statusbar->topline, "Offline");
wattroff(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, "]"); wprintw(statusbar->topline, "]");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
pthread_mutex_lock(&Winthread.lock); pthread_mutex_lock(&Winthread.lock);
wprintw(statusbar->topline, " %s", statusbar->nick); wprintw(statusbar->topline, " %s", statusbar->nick);
@ -397,7 +397,7 @@ static void prompt_onDraw(ToxWindow *self, Tox *m)
getyx(statusbar->topline, s_y, s_x); getyx(statusbar->topline, s_y, s_x);
mvwhline(statusbar->topline, s_y, s_x, ' ', x2 - s_x); mvwhline(statusbar->topline, s_y, s_x, ' ', x2 - s_x);
wattroff(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_TEXT));
/* Reset statusbar->statusmsg on window resize */ /* Reset statusbar->statusmsg on window resize */
if (x2 != self->x) { if (x2 != self->x) {
@ -426,13 +426,13 @@ static void prompt_onDraw(ToxWindow *self, Tox *m)
} }
if (statusbar->statusmsg[0]) { if (statusbar->statusmsg[0]) {
wattron(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wprintw(statusbar->topline, " | "); wprintw(statusbar->topline, " | ");
wattroff(statusbar->topline, COLOR_PAIR(CYAN_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_ACCENT));
wattron(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattron(statusbar->topline, COLOR_PAIR(BAR_TEXT));
wprintw(statusbar->topline, "%s", statusbar->statusmsg); wprintw(statusbar->topline, "%s", statusbar->statusmsg);
wattroff(statusbar->topline, COLOR_PAIR(WHITE_BLUE)); wattroff(statusbar->topline, COLOR_PAIR(BAR_TEXT));
} }
pthread_mutex_unlock(&Winthread.lock); pthread_mutex_unlock(&Winthread.lock);

View File

@ -73,6 +73,11 @@ static struct ui_strings {
const char *mplex_away; const char *mplex_away;
const char *mplex_away_note; const char *mplex_away_note;
const char *color_bar_bg;
const char *color_bar_fg;
const char *color_bar_accent;
const char *color_bar_notify;
} ui_strings = { } ui_strings = {
"ui", "ui",
"timestamps", "timestamps",
@ -100,6 +105,10 @@ static struct ui_strings {
"line_normal", "line_normal",
"mplex_away", "mplex_away",
"mplex_away_note", "mplex_away_note",
"color_bar_bg",
"color_bar_fg",
"color_bar_accent",
"color_bar_notify",
}; };
static void ui_defaults(struct user_settings *settings) static void ui_defaults(struct user_settings *settings)
@ -345,6 +354,22 @@ int settings_load(struct user_settings *s, const char *patharg)
snprintf(s->timestamp_format, sizeof(s->timestamp_format), "%s", str); snprintf(s->timestamp_format, sizeof(s->timestamp_format), "%s", str);
} }
if (config_setting_lookup_string(setting, ui_strings.color_bar_bg, &str)) {
snprintf(s->color_bar_bg, sizeof(s->color_bar_bg), "%s", str);
}
if (config_setting_lookup_string(setting, ui_strings.color_bar_fg, &str)) {
snprintf(s->color_bar_fg, sizeof(s->color_bar_fg), "%s", str);
}
if (config_setting_lookup_string(setting, ui_strings.color_bar_accent, &str)) {
snprintf(s->color_bar_accent, sizeof(s->color_bar_accent), "%s", str);
}
if (config_setting_lookup_string(setting, ui_strings.color_bar_notify, &str)) {
snprintf(s->color_bar_notify, sizeof(s->color_bar_notify), "%s", str);
}
if (config_setting_lookup_string(setting, ui_strings.log_timestamp_format, &str)) { if (config_setting_lookup_string(setting, ui_strings.log_timestamp_format, &str)) {
snprintf(s->log_timestamp_format, sizeof(s->log_timestamp_format), "%s", str); snprintf(s->log_timestamp_format, sizeof(s->log_timestamp_format), "%s", str);
} }

View File

@ -68,6 +68,11 @@ struct user_settings {
char autorun_path[PATH_MAX]; char autorun_path[PATH_MAX];
char password_eval[PASSWORD_EVAL_MAX]; char password_eval[PASSWORD_EVAL_MAX];
char color_bar_bg[COLOR_STR_SIZE];
char color_bar_fg[COLOR_STR_SIZE];
char color_bar_accent[COLOR_STR_SIZE];
char color_bar_notify[COLOR_STR_SIZE];
int key_next_tab; int key_next_tab;
int key_prev_tab; int key_prev_tab;
int key_scroll_line_up; int key_scroll_line_up;

View File

@ -260,6 +260,10 @@ static void init_term(void)
if (has_colors()) { if (has_colors()) {
short bg_color = COLOR_BLACK; short bg_color = COLOR_BLACK;
short bar_bg_color = COLOR_BLUE;
short bar_fg_color = COLOR_WHITE;
short bar_accent_color = COLOR_CYAN;
short bar_notify_color = COLOR_YELLOW;
start_color(); start_color();
if (user_settings->colour_theme == NATIVE_COLS) { if (user_settings->colour_theme == NATIVE_COLS) {
@ -268,6 +272,102 @@ static void init_term(void)
} }
} }
if (!string_is_empty(user_settings->color_bar_bg)) {
if (strcmp(user_settings->color_bar_bg, "black") == 0) {
bar_bg_color = COLOR_BLACK;
} else if (strcmp(user_settings->color_bar_bg, "red") == 0) {
bar_bg_color = COLOR_RED;
} else if (strcmp(user_settings->color_bar_bg, "blue") == 0) {
bar_bg_color = COLOR_BLUE;
} else if (strcmp(user_settings->color_bar_bg, "cyan") == 0) {
bar_bg_color = COLOR_CYAN;
} else if (strcmp(user_settings->color_bar_bg, "green") == 0) {
bar_bg_color = COLOR_GREEN;
} else if (strcmp(user_settings->color_bar_bg, "yellow") == 0) {
bar_bg_color = COLOR_YELLOW;
} else if (strcmp(user_settings->color_bar_bg, "magenta") == 0) {
bar_bg_color = COLOR_MAGENTA;
} else if (strcmp(user_settings->color_bar_bg, "white") == 0) {
bar_bg_color = COLOR_WHITE;
} else {
bar_bg_color = COLOR_BLUE;
}
} else {
bar_bg_color = COLOR_BLUE;
}
if (!string_is_empty(user_settings->color_bar_fg)) {
if (strcmp(user_settings->color_bar_fg, "black") == 0) {
bar_fg_color = COLOR_BLACK;
} else if (strcmp(user_settings->color_bar_fg, "red") == 0) {
bar_fg_color = COLOR_RED;
} else if (strcmp(user_settings->color_bar_fg, "blue") == 0) {
bar_fg_color = COLOR_BLUE;
} else if (strcmp(user_settings->color_bar_fg, "cyan") == 0) {
bar_fg_color = COLOR_CYAN;
} else if (strcmp(user_settings->color_bar_fg, "green") == 0) {
bar_fg_color = COLOR_GREEN;
} else if (strcmp(user_settings->color_bar_fg, "yellow") == 0) {
bar_fg_color = COLOR_YELLOW;
} else if (strcmp(user_settings->color_bar_fg, "magenta") == 0) {
bar_fg_color = COLOR_MAGENTA;
} else if (strcmp(user_settings->color_bar_fg, "white") == 0) {
bar_fg_color = COLOR_WHITE;
} else {
bar_fg_color = COLOR_WHITE;
}
} else {
bar_fg_color = COLOR_WHITE;
}
if (!string_is_empty(user_settings->color_bar_accent)) {
if (strcmp(user_settings->color_bar_accent, "black") == 0) {
bar_accent_color = COLOR_BLACK;
} else if (strcmp(user_settings->color_bar_accent, "red") == 0) {
bar_accent_color = COLOR_RED;
} else if (strcmp(user_settings->color_bar_accent, "blue") == 0) {
bar_accent_color = COLOR_BLUE;
} else if (strcmp(user_settings->color_bar_accent, "cyan") == 0) {
bar_accent_color = COLOR_CYAN;
} else if (strcmp(user_settings->color_bar_accent, "green") == 0) {
bar_accent_color = COLOR_GREEN;
} else if (strcmp(user_settings->color_bar_accent, "yellow") == 0) {
bar_accent_color = COLOR_YELLOW;
} else if (strcmp(user_settings->color_bar_accent, "magenta") == 0) {
bar_accent_color = COLOR_MAGENTA;
} else if (strcmp(user_settings->color_bar_accent, "white") == 0) {
bar_accent_color = COLOR_WHITE;
} else {
bar_accent_color = COLOR_CYAN;
}
} else {
bar_accent_color = COLOR_CYAN;
}
if (!string_is_empty(user_settings->color_bar_notify)) {
if (strcmp(user_settings->color_bar_notify, "black") == 0) {
bar_notify_color = COLOR_BLACK;
} else if (strcmp(user_settings->color_bar_notify, "red") == 0) {
bar_notify_color = COLOR_RED;
} else if (strcmp(user_settings->color_bar_notify, "blue") == 0) {
bar_notify_color = COLOR_BLUE;
} else if (strcmp(user_settings->color_bar_notify, "cyan") == 0) {
bar_notify_color = COLOR_CYAN;
} else if (strcmp(user_settings->color_bar_notify, "green") == 0) {
bar_notify_color = COLOR_GREEN;
} else if (strcmp(user_settings->color_bar_notify, "yellow") == 0) {
bar_notify_color = COLOR_YELLOW;
} else if (strcmp(user_settings->color_bar_notify, "magenta") == 0) {
bar_notify_color = COLOR_MAGENTA;
} else if (strcmp(user_settings->color_bar_notify, "white") == 0) {
bar_notify_color = COLOR_WHITE;
} else {
bar_notify_color = COLOR_YELLOW;
}
} else {
bar_notify_color = COLOR_YELLOW;
}
init_pair(WHITE, COLOR_WHITE, COLOR_BLACK); init_pair(WHITE, COLOR_WHITE, COLOR_BLACK);
init_pair(GREEN, COLOR_GREEN, bg_color); init_pair(GREEN, COLOR_GREEN, bg_color);
init_pair(CYAN, COLOR_CYAN, bg_color); init_pair(CYAN, COLOR_CYAN, bg_color);
@ -278,13 +378,14 @@ static void init_term(void)
init_pair(BLACK, COLOR_BLACK, COLOR_BLACK); init_pair(BLACK, COLOR_BLACK, COLOR_BLACK);
init_pair(BLUE_BLACK, COLOR_BLUE, COLOR_BLACK); init_pair(BLUE_BLACK, COLOR_BLUE, COLOR_BLACK);
init_pair(BLACK_WHITE, COLOR_BLACK, COLOR_WHITE); init_pair(BLACK_WHITE, COLOR_BLACK, COLOR_WHITE);
init_pair(WHITE_BLUE, COLOR_WHITE, COLOR_BLUE); init_pair(BLACK_BG, COLOR_BLACK, bar_bg_color);
init_pair(CYAN_BLUE, COLOR_CYAN, COLOR_BLUE); init_pair(PURPLE_BG, COLOR_MAGENTA, bar_bg_color);
init_pair(GREEN_BLUE, COLOR_GREEN, COLOR_BLUE); init_pair(BAR_TEXT, bar_fg_color, bar_bg_color);
init_pair(PURPLE_BLUE, COLOR_MAGENTA, COLOR_BLUE); init_pair(BAR_ACCENT, bar_accent_color, bar_bg_color);
init_pair(BLACK_BLUE, COLOR_BLACK, COLOR_BLUE); init_pair(BAR_NOTIFY, bar_notify_color, bar_bg_color);
init_pair(YELLOW_BLUE, COLOR_YELLOW, COLOR_BLUE); init_pair(STATUS_ONLINE, COLOR_GREEN, bar_bg_color);
init_pair(RED_BLUE, COLOR_RED, COLOR_BLUE); init_pair(STATUS_AWAY, COLOR_YELLOW, bar_bg_color);
init_pair(STATUS_BUSY, COLOR_RED, bar_bg_color);
} }
refresh(); refresh();

View File

@ -48,6 +48,7 @@
#define TOXIC_MAX_NAME_LENGTH 32 /* Must be <= TOX_MAX_NAME_LENGTH */ #define TOXIC_MAX_NAME_LENGTH 32 /* Must be <= TOX_MAX_NAME_LENGTH */
#define KEY_IDENT_DIGITS 3 /* number of hex digits to display for the pub-key based identifier */ #define KEY_IDENT_DIGITS 3 /* number of hex digits to display for the pub-key based identifier */
#define TIME_STR_SIZE 32 #define TIME_STR_SIZE 32
#define COLOR_STR_SIZE 10 /* should fit every color option */
#ifndef MAX_PORT_RANGE #ifndef MAX_PORT_RANGE
#define MAX_PORT_RANGE 65535 #define MAX_PORT_RANGE 65535

View File

@ -519,21 +519,21 @@ static void draw_window_tab(WINDOW *win, ToxWindow *toxwin, bool active_window)
WINDOW_TYPE type = toxwin->type; WINDOW_TYPE type = toxwin->type;
if (active_window) { if (active_window) {
wattron(win, A_BOLD | COLOR_PAIR(CYAN_BLUE)); wattron(win, A_BOLD | COLOR_PAIR(BAR_ACCENT));
wprintw(win, " ["); wprintw(win, " [");
wattroff(win, COLOR_PAIR(CYAN_BLUE)); wattroff(win, COLOR_PAIR(BAR_ACCENT));
wattron(win, COLOR_PAIR(WHITE_BLUE)); wattron(win, COLOR_PAIR(BAR_TEXT));
} else { } else {
if (has_alert) { if (has_alert) {
wattron(win, COLOR_PAIR(CYAN_BLUE)); wattron(win, COLOR_PAIR(BAR_ACCENT));
wprintw(win, " ["); wprintw(win, " [");
wattroff(win, COLOR_PAIR(CYAN_BLUE)); wattroff(win, COLOR_PAIR(BAR_ACCENT));
wattron(win, A_BOLD | COLOR_PAIR(toxwin->alert)); wattron(win, A_BOLD | COLOR_PAIR(toxwin->alert));
} else { } else {
wattron(win, COLOR_PAIR(CYAN_BLUE)); wattron(win, COLOR_PAIR(BAR_ACCENT));
wprintw(win, " ["); wprintw(win, " [");
wattroff(win, COLOR_PAIR(CYAN_BLUE)); wattroff(win, COLOR_PAIR(BAR_ACCENT));
wattron(win, COLOR_PAIR(WHITE_BLUE)); wattron(win, COLOR_PAIR(BAR_TEXT));
} }
} }
@ -548,21 +548,21 @@ static void draw_window_tab(WINDOW *win, ToxWindow *toxwin, bool active_window)
} }
if (active_window) { if (active_window) {
wattroff(win, COLOR_PAIR(WHITE_BLUE)); wattroff(win, COLOR_PAIR(BAR_TEXT));
wattron(win, COLOR_PAIR(CYAN_BLUE)); wattron(win, COLOR_PAIR(BAR_ACCENT));
wprintw(win, "]"); wprintw(win, "]");
wattroff(win, A_BOLD | COLOR_PAIR(CYAN_BLUE)); wattroff(win, A_BOLD | COLOR_PAIR(BAR_ACCENT));
} else { } else {
if (has_alert) { if (has_alert) {
wattroff(win, A_BOLD | COLOR_PAIR(toxwin->alert)); wattroff(win, A_BOLD | COLOR_PAIR(toxwin->alert));
wattron(win, COLOR_PAIR(CYAN_BLUE)); wattron(win, COLOR_PAIR(BAR_ACCENT));
wprintw(win, "]"); wprintw(win, "]");
wattroff(win, COLOR_PAIR(CYAN_BLUE)); wattroff(win, COLOR_PAIR(BAR_ACCENT));
} else { } else {
wattroff(win, COLOR_PAIR(WHITE_BLUE)); wattroff(win, COLOR_PAIR(BAR_TEXT));
wattron(win, COLOR_PAIR(CYAN_BLUE)); wattron(win, COLOR_PAIR(BAR_ACCENT));
wprintw(win, "]"); wprintw(win, "]");
wattroff(win, COLOR_PAIR(CYAN_BLUE)); wattroff(win, COLOR_PAIR(BAR_ACCENT));
} }
} }
} }
@ -573,13 +573,13 @@ void draw_window_bar(ToxWindow *self)
wclear(win); wclear(win);
if (self->scroll_pause) { if (self->scroll_pause) {
wattron(win, A_BLINK | A_BOLD | COLOR_PAIR(YELLOW_BLUE)); wattron(win, A_BLINK | A_BOLD | COLOR_PAIR(BAR_NOTIFY));
wprintw(win, "^"); wprintw(win, "^");
wattroff(win, A_BLINK | A_BOLD | COLOR_PAIR(YELLOW_BLUE)); wattroff(win, A_BLINK | A_BOLD | COLOR_PAIR(BAR_NOTIFY));
} else { } else {
wattron(win, COLOR_PAIR(WHITE_BLUE)); wattron(win, COLOR_PAIR(BAR_TEXT));
wprintw(win, " "); wprintw(win, " ");
wattroff(win, COLOR_PAIR(WHITE_BLUE)); wattroff(win, COLOR_PAIR(BAR_TEXT));
} }
for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) { for (uint8_t i = 0; i < MAX_WINDOWS_NUM; ++i) {
@ -597,9 +597,9 @@ void draw_window_bar(ToxWindow *self)
getyx(win, cur_y, cur_x); getyx(win, cur_y, cur_x);
wattron(win, COLOR_PAIR(WHITE_BLUE)); wattron(win, COLOR_PAIR(BAR_TEXT));
mvwhline(win, 0, cur_x, ' ', COLS - cur_x); mvwhline(win, 0, cur_x, ' ', COLS - cur_x);
wattroff(win, COLOR_PAIR(WHITE_BLUE)); wattroff(win, COLOR_PAIR(BAR_TEXT));
} }
/* /*

View File

@ -55,21 +55,22 @@ typedef enum {
BLACK, BLACK,
BLUE_BLACK, BLUE_BLACK,
BLACK_WHITE, BLACK_WHITE,
WHITE_BLUE, BAR_TEXT,
GREEN_BLUE, STATUS_ONLINE,
CYAN_BLUE, BAR_ACCENT,
PURPLE_BLUE, PURPLE_BG,
BLACK_BLUE, BLACK_BG,
RED_BLUE, STATUS_BUSY,
YELLOW_BLUE, STATUS_AWAY,
BAR_NOTIFY,
} C_COLOURS; } C_COLOURS;
/* tab alert types: lower types take priority (this relies on the order of C_COLOURS) */ /* tab alert types: lower types take priority (this relies on the order of C_COLOURS) */
typedef enum { typedef enum {
WINDOW_ALERT_NONE = 0, WINDOW_ALERT_NONE = 0,
WINDOW_ALERT_0 = GREEN_BLUE, WINDOW_ALERT_0 = STATUS_ONLINE,
WINDOW_ALERT_1 = CYAN_BLUE, WINDOW_ALERT_1 = BAR_ACCENT,
WINDOW_ALERT_2 = PURPLE_BLUE, WINDOW_ALERT_2 = PURPLE_BG,
} WINDOW_ALERTS; } WINDOW_ALERTS;
typedef enum { typedef enum {