1
0
mirror of https://github.com/profanity-im/profanity.git synced 2025-01-03 14:57:42 -05:00

Add coloring of statusbar.current tab in view

This theme color applies to the tab title text of the statusbar tab that
is currently shown.

The (somewhat confusingly named) `statusbar.active` theme color now
applies to all other tabs (before, it applied to all tabs).

Coloring of a tab that is highlighted/has new messages is done as before
using the `statusbar.new` theme color.

The default color is set to `cyan`, and thus causes no visible change
for users -- until modified.
This commit is contained in:
Daniel Lublin 2019-09-20 10:40:54 +02:00
parent 8e76283f97
commit 641410f6bd
4 changed files with 15 additions and 4 deletions

View File

@ -99,6 +99,7 @@ theme_init(const char *const theme_name)
g_hash_table_insert(defaults, strdup("statusbar.text"), strdup("white"));
g_hash_table_insert(defaults, strdup("statusbar.brackets"), strdup("cyan"));
g_hash_table_insert(defaults, strdup("statusbar.active"), strdup("cyan"));
g_hash_table_insert(defaults, strdup("statusbar.current"), strdup("cyan"));
g_hash_table_insert(defaults, strdup("statusbar.new"), strdup("white"));
g_hash_table_insert(defaults, strdup("statusbar.time"), strdup("white"));
g_hash_table_insert(defaults, strdup("me"), strdup("yellow"));
@ -704,6 +705,7 @@ theme_attrs(theme_item_t attrs)
case THEME_STATUS_TEXT: _theme_prep_fgnd("statusbar.text", lookup_str, &bold); break;
case THEME_STATUS_BRACKET: _theme_prep_fgnd("statusbar.brackets", lookup_str, &bold); break;
case THEME_STATUS_ACTIVE: _theme_prep_fgnd("statusbar.active", lookup_str, &bold); break;
case THEME_STATUS_CURRENT: _theme_prep_fgnd("statusbar.current", lookup_str, &bold); break;
case THEME_STATUS_NEW: _theme_prep_fgnd("statusbar.new", lookup_str, &bold); break;
case THEME_STATUS_TIME: _theme_prep_fgnd("statusbar.time", lookup_str, &bold); break;
case THEME_ME: _theme_prep_fgnd("me", lookup_str, &bold); break;
@ -794,6 +796,7 @@ theme_attrs(theme_item_t attrs)
case THEME_STATUS_TEXT:
case THEME_STATUS_BRACKET:
case THEME_STATUS_ACTIVE:
case THEME_STATUS_CURRENT:
case THEME_STATUS_NEW:
case THEME_STATUS_TIME:
_theme_prep_bgnd("statusbar", "blue", lookup_str);

View File

@ -68,6 +68,7 @@ typedef enum {
THEME_STATUS_TEXT,
THEME_STATUS_BRACKET,
THEME_STATUS_ACTIVE,
THEME_STATUS_CURRENT,
THEME_STATUS_NEW,
THEME_STATUS_TIME,
THEME_ME,

View File

@ -2313,6 +2313,7 @@ cons_theme_properties(void)
_cons_theme_bar_prop(THEME_STATUS_TEXT, "statusbar.text");
_cons_theme_bar_prop(THEME_STATUS_BRACKET, "statusbar.brackets");
_cons_theme_bar_prop(THEME_STATUS_ACTIVE, "statusbar.active");
_cons_theme_bar_prop(THEME_STATUS_CURRENT, "statusbar.current");
_cons_theme_bar_prop(THEME_STATUS_NEW, "statusbar.new");
_cons_theme_bar_prop(THEME_STATUS_TIME, "statusbar.time");

View File

@ -336,9 +336,13 @@ _status_bar_draw_extended_tabs(int pos)
pos = _status_bar_draw_bracket(is_current, pos, "[");
int status_attrs = theme_attrs(THEME_STATUS_ACTIVE);
if (_extended_new()) {
int status_attrs;
if (is_current) {
status_attrs = theme_attrs(THEME_STATUS_CURRENT);
} else if (_extended_new()) {
status_attrs = theme_attrs(THEME_STATUS_NEW);
} else {
status_attrs = theme_attrs(THEME_STATUS_ACTIVE);
}
wattron(statusbar_win, status_attrs);
mvwprintw(statusbar_win, 0, pos, ">");
@ -362,8 +366,10 @@ _status_bar_draw_tab(StatusBarTab *tab, int pos, int num)
pos = _status_bar_draw_bracket(is_current, pos, "[");
int status_attrs = 0;
if (tab->highlight) {
int status_attrs;
if (is_current) {
status_attrs = theme_attrs(THEME_STATUS_CURRENT);
} else if (tab->highlight) {
status_attrs = theme_attrs(THEME_STATUS_NEW);
} else {
status_attrs = theme_attrs(THEME_STATUS_ACTIVE);