pidgin/plugins/xmppconsole.c

branch
cpw.qulogic.gtk3
changeset 32424
be4a642b2d45
parent 31321
1fef3832cfa2
parent 32394
f883709bdba4
child 32438
dc8991868906
child 33120
f6f1a27ade72
equal deleted inserted replaced
31579:a0a4b018f9eb 32424:be4a642b2d45
272 GTK_STOCK_CANCEL, 272 GTK_STOCK_CANCEL,
273 GTK_RESPONSE_REJECT, 273 GTK_RESPONSE_REJECT,
274 GTK_STOCK_OK, 274 GTK_STOCK_OK,
275 GTK_RESPONSE_ACCEPT, 275 GTK_RESPONSE_ACCEPT,
276 NULL); 276 NULL);
277 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); 277 /* TODO: how to set no separator for GtkDialog in gtk+ 3.0... */
278 gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); 278 gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
279 gtk_container_set_border_width(GTK_CONTAINER(dialog), 12); 279 gtk_container_set_border_width(GTK_CONTAINER(dialog), 12);
280 #if GTK_CHECK_VERSION(2,14,0) 280 #if GTK_CHECK_VERSION(2,14,0)
281 vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); 281 vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
282 #else 282 #else
300 label = gtk_label_new("Type:"); 300 label = gtk_label_new("Type:");
301 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 301 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
302 302
303 gtk_size_group_add_widget(sg, label); 303 gtk_size_group_add_widget(sg, label);
304 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 304 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
305 type_combo = gtk_combo_box_new_text(); 305 type_combo = gtk_combo_box_text_new();
306 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "get"); 306 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "get");
307 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "set"); 307 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "set");
308 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "result"); 308 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "result");
309 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "error"); 309 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "error");
310 gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0); 310 gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0);
311 gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0); 311 gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0);
312 312
313 gtk_widget_show_all(vbox); 313 gtk_widget_show_all(vbox);
314 314
323 stanza = g_strdup_printf("<iq %s%s%s id='console%x' type='%s'></iq>", 323 stanza = g_strdup_printf("<iq %s%s%s id='console%x' type='%s'></iq>",
324 to && *to ? "to='" : "", 324 to && *to ? "to='" : "",
325 to && *to ? to : "", 325 to && *to ? to : "",
326 to && *to ? "'" : "", 326 to && *to ? "'" : "",
327 g_random_int(), 327 g_random_int(),
328 gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo))); 328 gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(type_combo)));
329 329
330 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry)); 330 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(console->entry));
331 gtk_text_buffer_set_text(buffer, stanza, -1); 331 gtk_text_buffer_set_text(buffer, stanza, -1);
332 gtk_text_buffer_get_iter_at_offset(buffer, &iter, strstr(stanza, "</iq>") - stanza); 332 gtk_text_buffer_get_iter_at_offset(buffer, &iter, strstr(stanza, "</iq>") - stanza);
333 gtk_text_buffer_place_cursor(buffer, &iter); 333 gtk_text_buffer_place_cursor(buffer, &iter);
360 GTK_STOCK_CANCEL, 360 GTK_STOCK_CANCEL,
361 GTK_RESPONSE_REJECT, 361 GTK_RESPONSE_REJECT,
362 GTK_STOCK_OK, 362 GTK_STOCK_OK,
363 GTK_RESPONSE_ACCEPT, 363 GTK_RESPONSE_ACCEPT,
364 NULL); 364 NULL);
365 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); 365
366 /* TODO: find a way to specify no separator for a dialog in gtk+ 3 */
367 /*gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);*/
366 gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); 368 gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
367 gtk_container_set_border_width(GTK_CONTAINER(dialog), 12); 369 gtk_container_set_border_width(GTK_CONTAINER(dialog), 12);
368 #if GTK_CHECK_VERSION(2,14,0) 370 #if GTK_CHECK_VERSION(2,14,0)
369 vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); 371 vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
370 #else 372 #else
387 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 389 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
388 label = gtk_label_new("Type:"); 390 label = gtk_label_new("Type:");
389 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 391 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
390 gtk_size_group_add_widget(sg, label); 392 gtk_size_group_add_widget(sg, label);
391 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 393 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
392 type_combo = gtk_combo_box_new_text(); 394 type_combo = gtk_combo_box_text_new();
393 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "default"); 395 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "default");
394 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "unavailable"); 396 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "unavailable");
395 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "subscribe"); 397 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "subscribe");
396 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "unsubscribe"); 398 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "unsubscribe");
397 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "subscribed"); 399 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "subscribed");
398 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "unsubscribed"); 400 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "unsubscribed");
399 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "probe"); 401 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "probe");
400 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "error"); 402 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "error");
401 gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0); 403 gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0);
402 gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0); 404 gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0);
403 405
404 hbox = gtk_hbox_new(FALSE, 3); 406 hbox = gtk_hbox_new(FALSE, 3);
405 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 407 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
406 label = gtk_label_new("Show:"); 408 label = gtk_label_new("Show:");
407 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 409 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
408 gtk_size_group_add_widget(sg, label); 410 gtk_size_group_add_widget(sg, label);
409 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 411 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
410 show_combo = gtk_combo_box_new_text(); 412 show_combo = gtk_combo_box_text_new();
411 gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "default"); 413 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(show_combo), "default");
412 gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "away"); 414 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(show_combo), "away");
413 gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "dnd"); 415 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(show_combo), "dnd");
414 gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "xa"); 416 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(show_combo), "xa");
415 gtk_combo_box_append_text(GTK_COMBO_BOX(show_combo), "chat"); 417 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(show_combo), "chat");
416 418
417 gtk_combo_box_set_active(GTK_COMBO_BOX(show_combo), 0); 419 gtk_combo_box_set_active(GTK_COMBO_BOX(show_combo), 0);
418 gtk_box_pack_start(GTK_BOX(hbox), show_combo, FALSE, FALSE, 0); 420 gtk_box_pack_start(GTK_BOX(hbox), show_combo, FALSE, FALSE, 0);
419 421
420 hbox = gtk_hbox_new(FALSE, 3); 422 hbox = gtk_hbox_new(FALSE, 3);
448 gtk_widget_destroy(dialog); 450 gtk_widget_destroy(dialog);
449 return; 451 return;
450 } 452 }
451 453
452 to = gtk_entry_get_text(GTK_ENTRY(to_entry)); 454 to = gtk_entry_get_text(GTK_ENTRY(to_entry));
453 type = gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo)); 455 type = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(type_combo));
454 if (!strcmp(type, "default")) 456 if (!strcmp(type, "default"))
455 type = ""; 457 type = "";
456 show = gtk_combo_box_get_active_text(GTK_COMBO_BOX(show_combo)); 458 show = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(show_combo));
457 if (!strcmp(show, "default")) 459 if (!strcmp(show, "default"))
458 show = ""; 460 show = "";
459 status = gtk_entry_get_text(GTK_ENTRY(status_entry)); 461 status = gtk_entry_get_text(GTK_ENTRY(status_entry));
460 priority = gtk_entry_get_text(GTK_ENTRY(priority_entry)); 462 priority = gtk_entry_get_text(GTK_ENTRY(priority_entry));
461 if (!strcmp(priority, "0")) 463 if (!strcmp(priority, "0"))
518 GTK_STOCK_CANCEL, 520 GTK_STOCK_CANCEL,
519 GTK_RESPONSE_REJECT, 521 GTK_RESPONSE_REJECT,
520 GTK_STOCK_OK, 522 GTK_STOCK_OK,
521 GTK_RESPONSE_ACCEPT, 523 GTK_RESPONSE_ACCEPT,
522 NULL); 524 NULL);
523 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); 525 /* TODO: find a way to create a dialog without separtor in gtk+ 3 */
526 /*gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);*/
524 gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); 527 gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
525 gtk_container_set_border_width(GTK_CONTAINER(dialog), 12); 528 gtk_container_set_border_width(GTK_CONTAINER(dialog), 12);
526 #if GTK_CHECK_VERSION(2,14,0) 529 #if GTK_CHECK_VERSION(2,14,0)
527 vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); 530 vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
528 #else 531 #else
545 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 548 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
546 label = gtk_label_new("Type:"); 549 label = gtk_label_new("Type:");
547 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 550 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
548 gtk_size_group_add_widget(sg, label); 551 gtk_size_group_add_widget(sg, label);
549 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 552 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
550 type_combo = gtk_combo_box_new_text(); 553 type_combo = gtk_combo_box_text_new();
551 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "chat"); 554 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "chat");
552 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "headline"); 555 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "headline");
553 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "groupchat"); 556 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "groupchat");
554 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "normal"); 557 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "normal");
555 gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), "error"); 558 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(type_combo), "error");
556 gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0); 559 gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0);
557 gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0); 560 gtk_box_pack_start(GTK_BOX(hbox), type_combo, FALSE, FALSE, 0);
558 561
559 hbox = gtk_hbox_new(FALSE, 3); 562 hbox = gtk_hbox_new(FALSE, 3);
560 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 563 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
611 614
612 *to ? "to='" : "", 615 *to ? "to='" : "",
613 *to ? to : "", 616 *to ? to : "",
614 *to ? "'" : "", 617 *to ? "'" : "",
615 g_random_int(), 618 g_random_int(),
616 gtk_combo_box_get_active_text(GTK_COMBO_BOX(type_combo)), 619 gtk_combo_box_text_get_active_text(
620 GTK_COMBO_BOX_TEXT(type_combo)),
617 621
618 *body ? "<body>" : "", 622 *body ? "<body>" : "",
619 *body ? body : "", 623 *body ? body : "",
620 *body ? "</body>" : "", 624 *body ? "</body>" : "",
621 625
641 signing_on_cb(PurpleConnection *gc) 645 signing_on_cb(PurpleConnection *gc)
642 { 646 {
643 if (!console) 647 if (!console)
644 return; 648 return;
645 649
646 gtk_combo_box_append_text(GTK_COMBO_BOX(console->dropdown), purple_account_get_username(gc->account)); 650 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(console->dropdown),
651 purple_account_get_username(gc->account));
647 console->accounts = g_list_append(console->accounts, gc); 652 console->accounts = g_list_append(console->accounts, gc);
648 console->count++; 653 console->count++;
649 654
650 if (console->count == 1) 655 if (console->count == 1)
651 console->gc = gc; 656 console->gc = gc;
672 } 677 }
673 678
674 if (l == NULL) 679 if (l == NULL)
675 return; 680 return;
676 681
677 gtk_combo_box_remove_text(GTK_COMBO_BOX(console->dropdown), i); 682 gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT(console->dropdown), i);
678 console->accounts = g_list_remove(console->accounts, gc); 683 console->accounts = g_list_remove(console->accounts, gc);
679 console->count--; 684 console->count--;
680 685
681 if (gc == console->gc) { 686 if (gc == console->gc) {
682 console->gc = NULL; 687 console->gc = NULL;
714 gtk_widget_destroy(console->window); 719 gtk_widget_destroy(console->window);
715 return TRUE; 720 return TRUE;
716 } 721 }
717 722
718 static void 723 static void
719 console_destroy(GtkObject *window, gpointer nul) 724 console_destroy(GtkWidget *window, gpointer nul)
720 { 725 {
721 g_list_free(console->accounts); 726 g_list_free(console->accounts);
722 g_free(console); 727 g_free(console);
723 console = NULL; 728 console = NULL;
724 } 729 }
729 PurpleAccount *account; 734 PurpleAccount *account;
730 735
731 if (!console) 736 if (!console)
732 return; 737 return;
733 738
734 account = purple_accounts_find(gtk_combo_box_get_active_text(GTK_COMBO_BOX(console->dropdown)), 739 account =
735 "prpl-jabber"); 740 purple_accounts_find(gtk_combo_box_text_get_active_text(
741 GTK_COMBO_BOX_TEXT(console->dropdown)), "prpl-jabber");
736 if (!account || !account->gc) 742 if (!account || !account->gc)
737 return; 743 return;
738 744
739 console->gc = account->gc; 745 console->gc = account->gc;
740 gtk_imhtml_clear(GTK_IMHTML(console->imhtml)); 746 gtk_imhtml_clear(GTK_IMHTML(console->imhtml));
765 console->hbox = gtk_hbox_new(FALSE, 3); 771 console->hbox = gtk_hbox_new(FALSE, 3);
766 gtk_box_pack_start(GTK_BOX(vbox), console->hbox, FALSE, FALSE, 0); 772 gtk_box_pack_start(GTK_BOX(vbox), console->hbox, FALSE, FALSE, 0);
767 label = gtk_label_new(_("Account: ")); 773 label = gtk_label_new(_("Account: "));
768 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); 774 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
769 gtk_box_pack_start(GTK_BOX(console->hbox), label, FALSE, FALSE, 0); 775 gtk_box_pack_start(GTK_BOX(console->hbox), label, FALSE, FALSE, 0);
770 console->dropdown = gtk_combo_box_new_text(); 776 console->dropdown = gtk_combo_box_text_new();
771 for (connections = purple_connections_get_all(); connections; connections = connections->next) { 777 for (connections = purple_connections_get_all(); connections; connections = connections->next) {
772 PurpleConnection *gc = connections->data; 778 PurpleConnection *gc = connections->data;
773 if (!strcmp(purple_account_get_protocol_id(purple_connection_get_account(gc)), "prpl-jabber")) { 779 if (!strcmp(purple_account_get_protocol_id(purple_connection_get_account(gc)), "prpl-jabber")) {
774 console->count++; 780 console->count++;
775 console->accounts = g_list_append(console->accounts, gc); 781 console->accounts = g_list_append(console->accounts, gc);
776 gtk_combo_box_append_text(GTK_COMBO_BOX(console->dropdown), 782 gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(console->dropdown),
777 purple_account_get_username(purple_connection_get_account(gc))); 783 purple_account_get_username(purple_connection_get_account(gc)));
778 if (!console->gc) 784 if (!console->gc)
779 console->gc = gc; 785 console->gc = gc;
780 } 786 }
781 } 787 }

mercurial