Changeset 3351 for trunk/jons-gtk2-gui

Show
Ignore:
Timestamp:
03/12/03 00:40:52 (6 years ago)
Author:
bostjanlah
Message:

Make status empty after Cancel
A few other minor changes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/jons-gtk2-gui/src/convo.cpp

    r3324 r3351  
    4040    GtkWidget *send_urgent; 
    4141    GtkWidget *send_list; 
    42     GtkWidget *progress; 
    4342    GdkColor *clrFore; 
    4443    GdkColor *clrBack; 
    45     gchar prog_buf[60]; 
    4644    gchar *for_user; 
    4745    ICQUser *user; 
     
    5654void convo_show(conversation *); 
    5755void convo_nick_timestamp(GtkWidget *, const char *, time_t, GdkColor *); 
    58 void convo_send(GtkWidget *, gpointer); 
     56void convo_send(GtkWidget *, conversation *c); 
    5957gboolean key_press_convo(GtkWidget *, GdkEventKey *, gpointer); 
    6058void verify_convo_send(GtkWidget *, guint, gchar *, conversation *); 
     
    206204    button_box = gtk_hbox_new(FALSE, 0); 
    207205    /* Progress of message */ 
    208     c->progress = gtk_statusbar_new(); 
    209     g_signal_connect(G_OBJECT(c->progress), "text-pushed", 
    210                G_CALLBACK(verify_convo_send), c); 
    211     gtk_widget_set_size_request(c->progress, 300, -1);  
     206    c->etag->statusbar = gtk_statusbar_new(); 
     207    gtk_widget_set_size_request(c->etag->statusbar, 300, -1);  
    212208     
    213209    /* Make new buttons with labels */ 
     
    219215               G_CALLBACK(convo_close_or_cancel), c); 
    220216    g_signal_connect(G_OBJECT(c->send), "clicked", 
    221                G_CALLBACK(convo_send), (gpointer)c); 
    222      
    223     gtk_box_pack_start(GTK_BOX(button_box), c->progress, TRUE, TRUE, 5); 
     217               G_CALLBACK(convo_send), c); 
     218     
     219    gtk_box_pack_start(GTK_BOX(button_box), c->etag->statusbar, TRUE, TRUE, 5); 
    224220    GtkWidget *bbox = gtk_hbox_new(TRUE, 0); 
    225221    gtk_box_pack_start(GTK_BOX(bbox), c->close_or_cancel, TRUE, TRUE, 5); 
     
    251247            G_CALLBACK(convo_delete), c); 
    252248     
    253     /* More e_tag_data stuff */ 
    254     c->etag->statusbar = c->progress; 
    255     strcpy(c->etag->buf, c->prog_buf); 
    256  
    257249    gtk_widget_show_all(c->window); 
    258250    gtk_button_set_label(GTK_BUTTON(c->close_or_cancel), GTK_STOCK_CLOSE); 
    259      
    260251} 
    261252 
    262253gboolean key_press_convo(GtkWidget *entry, GdkEventKey *eventkey, gpointer data) 
    263254{ 
    264     if(eventkey->keyval == GDK_Return) 
    265     { 
     255    if (eventkey->keyval == GDK_Return) { 
    266256        conversation *c = (conversation *)data; 
    267257        guint state = eventkey->state; 
     
    270260        // - enter_sends is true and plain Enter was presses 
    271261        // - enter_sends is false and Shift/Ctrl+Enter was pressed 
    272         if((!enter_sends && (state & GDK_SHIFT_MASK)) || 
    273                 (enter_sends && !(state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)))) 
    274         { 
    275             convo_send(0, (gpointer)c); 
     262        if ((!enter_sends && (state & GDK_SHIFT_MASK)) || 
     263                (enter_sends && !(state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)))) { 
     264            convo_send(0, c); 
    276265            return TRUE; 
    277266        } 
     
    318307} 
    319308 
    320 void convo_send(GtkWidget *widget, gpointer _c) 
    321 { 
    322     conversation *c = (conversation *)_c; 
    323  
     309void convo_send(GtkWidget *widget, conversation *c) 
     310{ 
    324311    /* Set the 2 button widgets */ 
    325312    if(GTK_WIDGET_IS_SENSITIVE(c->send)) 
     
    349336        urgent = TRUE; 
    350337 
    351     strcpy(c->prog_buf, "Sending message "); 
     338    strcpy(c->etag->buf, "Sending message "); 
    352339 
    353340    if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->send_server))) 
    354         strcat(c->prog_buf, "directly ... "); 
     341        strcat(c->etag->buf, "directly ... "); 
    355342    else 
    356         strcat(c->prog_buf, "through server ... "); 
     343        strcat(c->etag->buf, "through server ... "); 
    357344 
    358345    /* Send the message */ 
     
    380367    } 
    381368 
    382     guint id = gtk_statusbar_get_context_id(GTK_STATUSBAR(c->progress), 
    383                         "prog"); 
    384     gtk_statusbar_pop(GTK_STATUSBAR(c->progress), id); 
    385     gtk_statusbar_push(GTK_STATUSBAR(c->progress), id, c->prog_buf); 
    386    
    387369    /* Take care of the etd buffer and add it to the slist */ 
    388     memcpy(c->etag->buf, c->prog_buf, 60); 
     370    status_change(c->etag->statusbar, "sta", c->etag->buf); 
    389371    catcher = g_slist_append(catcher, c->etag); 
    390 } 
    391  
    392 void verify_convo_send(GtkWidget *widget, guint id, gchar *text, 
    393                conversation *c) 
    394 { 
    395     gchar temp[60]; 
    396     strcpy(temp, text); 
    397     g_strreverse(temp); 
    398  
    399     if(strncmp(temp, " ...", 4) == 0) 
    400         return; 
    401     else 
    402     { 
    403         gtk_widget_set_sensitive(c->send, TRUE); 
    404         toggle_close_cancel(c, 1); 
    405     } 
    406372} 
    407373 
     
    417383    /* Remove the event from the slist */ 
    418384    catcher = g_slist_remove(catcher, c->etag); 
     385 
     386    c->etag->buf[0] = '\0'; 
     387    status_change(c->etag->statusbar, "sta", c->etag->buf); 
    419388} 
    420389 
     
    601570 
    602571    /* If the window isn't open, there isn't anything left to do */ 
    603     if(c == 0) 
     572    if (c == 0) 
    604573        return; 
    605574 
    606575    /* Check to make sure it sent, and if it did, put the text in */ 
    607     g_strreverse(c->etag->buf); 
    608  
    609     if(strncmp(c->etag->buf, "en", 2) == 0) 
    610     { 
     576    if (event->Result() == EVENT_ACKED || event->Result() == EVENT_SUCCESS) { 
    611577        ICQOwner *owner = gUserManager.FetchOwner(LOCK_R); 
    612578        const gchar *name = owner->GetAlias(); 
     
    623589        gtk_text_buffer_insert(tb, &iter, c->for_user, -1); 
    624590        scroll_to_the_end(c->text); 
    625     } 
    626 } 
    627  
     591 
     592        gtk_widget_set_sensitive(c->send, TRUE); 
     593        toggle_close_cancel(c, 1); 
     594    } 
     595} 
     596