Show OTR coloured status

Customisable within theme files e.g.:
titlebar.unencrypted=red
titlebar.encrypted=green
titlebar.trusted=red
titlebar.untrusted=green

Shows [unencrypted] for all non-OTR chat

Disable with '/otr warn off'
This commit is contained in:
James Booth
2014-01-16 22:44:23 +00:00
parent 6c59bb26da
commit 4f98bc8c25
11 changed files with 161 additions and 39 deletions

View File

@@ -293,6 +293,7 @@ _get_group(preference_t pref)
case PREF_HISTORY:
case PREF_MOUSE:
case PREF_STATUSES:
case PREF_OTR_WARN:
return "ui";
case PREF_STATES:
case PREF_OUTTYPE:
@@ -368,6 +369,8 @@ _get_key(preference_t pref)
return "account";
case PREF_OTR_LOG:
return "otr";
case PREF_OTR_WARN:
return "otr.warn";
default:
return NULL;
}
@@ -380,6 +383,7 @@ _get_default_boolean(preference_t pref)
{
case PREF_STATUSES:
case PREF_AUTOAWAY_CHECK:
case PREF_OTR_WARN:
return TRUE;
default:
return FALSE;

View File

@@ -58,7 +58,8 @@ typedef enum {
PREF_AUTOAWAY_MODE,
PREF_AUTOAWAY_MESSAGE,
PREF_CONNECT_ACCOUNT,
PREF_OTR_LOG
PREF_OTR_LOG,
PREF_OTR_WARN
} preference_t;
void prefs_load(void);

View File

@@ -64,6 +64,10 @@ static struct colours_t {
NCURSES_COLOR_T statusbar;
NCURSES_COLOR_T titlebartext;
NCURSES_COLOR_T titlebarbrackets;
NCURSES_COLOR_T titlebarunencrypted;
NCURSES_COLOR_T titlebarencrypted;
NCURSES_COLOR_T titlebaruntrusted;
NCURSES_COLOR_T titlebartrusted;
NCURSES_COLOR_T statusbartext;
NCURSES_COLOR_T statusbarbrackets;
NCURSES_COLOR_T statusbaractive;
@@ -197,6 +201,10 @@ theme_init_colours(void)
// title bar
init_pair(10, colour_prefs.titlebartext, colour_prefs.titlebar);
init_pair(11, colour_prefs.titlebarbrackets, colour_prefs.titlebar);
init_pair(12, colour_prefs.titlebarunencrypted, colour_prefs.titlebar);
init_pair(13, colour_prefs.titlebarencrypted, colour_prefs.titlebar);
init_pair(14, colour_prefs.titlebaruntrusted, colour_prefs.titlebar);
init_pair(15, colour_prefs.titlebartrusted, colour_prefs.titlebar);
// status bar
init_pair(20, colour_prefs.statusbartext, colour_prefs.statusbar);
@@ -280,6 +288,22 @@ _load_colours(void)
_set_colour(titlebarbrackets_val, &colour_prefs.titlebarbrackets, COLOR_CYAN);
g_free(titlebarbrackets_val);
gchar *titlebarunencrypted_val = g_key_file_get_string(theme, "colours", "titlebar.unencrypted", NULL);
_set_colour(titlebarunencrypted_val, &colour_prefs.titlebarunencrypted, COLOR_RED);
g_free(titlebarunencrypted_val);
gchar *titlebarencrypted_val = g_key_file_get_string(theme, "colours", "titlebar.encrypted", NULL);
_set_colour(titlebarencrypted_val, &colour_prefs.titlebarencrypted, COLOR_WHITE);
g_free(titlebarencrypted_val);
gchar *titlebaruntrusted_val = g_key_file_get_string(theme, "colours", "titlebar.untrusted", NULL);
_set_colour(titlebaruntrusted_val, &colour_prefs.titlebaruntrusted, COLOR_RED);
g_free(titlebaruntrusted_val);
gchar *titlebartrusted_val = g_key_file_get_string(theme, "colours", "titlebar.trusted", NULL);
_set_colour(titlebartrusted_val, &colour_prefs.titlebartrusted, COLOR_WHITE);
g_free(titlebartrusted_val);
gchar *statusbartext_val = g_key_file_get_string(theme, "colours", "statusbar.text", NULL);
_set_colour(statusbartext_val, &colour_prefs.statusbartext, COLOR_WHITE);
g_free(statusbartext_val);

View File

@@ -32,31 +32,35 @@
#include <ncurses.h>
#endif
#define COLOUR_TEXT COLOR_PAIR(1)
#define COLOUR_SPLASH COLOR_PAIR(2)
#define COLOUR_ERROR COLOR_PAIR(3)
#define COLOUR_INCOMING COLOR_PAIR(4)
#define COLOUR_INPUT_TEXT COLOR_PAIR(5)
#define COLOUR_TIME COLOR_PAIR(6)
#define COLOUR_TITLE_TEXT COLOR_PAIR(10)
#define COLOUR_TITLE_BRACKET COLOR_PAIR(11)
#define COLOUR_STATUS_TEXT COLOR_PAIR(20)
#define COLOUR_STATUS_BRACKET COLOR_PAIR(21)
#define COLOUR_STATUS_ACTIVE COLOR_PAIR(22)
#define COLOUR_STATUS_NEW COLOR_PAIR(23)
#define COLOUR_ME COLOR_PAIR(30)
#define COLOUR_THEM COLOR_PAIR(31)
#define COLOUR_ROOMINFO COLOR_PAIR(40)
#define COLOUR_ONLINE COLOR_PAIR(50)
#define COLOUR_OFFLINE COLOR_PAIR(51)
#define COLOUR_AWAY COLOR_PAIR(52)
#define COLOUR_CHAT COLOR_PAIR(53)
#define COLOUR_DND COLOR_PAIR(54)
#define COLOUR_XA COLOR_PAIR(55)
#define COLOUR_TYPING COLOR_PAIR(60)
#define COLOUR_GONE COLOR_PAIR(61)
#define COLOUR_SUBSCRIBED COLOR_PAIR(70)
#define COLOUR_UNSUBSCRIBED COLOR_PAIR(71)
#define COLOUR_TEXT COLOR_PAIR(1)
#define COLOUR_SPLASH COLOR_PAIR(2)
#define COLOUR_ERROR COLOR_PAIR(3)
#define COLOUR_INCOMING COLOR_PAIR(4)
#define COLOUR_INPUT_TEXT COLOR_PAIR(5)
#define COLOUR_TIME COLOR_PAIR(6)
#define COLOUR_TITLE_TEXT COLOR_PAIR(10)
#define COLOUR_TITLE_BRACKET COLOR_PAIR(11)
#define COLOUR_TITLE_UNENCRYPTED COLOR_PAIR(12)
#define COLOUR_TITLE_ENCRYPTED COLOR_PAIR(13)
#define COLOUR_TITLE_UNTRUSTED COLOR_PAIR(14)
#define COLOUR_TITLE_TRUSTED COLOR_PAIR(15)
#define COLOUR_STATUS_TEXT COLOR_PAIR(20)
#define COLOUR_STATUS_BRACKET COLOR_PAIR(21)
#define COLOUR_STATUS_ACTIVE COLOR_PAIR(22)
#define COLOUR_STATUS_NEW COLOR_PAIR(23)
#define COLOUR_ME COLOR_PAIR(30)
#define COLOUR_THEM COLOR_PAIR(31)
#define COLOUR_ROOMINFO COLOR_PAIR(40)
#define COLOUR_ONLINE COLOR_PAIR(50)
#define COLOUR_OFFLINE COLOR_PAIR(51)
#define COLOUR_AWAY COLOR_PAIR(52)
#define COLOUR_CHAT COLOR_PAIR(53)
#define COLOUR_DND COLOR_PAIR(54)
#define COLOUR_XA COLOR_PAIR(55)
#define COLOUR_TYPING COLOR_PAIR(60)
#define COLOUR_GONE COLOR_PAIR(61)
#define COLOUR_SUBSCRIBED COLOR_PAIR(70)
#define COLOUR_UNSUBSCRIBED COLOR_PAIR(71)
void theme_init(const char * const theme_name);
void theme_init_colours(void);