#if wxUSE_ABOUTDLG && defined(__WXGTK26__)
#ifndef WX_PRECOMP
+ #include "wx/utils.h" // for wxLaunchDefaultBrowser()
#endif //WX_PRECOMP
#include "wx/aboutdlg.h"
// implementation
// ============================================================================
+extern "C" void
+wxGtkAboutDialogOnClose(GtkAboutDialog *about)
+{
+ gtk_widget_destroy(GTK_WIDGET(about));
+}
+
+extern "C" void
+wxGtkAboutDialogOnLink(GtkAboutDialog * WXUNUSED(about),
+ const gchar *link,
+ gpointer WXUNUSED(data))
+{
+ wxLaunchDefaultBrowser(wxGTK_CONV_BACK(link));
+}
+
void wxAboutBox(const wxAboutDialogInfo& info)
{
if ( !gtk_check_version(2,6,0) )
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, GtkStr(info.GetWebSiteURL()));
gtk_about_dialog_set_website_label
(
gtk_about_dialog_set_translator_credits(dlg, GtkStr(transCredits));
+ g_signal_connect(dlg, "response",
+ G_CALLBACK(wxGtkAboutDialogOnClose), NULL);
+
gtk_widget_show(GTK_WIDGET(dlg));
return;
}