diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/config/theme.c | 36 | ||||
-rw-r--r-- | src/config/theme.h | 31 | ||||
-rw-r--r-- | src/ui/core.c | 11 |
3 files changed, 45 insertions, 33 deletions
diff --git a/src/config/theme.c b/src/config/theme.c index 14e7260c..c03c2dd4 100644 --- a/src/config/theme.c +++ b/src/config/theme.c @@ -89,6 +89,7 @@ static struct colours_t { NCURSES_COLOR_T error; NCURSES_COLOR_T incoming; NCURSES_COLOR_T roominfo; + NCURSES_COLOR_T roommention; NCURSES_COLOR_T me; NCURSES_COLOR_T them; NCURSES_COLOR_T otrstartedtrusted; @@ -202,29 +203,30 @@ theme_init_colours(void) // room chat init_pair(19, colour_prefs.roominfo, colour_prefs.bkgnd); + init_pair(20, colour_prefs.roommention, colour_prefs.bkgnd); // statuses - init_pair(20, colour_prefs.online, colour_prefs.bkgnd); - init_pair(21, colour_prefs.offline, colour_prefs.bkgnd); - init_pair(22, colour_prefs.away, colour_prefs.bkgnd); - init_pair(23, colour_prefs.chat, colour_prefs.bkgnd); - init_pair(24, colour_prefs.dnd, colour_prefs.bkgnd); - init_pair(25, colour_prefs.xa, colour_prefs.bkgnd); + init_pair(21, colour_prefs.online, colour_prefs.bkgnd); + init_pair(22, colour_prefs.offline, colour_prefs.bkgnd); + init_pair(23, colour_prefs.away, colour_prefs.bkgnd); + init_pair(24, colour_prefs.chat, colour_prefs.bkgnd); + init_pair(25, colour_prefs.dnd, colour_prefs.bkgnd); + init_pair(26, colour_prefs.xa, colour_prefs.bkgnd); // states - init_pair(26, colour_prefs.typing, colour_prefs.bkgnd); - init_pair(27, colour_prefs.gone, colour_prefs.bkgnd); + init_pair(27, colour_prefs.typing, colour_prefs.bkgnd); + init_pair(28, colour_prefs.gone, colour_prefs.bkgnd); // subscription status - init_pair(28, colour_prefs.subscribed, colour_prefs.bkgnd); - init_pair(29, colour_prefs.unsubscribed, colour_prefs.bkgnd); + init_pair(29, colour_prefs.subscribed, colour_prefs.bkgnd); + init_pair(30, colour_prefs.unsubscribed, colour_prefs.bkgnd); // otr messages - init_pair(30, colour_prefs.otrstartedtrusted, colour_prefs.bkgnd); - init_pair(31, colour_prefs.otrstarteduntrusted, colour_prefs.bkgnd); - init_pair(32, colour_prefs.otrended, colour_prefs.bkgnd); - init_pair(33, colour_prefs.otrtrusted, colour_prefs.bkgnd); - init_pair(34, colour_prefs.otruntrusted, colour_prefs.bkgnd); + init_pair(31, colour_prefs.otrstartedtrusted, colour_prefs.bkgnd); + init_pair(32, colour_prefs.otrstarteduntrusted, colour_prefs.bkgnd); + init_pair(33, colour_prefs.otrended, colour_prefs.bkgnd); + init_pair(34, colour_prefs.otrtrusted, colour_prefs.bkgnd); + init_pair(35, colour_prefs.otruntrusted, colour_prefs.bkgnd); } static NCURSES_COLOR_T @@ -399,6 +401,10 @@ _load_colours(void) _set_colour(roominfo_val, &colour_prefs.roominfo, COLOR_YELLOW); g_free(roominfo_val); + gchar *roommention_val = g_key_file_get_string(theme, "colours", "roommention", NULL); + _set_colour(roommention_val, &colour_prefs.roommention, COLOR_YELLOW); + g_free(roommention_val); + gchar *me_val = g_key_file_get_string(theme, "colours", "me", NULL); _set_colour(me_val, &colour_prefs.me, COLOR_YELLOW); g_free(me_val); diff --git a/src/config/theme.h b/src/config/theme.h index afc9a93c..858fabae 100644 --- a/src/config/theme.h +++ b/src/config/theme.h @@ -51,21 +51,22 @@ #define COLOUR_ME COLOR_PAIR(17) #define COLOUR_THEM COLOR_PAIR(18) #define COLOUR_ROOMINFO COLOR_PAIR(19) -#define COLOUR_ONLINE COLOR_PAIR(20) -#define COLOUR_OFFLINE COLOR_PAIR(21) -#define COLOUR_AWAY COLOR_PAIR(22) -#define COLOUR_CHAT COLOR_PAIR(23) -#define COLOUR_DND COLOR_PAIR(24) -#define COLOUR_XA COLOR_PAIR(25) -#define COLOUR_TYPING COLOR_PAIR(26) -#define COLOUR_GONE COLOR_PAIR(27) -#define COLOUR_SUBSCRIBED COLOR_PAIR(28) -#define COLOUR_UNSUBSCRIBED COLOR_PAIR(29) -#define COLOUR_OTR_STARTED_TRUSTED COLOR_PAIR(30) -#define COLOUR_OTR_STARTED_UNTRUSTED COLOR_PAIR(31) -#define COLOUR_OTR_ENDED COLOR_PAIR(32) -#define COLOUR_OTR_TRUSTED COLOR_PAIR(33) -#define COLOUR_OTR_UNTRUSTED COLOR_PAIR(34) +#define COLOUR_ROOMMENTION COLOR_PAIR(20) +#define COLOUR_ONLINE COLOR_PAIR(21) +#define COLOUR_OFFLINE COLOR_PAIR(22) +#define COLOUR_AWAY COLOR_PAIR(23) +#define COLOUR_CHAT COLOR_PAIR(24) +#define COLOUR_DND COLOR_PAIR(25) +#define COLOUR_XA COLOR_PAIR(26) +#define COLOUR_TYPING COLOR_PAIR(27) +#define COLOUR_GONE COLOR_PAIR(28) +#define COLOUR_SUBSCRIBED COLOR_PAIR(29) +#define COLOUR_UNSUBSCRIBED COLOR_PAIR(30) +#define COLOUR_OTR_STARTED_TRUSTED COLOR_PAIR(31) +#define COLOUR_OTR_STARTED_UNTRUSTED COLOR_PAIR(32) +#define COLOUR_OTR_ENDED COLOR_PAIR(33) +#define COLOUR_OTR_TRUSTED COLOR_PAIR(34) +#define COLOUR_OTR_UNTRUSTED COLOR_PAIR(35) void theme_init(const char * const theme_name); void theme_init_colours(void); diff --git a/src/ui/core.c b/src/ui/core.c index c53a3bbb..53a36f2d 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -1595,9 +1595,14 @@ _ui_room_message(const char * const room_jid, const char * const nick, { ProfWin *window = wins_get_by_recipient(room_jid); int num = wins_get_num(window); + char *my_nick = muc_get_room_nick(room_jid); - if (strcmp(nick, muc_get_room_nick(room_jid)) != 0) { - win_save_print(window, '-', NULL, 1, 0, nick, message); + if (strcmp(nick, my_nick) != 0) { + if (g_strrstr(message, my_nick) != NULL) { + win_save_print(window, '-', NULL, 1, COLOUR_ROOMMENTION, nick, message); + } else { + win_save_print(window, '-', NULL, 1, 0, nick, message); + } } else { win_save_print(window, '-', NULL, 0, 0, nick, message); } @@ -1616,7 +1621,7 @@ _ui_room_message(const char * const room_jid, const char * const nick, win_update_virtual(current); } - if (strcmp(nick, muc_get_room_nick(room_jid)) != 0) { + if (strcmp(nick, my_nick) != 0) { if (prefs_get_boolean(PREF_FLASH)) { flash(); } |