| 448 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
472 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
| 449 |
473 |
| 450 str = g_string_sized_new(4096); |
474 str = g_string_sized_new(4096); |
| 451 |
475 |
| 452 g_string_append_printf(str, |
476 g_string_append_printf(str, |
| 453 "<CENTER><FONT SIZE=\"4\"><B>%s %s</B></FONT></CENTER><BR>(libpurple %s)<BR>%s<BR><BR>", PIDGIN_NAME, DISPLAY_VERSION, purple_core_get_version(), REVISION); |
477 "<CENTER><FONT SIZE=\"4\"><B>%s %s</B></FONT></CENTER> (libpurple %s)" |
| |
478 "<BR>%s<BR><BR>", PIDGIN_NAME, DISPLAY_VERSION, |
| |
479 purple_core_get_version(), REVISION); |
| 454 |
480 |
| 455 g_string_append_printf(str, |
481 g_string_append_printf(str, |
| 456 _("%s is a graphical modular messaging client based on " |
482 _("%s is a messaging client based on libpurple which is capable of " |
| 457 "libpurple which is capable of connecting to " |
483 "connecting to multiple messaging services at once. %s is written " |
| 458 "AIM, MSN, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, " |
484 "in C using GTK+. %s is released, and may be modified and " |
| 459 "Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, " |
485 "redistributed, under the terms of the GPL version 2 (or later). " |
| 460 "MySpaceIM, Gadu-Gadu, and QQ all at once. " |
486 "A copy of the GPL is distributed with %s. %s is copyrighted by " |
| 461 "It is written using GTK+.<BR><BR>" |
487 "its contributors, a list of whom is also distributed with %s. " |
| 462 "You may modify and redistribute the program under " |
488 "There is no warranty for %s.<BR><BR>"), PIDGIN_NAME, PIDGIN_NAME, |
| 463 "the terms of the GPL (version 2 or later). A copy of the GPL is " |
489 PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME); |
| 464 "contained in the 'COPYING' file distributed with %s. " |
490 |
| 465 "%s is copyrighted by its contributors. See the 'COPYRIGHT' " |
|
| 466 "file for the complete list of contributors. We provide no " |
|
| 467 "warranty for this program.<BR><BR>"), PIDGIN_NAME, PIDGIN_NAME, PIDGIN_NAME); |
|
| 468 |
|
| 469 g_string_append(str, "<FONT SIZE=\"4\">URL:</FONT> <A HREF=\"" |
|
| 470 PURPLE_WEBSITE "\">" PURPLE_WEBSITE "</A><BR/><BR/>"); |
|
| 471 g_string_append_printf(str, _("<FONT SIZE=\"4\">FAQ:</FONT> <A HREF=\"" |
|
| 472 "http://developer.pidgin.im/wiki/FAQ\">" |
|
| 473 "http://developer.pidgin.im/wiki/FAQ</A><BR/><BR/>")); |
|
| 474 g_string_append_printf(str, |
491 g_string_append_printf(str, |
| 475 _("<font size=\"4\">Help from other Pidgin users:</font> " |
492 _("<FONT SIZE=\"4\"><B>Helpful Resources</B></FONT><BR>\t<A " |
| 476 "<a href=\"mailto:support@pidgin.im\">support@pidgin.im</a><br/>" |
493 "HREF=\"%s\">Website</A><BR>\t<A HREF=\"%s\">Frequently Asked " |
| 477 "This is a <b>public</b> mailing list! " |
494 "Questions</A><BR>\tIRC Channel: #pidgin on irc.freenode.net<BR>" |
| 478 "(<a href=\"http://pidgin.im/pipermail/support/\">archive</a>)<br/>" |
495 "\tXMPP MUC: devel@conference.pidgin.im<BR><BR>"), PURPLE_WEBSITE, |
| 479 "We can't help with 3rd party protocols or plugins!<br/>" |
496 "http://developer.pidgin.im/wiki/FAQ"); |
| 480 "This list's primary language is <b>English</b>. You are " |
497 |
| 481 "welcome to post in another language, but the responses may " |
498 g_string_append_printf(str, |
| 482 "be less helpful.<br/><br/>")); |
499 _("<font size=\"4\"><b>Help from other Pidgin users</b></font> is " |
| 483 g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC Channel:</FONT> " |
500 "available by e-mailing <a " |
| 484 "#pidgin on irc.freenode.net<BR><BR>")); |
501 "href=\"mailto:support@pidgin.im\">support@pidgin.im</a><br/>" |
| 485 g_string_append_printf(str, _("<FONT SIZE=\"4\">XMPP MUC:</FONT> " |
502 "This is a <b>public</b> mailing list! " |
| 486 "devel@conference.pidgin.im<BR><BR>")); |
503 "(<a href=\"http://pidgin.im/pipermail/support/\">archive</a>)<br/>" |
| 487 |
504 "We can't help with third-party protocols or plugins!<br/>" |
| 488 /* Current Developers */ |
505 "This list's primary language is <b>English</b>. You are " |
| 489 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
506 "welcome to post in another language, but the responses may " |
| 490 _("Current Developers")); |
507 "be less helpful.<br/><br/>")); |
| 491 add_developers(str, developers); |
508 |
| 492 g_string_append(str, "<BR/>"); |
509 |
| 493 |
510 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL); |
| 494 /* Crazy Patch Writers */ |
511 g_string_free(str, TRUE); |
| 495 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
512 |
| 496 _("Crazy Patch Writers")); |
513 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| 497 add_developers(str, patch_writers); |
514 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| 498 g_string_append(str, "<BR/>"); |
515 |
| 499 |
516 /* Close Button */ |
| 500 /* Retired Developers */ |
517 button = pidgin_dialog_add_button(GTK_DIALOG(about), GTK_STOCK_CLOSE, |
| 501 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
518 G_CALLBACK(destroy_about), about); |
| 502 _("Retired Developers")); |
519 |
| 503 add_developers(str, retired_developers); |
520 g_signal_connect(G_OBJECT(about), "destroy", |
| 504 g_string_append(str, "<BR/>"); |
521 G_CALLBACK(destroy_about), G_OBJECT(about)); |
| 505 |
522 |
| 506 /* Retired Crazy Patch Writers */ |
523 /* this makes the sizes not work? */ |
| 507 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
524 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
| 508 _("Retired Crazy Patch Writers")); |
525 gtk_widget_grab_default(button); |
| 509 add_developers(str, retired_patch_writers); |
526 |
| 510 g_string_append(str, "<BR/>"); |
527 /* Let's give'em something to talk about -- woah woah woah */ |
| 511 |
528 buddylist = pidgin_blist_get_default_gtk_blist(); |
| 512 /* Current Translators */ |
529 if (buddylist) |
| 513 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
530 gtk_window_set_transient_for(GTK_WINDOW(about), |
| 514 _("Current Translators")); |
531 GTK_WINDOW(buddylist->window)); |
| 515 add_translators(str, translators); |
532 |
| 516 g_string_append(str, "<BR/>"); |
533 gtk_widget_show_all(about); |
| 517 |
534 gtk_window_present(GTK_WINDOW(about)); |
| 518 /* Past Translators */ |
535 } |
| 519 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
536 |
| 520 _("Past Translators")); |
537 void pidgin_dialogs_buildinfo() |
| 521 add_translators(str, past_translators); |
538 { |
| 522 g_string_append(str, "<BR/>"); |
539 GtkWidget *vbox; |
| 523 |
540 GtkWidget *frame; |
| 524 g_string_append_printf(str, "<FONT SIZE=\"4\">%s</FONT><br/>", _("Debugging Information")); |
541 GtkWidget *text; |
| |
542 GtkWidget *button; |
| |
543 GtkTextIter iter; |
| |
544 GString *str; |
| |
545 char *tmp; |
| |
546 PidginBuddyList *buddylist; |
| |
547 |
| |
548 if (about != NULL) { |
| |
549 gtk_window_present(GTK_WINDOW(about)); |
| |
550 return; |
| |
551 } |
| |
552 |
| |
553 tmp = g_strdup_printf(_("%s Build Information"), PIDGIN_NAME); |
| |
554 buildinfo = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "buildinfo", TRUE); |
| |
555 g_free(tmp); |
| |
556 gtk_window_set_default_size(GTK_WINDOW(buildinfo), 450, 450); |
| |
557 |
| |
558 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(buildinfo), FALSE, PIDGIN_HIG_BORDER); |
| |
559 |
| |
560 frame = pidgin_create_imhtml(FALSE, &text, NULL, NULL); |
| |
561 gtk_imhtml_set_format_functions(GTK_IMHTML(text), GTK_IMHTML_ALL ^ GTK_IMHTML_SMILEY); |
| |
562 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
| |
563 |
| |
564 str = g_string_sized_new(4096); |
| |
565 |
| |
566 g_string_append_printf(str, |
| |
567 "<FONT SIZE=\"4\"><B>%s %s</B></FONT> (libpurple %s)<BR>%s<BR><BR>", PIDGIN_NAME, DISPLAY_VERSION, purple_core_get_version(), REVISION); |
| |
568 |
| |
569 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s</B></FONT><br/>", _("Build Information")); |
| 525 |
570 |
| 526 /* The following primarly intented for user/developer interaction and thus |
571 /* The following primarly intented for user/developer interaction and thus |
| 527 ought not be translated */ |
572 ought not be translated */ |
| 528 |
573 |
| 529 #ifdef CONFIG_ARGS /* win32 build doesn't use configure */ |
574 #ifdef CONFIG_ARGS /* win32 build doesn't use configure */ |
| 703 |
748 |
| 704 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
749 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| 705 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
750 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| 706 |
751 |
| 707 /* Close Button */ |
752 /* Close Button */ |
| 708 button = pidgin_dialog_add_button(GTK_DIALOG(about), GTK_STOCK_CLOSE, |
753 button = pidgin_dialog_add_button(GTK_DIALOG(buildinfo), GTK_STOCK_CLOSE, |
| 709 G_CALLBACK(destroy_about), about); |
754 G_CALLBACK(destroy_buildinfo), about); |
| 710 |
755 |
| 711 g_signal_connect(G_OBJECT(about), "destroy", |
756 g_signal_connect(G_OBJECT(buildinfo), "destroy", |
| 712 G_CALLBACK(destroy_about), G_OBJECT(about)); |
757 G_CALLBACK(destroy_buildinfo), G_OBJECT(buildinfo)); |
| 713 |
758 |
| 714 /* this makes the sizes not work? */ |
759 /* this makes the sizes not work? */ |
| 715 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
760 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
| 716 gtk_widget_grab_default(button); |
761 gtk_widget_grab_default(button); |
| 717 |
762 |
| 718 /* Let's give'em something to talk about -- woah woah woah */ |
763 /* Let's give'em something to talk about -- woah woah woah */ |
| 719 buddylist = pidgin_blist_get_default_gtk_blist(); |
764 buddylist = pidgin_blist_get_default_gtk_blist(); |
| 720 if (buddylist) |
765 if (buddylist) |
| 721 gtk_window_set_transient_for(GTK_WINDOW(about), |
766 gtk_window_set_transient_for(GTK_WINDOW(buildinfo), |
| 722 GTK_WINDOW(buddylist->window)); |
767 GTK_WINDOW(buddylist->window)); |
| 723 |
768 |
| 724 gtk_widget_show_all(about); |
769 gtk_widget_show_all(buildinfo); |
| 725 gtk_window_present(GTK_WINDOW(about)); |
770 gtk_window_present(GTK_WINDOW(buildinfo)); |
| |
771 } |
| |
772 |
| |
773 void pidgin_dialogs_developers() |
| |
774 { |
| |
775 GtkWidget *vbox; |
| |
776 GtkWidget *frame; |
| |
777 GtkWidget *text; |
| |
778 GtkWidget *button; |
| |
779 GtkTextIter iter; |
| |
780 GString *str; |
| |
781 char *tmp; |
| |
782 PidginBuddyList *buddylist; |
| |
783 |
| |
784 if (about != NULL) { |
| |
785 gtk_window_present(GTK_WINDOW(about)); |
| |
786 return; |
| |
787 } |
| |
788 |
| |
789 tmp = g_strdup_printf(_("%s Developer Information"), PIDGIN_NAME); |
| |
790 developer_info = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "developer_info", TRUE); |
| |
791 g_free(tmp); |
| |
792 gtk_window_set_default_size(GTK_WINDOW(developer_info), 450, 450); |
| |
793 |
| |
794 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(developer_info), FALSE, PIDGIN_HIG_BORDER); |
| |
795 |
| |
796 frame = pidgin_create_imhtml(FALSE, &text, NULL, NULL); |
| |
797 gtk_imhtml_set_format_functions(GTK_IMHTML(text), GTK_IMHTML_ALL ^ GTK_IMHTML_SMILEY); |
| |
798 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
| |
799 |
| |
800 str = g_string_sized_new(4096); |
| |
801 |
| |
802 /* Current Developers */ |
| |
803 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>", |
| |
804 _("Current Developers")); |
| |
805 add_developers(str, developers); |
| |
806 g_string_append(str, "<BR/>"); |
| |
807 |
| |
808 /* Crazy Patch Writers */ |
| |
809 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>", |
| |
810 _("Crazy Patch Writers")); |
| |
811 add_developers(str, patch_writers); |
| |
812 g_string_append(str, "<BR/>"); |
| |
813 |
| |
814 /* Retired Developers */ |
| |
815 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>", |
| |
816 _("Retired Developers")); |
| |
817 add_developers(str, retired_developers); |
| |
818 g_string_append(str, "<BR/>"); |
| |
819 |
| |
820 /* Retired Crazy Patch Writers */ |
| |
821 g_string_append_printf(str, "<FONT SIZE=\"4\"><B>%s:</B></FONT><BR/>", |
| |
822 _("Retired Crazy Patch Writers")); |
| |
823 add_developers(str, retired_patch_writers); |
| |
824 g_string_append(str, "<BR/>"); |
| |
825 |
| |
826 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL); |
| |
827 g_string_free(str, TRUE); |
| |
828 |
| |
829 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| |
830 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| |
831 |
| |
832 /* Close Button */ |
| |
833 button = pidgin_dialog_add_button(GTK_DIALOG(developer_info), GTK_STOCK_CLOSE, |
| |
834 G_CALLBACK(destroy_developer_info), about); |
| |
835 |
| |
836 g_signal_connect(G_OBJECT(developer_info), "destroy", |
| |
837 G_CALLBACK(destroy_developer_info), G_OBJECT(developer_info)); |
| |
838 |
| |
839 /* this makes the sizes not work? */ |
| |
840 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
| |
841 gtk_widget_grab_default(button); |
| |
842 |
| |
843 /* Let's give'em something to talk about -- woah woah woah */ |
| |
844 buddylist = pidgin_blist_get_default_gtk_blist(); |
| |
845 if (buddylist) |
| |
846 gtk_window_set_transient_for(GTK_WINDOW(developer_info), |
| |
847 GTK_WINDOW(buddylist->window)); |
| |
848 |
| |
849 gtk_widget_show_all(developer_info); |
| |
850 gtk_window_present(GTK_WINDOW(developer_info)); |
| |
851 } |
| |
852 |
| |
853 void pidgin_dialogs_translators() |
| |
854 { |
| |
855 GtkWidget *vbox; |
| |
856 GtkWidget *frame; |
| |
857 GtkWidget *text; |
| |
858 GtkWidget *button; |
| |
859 GtkTextIter iter; |
| |
860 GString *str; |
| |
861 char *tmp; |
| |
862 PidginBuddyList *buddylist; |
| |
863 |
| |
864 if (about != NULL) { |
| |
865 gtk_window_present(GTK_WINDOW(about)); |
| |
866 return; |
| |
867 } |
| |
868 |
| |
869 tmp = g_strdup_printf(_("%s Translator Information"), PIDGIN_NAME); |
| |
870 translator_info = pidgin_create_dialog(tmp, PIDGIN_HIG_BORDER, "translator_info", TRUE); |
| |
871 g_free(tmp); |
| |
872 gtk_window_set_default_size(GTK_WINDOW(translator_info), 450, 450); |
| |
873 |
| |
874 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(translator_info), FALSE, PIDGIN_HIG_BORDER); |
| |
875 |
| |
876 frame = pidgin_create_imhtml(FALSE, &text, NULL, NULL); |
| |
877 gtk_imhtml_set_format_functions(GTK_IMHTML(text), GTK_IMHTML_ALL ^ GTK_IMHTML_SMILEY); |
| |
878 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
| |
879 |
| |
880 str = g_string_sized_new(4096); |
| |
881 |
| |
882 /* Current Translators */ |
| |
883 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
| |
884 _("Current Translators")); |
| |
885 add_translators(str, translators); |
| |
886 g_string_append(str, "<BR/>"); |
| |
887 |
| |
888 /* Past Translators */ |
| |
889 g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>", |
| |
890 _("Past Translators")); |
| |
891 add_translators(str, past_translators); |
| |
892 g_string_append(str, "<BR/>"); |
| |
893 |
| |
894 gtk_imhtml_append_text(GTK_IMHTML(text), str->str, GTK_IMHTML_NO_SCROLL); |
| |
895 g_string_free(str, TRUE); |
| |
896 |
| |
897 gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| |
898 gtk_text_buffer_place_cursor(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)), &iter); |
| |
899 |
| |
900 /* Close Button */ |
| |
901 button = pidgin_dialog_add_button(GTK_DIALOG(translator_info), GTK_STOCK_CLOSE, |
| |
902 G_CALLBACK(destroy_translator_info), about); |
| |
903 |
| |
904 g_signal_connect(G_OBJECT(translator_info), "destroy", |
| |
905 G_CALLBACK(destroy_translator_info), G_OBJECT(translator_info)); |
| |
906 |
| |
907 /* this makes the sizes not work? */ |
| |
908 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
| |
909 gtk_widget_grab_default(button); |
| |
910 |
| |
911 /* Let's give'em something to talk about -- woah woah woah */ |
| |
912 buddylist = pidgin_blist_get_default_gtk_blist(); |
| |
913 if (buddylist) |
| |
914 gtk_window_set_transient_for(GTK_WINDOW(translator_info), |
| |
915 GTK_WINDOW(buddylist->window)); |
| |
916 |
| |
917 gtk_widget_show_all(translator_info); |
| |
918 gtk_window_present(GTK_WINDOW(translator_info)); |
| 726 } |
919 } |
| 727 |
920 |
| 728 static void |
921 static void |
| 729 pidgin_dialogs_im_cb(gpointer data, PurpleRequestFields *fields) |
922 pidgin_dialogs_im_cb(gpointer data, PurpleRequestFields *fields) |
| 730 { |
923 { |