comparison mcabber/src/screen.c @ 721:9cf31c9b1dc4

Use room topic as a description in the chat status line Thanks to Salvador for the idea.
author Mikael Berthe <mikael@lilotux.net>
date Sun, 05 Mar 2006 00:17:12 +0100
parents e5269eb416bb
children 23068490d063
comparison
equal deleted inserted replaced
720:e5269eb416bb 721:9cf31c9b1dc4
714 // Refresh current buddy window 714 // Refresh current buddy window
715 if (chatmode) 715 if (chatmode)
716 scr_ShowBuddyWindow(); 716 scr_ShowBuddyWindow();
717 } 717 }
718 718
719 // update_chat_status_window(forceupdate) 719 // scr_UpdateChatStatus(forceupdate)
720 // Redraw the buddy status bar. 720 // Redraw the buddy status bar.
721 // Set forceupdate to TRUE if doupdate() must be called. 721 // Set forceupdate to TRUE if doupdate() must be called.
722 static void update_chat_status_window(int forceupdate) 722 void scr_UpdateChatStatus(int forceupdate)
723 { 723 {
724 unsigned short btype, isgrp, ismuc; 724 unsigned short btype, isgrp, ismuc;
725 const char *fullname; 725 const char *fullname;
726 const char *msg = NULL; 726 const char *msg = NULL;
727 char status; 727 char status;
769 // No status message for groups & MUC rooms 769 // No status message for groups & MUC rooms
770 if (!isgrp && !ismuc) { 770 if (!isgrp && !ismuc) {
771 GSList *resources = buddy_getresources(BUDDATA(current_buddy)); 771 GSList *resources = buddy_getresources(BUDDATA(current_buddy));
772 if (resources) 772 if (resources)
773 msg = buddy_getstatusmsg(BUDDATA(current_buddy), resources->data); 773 msg = buddy_getstatusmsg(BUDDATA(current_buddy), resources->data);
774 } else if (ismuc) {
775 msg = buddy_gettopic(BUDDATA(current_buddy));
774 } 776 }
775 if (!msg) 777 if (!msg)
776 msg = ""; 778 msg = "";
777 779
778 buf = g_strdup_printf("[%c] Buddy: %s -- %s", status, fullname, msg); 780 buf = g_strdup_printf("[%c] Buddy: %s -- %s", status, fullname, msg);
819 } 821 }
820 822
821 if (!buddylist) 823 if (!buddylist)
822 offset = 0; 824 offset = 0;
823 else 825 else
824 update_chat_status_window(FALSE); 826 scr_UpdateChatStatus(FALSE);
825 827
826 // Leave now if buddylist is empty or the roster is hidden 828 // Leave now if buddylist is empty or the roster is hidden
827 if (!buddylist || !Roster_Width) { 829 if (!buddylist || !Roster_Width) {
828 update_panels(); 830 update_panels();
829 doupdate(); 831 doupdate();
1381 // scr_set_chatmode() 1383 // scr_set_chatmode()
1382 // Public function to (un)set chatmode... 1384 // Public function to (un)set chatmode...
1383 inline void scr_set_chatmode(int enable) 1385 inline void scr_set_chatmode(int enable)
1384 { 1386 {
1385 chatmode = enable; 1387 chatmode = enable;
1386 update_chat_status_window(TRUE); 1388 scr_UpdateChatStatus(TRUE);
1387 } 1389 }
1388 1390
1389 // scr_get_multimode() 1391 // scr_get_multimode()
1390 // Public function to get multimode status... 1392 // Public function to get multimode status...
1391 inline int scr_get_multimode() 1393 inline int scr_get_multimode()
1911 currentWindow = NULL; 1913 currentWindow = NULL;
1912 chatmode = FALSE; 1914 chatmode = FALSE;
1913 if (current_buddy) 1915 if (current_buddy)
1914 buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, FALSE); 1916 buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, FALSE);
1915 scr_RosterVisibility(1); 1917 scr_RosterVisibility(1);
1916 update_chat_status_window(FALSE); 1918 scr_UpdateChatStatus(FALSE);
1917 top_panel(chatPanel); 1919 top_panel(chatPanel);
1918 top_panel(inputPanel); 1920 top_panel(inputPanel);
1919 update_panels(); 1921 update_panels();
1920 break; 1922 break;
1921 case 12: // Ctrl-l 1923 case 12: // Ctrl-l