Changeset 2321 for trunk/jons-gtk-gui

Show
Ignore:
Timestamp:
10/22/00 00:17:48 (8 years ago)
Author:
emojon
Message:

Hmm... sync the tree with my copy, some changes, who knows how significant
they are.. some more options, better away window size i think, and getting ready
to use a Tree widget for the contact list.. and other crap too.

Location:
trunk/jons-gtk-gui/src
Files:
10 modified

Legend:

Unmodified
Added
Removed
  • trunk/jons-gtk-gui/src/away_window.cpp

    r2092 r2321  
    184184    /* Append it to gslist */ 
    185185    catcher = g_slist_append(catcher, uaw->etag);  
     186 
     187    g_free(title); 
    186188} 
    187189 
  • trunk/jons-gtk-gui/src/chat_window.cpp

    r2128 r2321  
    2828GSList *rc_list; 
    2929 
    30 // Only needs to be in this scope 
    3130typedef list<chat_window *> ChatDlgList; 
    3231ChatDlgList chat_list; 
     
    351350    gUserManager.DropUser(u); 
    352351 
    353     label =gtk_label_new(g_strdup_printf("Chat with %s (%ld)\nReason:\n%s", 
    354                        alias, uin, c_event->Text())); 
     352    gchar *forLabel = g_strdup_printf("Chat with %s (%ld)\nReason:\n%s", 
     353        alias, uin, c_event->Text()); 
     354    label =gtk_label_new(forLabel); 
     355    g_free(forLabel); 
    355356 
    356357    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(r_cr->dialog)->vbox), label); 
     
    464465 
    465466    /* Take care of the font now */ 
    466     cw->font_remote = gdk_font_load("-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"); 
    467     strcpy(cw->font_name, "helvetica"); 
    468     cw->font_size = 120; 
     467    cw->r_font = gdk_font_load("-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"); 
     468    strncpy(cw->r_font_name, "helvetica", 50); 
     469    cw->r_font_size = 120; 
    469470     
    470471    /* Take care of creating the colors now */ 
    471     cw->back_color = new GdkColor; 
    472     cw->fore_color = new GdkColor; 
     472    cw->r_back_color = new GdkColor; 
     473    cw->r_fore_color = new GdkColor; 
     474    cw->l_back_color = new GdkColor; 
     475    cw->l_fore_color = new GdkColor; 
    473476 
    474477    /* Default background color */ 
    475     cw->back_color->red = 257 * cw->chatman->ColorBg()[0]; 
    476     cw->back_color->green = 257 * cw->chatman->ColorBg()[1]; 
    477     cw->back_color->blue = 257 * cw->chatman->ColorBg()[2]; 
     478    cw->r_back_color->red = 257 * cw->chatman->ColorBg()[0]; 
     479    cw->r_back_color->green = 257 * cw->chatman->ColorBg()[1]; 
     480    cw->r_back_color->blue = 257 * cw->chatman->ColorBg()[2]; 
    478481 
    479482    /* Default foreground color */ 
    480     cw->fore_color->red = 257 * cw->chatman->ColorFg()[0]; 
    481     cw->fore_color->green = 257 * cw->chatman->ColorFg()[1]; 
    482     cw->fore_color->blue = 257 * cw->chatman->ColorFg()[2]; 
     483    cw->r_fore_color->red = 257 * cw->chatman->ColorFg()[0]; 
     484    cw->r_fore_color->green = 257 * cw->chatman->ColorFg()[1]; 
     485    cw->r_fore_color->blue = 257 * cw->chatman->ColorFg()[2]; 
    483486 
    484487    ICQUser *u = gUserManager.FetchUser(uin, LOCK_R); 
     
    531534    /* Create the local frame with local text box */ 
    532535    ICQOwner *o = gUserManager.FetchOwner(LOCK_R); 
    533     cw->frame_local = gtk_frame_new(g_strdup_printf("Local - %s", 
    534                     o->GetAlias())); 
     536 
     537    gchar *forLFrame = g_strdup_printf("Local - %s", o->GetAlias()); 
     538    cw->frame_local = gtk_frame_new(forLFrame); 
     539    g_free(forLFrame); 
    535540    gUserManager.DropUser(o); 
     541 
    536542    cw->text_local = gtk_text_new(NULL, NULL); 
    537543    gtk_text_set_editable(GTK_TEXT(cw->text_local), TRUE); 
     
    613619            { "/Chat/_Audio", "<control>A", 
    614620          GtkItemFactoryCallback(chat_audio), 0, "<ToggleItem>" }, 
     621//      { "/Chat/_Kick", "<control>K", 
     622//        GtkItemFactoryCallback(chat_kick), 0, NULL}, 
     623//      { "/Chat/Kick _No Vote", "<control>N", 
     624//        GtkItemFactoryCallback(chat_kick_no_vote), 0, NULL}, 
     625        { "/Chat/_Save", "<control>S", 
     626          GtkItemFactoryCallback(chat_save), 0, NULL}, 
    615627            { "/Chat/sep1",    NULL,     NULL, 0, "<Separator>" }, 
    616628            { "/Chat/_Close",  "<control>C", 
     
    619631        { "/More/_Beep",   "<control>B", 
    620632          GtkItemFactoryCallback(chat_beep_users), 0, NULL}, 
    621         { "/More/Change Font", NULL, 
    622            GtkItemFactoryCallback(chat_change_font), 0, NULL}, 
     633//      { "/More/Change Font", NULL, 
     634//         GtkItemFactoryCallback(chat_change_font), 0, NULL}, 
    623635    }; 
    624636 
     
    646658void chat_audio(gpointer cw, guint action, GtkWidget *widget) 
    647659{ 
    648     if(((struct chat_window *)cw)->audio) 
    649         ((struct chat_window *)cw)->audio = FALSE; 
    650     else 
    651         ((struct chat_window *)cw)->audio = TRUE; 
     660    ((struct chat_window *)cw)->audio = !((struct chat_window *)cw)->audio; 
     661} 
     662 
     663void start_kick_window(struct chat_window *cw) 
     664{ 
     665    cw->kw = g_new0(struct kick_window, 1); 
     666 
     667    // Make a window to get the user to kick.  Then create a "tally" window 
     668    // to keep a tally of the voting. 
     669    cw->kw->winKick = gtk_window_new(GTK_WINDOW_DIALOG); 
     670    gtk_window_set_title(GTK_WINDOW(cw->kw->winKick), "Kick User"); 
     671 
     672    cw->kw->cmbUsers = gtk_combo_new(); 
     673    GList *users = NULL; 
     674 
     675    list<CChatUser *>::iterator iter; 
     676    for(iter = cw->ChatUsers.begin(); iter != cw->ChatUsers.end(); iter++) 
     677    { 
     678        gchar *temp = g_strdup_printf("%s (%ld)", (*iter)->Name(), 
     679            (*iter)->Uin()); 
     680        g_list_append(users, temp); 
     681        g_free(temp); 
     682    } 
     683 
     684    gtk_combo_set_popdown_strings(GTK_COMBO(cw->kw->cmbUsers), users); 
     685 
     686    gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(cw->kw->cmbUsers)->entry), false); 
     687 
     688    cw->kw->btnKick = gtk_button_new_with_label("Kick"); 
     689    GtkWidget *btnCancel = gtk_button_new_with_label("Cancel"); 
     690 
     691    // Leave the "clicked" signal for btnKick to each function 
     692    // since it varies 
     693    gtk_signal_connect(GTK_OBJECT(btnCancel), "clicked", 
     694        GTK_SIGNAL_FUNC(dialog_close), cw->kw->winKick); 
     695    gtk_signal_connect(GTK_OBJECT(cw->kw->winKick), "destroy", 
     696        GTK_SIGNAL_FUNC(dialog_close), cw->kw->winKick); 
     697 
     698    GtkWidget *tblTable = gtk_table_new(2, 2, false); 
     699    gtk_container_add(GTK_CONTAINER(cw->kw->winKick), tblTable); 
     700 
     701    // Label for the combo 
     702    GtkWidget *lblLabel = gtk_label_new("User:"); 
     703    gtk_table_attach(GTK_TABLE(tblTable), lblLabel, 0, 1, 0, 1, 
     704        GtkAttachOptions(GTK_EXPAND | GTK_FILL), 
     705        GtkAttachOptions(GTK_EXPAND | GTK_FILL), 3, 3); 
     706 
     707    // Attach the combo, and then the 2 buttons that are in a hbox 
     708    gtk_table_attach(GTK_TABLE(tblTable), cw->kw->cmbUsers, 1, 2, 0, 1, 
     709        GtkAttachOptions(GTK_EXPAND | GTK_FILL), 
     710        GtkAttachOptions(GTK_EXPAND | GTK_FILL), 3, 3); 
     711 
     712    GtkWidget *boxButtons = gtk_hbox_new(true, 0); 
     713    gtk_box_pack_start(GTK_BOX(boxButtons), cw->kw->btnKick, true, true, 5); 
     714    gtk_box_pack_start(GTK_BOX(boxButtons), btnCancel, true, true, 5); 
     715     
     716    gtk_table_attach(GTK_TABLE(tblTable), boxButtons, 0, 1, 1, 2, 
     717        GtkAttachOptions(GTK_EXPAND | GTK_FILL), 
     718        GtkAttachOptions(GTK_EXPAND | GTK_FILL), 3, 3); 
     719 
     720} 
     721 
     722void chat_kick(gpointer _cw, guint action, GtkWidget *widget) 
     723{ 
     724    struct chat_window *cw = (struct chat_window *)_cw; 
     725    start_kick_window(cw); 
     726     
     727    gtk_signal_connect(GTK_OBJECT(cw->kw->btnKick), "clicked", 
     728        GTK_SIGNAL_FUNC(kick_callback), (gpointer)cw); 
     729 
     730    gtk_widget_show_all(cw->kw->winKick); 
     731} 
     732 
     733unsigned long start_kick_callback(struct chat_window *cw) 
     734{ 
     735    // Get their UIN and vote to kick them 
     736    gchar *toKick = gtk_editable_get_chars(GTK_EDITABLE(cw->kw->cmbUsers), 
     737        0, -1); 
     738    g_strreverse(toKick); 
     739 
     740    // The '(' 
     741    toKick++; 
     742 
     743    // Stop at the ')' 
     744    char *stop = ")"; 
     745    unsigned long Uin = strtoul(toKick, &stop, 10); 
     746    return Uin; 
     747} 
     748 
     749void kick_callback(GtkWidget *widget, gpointer _cw) 
     750{ 
     751    struct chat_window *cw = (struct chat_window *)_cw; 
     752    unsigned long Uin = start_kick_callback(cw);     
     753 
     754    cw->chatman->SendKick(Uin); 
     755 
     756    // Close the kick window 
     757    gtk_widget_destroy(cw->kw->winKick); 
     758 
     759    // Create a tally window 
     760} 
     761 
     762void chat_kick_no_vote(gpointer _cw, guint action, GtkWidget *widget) 
     763{ 
     764    struct chat_window *cw = (struct chat_window *)_cw; 
     765    start_kick_window(cw); 
     766 
     767    gtk_signal_connect(GTK_OBJECT(cw->kw->btnKick), "clicked", 
     768        GTK_SIGNAL_FUNC(kick_no_vote_callback), (gpointer)cw); 
     769 
     770    gtk_widget_show_all(cw->kw->winKick); 
     771} 
     772 
     773void kick_no_vote_callback(GtkWidget *widget, gpointer _cw) 
     774{ 
     775    struct chat_window *cw = (struct chat_window *)_cw; 
     776    unsigned long Uin = start_kick_callback(cw); 
     777 
     778    cw->chatman->SendKickNoVote(Uin); 
     779 
     780    // Close the kick window 
     781    gtk_widget_destroy(cw->kw->winKick); 
     782 
     783    // Create the tally window 
     784} 
     785 
     786void chat_save(gpointer _cw, guint action, GtkWidget *widget) 
     787{ 
     788    struct chat_window *cw = (struct chat_window *)_cw;  
     789 
     790    GtkWidget *dlg_save_chat = gtk_file_selection_new("Licq - Save Chat"); 
     791 
     792    // Connect the signals 
     793    gtk_signal_connect( 
     794        GTK_OBJECT(GTK_FILE_SELECTION(dlg_save_chat)->ok_button), 
     795        "clicked", GTK_SIGNAL_FUNC(save_chat_ok), 
     796        _cw); 
     797    gtk_signal_connect( 
     798        GTK_OBJECT(GTK_FILE_SELECTION(dlg_save_chat)->cancel_button), 
     799        "clicked", GTK_SIGNAL_FUNC(save_chat_cancel), 
     800        NULL); 
     801    gtk_signal_connect(GTK_OBJECT(dlg_save_chat), "delete_event", 
     802        GTK_SIGNAL_FUNC(save_chat_cancel), NULL); 
     803 
     804    gtk_widget_show_all(dlg_save_chat); 
     805} 
     806 
     807void save_chat_ok(GtkWidget *widget, gpointer _cw) 
     808{ 
     809    struct chat_window *cw = (struct chat_window *)_cw; 
     810} 
     811 
     812void save_chat_cancel(GtkWidget *widget, gpointer data) 
     813{ 
    652814} 
    653815 
     
    671833    } 
    672834 
     835    // We are unwanted now 
    673836    if(cw->chatman->ConnectedUsers() == 0) 
     837    { 
     838        // XXX Ask if the user wants to save the chat should go here 
    674839        gtk_widget_destroy(cw->window); 
     840        delete cw->r_back_color; 
     841        delete cw->r_fore_color; 
     842        delete cw->l_back_color; 
     843        delete cw->l_fore_color; 
     844    } 
    675845} 
    676846 
     
    694864            case CHAT_DISCONNECTION: 
    695865            { 
    696                 message_box(g_strdup_printf("%s closed " 
    697                     "connection", user->Name())); 
     866//              list<CChatUser *>::iterator iter; 
     867//              for(iter = cw->ChatUsers.begin(); 
     868//                  iter != cw->ChatUsers.end(); ++iter) 
     869//              { 
     870//                if((*iter)->Uin() == user->Uin()) 
     871//                  cw->ChatUsers.erase(iter); 
     872//              } 
     873 
     874                gchar *temp = g_strdup_printf("%s closed " 
     875                    "connection", user->Name()); 
     876                message_box(temp); 
     877                g_free(temp); 
     878 
    698879                chat_close((gpointer)cw, 0, NULL); 
    699880                break; 
    700881            } 
    701882 
     883            case CHAT_DISCONNECTIONxKICKED: 
     884            { 
     885//              list<CChatUser *>::iterator iter; 
     886//              for(iter = cw->ChatUsers.begin(); 
     887//                  iter != cw->ChatUsers.end(); ++iter) 
     888//              { 
     889//                  if((*iter)->Uin() == user->Uin()) 
     890//                      cw->ChatUsers.erase(iter); 
     891//              } 
     892 
     893                gchar *temp = g_strdup_printf("%s was kicked", 
     894                    user->Name()); 
     895                message_box(temp); 
     896                g_free(temp); 
     897 
     898                chat_close((gpointer)cw, 0, NULL); 
     899                break; 
     900            } 
     901 
     902            case CHAT_KICKxYOU: 
     903            { 
     904                gchar *temp = g_strdup_printf("You have been kicked!"); 
     905                message_box(temp); 
     906                g_free(temp); 
     907 
     908                break; 
     909            } 
     910 
    702911            case CHAT_CONNECTION: 
    703912            { 
     913//              cw->ChatUsers.push_back(user); 
    704914                gchar *filler[1];  
    705915                filler[0] = const_cast<char *>(user->Name()); 
     
    722932                } 
    723933 
     934                gchar *temp = g_strdup_printf("Remote - %s", 
     935                    user->Name()); 
    724936                gtk_frame_set_label( 
    725                     GTK_FRAME(cw->frame_remote), 
    726                     g_strdup_printf("Remote - %s", 
    727                             user->Name())); 
     937                    GTK_FRAME(cw->frame_remote), temp); 
     938                g_free(temp); 
    728939 
    729940                /* Get their back color */ 
    730                 cw->back_color->red = 257 * user->ColorBg()[0]; 
    731                 cw->back_color->green = 257 * user->ColorBg()[1]; 
    732                 cw->back_color->blue = 257 * user->ColorBg()[2]; 
     941                cw->r_back_color->red = 
     942                    257 * user->ColorBg()[0]; 
     943                cw->r_back_color->green = 
     944                    257 * user->ColorBg()[1]; 
     945                cw->r_back_color->blue = 
     946                    257 * user->ColorBg()[2]; 
    733947                 
    734948                /* Get their fore color */ 
    735                 cw->fore_color->red = 257 * user->ColorFg()[0]; 
    736                 cw->fore_color->green = 257 * user->ColorFg()[1]; 
    737                 cw->fore_color->blue = 257 * user->ColorFg()[2]; 
     949                cw->r_fore_color->red = 
     950                    257 * user->ColorFg()[0]; 
     951                cw->r_fore_color->green = 
     952                    257 * user->ColorFg()[1]; 
     953                cw->r_fore_color->blue = 
     954                    257 * user->ColorFg()[2]; 
    738955 
    739956                break; 
     
    750967 
    751968                /* Add it to the irc view */ 
     969                gchar *temp = g_strdup_printf("%s> ", 
     970                    user->Name()); 
    752971                gtk_text_insert(GTK_TEXT(cw->text_irc), 
    753                         cw->font_remote, 
    754                         cw->fore_color, 
    755                         cw->back_color, 
    756                         g_strdup_printf("%s> ", 
    757                             user->Name()), 
    758                         -1); 
     972                        cw->r_font, 
     973                        cw->r_fore_color, 
     974                        cw->r_back_color, 
     975                        temp, -1); 
     976                g_free(temp); 
     977 
     978                temp = g_strdup_printf("%s\n", e->Data()); 
    759979                gtk_text_insert(GTK_TEXT(cw->text_irc), 
    760                         cw->font_remote, 
    761                         cw->fore_color, 
    762                         cw->back_color, 
    763                         g_strdup_printf("%s\n", 
    764                             e->Data()), 
    765                         -1); 
     980                        cw->r_font, 
     981                        cw->r_fore_color, 
     982                        cw->r_back_color, 
     983                        temp, -1); 
     984                g_free(temp); 
    766985                break; 
    767986            } 
     
    778997                        gtk_text_insert( 
    779998                            GTK_TEXT(cw->text_remote), 
    780                             cw->font_remote, 
    781                             cw->fore_color, 
    782                             cw->back_color, 
     999                            cw->r_font, 
     1000                            cw->r_fore_color, 
     1001                            cw->r_back_color, 
    7831002                            "<Beep Beep!>\n", 
    7841003                            -1); 
    7851004                     
     1005                    gchar *temp = g_strdup_printf( 
     1006                        "%s> <Beep Beep!>\n", 
     1007                        user->Name()); 
    7861008                    gtk_text_insert(GTK_TEXT(cw->text_irc), 
    7871009                            0, 0, 0, 
    788                             "<Beep Beep!>\n", 
    789                             -1); 
     1010                            temp, -1); 
     1011                    g_free(temp); 
    7901012                } 
    7911013 
     1014                break; 
     1015            } 
     1016 
     1017            case CHAT_LAUGH: 
     1018            { 
    7921019                break; 
    7931020            } 
     
    8101037                { 
    8111038                    gtk_text_insert(GTK_TEXT(cw->text_remote), 
    812                             cw->font_remote, 
    813                             cw->fore_color, 
    814                             cw->back_color, 
     1039                            cw->r_font, 
     1040                            cw->r_fore_color, 
     1041                            cw->r_back_color, 
    8151042                            e->Data(), -1); 
    8161043                } 
     
    8231050                if(user == cw->chat_user) 
    8241051                { 
    825                     cw->fore_color->red = 
     1052                    cw->r_fore_color->red = 
    8261053                        257 * user->ColorFg()[0]; 
    827                     cw->fore_color->green = 
     1054                    cw->r_fore_color->green = 
    8281055                        257 * user->ColorFg()[1]; 
    829                     cw->fore_color->blue = 
     1056                    cw->r_fore_color->blue = 
    8301057                        257 * user->ColorFg()[2]; 
    8311058                } 
     
    8381065                if(user == cw->chat_user) 
    8391066                { 
    840                     cw->back_color->red = 
     1067                    cw->r_back_color->red = 
    8411068                        257 * user->ColorBg()[0]; 
    842                     cw->back_color->green = 
     1069                    cw->r_back_color->green = 
    8431070                        257 * user->ColorBg()[1]; 
    844                     cw->back_color->blue = 
     1071                    cw->r_back_color->blue = 
    8451072                        257 * user->ColorBg()[2]; 
    8461073                } 
     
    8511078            case CHAT_FONTxFAMILY: 
    8521079            { 
    853                 strcpy(cw->font_name, user->FontFamily()); 
    854                 cw->font_remote = gdk_font_load( 
    855                     g_strdup_printf("-*-%s-%s-%c-normal--*-%d-*-*-*-*-iso8859-1", 
    856                     cw->font_name, 
    857                     cw->remote_bold ? "bold" : "medium", 
    858                     cw->remote_italic ? 'i' : 'r', 
    859                     cw->font_size)); 
     1080                strncpy(cw->r_font_name, user->FontFamily(), 50); 
     1081                gchar *temp = g_strdup_printf( 
     1082                    "-*-%s-%s-%c-normal--*-%d-*-*-*-*-iso8859-1", 
     1083                    cw->r_font_name, 
     1084                    cw->r_bold ? "bold" : "medium", 
     1085                    cw->r_italic ? 'i' : 'r', 
     1086                    cw->r_font_size); 
     1087                cw->r_font = gdk_font_load(temp); 
     1088                g_free(temp); 
    8601089 
    8611090                break; 
     
    8661095                if(user == cw->chat_user) 
    8671096                { 
    868                 user->FontBold() ? cw->remote_bold = TRUE : 
    869                            cw->remote_bold = FALSE; 
    870                 user->FontItalic() ? cw->remote_italic = TRUE 
    871                          : cw->remote_italic = FALSE; 
     1097                  user->FontBold() ? cw->r_bold = TRUE : 
     1098                    cw->r_bold = FALSE; 
     1099                  user->FontItalic() ? cw->r_italic = TRUE : 
     1100                    cw->r_italic = FALSE; 
    8721101                 
    873                 cw->font_remote = gdk_font_load( 
    874                         g_strdup_printf( 
    875                         "-*-%s-%s-%c-normal--*-%d-*-*-*-*-iso8859-1", 
    876                         cw->font_name, 
    877                         cw->remote_bold ? "bold" : "medium", 
    878                         cw->remote_italic ? 'i' : 'r', 
    879                         cw->font_size)); 
     1102                  gchar *temp = g_strdup_printf( 
     1103                      "-*-%s-%s-%c-normal--*-%d-*-*-*-*-iso8859-1", 
     1104                      cw->r_font_name, 
     1105                      cw->r_bold ? "bold" : "medium", 
     1106                      cw->r_italic ? 'i' : 'r', 
     1107                      cw->r_font_size); 
     1108                  cw->r_font = gdk_font_load(temp); 
     1109                  g_free(temp); 
    8801110                } 
    8811111                 
     
    8871117                if(user == cw->chat_user) 
    8881118                { 
    889                 cw->font_size = 10 * user->FontSize(); 
    890                 cw->font_remote = gdk_font_load( 
    891                     g_strdup_printf("-*-%s-%s-%c-normal--*-%d-*-*-*-*-iso8859-1", 
    892                     cw->font_name, 
    893                     cw->remote_bold ? "bold" : "medium", 
    894                     cw->remote_italic ? 'i' : 'r', 
    895                     cw->font_size)); 
     1119                  cw->r_font_size = 10 * user->FontSize(); 
     1120                   
     1121                  gchar *temp = g_strdup_printf("-*-%s-%s-%c-normal--*-%d-*-*-*-*-iso8859-1", 
     1122                    cw->r_font_name, 
     1123                    cw->r_bold ? "bold" : "medium", 
     1124                    cw->r_italic ? 'i' : 'r', 
     1125                    cw->r_font_size); 
     1126                  cw->r_font = gdk_font_load(temp); 
     1127                  g_free(temp); 
    8961128                } 
    8971129 
    8981130                break; 
    8991131            } 
     1132 
     1133            case CHAT_FOCUSxOUT: 
     1134            { 
     1135                if(user == cw->chat_user) 
     1136                { 
     1137                    gchar *new_text = 
     1138                        g_strdup_printf( 
     1139                            "Remote - %s - Away", 
     1140                            user->Name()); 
     1141                    gtk_frame_set_label(GTK_FRAME( 
     1142                        cw->frame_remote), new_text); 
     1143                    g_free(new_text); 
     1144                } 
     1145 
     1146                break; 
     1147            }    
     1148 
     1149            case CHAT_FOCUSxIN: 
     1150            { 
     1151                if(user == cw->chat_user) 
     1152                { 
     1153                    gchar *new_text = 
     1154                        g_strdup_printf( 
     1155                            "Remote - %s", 
     1156                            user->Name()); 
     1157                    gtk_frame_set_label(GTK_FRAME( 
     1158                        cw->frame_remote), new_text); 
     1159                    g_free(new_text); 
     1160                } 
     1161 
     1162                break; 
     1163            } 
     1164 
     1165            case CHAT_SLEEPxON: 
     1166            { 
     1167                if(user == cw->chat_user) 
     1168                { 
     1169                    gchar *new_text = 
     1170                        g_strdup_printf( 
     1171                            "Remote - %s - Sleep", 
     1172                            user->Name()); 
     1173                    gtk_frame_set_label(GTK_FRAME( 
     1174                        cw->frame_remote), new_text); 
     1175                    g_free(new_text); 
     1176                } 
     1177 
     1178                break; 
     1179            } 
     1180 
     1181            case CHAT_SLEEPxOFF: 
     1182            { 
     1183                if(user == cw->chat_user) 
     1184                { 
     1185                    gchar *new_text = 
     1186                        g_strdup_printf( 
     1187                            "Remote - %s", 
     1188                            user->Name()); 
     1189                    gtk_frame_set_label(GTK_FRAME( 
     1190                        cw->frame_remote), new_text); 
     1191                    g_free(new_text); 
     1192                } 
     1193 
     1194                break; 
     1195      &nbs