Changeset 3351 for trunk/jons-gtk2-gui
- Timestamp:
- 03/12/03 00:40:52 (6 years ago)
- Files:
-
- 1 modified
-
trunk/jons-gtk2-gui/src/convo.cpp (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/jons-gtk2-gui/src/convo.cpp
r3324 r3351 40 40 GtkWidget *send_urgent; 41 41 GtkWidget *send_list; 42 GtkWidget *progress;43 42 GdkColor *clrFore; 44 43 GdkColor *clrBack; 45 gchar prog_buf[60];46 44 gchar *for_user; 47 45 ICQUser *user; … … 56 54 void convo_show(conversation *); 57 55 void convo_nick_timestamp(GtkWidget *, const char *, time_t, GdkColor *); 58 void convo_send(GtkWidget *, gpointer);56 void convo_send(GtkWidget *, conversation *c); 59 57 gboolean key_press_convo(GtkWidget *, GdkEventKey *, gpointer); 60 58 void verify_convo_send(GtkWidget *, guint, gchar *, conversation *); … … 206 204 button_box = gtk_hbox_new(FALSE, 0); 207 205 /* 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); 212 208 213 209 /* Make new buttons with labels */ … … 219 215 G_CALLBACK(convo_close_or_cancel), c); 220 216 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); 224 220 GtkWidget *bbox = gtk_hbox_new(TRUE, 0); 225 221 gtk_box_pack_start(GTK_BOX(bbox), c->close_or_cancel, TRUE, TRUE, 5); … … 251 247 G_CALLBACK(convo_delete), c); 252 248 253 /* More e_tag_data stuff */254 c->etag->statusbar = c->progress;255 strcpy(c->etag->buf, c->prog_buf);256 257 249 gtk_widget_show_all(c->window); 258 250 gtk_button_set_label(GTK_BUTTON(c->close_or_cancel), GTK_STOCK_CLOSE); 259 260 251 } 261 252 262 253 gboolean key_press_convo(GtkWidget *entry, GdkEventKey *eventkey, gpointer data) 263 254 { 264 if(eventkey->keyval == GDK_Return) 265 { 255 if (eventkey->keyval == GDK_Return) { 266 256 conversation *c = (conversation *)data; 267 257 guint state = eventkey->state; … … 270 260 // - enter_sends is true and plain Enter was presses 271 261 // - 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); 276 265 return TRUE; 277 266 } … … 318 307 } 319 308 320 void convo_send(GtkWidget *widget, gpointer _c) 321 { 322 conversation *c = (conversation *)_c; 323 309 void convo_send(GtkWidget *widget, conversation *c) 310 { 324 311 /* Set the 2 button widgets */ 325 312 if(GTK_WIDGET_IS_SENSITIVE(c->send)) … … 349 336 urgent = TRUE; 350 337 351 strcpy(c-> prog_buf, "Sending message ");338 strcpy(c->etag->buf, "Sending message "); 352 339 353 340 if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(c->send_server))) 354 strcat(c-> prog_buf, "directly ... ");341 strcat(c->etag->buf, "directly ... "); 355 342 else 356 strcat(c-> prog_buf, "through server ... ");343 strcat(c->etag->buf, "through server ... "); 357 344 358 345 /* Send the message */ … … 380 367 } 381 368 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 387 369 /* 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); 389 371 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 else402 {403 gtk_widget_set_sensitive(c->send, TRUE);404 toggle_close_cancel(c, 1);405 }406 372 } 407 373 … … 417 383 /* Remove the event from the slist */ 418 384 catcher = g_slist_remove(catcher, c->etag); 385 386 c->etag->buf[0] = '\0'; 387 status_change(c->etag->statusbar, "sta", c->etag->buf); 419 388 } 420 389 … … 601 570 602 571 /* If the window isn't open, there isn't anything left to do */ 603 if (c == 0)572 if (c == 0) 604 573 return; 605 574 606 575 /* 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) { 611 577 ICQOwner *owner = gUserManager.FetchOwner(LOCK_R); 612 578 const gchar *name = owner->GetAlias(); … … 623 589 gtk_text_buffer_insert(tb, &iter, c->for_user, -1); 624 590 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
