comparison pidgin/gtkdialogs.c @ 29510:a6b08260d631

Break the developer information out into its own dialog. I also bolded a few headings that weren't previously bolded because I think they look better this way. Feel free to debate and tweak.
author John Bailey <rekkanoryo@rekkanoryo.org>
date Sat, 03 Oct 2009 19:18:18 +0000
parents b50ff312ac80
children 89a523641c64
comparison
equal deleted inserted replaced
29509:b50ff312ac80 29510:a6b08260d631
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; 50 static GtkWidget *buildinfo = NULL;
51 static GtkWidget *developer_info = NULL;
51 static GtkWidget *translator_info = NULL; 52 static GtkWidget *translator_info = NULL;
52 53
53 struct _PidginGroupMergeObject { 54 struct _PidginGroupMergeObject {
54 PurpleGroup* parent; 55 PurpleGroup* parent;
55 char *new_name; 56 char *new_name;
350 gtk_widget_destroy(dialogwindows->data); 351 gtk_widget_destroy(dialogwindows->data);
351 dialogwindows = g_list_remove(dialogwindows, dialogwindows->data); 352 dialogwindows = g_list_remove(dialogwindows, dialogwindows->data);
352 } 353 }
353 } 354 }
354 355
356 static void destroy_developer_info(void)
357 {
358 if (developer_info != NULL)
359 gtk_widget_destroy(developer_info);
360 developer_info = NULL;
361 }
362
355 static void destroy_translator_info(void) 363 static void destroy_translator_info(void)
356 { 364 {
357 if (translator_info != NULL) 365 if (translator_info != NULL)
358 gtk_widget_destroy(translator_info); 366 gtk_widget_destroy(translator_info);
359 translator_info = NULL; 367 translator_info = NULL;
498 g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC Channel:</FONT> " 506 g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC Channel:</FONT> "
499 "#pidgin on irc.freenode.net<BR><BR>")); 507 "#pidgin on irc.freenode.net<BR><BR>"));
500 g_string_append_printf(str, _("<FONT SIZE=\"4\">XMPP MUC:</FONT> " 508 g_string_append_printf(str, _("<FONT SIZE=\"4\">XMPP MUC:</FONT> "
501 "devel@conference.pidgin.im<BR><BR>")); 509 "devel@conference.pidgin.im<BR><BR>"));
502 510
503 /* Current Developers */ 511
504 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
505 _("Current Developers"));
506 add_developers(str, developers);
507 g_string_append(str, "<BR/>");
508
509 /* Crazy Patch Writers */
510 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
511 _("Crazy Patch Writers"));
512 add_developers(str, patch_writers);
513 g_string_append(str, "<BR/>");
514
515 /* Retired Developers */
516 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
517 _("Retired Developers"));
518 add_developers(str, retired_developers);
519 g_string_append(str, "<BR/>");
520
521 /* Retired Crazy Patch Writers */
522 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
523 _("Retired Crazy Patch Writers"));
524 add_developers(str, retired_patch_writers);
525 g_string_append(str, "<BR/>");
526
527 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL); 512 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL);
528 g_string_free(str, TRUE); 513 g_string_free(str, TRUE);
529 514
530 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); 515 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
531 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); 516 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
777 gtk_window_set_transient_for(GTK_WINDOW(buildinfo), 762 gtk_window_set_transient_for(GTK_WINDOW(buildinfo),
778 GTK_WINDOW(buddylist->window)); 763 GTK_WINDOW(buddylist->window));
779 764
780 gtk_widget_show_all(buildinfo); 765 gtk_widget_show_all(buildinfo);
781 gtk_window_present(GTK_WINDOW(buildinfo)); 766 gtk_window_present(GTK_WINDOW(buildinfo));
767 }
768
769 void pidgin_dialogs_developers()
770 {
771 GtkWidget *vbox;
772 GtkWidget *frame;
773 GtkWidget *text;
774 GtkWidget *button;
775 GtkTextIter iter;
776 GString *str;
777 char *tmp;
778 PidginBuddyList *buddylist;
779
780 if (about != NULL) {
781 gtk_window_present(GTK_WINDOW(about));
782 return;
783 }
784
785 tmp = g_strdup_printf(_("%s Developer Information"), PIDGIN_NAME);
786 developer_info = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "developer_info", TRUE);
787 g_free(tmp);
788 gtk_window_set_default_size(GTK_WINDOW(developer_info), 450, 450);
789
790 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(developer_info), FALSE, PIDGIN_HIG_BORDER);
791
792 frame = pidgin_create_imhtml(FALSE, &text, NULL, NULL);
793 gtk_imhtml_set_format_functions(GTK_IMHTML(text), GTK_IMHTML_ALL ^ GTK_IMHTML_SMILEY);
794 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
795
796 str = g_string_sized_new(4096);
797
798 /* Current Developers */
799 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
800 _("Current Developers"));
801 add_developers(str, developers);
802 g_string_append(str, "<BR/>");
803
804 /* Crazy Patch Writers */
805 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
806 _("Crazy Patch Writers"));
807 add_developers(str, patch_writers);
808 g_string_append(str, "<BR/>");
809
810 /* Retired Developers */
811 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
812 _("Retired Developers"));
813 add_developers(str, retired_developers);
814 g_string_append(str, "<BR/>");
815
816 /* Retired Crazy Patch Writers */
817 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>",
818 _("Retired Crazy Patch Writers"));
819 add_developers(str, retired_patch_writers);
820 g_string_append(str, "<BR/>");
821
822 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL);
823 g_string_free(str, TRUE);
824
825 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
826 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter);
827
828 /* Close Button */
829 button = pidgin_dialog_add_button(GTK_DIALOG(developer_info), GTK_STOCK_CLOSE,
830 G_CALLBACK(destroy_developer_info), about);
831
832 g_signal_connect(G_OBJECT(developer_info), "destroy",
833 G_CALLBACK(destroy_developer_info), G_OBJECT(developer_info));
834
835 /* this makes the sizes not work? */
836 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
837 gtk_widget_grab_default(button);
838
839 /* Let's give'em something to talk about -- woah woah woah */
840 buddylist = pidgin_blist_get_default_gtk_blist();
841 if (buddylist)
842 gtk_window_set_transient_for(GTK_WINDOW(developer_info),
843 GTK_WINDOW(buddylist->window));
844
845 gtk_widget_show_all(developer_info);
846 gtk_window_present(GTK_WINDOW(developer_info));
782 } 847 }
783 848
784 void pidgin_dialogs_translators() 849 void pidgin_dialogs_translators()
785 { 850 {
786 GtkWidget *vbox; 851 GtkWidget *vbox;