void gl_ui_cmd_help_about (GtkAction *action, glWindow *window) { static GtkWidget *about = NULL; gchar *pixbuf_filename; GdkPixbuf *pixbuf = NULL; const gchar *authors[] = { "Jim Evins", " ", _("Glabels includes contributions from:"), "Mario Blättermann", "Robin Stuart", "Samuel Lown", "Frederic Ruaudel", "Wayne Schuller", "Emmanuel Pacaud", "Austin Henry", " ", _("See the file AUTHORS for additional credits,"), _("or visit http://glabels.org/"), NULL }; const gchar *documenters[] = { "Jim Evins", "Mario Blättermann", NULL }; const gchar *artists[] = { "Jim Evins", NULL }; const gchar *copy_text = "Copyright \xc2\xa9 2001-2010 Jim Evins"; const gchar *about_text = _("A label and business card creation program.\n"); const gchar *url = "http://glabels.org"; const gchar *translator_credits = _("translator-credits"); const gchar *license = _( "gLabels is free software: you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" "the Free Software Foundation, either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" "gLabels is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" "GNU General Public License for more details.\n"); gl_debug (DEBUG_COMMANDS, "START"); g_return_if_fail (action && GTK_IS_ACTION(action)); g_return_if_fail (window && GL_IS_WINDOW(window)); if (about != NULL) { gtk_window_present (GTK_WINDOW (about)); gtk_window_set_transient_for (GTK_WINDOW (about), GTK_WINDOW (window)); } else { pixbuf_filename = g_build_filename (GLABELS_DATA_DIR, "pixmaps", "glabels-logo.png", NULL); pixbuf = gdk_pixbuf_new_from_file (pixbuf_filename, NULL); g_free (pixbuf_filename); about = gtk_about_dialog_new (); gtk_window_set_title (GTK_WINDOW(about), _("About glabels")); gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG(about), "glabels"); gtk_about_dialog_set_version (GTK_ABOUT_DIALOG(about), VERSION); gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG(about), copy_text); gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG(about), about_text); gtk_about_dialog_set_website (GTK_ABOUT_DIALOG(about), url); gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG(about), pixbuf); gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG(about), authors); gtk_about_dialog_set_documenters (GTK_ABOUT_DIALOG(about), documenters); gtk_about_dialog_set_artists (GTK_ABOUT_DIALOG(about), artists); gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG(about), translator_credits); gtk_about_dialog_set_license (GTK_ABOUT_DIALOG(about), license); gtk_window_set_destroy_with_parent (GTK_WINDOW (about), TRUE); g_signal_connect (G_OBJECT (about), "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (G_OBJECT (about), "destroy", G_CALLBACK (gtk_widget_destroyed), &about); gtk_window_set_transient_for (GTK_WINDOW (about), GTK_WINDOW (window)); gtk_window_present (GTK_WINDOW (about)); if (pixbuf != NULL) g_object_unref (pixbuf); } gl_debug (DEBUG_COMMANDS, "END"); }
void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* parent) { // don't create another dialog if one is already present if ( !gs_aboutDialog ) gs_aboutDialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); GtkAboutDialog * const dlg = gs_aboutDialog; gtk_about_dialog_set_program_name(dlg, wxGTK_CONV_SYS(info.GetName())); if ( info.HasVersion() ) gtk_about_dialog_set_version(dlg, wxGTK_CONV_SYS(info.GetVersion())); else gtk_about_dialog_set_version(dlg, NULL); if ( info.HasCopyright() ) gtk_about_dialog_set_copyright(dlg, wxGTK_CONV_SYS(info.GetCopyrightToDisplay())); else gtk_about_dialog_set_copyright(dlg, NULL); if ( info.HasDescription() ) gtk_about_dialog_set_comments(dlg, wxGTK_CONV_SYS(info.GetDescription())); else gtk_about_dialog_set_comments(dlg, NULL); if ( info.HasLicence() ) gtk_about_dialog_set_license(dlg, wxGTK_CONV_SYS(info.GetLicence())); else gtk_about_dialog_set_license(dlg, NULL); wxIcon icon = info.GetIcon(); if ( icon.IsOk() ) gtk_about_dialog_set_logo(dlg, info.GetIcon().GetPixbuf()); if ( info.HasWebSite() ) { #ifdef __WXGTK3__ g_signal_connect(dlg, "activate-link", G_CALLBACK(activate_link), dlg); #else // NB: must be called before gtk_about_dialog_set_website() as // otherwise it has no effect (although GTK+ docs don't mention // this...) gtk_about_dialog_set_url_hook(wxGtkAboutDialogOnLink, NULL, NULL); #endif gtk_about_dialog_set_website(dlg, wxGTK_CONV_SYS(info.GetWebSiteURL())); gtk_about_dialog_set_website_label ( dlg, wxGTK_CONV_SYS(info.GetWebSiteDescription()) ); } else { gtk_about_dialog_set_website(dlg, NULL); gtk_about_dialog_set_website_label(dlg, NULL); #ifdef __WXGTK3__ g_signal_connect(dlg, "activate-link", G_CALLBACK(activate_link), NULL); #else gtk_about_dialog_set_url_hook(NULL, NULL, NULL); #endif } if ( info.HasDevelopers() ) gtk_about_dialog_set_authors(dlg, GtkArray(info.GetDevelopers())); else gtk_about_dialog_set_authors(dlg, GtkArray()); if ( info.HasDocWriters() ) gtk_about_dialog_set_documenters(dlg, GtkArray(info.GetDocWriters())); else gtk_about_dialog_set_documenters(dlg, GtkArray()); if ( info.HasArtists() ) gtk_about_dialog_set_artists(dlg, GtkArray(info.GetArtists())); else gtk_about_dialog_set_artists(dlg, GtkArray()); wxString transCredits; if ( info.HasTranslators() ) { const wxArrayString& translators = info.GetTranslators(); const size_t count = translators.size(); for ( size_t n = 0; n < count; n++ ) { transCredits << translators[n] << wxT('\n'); } } else // no translators explicitly specified { // maybe we have translator credits in the message catalog? wxString translator = _("translator-credits"); // gtk_about_dialog_set_translator_credits() is smart enough to // detect if "translator-credits" is untranslated and hide the // translators tab in that case, however it will still show the // "credits" button, (at least GTK 2.10.6) even if there are no // credits informations at all, so we still need to do the check // ourselves if ( translator != wxT("translator-credits") ) // untranslated! transCredits = translator; } if ( !transCredits.empty() ) gtk_about_dialog_set_translator_credits(dlg, wxGTK_CONV_SYS(transCredits)); else gtk_about_dialog_set_translator_credits(dlg, NULL); g_signal_connect(dlg, "response", G_CALLBACK(wxGtkAboutDialogOnClose), NULL); GtkWindow* gtkParent = NULL; if (parent && parent->m_widget) gtkParent = (GtkWindow*)gtk_widget_get_ancestor(parent->m_widget, GTK_TYPE_WINDOW); gtk_window_set_transient_for(GTK_WINDOW(dlg), gtkParent); gtk_window_present(GTK_WINDOW(dlg)); }
void about_show (void) { GdkPixbuf *logo; static GtkWidget *dialog = NULL; static const gchar *documentors[] = { "Neil Williams <*****@*****.**>", NULL }; static const gchar *authors[] = { "Neil Williams <*****@*****.**>", "", NULL }; /* * Translators should localize the following string * which will give them credit in the About box. * E.g. "Fulano de Tal <*****@*****.**>" */ gchar *path, *translators = g_strdup (_("translator-credits")); if (dialog) { gtk_window_present (GTK_WINDOW (dialog)); return; } path = g_build_filename (DATADIR, "pixmaps", "gpdftext.png", NULL); logo = gdk_pixbuf_new_from_file (path, NULL); g_free (path); dialog = gtk_about_dialog_new (); gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (dialog), VERSION); gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (dialog),_("eBook PDF editor")); gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (dialog), "Copyright 2009 Neil Williams"); gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG (dialog), _("gPDFText converts ebook PDF content into ASCII text, " "reformatted for long line paragraphs.")); gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (dialog), authors); gtk_about_dialog_set_documenters (GTK_ABOUT_DIALOG (dialog), documentors); gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG (dialog), translators); gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (dialog), logo); gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (dialog), "http://gpdftext.sourceforge.net/"); gtk_about_dialog_set_website_label (GTK_ABOUT_DIALOG (dialog), _("Homepage")); gtk_window_set_icon (GTK_WINDOW(dialog), logo); gtk_about_dialog_set_license (GTK_ABOUT_DIALOG (dialog), " gpdftext is free software: you can redistribute it and/or modify it\n" " under the terms of the GNU General Public License\n" " version 2 as published by the Free Software Foundation.\n" "\n" " gpdftext is distributed in the hope that it will be useful, but\n" " WITHOUT ANY WARRANTY; without even the implied warranty of\n" " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" " See the GNU General Public License for more details.\n" "\n" " You should have received a copy of the GNU General Public License\n" " along with this program; if not, write to the Free Software\n" " Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" " MA 02110-1301, USA.\n" ); g_object_add_weak_pointer (G_OBJECT (dialog), (void **)&dialog); gtk_dialog_run (GTK_DIALOG(dialog)); gtk_widget_destroy (dialog); g_free (translators); }
/** * Create and run an About dialog. * * \param bouton Widget that triggered this handler (not used). * \param data Not used. */ void a_propos ( GtkWidget *bouton, gint data ) { GtkWidget *about; GdkPixbuf *logo; gchar *chemin_logo ; #define CSUFFIX "\n" const gchar *auteurs[] = { _("Programming"), "Benjamin Drieu <*****@*****.**>", "Cedric Auger <*****@*****.**>", "Francois Terrot <*****@*****.**>", "Pierre Biava <*****@*****.**>", "Mickaël Remars <*****@*****.**>", "William Ollivier <*****@*****.**>", "Rémi Cardona <*****@*****.**>", "Ludovic Rousseau <*****@*****.**>" "\n", _("Packaging"), "Alain Pichon <*****@*****.**>", "Baluchiterium <*****@*****.**>", "Francois Terrot <*****@*****.**>", "Gerald Niel <*****@*****.**>", "Gilles Morel <*****@*****.**>", "PMF <*****@*****.**>", "Pascal Bleser <*****@*****.**>", "Sylvain Glaize <*****@*****.**>", "Thierry Thomas <*****@*****.**>", "Vincent Marqueton <*****@*****.**>", "William Ollivier <*****@*****.**>", "Frederic Trouche <*****@*****.**>", "\n", _("Other"), "Axel Rousseau <*****@*****.**>", "Dominique Parisot <*****@*****.**>", "Gerald Niel <*****@*****.**>", CSUFFIX, NULL }; gchar * translators = g_strconcat( "Alain Portal <*****@*****.**>: ", _("English"), CSUFFIX, "Benjamin Drieu <*****@*****.**>: ", _("English"), CSUFFIX, "Carlos M. Cámara Mora <*****@*****.**>: ", _("Spanish"), CSUFFIX, "Daniel Cartron <*****@*****.**>: ", _("English"), CSUFFIX, "Edwin Huijsing <*****@*****.**>: ", _("Dutch"), CSUFFIX, "Fabio Erculiani <*****@*****.**>: ", _("Italian"), CSUFFIX, "Flavio Henrique Somensi <*****@*****.**>: ", _("Brazilian Portuguese"), CSUFFIX, "Giorgio Mandolfo <*****@*****.**>: ", _("Italian"), CSUFFIX, "Martin Stromberger <*****@*****.**>: ", _("German"), CSUFFIX, "Ryszard Jeziorski <rjeziorski@eagleW>: ", _("Polish"), CSUFFIX, "Achilleas Kaskamanidis <*****@*****.**>: ", _("Greek"), CSUFFIX, NULL); const gchar *documenters [] = { "Alain Portal <*****@*****.**>", "Benjamin Drieu <*****@*****.**>", "Daniel Cartron <*****@*****.**>", "Jean-Luc Duflot <*****@*****.**>", "Loic Breilloux <*****@*****.**>", CSUFFIX, NULL}; const gchar *artists [] = { "Andre Pascual <*****@*****.**>", "Jakub 'jimmac' Steiner <*****@*****.**>", "Jean-Baptiste Renard <*****@*****.**>", "Tuomas 'tigert' Kuosmanen <*****@*****.**>", NULL}; const gchar *license = "This program is free software; you can redistribute " "it and/or modify it under the terms of the GNU General " "Public License as published by the Free Software Foundation; " "either version 2 of the License, or (at your option) any later " "version.\n\nThis program is distributed in the hope that it " "will be useful, but WITHOUT ANY WARRANTY; without even the " "implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR " "PURPOSE. See the GNU General Public License for more details.\n\n" "You should have received a copy of the GNU General Public License " "along with this program; if not, write to the Free Software " "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n\n" "This product includes software developed by the OpenSSL Project " "for use in the OpenSSL Toolkit.\n(http://www.openssl.org/)"; /* Others info */ gchar *comments; gchar *extra; gchar *version_to_string; extra = extra_support ( ); version_to_string = get_gtk_run_version ( ); #ifdef DEBUG { gchar *compiled_time; compiled_time = gsb_date_get_compiled_time ( ); comments = g_strconcat ( _("Personal finance manager for everyone\n"), extra, "Version de GTK : ", version_to_string, "\n", _("This instance of Grisbi was compiled on\n"), compiled_time, " ", _("at"), " ", __TIME__, NULL ); g_free ( compiled_time ); } #else comments = g_strconcat ( _("Personal finance manager for everyone\n"), extra, "Version de GTK : ", version_to_string, NULL ); #endif /* Logo */ logo = gsb_select_icon_get_logo_pixbuf ( ); if (logo == NULL ) { chemin_logo = my_strdup ( LOGO_PATH ); logo = gdk_pixbuf_new_from_file ( chemin_logo, NULL ); g_free ( chemin_logo ); } about = gtk_about_dialog_new ( ); gtk_about_dialog_set_program_name ( GTK_ABOUT_DIALOG (about), "Grisbi" ); gtk_about_dialog_set_logo ( GTK_ABOUT_DIALOG (about), logo ); gtk_about_dialog_set_comments ( GTK_ABOUT_DIALOG (about), comments ); gtk_about_dialog_set_website ( GTK_ABOUT_DIALOG (about), "http://www.grisbi.org/"); gtk_about_dialog_set_license ( GTK_ABOUT_DIALOG (about), license ); gtk_about_dialog_set_wrap_license ( GTK_ABOUT_DIALOG (about), TRUE ); gtk_about_dialog_set_version ( GTK_ABOUT_DIALOG (about), VERSION ); gtk_about_dialog_set_artists ( GTK_ABOUT_DIALOG (about), artists ); gtk_about_dialog_set_documenters ( GTK_ABOUT_DIALOG (about), documenters ); gtk_about_dialog_set_authors ( GTK_ABOUT_DIALOG (about), auteurs ); gtk_about_dialog_set_translator_credits ( GTK_ABOUT_DIALOG (about), translators ); gtk_window_set_position ( GTK_WINDOW ( about ), GTK_WIN_POS_CENTER_ON_PARENT ); gtk_window_set_resizable ( GTK_WINDOW ( about ), TRUE ); gtk_window_set_modal ( GTK_WINDOW ( about ), TRUE ); gtk_window_set_transient_for ( GTK_WINDOW ( about ), GTK_WINDOW ( grisbi_app_get_active_window (NULL) ) ); g_free ( extra ); g_free ( version_to_string ); g_free ( comments ); g_signal_connect ( G_OBJECT ( about ), "activate-link", G_CALLBACK ( url_clicked ), NULL ); gtk_dialog_run ( GTK_DIALOG (about)) ; gtk_widget_destroy (about); if (logo) g_object_unref (logo); return; }
G_MODULE_EXPORT void on_menu_about_activate(GtkWidget *widget, void *user) { GError* err = NULL; gchar* icon_file = g_build_filename(GUMMI_DATA, "icons", "gummi.png", NULL); GdkPixbuf* icon = gdk_pixbuf_new_from_file_at_size(icon_file, 80, 80, &err); g_free(icon_file); const gchar* authors[] = { "Alexander van der Mey " "<*****@*****.**>", "Wei-Ning Huang " "<*****@*****.**>", "Dion Timmermann " "<*****@*****.**>", "Robert Schroll " "<*****@*****.**>\n", "Former contributors:", "Thomas van der Burgt", "Cameron Grout", NULL }; const gchar* translators = "** Visit our website for instructions on **\n" "** contributing or updating a translation **\n" "\n" "Arabic: Hamad Mohammad\n" "Brazilian-Portugese: Fernando Cruz and Alexandre Guimarães\n" "Catalan: Marc Vinyals\n" "Chinese (Simplified): Mathlab pass\n" "Chinese (Traditional): Wei-Ning Huang\n" "Czech: Přemysl Janouch\n" "Danish: Jack Olsen\n" "Dutch: Alexander van der Mey\n" "French: Yvan Duron and Olivier Brousse\n" "German: Thomas Niederprüm\n" "Greek: Dimitris Leventeas\n" "Hungarian: Balázs Meskó\n" "Italian: Salvatore Vassallo\n" "Polish: Hubert Kowalski\n" "Portugese: Alexandre Guimarães\n" "Romanian: Alexandru-Eugen Ichim\n" "Russian: Kruvalig and Max Musatov\n" "Swedish: Kess Vargavind\n" "Spanish: Carlos Salas Contreras and Francisco Javier Serrador\n"; const gchar* documenters[] = {"Guy Edwards", NULL}; GtkAboutDialog* dialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); gtk_window_set_transient_for(GTK_WINDOW(dialog), gui->mainwindow); gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE); gtk_about_dialog_set_authors(dialog, authors); gtk_about_dialog_set_program_name(dialog, PACKAGE_NAME); gtk_about_dialog_set_version(dialog, PACKAGE_VERSION); gtk_about_dialog_set_website(dialog, PACKAGE_URL); gtk_about_dialog_set_copyright(dialog, PACKAGE_COPYRIGHT); gtk_about_dialog_set_license(dialog, PACKAGE_LICENSE); gtk_about_dialog_set_logo(dialog, icon); gtk_about_dialog_set_comments(dialog, PACKAGE_COMMENTS); gtk_about_dialog_set_translator_credits(dialog, translators); gtk_about_dialog_set_documenters(dialog, documenters); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(GTK_WIDGET(dialog)); }
static void about_dialog_create(GtkAction * action, gpointer user_data) { Tbfwin *bfwin = BFWIN(user_data); GdkPixbuf *logo; const gchar *artists[] = { "Dave Lyon", NULL }; const gchar *authors[] = { "Olivier Sessink <*****@*****.**> (Project leader)", "Andrius <*****@*****.**>", "Jim Hayward <*****@*****.**>", "Daniel Leidert <*****@*****.**>", "Shawn Novak <*****@*****.**>", "Frédéric Falsetti <*****@*****.**>", _("\nDevelopers of previous releases:"), "Alastair Porter <*****@*****.**>", "Antti-Juhani Kaijanaho", "Bo Forslund", "Chris Mazuc", "Christian Tellefsen <*****@*****.**>", "David Arno", "Eugene Morenko <*****@*****.**>", "Gero Takke", "Neil Millar", "Oskar Świda <*****@*****.**>", "Pablo De Napoli", "Rasmus Toftdahl Olesen <*****@*****.**>", "Roland Steinbach <*****@*****.**>", "Santiago Capel Torres", "Yanike Mann <*****@*****.**>", _("\nPackage maintainers:"), "Debian: Daniel Leidert <*****@*****.**>", "Fink: Michèle Garoche <*****@*****.**>, Kevin Horton <*****@*****.**>", "Gentoo: Hanno Böck <*****@*****.**>", "Mandrake: Todd Lyons <*****@*****.**>", "Redhat: Matthias Haase <*****@*****.**>", "Windows: Shawn Novak <*****@*****.**>, Daniel Leidert <*****@*****.**>", _("\nIf you know of anyone missing from this list,\nplease let us know at:"), _("[email protected] <*****@*****.**>"), _("\nThanks to all who helped make this software available.\n"), NULL }; const gchar *documenters[] = { "Scott White <*****@*****.**>", "Michèle Garoche <*****@*****.**>", "Anita Lewis <*****@*****.**>", "Alastair Porter <*****@*****.**>", "Daniel Blair <*****@*****.**>", "Olivier Sessink <*****@*****.**>", "Denny Reeh\n", NULL }; const gchar *copyright = "Copyright \xc2\xa9 1998-2015 Olivier Sessink and others.\n"; /* wrap the license here, * the "wrap-license" property is only available with GTK >= 2.8 */ const gchar *license = "This program is free software; you can redistribute it and/or modify it " "under the terms of the GNU General Public License as published by " "the Free Software Foundation; either version 3 of the License, or " "(at your option) any later version.\n" "\n" "This program is distributed in the hope that it will be useful, " "but WITHOUT ANY WARRANTY; without even the implied warranty of " "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " "GNU General Public License for more details.\n" "\n" "You should have received a copy of the GNU General Public License " "along with this program. If not, see http://www.gnu.org/licenses/ ."; const gchar *comments = _ ("An open-source editor for experienced web designers and programmers, supporting many programming and markup languages, but focusing on creating dynamic and interactive websites."); /* Translators: This is a special message that shouldn't be translated * literally. It is used in the about box to give credits to * the translators. * Thus, you should translate it to your name and email address and * the name and email address of all translator who have contributed * to this translation (in general: this special locale). Please * use a separate line for every translator ending with a newlines (\n). */ const gchar *translator_credits = _("translator-credits"); { GError *error = NULL; logo = gdk_pixbuf_new_from_file(BLUEFISH_SPLASH_FILENAME, &error); if (error) { g_print("ERROR while loading splash screen: %s\n", error->message); g_error_free(error); } } #if !GTK_CHECK_VERSION(3, 0, 0) gtk_about_dialog_set_url_hook(about_activate_url, NULL, NULL); #endif /* gtk3 */ #ifndef MAC_INTEGRATION gtk_show_about_dialog(GTK_WINDOW(bfwin->main_window), "logo", logo, "name", PACKAGE, #ifdef SVN_REVISION "version", VERSION " rev" SVN_REVISION, #else /* SVN_REVISION */ "version", VERSION, #endif /* SVN_REVISION */ "comments", comments, "copyright", copyright, "license", license, "website", "http://bluefish.openoffice.nl", "authors", authors, "artists", artists, "documenters", documenters, "translator_credits", translator_credits, "wrap-license", TRUE, NULL); if (logo) g_object_unref(logo); #else /* gtk_show_about_dialog hides window when it is closed (no other choices). On OSX this hidden dead window can be accessed from WIndow menu, so we have to construct about dialog manually and destroy it after use */ GtkWidget *dialog; dialog = gtk_about_dialog_new(); gtk_window_set_transient_for(GTK_WINDOW( dialog ), GTK_WINDOW(bfwin->main_window)); gtk_window_set_destroy_with_parent (GTK_WINDOW(dialog), TRUE); g_signal_connect (dialog, "activate-link", G_CALLBACK (activate_link_lcb), NULL); /* Set it's properties */ gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), "Bluefish" ); gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), #ifdef SVN_REVISION VERSION " rev" SVN_REVISION #else /* SVN_REVISION */ VERSION #endif /* SVN_REVISION */ ); gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), copyright); gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), "http://bluefish.openoffice.nl" ); gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(dialog), authors); gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(dialog), artists); gtk_about_dialog_set_documenters(GTK_ABOUT_DIALOG(dialog), documenters); gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(dialog), license); gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), comments); gtk_about_dialog_set_translator_credits(GTK_ABOUT_DIALOG(dialog), translator_credits); gtk_about_dialog_set_wrap_license(GTK_ABOUT_DIALOG(dialog), TRUE); gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dialog), logo); g_object_unref(logo), logo=NULL; /* Run dialog and destroy it after it returns. */ gtk_dialog_run( GTK_DIALOG(dialog) ); gtk_widget_destroy(GTK_WIDGET(dialog)); #endif /* MAC_INTEGRATION */ }