about summary refs log tree commit diff stats
path: root/src/config
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-01-16 22:44:23 +0000
committerJames Booth <boothj5@gmail.com>2014-01-16 22:44:23 +0000
commit4f98bc8c25075891a1fd5a954ae83e961405a664 (patch)
tree9533784aa0fe7ae81ace0ee173235a9cd801a201 /src/config
parent6c59bb26da67f2d48e0203e8df328205313d6c57 (diff)
downloadprofani-tty-4f98bc8c25075891a1fd5a954ae83e961405a664.tar.gz
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'
Diffstat (limited to 'src/config')
-rw-r--r--src/config/preferences.c4
-rw-r--r--src/config/preferences.h3
-rw-r--r--src/config/theme.c24
-rw-r--r--src/config/theme.h54
4 files changed, 59 insertions, 26 deletions
diff --git a/src/config/preferences.c b/src/config/preferences.c
index 216e4988..2e7a67ce 100644
--- a/src/config/preferences.c
+++ b/src/config/preferences.c
@@ -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;
diff --git a/src/config/preferences.h b/src/config/preferences.h
index df89ac04..20b3c271 100644
--- a/src/config/preferences.h
+++ b/src/config/preferences.h
@@ -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);
diff --git a/src/config/theme.c b/src/config/theme.c
index 1c0d176a..1d7d04cf 100644
--- a/src/config/theme.c
+++ b/src/config/theme.c
@@ -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);
diff --git a/src/config/theme.h b/src/config/theme.h
index 8878d7b2..b7f26f3f 100644
--- a/src/config/theme.h
+++ b/src/config/theme.h
@@ -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);