about summary refs log tree commit diff stats
path: root/windows.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2012-02-28 01:10:46 +0000
committerJames Booth <boothj5@gmail.com>2012-02-28 01:10:46 +0000
commit509888c419cf0abb03df83277ebf7085e0427a0d (patch)
treeeb7c53fd25696b0801cbb10fbdcaabe969b5b090 /windows.c
parentc447e050811f41af28c60683e2fef674c8184bda (diff)
downloadprofani-tty-509888c419cf0abb03df83277ebf7085e0427a0d.tar.gz
Presence notifications sent to chat windows
Diffstat (limited to 'windows.c')
-rw-r--r--windows.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/windows.c b/windows.c
index ed4e705f..fe4af54f 100644
--- a/windows.c
+++ b/windows.c
@@ -125,6 +125,66 @@ void win_show_outgoing_msg(char *from, char *to, char *message)
     status_bar_active(win);
 }
 
+void win_show_contact_online(char *from, char *show, char *status)
+{
+    // find the chat window for recipient
+    int i;
+    for (i = 1; i < 10; i++)
+        if (strcmp(_wins[i].from, from) == 0)
+            break;
+
+    // if we found a window
+    if (i != 10) {
+        _win_show_time(i);    
+        wattron(_wins[i].win, COLOR_PAIR(2));
+        wattron(_wins[i].win, A_BOLD);
+       
+        wprintw(_wins[i].win, "++ %s", from);
+
+        if (show != NULL) 
+            wprintw(_wins[i].win, " is %s", show);
+        else
+            wprintw(_wins[i].win, " is online");
+            
+        if (status != NULL)
+            wprintw(_wins[i].win, ", \"%s\"", status);
+
+        wprintw(_wins[i].win, "\n");
+        
+        wattroff(_wins[i].win, COLOR_PAIR(2));
+        wattroff(_wins[i].win, A_BOLD);
+    }
+}
+
+void win_show_contact_offline(char *from, char *show, char *status)
+{
+    // find the chat window for recipient
+    int i;
+    for (i = 1; i < 10; i++)
+        if (strcmp(_wins[i].from, from) == 0)
+            break;
+
+    // if we found a window
+    if (i != 10) {
+        _win_show_time(i);    
+        wattron(_wins[i].win, COLOR_PAIR(5));
+
+        wprintw(_wins[i].win, "-- %s", from);
+
+        if (show != NULL) 
+            wprintw(_wins[i].win, " is %s", show);
+        else
+            wprintw(_wins[i].win, " is offline");
+        
+        if (status != NULL)
+            wprintw(_wins[i].win, ", \"%s\"", status);
+        
+        wprintw(_wins[i].win, "\n");
+        
+        wattroff(_wins[i].win, COLOR_PAIR(5));
+    }
+}
+
 void cons_help(void)
 {
     _win_show_time(0);
@@ -210,6 +270,9 @@ void cons_show_contact_online(char *from, char *show, char *status)
 
     if (show != NULL) 
         wprintw(_wins[0].win, " is %s", show);
+    else
+        wprintw(_wins[0].win, " is online");
+        
     if (status != NULL)
         wprintw(_wins[0].win, ", \"%s\"", status);
 
@@ -228,6 +291,9 @@ void cons_show_contact_offline(char *from, char *show, char *status)
 
     if (show != NULL) 
         wprintw(_wins[0].win, " is %s", show);
+    else
+        wprintw(_wins[0].win, " is offline");
+        
     if (status != NULL)
         wprintw(_wins[0].win, ", \"%s\"", status);