| 333 { |
333 { |
| 334 PidginXmppConsole *console = data; |
334 PidginXmppConsole *console = data; |
| 335 const gchar *to; |
335 const gchar *to; |
| 336 char *stanza; |
336 char *stanza; |
| 337 |
337 |
| 338 to = gtk_entry_get_text(console->iq.to); |
338 to = gtk_editable_get_text(GTK_EDITABLE(console->iq.to)); |
| 339 stanza = g_strdup_printf( |
339 stanza = g_strdup_printf( |
| 340 "<iq %s%s%s id='console%x' type='%s'>", to && *to ? "to='" : "", |
340 "<iq %s%s%s id='console%x' type='%s'>", to && *to ? "to='" : "", |
| 341 to && *to ? to : "", to && *to ? "'" : "", g_random_int(), |
341 to && *to ? to : "", to && *to ? "'" : "", g_random_int(), |
| 342 gtk_combo_box_text_get_active_text(console->iq.type)); |
342 gtk_combo_box_text_get_active_text(console->iq.type)); |
| 343 load_text_and_set_caret(console, stanza, "</iq>"); |
343 load_text_and_set_caret(console, stanza, "</iq>"); |
| 344 gtk_widget_grab_focus(console->entry); |
344 gtk_widget_grab_focus(console->entry); |
| 345 g_free(stanza); |
345 g_free(stanza); |
| 346 |
346 |
| 347 /* Reset everything. */ |
347 /* Reset everything. */ |
| 348 gtk_entry_set_text(console->iq.to, ""); |
348 gtk_editable_set_text(GTK_EDITABLE(console->iq.to), ""); |
| 349 gtk_combo_box_set_active(GTK_COMBO_BOX(console->iq.type), 0); |
349 gtk_combo_box_set_active(GTK_COMBO_BOX(console->iq.type), 0); |
| 350 gtk_popover_popdown(console->iq.popover); |
350 gtk_popover_popdown(console->iq.popover); |
| 351 } |
351 } |
| 352 |
352 |
| 353 static void |
353 static void |
| 356 PidginXmppConsole *console = data; |
356 PidginXmppConsole *console = data; |
| 357 const gchar *to, *status, *priority; |
357 const gchar *to, *status, *priority; |
| 358 gchar *type, *show; |
358 gchar *type, *show; |
| 359 char *stanza; |
359 char *stanza; |
| 360 |
360 |
| 361 to = gtk_entry_get_text(console->presence.to); |
361 to = gtk_editable_get_text(GTK_EDITABLE(console->presence.to)); |
| 362 type = gtk_combo_box_text_get_active_text(console->presence.type); |
362 type = gtk_combo_box_text_get_active_text(console->presence.type); |
| 363 if (purple_strequal(type, "default")) { |
363 if (purple_strequal(type, "default")) { |
| 364 g_free(type); |
364 g_free(type); |
| 365 type = g_strdup(""); |
365 type = g_strdup(""); |
| 366 } |
366 } |
| 367 show = gtk_combo_box_text_get_active_text(console->presence.show); |
367 show = gtk_combo_box_text_get_active_text(console->presence.show); |
| 368 if (purple_strequal(show, "default")) { |
368 if (purple_strequal(show, "default")) { |
| 369 g_free(show); |
369 g_free(show); |
| 370 show = g_strdup(""); |
370 show = g_strdup(""); |
| 371 } |
371 } |
| 372 status = gtk_entry_get_text(console->presence.status); |
372 status = gtk_editable_get_text(GTK_EDITABLE(console->presence.status)); |
| 373 priority = gtk_entry_get_text(console->presence.priority); |
373 priority = gtk_editable_get_text(GTK_EDITABLE(console->presence.priority)); |
| 374 if (purple_strequal(priority, "0")) |
374 if (purple_strequal(priority, "0")) |
| 375 priority = ""; |
375 priority = ""; |
| 376 |
376 |
| 377 stanza = g_strdup_printf("<presence %s%s%s id='console%x' %s%s%s>" |
377 stanza = g_strdup_printf("<presence %s%s%s id='console%x' %s%s%s>" |
| 378 "%s%s%s%s%s%s%s%s%s", |
378 "%s%s%s%s%s%s%s%s%s", |
| 402 g_free(stanza); |
402 g_free(stanza); |
| 403 g_free(type); |
403 g_free(type); |
| 404 g_free(show); |
404 g_free(show); |
| 405 |
405 |
| 406 /* Reset everything. */ |
406 /* Reset everything. */ |
| 407 gtk_entry_set_text(console->presence.to, ""); |
407 gtk_editable_set_text(GTK_EDITABLE(console->presence.to), ""); |
| 408 gtk_combo_box_set_active(GTK_COMBO_BOX(console->presence.type), 0); |
408 gtk_combo_box_set_active(GTK_COMBO_BOX(console->presence.type), 0); |
| 409 gtk_combo_box_set_active(GTK_COMBO_BOX(console->presence.show), 0); |
409 gtk_combo_box_set_active(GTK_COMBO_BOX(console->presence.show), 0); |
| 410 gtk_entry_set_text(console->presence.status, ""); |
410 gtk_editable_set_text(GTK_EDITABLE(console->presence.status), ""); |
| 411 gtk_entry_set_text(console->presence.priority, "0"); |
411 gtk_editable_set_text(GTK_EDITABLE(console->presence.priority), "0"); |
| 412 gtk_popover_popdown(console->presence.popover); |
412 gtk_popover_popdown(console->presence.popover); |
| 413 } |
413 } |
| 414 |
414 |
| 415 static void |
415 static void |
| 416 message_clicked_cb(GtkWidget *w, gpointer data) |
416 message_clicked_cb(GtkWidget *w, gpointer data) |
| 417 { |
417 { |
| 418 PidginXmppConsole *console = data; |
418 PidginXmppConsole *console = data; |
| 419 const gchar *to, *body, *thread, *subject; |
419 const gchar *to, *body, *thread, *subject; |
| 420 char *stanza; |
420 char *stanza; |
| 421 |
421 |
| 422 to = gtk_entry_get_text(console->message.to); |
422 to = gtk_editable_get_text(GTK_EDITABLE(console->message.to)); |
| 423 body = gtk_entry_get_text(console->message.body); |
423 body = gtk_editable_get_text(GTK_EDITABLE(console->message.body)); |
| 424 thread = gtk_entry_get_text(console->message.thread); |
424 thread = gtk_editable_get_text(GTK_EDITABLE(console->message.thread)); |
| 425 subject = gtk_entry_get_text(console->message.subject); |
425 subject = gtk_editable_get_text(GTK_EDITABLE(console->message.subject)); |
| 426 |
426 |
| 427 stanza = g_strdup_printf( |
427 stanza = g_strdup_printf( |
| 428 "<message %s%s%s id='console%x' type='%s'>" |
428 "<message %s%s%s id='console%x' type='%s'>" |
| 429 "%s%s%s%s%s%s%s%s%s", |
429 "%s%s%s%s%s%s%s%s%s", |
| 430 |
430 |
| 444 load_text_and_set_caret(console, stanza, "</message>"); |
444 load_text_and_set_caret(console, stanza, "</message>"); |
| 445 gtk_widget_grab_focus(console->entry); |
445 gtk_widget_grab_focus(console->entry); |
| 446 g_free(stanza); |
446 g_free(stanza); |
| 447 |
447 |
| 448 /* Reset everything. */ |
448 /* Reset everything. */ |
| 449 gtk_entry_set_text(console->message.to, ""); |
449 gtk_editable_set_text(GTK_EDITABLE(console->message.to), ""); |
| 450 gtk_combo_box_set_active(GTK_COMBO_BOX(console->message.type), 0); |
450 gtk_combo_box_set_active(GTK_COMBO_BOX(console->message.type), 0); |
| 451 gtk_entry_set_text(console->message.body, ""); |
451 gtk_editable_set_text(GTK_EDITABLE(console->message.body), ""); |
| 452 gtk_entry_set_text(console->message.subject, "0"); |
452 gtk_editable_set_text(GTK_EDITABLE(console->message.subject), "0"); |
| 453 gtk_entry_set_text(console->message.thread, "0"); |
453 gtk_editable_set_text(GTK_EDITABLE(console->message.thread), "0"); |
| 454 gtk_popover_popdown(console->message.popover); |
454 gtk_popover_popdown(console->message.popover); |
| 455 } |
455 } |
| 456 |
456 |
| 457 static void |
457 static void |
| 458 dropdown_changed_cb(GtkComboBox *widget, gpointer data) { |
458 dropdown_changed_cb(GtkComboBox *widget, gpointer data) { |