pidgin/gtkdialogs.c

branch
next.minor
changeset 29522
a5595d764a85
parent 28451
61249b08ac5f
child 29523
bb8115817984
equal deleted inserted replaced
29521:9a249c8d84a4 29522:a5595d764a85
45 #include "pidginstock.h" 45 #include "pidginstock.h"
46 46
47 static GList *dialogwindows = NULL; 47 static GList *dialogwindows = NULL;
48 48
49 static GtkWidget *about = NULL; 49 static GtkWidget *about = NULL;
50 static GtkWidget *buildinfo = NULL;
51 static GtkWidget *translator_info = NULL;
50 52
51 struct _PidginGroupMergeObject { 53 struct _PidginGroupMergeObject {
52 PurpleGroup* parent; 54 PurpleGroup* parent;
53 char *new_name; 55 char *new_name;
54 }; 56 };
348 gtk_widget_destroy(dialogwindows->data); 350 gtk_widget_destroy(dialogwindows->data);
349 dialogwindows = g_list_remove(dialogwindows, dialogwindows->data); 351 dialogwindows = g_list_remove(dialogwindows, dialogwindows->data);
350 } 352 }
351 } 353 }
352 354
355 static void destroy_translator_info(void)
356 {
357 if (translator_info != NULL)
358 gtk_widget_destroy(translator_info);
359 translator_info = NULL;
360 }
361
362 static void destroy_buildinfo(void)
363 {
364 if (buildinfo != NULL)
365 gtk_widget_destroy(buildinfo);
366 buildinfo = NULL;
367 }
368
353 static void destroy_about(void) 369 static void destroy_about(void)
354 { 370 {
355 if (about != NULL) 371 if (about != NULL)
356 gtk_widget_destroy(about); 372 gtk_widget_destroy(about);
357 about = NULL; 373 about = NULL;
506 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", 522 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
507 _("Retired Crazy Patch Writers")); 523 _("Retired Crazy Patch Writers"));
508 add_developers(str, retired_patch_writers); 524 add_developers(str, retired_patch_writers);
509 g_string_append(str, "<BR/>"); 525 g_string_append(str, "<BR/>");
510 526
511 /* Current Translators */ 527 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL);
512 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", 528 g_string_free(str, TRUE);
513 _("Current Translators")); 529
514 add_translators(str, translators); 530 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
515 g_string_append(str, "<BR/>"); 531 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
516 532
517 /* Past Translators */ 533 /* Close Button */
518 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", 534 button = pidgin_dialog_add_button(GTK_DIALOG(about), GTK_STOCK_CLOSE,
519 _("Past Translators")); 535 G_CALLBACK(destroy_about), about);
520 add_translators(str, past_translators); 536
521 g_string_append(str, "<BR/>"); 537 g_signal_connect(G_OBJECT(about), "destroy",
522 538 G_CALLBACK(destroy_about), G_OBJECT(about));
523 g_string_append_printf(str, "<FONT SIZE=\"4\">%s</FONT><br/>", _("Debugging Information")); 539
540 /* this makes the sizes not work? */
541 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
542 gtk_widget_grab_default(button);
543
544 /* Let's give'em something to talk about -- woah woah woah */
545 buddylist = pidgin_blist_get_default_gtk_blist();
546 if (buddylist)
547 gtk_window_set_transient_for(GTK_WINDOW(about),
548 GTK_WINDOW(buddylist->window));
549
550 gtk_widget_show_all(about);
551 gtk_window_present(GTK_WINDOW(about));
552 }
553
554 void pidgin_dialogs_buildinfo()
555 {
556 GtkWidget *vbox;
557 GtkWidget *frame;
558 GtkWidget *text;
559 GtkWidget *button;
560 GtkTextIter iter;
561 GString *str;
562 char *tmp;
563 PidginBuddyList *buddylist;
564
565 if (about != NULL) {
566 gtk_window_present(GTK_WINDOW(about));
567 return;
568 }
569
570 tmp = g_strdup_printf(_("%s Build Information"), PIDGIN_NAME);
571 buildinfo = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "buildinfo", TRUE);
572 g_free(tmp);
573 gtk_window_set_default_size(GTK_WINDOW(buildinfo), 450, 450);
574
575 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(buildinfo), FALSE, PIDGIN_HIG_BORDER);
576
577 frame = pidgin_create_imhtml(FALSE, &text, NULL, NULL);
578 gtk_imhtml_set_format_functions(GTK_IMHTML(text), GTK_IMHTML_ALL ^ GTK_IMHTML_SMILEY);
579 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
580
581 str = g_string_sized_new(4096);
582
583 g_string_append_printf(str,
584 "<FONT SIZE=\"4\"><B>%s %s</B></FONT>><BR>(libpurple %s)<BR>%s<BR><BR>", PIDGIN_NAME, DISPLAY_VERSION, purple_core_get_version(), REVISION);
585
586 g_string_append_printf(str, "<FONT SIZE=\"4\">%s</FONT><br/>", _("Build Information"));
524 587
525 /* The following primarly intented for user/developer interaction and thus 588 /* The following primarly intented for user/developer interaction and thus
526 ought not be translated */ 589 ought not be translated */
527 590
528 #ifdef CONFIG_ARGS /* win32 build doesn't use configure */ 591 #ifdef CONFIG_ARGS /* win32 build doesn't use configure */
696 759
697 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); 760 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
698 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); 761 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
699 762
700 /* Close Button */ 763 /* Close Button */
701 button = pidgin_dialog_add_button(GTK_DIALOG(about), GTK_STOCK_CLOSE, 764 button = pidgin_dialog_add_button(GTK_DIALOG(buildinfo), GTK_STOCK_CLOSE,
702 G_CALLBACK(destroy_about), about); 765 G_CALLBACK(destroy_buildinfo), about);
703 766
704 g_signal_connect(G_OBJECT(about), "destroy", 767 g_signal_connect(G_OBJECT(buildinfo), "destroy",
705 G_CALLBACK(destroy_about), G_OBJECT(about)); 768 G_CALLBACK(destroy_buildinfo), G_OBJECT(buildinfo));
706 769
707 /* this makes the sizes not work? */ 770 /* this makes the sizes not work? */
708 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); 771 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
709 gtk_widget_grab_default(button); 772 gtk_widget_grab_default(button);
710 773
711 /* Let's give'em something to talk about -- woah woah woah */ 774 /* Let's give'em something to talk about -- woah woah woah */
712 buddylist = pidgin_blist_get_default_gtk_blist(); 775 buddylist = pidgin_blist_get_default_gtk_blist();
713 if (buddylist) 776 if (buddylist)
714 gtk_window_set_transient_for(GTK_WINDOW(about), 777 gtk_window_set_transient_for(GTK_WINDOW(buildinfo),
715 GTK_WINDOW(buddylist->window)); 778 GTK_WINDOW(buddylist->window));
716 779
717 gtk_widget_show_all(about); 780 gtk_widget_show_all(buildinfo);
718 gtk_window_present(GTK_WINDOW(about)); 781 gtk_window_present(GTK_WINDOW(buildinfo));
782 }
783
784 void pidgin_dialogs_translators()
785 {
786 GtkWidget *vbox;
787 GtkWidget *frame;
788 GtkWidget *text;
789 GtkWidget *button;
790 GtkTextIter iter;
791 GString *str;
792 char *tmp;
793 PidginBuddyList *buddylist;
794
795 if (about != NULL) {
796 gtk_window_present(GTK_WINDOW(about));
797 return;
798 }
799
800 tmp = g_strdup_printf(_("%s Translator Information"), PIDGIN_NAME);
801 translator_info = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "translator_info", TRUE);
802 g_free(tmp);
803 gtk_window_set_default_size(GTK_WINDOW(translator_info), 450, 450);
804
805 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(translator_info), FALSE, PIDGIN_HIG_BORDER);
806
807 frame = pidgin_create_imhtml(FALSE, &text, NULL, NULL);
808 gtk_imhtml_set_format_functions(GTK_IMHTML(text), GTK_IMHTML_ALL ^ GTK_IMHTML_SMILEY);
809 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
810
811 str = g_string_sized_new(4096);
812
813 /* Current Translators */
814 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
815 _("Current Translators"));
816 add_translators(str, translators);
817 g_string_append(str, "<BR/>");
818
819 /* Past Translators */
820 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
821 _("Past Translators"));
822 add_translators(str, past_translators);
823 g_string_append(str, "<BR/>");
824
825 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL);
826 g_string_free(str, TRUE);
827
828 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
829 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
830
831 /* Close Button */
832 button = pidgin_dialog_add_button(GTK_DIALOG(translator_info), GTK_STOCK_CLOSE,
833 G_CALLBACK(destroy_translator_info), about);
834
835 g_signal_connect(G_OBJECT(translator_info), "destroy",
836 G_CALLBACK(destroy_translator_info), G_OBJECT(translator_info));
837
838 /* this makes the sizes not work? */
839 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
840 gtk_widget_grab_default(button);
841
842 /* Let's give'em something to talk about -- woah woah woah */
843 buddylist = pidgin_blist_get_default_gtk_blist();
844 if (buddylist)
845 gtk_window_set_transient_for(GTK_WINDOW(translator_info),
846 GTK_WINDOW(buddylist->window));
847
848 gtk_widget_show_all(translator_info);
849 gtk_window_present(GTK_WINDOW(translator_info));
719 } 850 }
720 851
721 static void 852 static void
722 pidgin_dialogs_im_cb(gpointer data, PurpleRequestFields *fields) 853 pidgin_dialogs_im_cb(gpointer data, PurpleRequestFields *fields)
723 { 854 {

mercurial