diff mcabber/src/screen.c @ 1204:e802ec0c02d2

Basic support for nick highlighting in MUC rooms (the whole line is colored)
author Mikael Berthe <mikael@lilotux.net>
date Sat, 28 Apr 2007 21:52:57 +0200
parents be06bbe7e449
children 2de8f8ba1f34
line wrap: on
line diff
--- a/mcabber/src/screen.c	Sat Apr 28 12:16:45 2007 +0200
+++ b/mcabber/src/screen.c	Sat Apr 28 21:52:57 2007 +0200
@@ -178,6 +178,7 @@
     "", "",
     "general",
     "msgout",
+    "msghl",
     "status",
     "roster",
     "rostersel",
@@ -228,6 +229,10 @@
           init_pair(i+1, ((color) ? FindColor(color) : COLOR_CYAN),
                     FindColor(background));
           break;
+      case COLOR_MSGHL:
+          init_pair(i+1, ((color) ? FindColor(color) : COLOR_YELLOW),
+                    FindColor(background));
+          break;
       case COLOR_STATUS:
           init_pair(i+1, ((color) ? FindColor(color) : COLOR_WHITE),
                     FindColor(backstatus));
@@ -629,8 +634,10 @@
     // NOTE: update PREFIX_WIDTH if you change the date format!!
     // You need to set it to the whole prefix length + 1
     if (line) {
-      if (line->flags & HBB_PREFIX_HLIGHT)
+      if (line->flags & HBB_PREFIX_HLIGHT_OUT)
         wattrset(win_entry->win, get_color(COLOR_MSGOUT));
+      else if (line->flags & HBB_PREFIX_HLIGHT)
+        wattrset(win_entry->win, get_color(COLOR_MSGHL));
 
       if (line->timestamp && !(line->flags & HBB_PREFIX_SPECIAL)) {
         strftime(date, 30, "%m-%d %H:%M", localtime(&line->timestamp));
@@ -665,7 +672,8 @@
 
       wprintw(win_entry->win, "%s", line->text); // Display text line
 
-      if (line->flags & HBB_PREFIX_HLIGHT)
+      if (line->flags & HBB_PREFIX_HLIGHT_OUT ||
+          line->flags & HBB_PREFIX_HLIGHT)
         wattrset(win_entry->win, get_color(COLOR_GENERAL));
       wclrtoeol(win_entry->win);
       g_free(line->text);
@@ -1462,7 +1470,8 @@
         time_t timestamp, guint prefix)
 {
   if (!(prefix &
-        ~HBB_PREFIX_NOFLAG & ~HBB_PREFIX_HLIGHT & ~HBB_PREFIX_PGPCRYPT))
+        ~HBB_PREFIX_NOFLAG & ~HBB_PREFIX_HLIGHT & ~HBB_PREFIX_HLIGHT_OUT &
+        ~HBB_PREFIX_PGPCRYPT))
     prefix |= HBB_PREFIX_IN;
 
   scr_WriteMessage(jidfrom, text, timestamp, prefix);
@@ -1474,7 +1483,7 @@
   roster_elt = roster_find(jidto, jidsearch,
                            ROSTER_TYPE_USER|ROSTER_TYPE_AGENT|ROSTER_TYPE_ROOM);
 
-  scr_WriteMessage(jidto, text, 0, prefix|HBB_PREFIX_OUT|HBB_PREFIX_HLIGHT);
+  scr_WriteMessage(jidto, text, 0, prefix|HBB_PREFIX_OUT|HBB_PREFIX_HLIGHT_OUT);
 
   // Show jidto's buffer unless the buddy is not in the buddylist
   if (roster_elt && g_list_position(buddylist, roster_elt->data) != -1)