- GdkPixbuf *icon;
- GtkWidget *dialog;
- XfceAboutInfo *about;
-
- /* Send NULL as our license, since GPL >= 3 is not
- supported yet. I don't particularly care if people
- want to re-license under GPL2, but I also don't want
- to cause any unnecessary confusion. */
- about = xfce_about_info_new("xfce4-hdaps",
- VERSION,
- _("An HDAPS Plugin for XFCE4"),
- XFCE_COPYRIGHT_TEXT("2009", "Michael Orlitzky"),
- NULL);
-
- xfce_about_info_set_homepage(about, PLUGIN_WEBSITE);
-
- xfce_about_info_add_credit(about,
- "Michael Orlitzky",
- "michael@orlitzky.com",
- _("A Reasonable Man"));
-
- icon = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),
- "xfce4-hdaps",
- 48, 0, NULL);
-
- dialog = xfce_about_dialog_new_with_values(NULL, about, icon);
- xfce_about_info_free(about);
- gtk_dialog_run(GTK_DIALOG(dialog));
- gtk_widget_destroy(dialog);
- g_object_unref(G_OBJECT(icon));
+ const gchar *authors[] = { "Michael Orlitzky <michael@orlitzky.com>", NULL };
+ const gchar *copyright = "Copyright \302\251 2019 Michael Orlitzky";
+
+ GtkAboutDialog *about = GTK_ABOUT_DIALOG(gtk_about_dialog_new());
+
+ gtk_about_dialog_set_authors(about, authors);
+ gtk_about_dialog_set_copyright(about, copyright);
+ gtk_about_dialog_set_program_name(about, PACKAGE_NAME);
+ gtk_about_dialog_set_logo_icon_name(about, PACKAGE_NAME);
+ gtk_about_dialog_set_license(about, LICENSE_AGPL3);
+ gtk_about_dialog_set_version(about, PACKAGE_VERSION);
+ gtk_about_dialog_set_website(about, PLUGIN_WEBSITE);
+ gtk_about_dialog_set_website_label(about, "xfce4-hdaps homepage");
+
+ /* Use a custom URI handler for http(s):// and mailto:// URIs. The
+ default behavior apparently needs gio/gvfs to work, so we want
+ to add some fallbacks. */
+ g_signal_connect(about,
+ "activate-link",
+ G_CALLBACK(hdaps_uri_handler),
+ NULL);
+
+ /* To close the dialog when "close" is clicked, we have to connect
+ * the response signal to a handler that actually does it.
+ */
+ g_signal_connect(about,
+ "response",
+ G_CALLBACK(hdaps_close_handler),
+ NULL);
+ gtk_widget_show(GTK_WIDGET(about));
+ return;