- // 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_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.GetCopyright()));
- 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.Ok() )
- gtk_about_dialog_set_logo(dlg, info.GetIcon().GetPixbuf());
-
- if ( info.HasWebSite() )
- {
- // 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);
-
- 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);
- gtk_about_dialog_set_url_hook(NULL, NULL, NULL);
- }
+#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