]> gitweb.michael.orlitzky.com - xfce4-hdaps.git/blobdiff - panel-plugin/xfce4-hdaps-dialogs.c
xfce4-hdaps-dialogs.c: replace email/url hooks with a signal handler.
[xfce4-hdaps.git] / panel-plugin / xfce4-hdaps-dialogs.c
index dc104fdff75f67329b4d84747e93d99fc4e8fe73..bacd540e22ae00e6a027879e53a5ecf18b43ac04 100644 (file)
@@ -102,9 +102,9 @@ void hdaps_configure(XfcePanelPlugin *plugin,
   dialog = xfce_titled_dialog_new_with_buttons(_("Hdaps Plugin"),
                                               GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (plugin))),
                                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                                              GTK_STOCK_HELP, GTK_RESPONSE_HELP,
-                                              GTK_STOCK_SAVE, GTK_RESPONSE_OK,
-                                              GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                              "gtk-help", GTK_RESPONSE_HELP,
+                                              "gtk-save", GTK_RESPONSE_OK,
+                                              "gtk-cancel", GTK_RESPONSE_CANCEL,
                                               NULL);
 
   /* Center the dialog on screen. */
@@ -122,14 +122,15 @@ void hdaps_configure(XfcePanelPlugin *plugin,
                   G_CALLBACK(hdaps_configure_response), hdaps);
 
   
-  vbox = gtk_vbox_new(FALSE, DEFAULT_BORDER_WIDTH);
+  vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, DEFAULT_BORDER_WIDTH);
   gtk_container_set_border_width(GTK_CONTAINER(vbox), DEFAULT_BORDER_WIDTH - 2);
-  gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), vbox, TRUE, TRUE, 0);
+  gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),
+                    vbox, TRUE, TRUE, 0);
   
   /* Create size group to keep widgets aligned */
   sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
-  hbox = gtk_hbox_new(FALSE, DEFAULT_BORDER_WIDTH);
+  hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, DEFAULT_BORDER_WIDTH);
   gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
   label = gtk_label_new(_("Poll Frequency:"));
@@ -148,7 +149,7 @@ void hdaps_configure(XfcePanelPlugin *plugin,
                     0);
 
   /* Create the device name dropdown. */
-  hbox = gtk_hbox_new(FALSE, DEFAULT_BORDER_WIDTH);
+  hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, DEFAULT_BORDER_WIDTH);
   gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
 
   label = gtk_label_new(_("Device Name:"));
@@ -192,41 +193,34 @@ void hdaps_configure(XfcePanelPlugin *plugin,
 
 
 
-/* URL handler used on the About dialog. */
-static void hdaps_url_handler(GtkAboutDialog *about,
-                             const gchar *link,
+/* URI (http(s):// and mailto://) handler used on the About dialog. */
+static void hdaps_uri_handler(GtkAboutDialog *about,
+                             const gchar *uri,
                              gpointer data) {
     gchar *cmd;
 
-    cmd = g_strdup_printf("%s %s","xdg-open", link);
+    cmd = g_strdup_printf("%s %s","xdg-open", uri);
 
-    /* Stolen from xfce4-power-manager. */
     if (!g_spawn_command_line_async(cmd, NULL)) {
       g_free(cmd);
-      cmd = g_strdup_printf("%s %s","xfbrowser4", link);
+      cmd = g_strdup_printf("%s %s","xdg-open", uri);
       g_spawn_command_line_async(cmd, NULL);
     }
     g_free(cmd);
 }
 
 
-/* Email address handler used on the About dialog. */
-static void hdaps_mailto_handler(GtkAboutDialog *about,
-                                const gchar *link,
-                                gpointer data) {
-    gchar *cmd = g_strdup_printf( "%s %s", "xdg-email", link);
-
-    g_spawn_command_line_async(cmd, NULL);
-    g_free(cmd);
-}
-
-
 void hdaps_about(XfcePanelPlugin *plugin) {
   const gchar *authors[] = { "Michael Orlitzky <michael@orlitzky.com>", NULL };
   const gchar *copyright = "Copyright \302\251 2012 Michael Orlitzky";
 
-  gtk_about_dialog_set_url_hook(hdaps_url_handler, NULL, NULL);
-  gtk_about_dialog_set_email_hook(hdaps_mailto_handler, NULL, NULL);
+  /* Use a custom URI handler for http(s):// and mailto:// URIs. The
+     default behavior apparently needs gio/gvfs to work, and I don't
+     have those installed. */
+  g_signal_connect(plugin,
+                  "activate-link",
+                  G_CALLBACK(hdaps_uri_handler),
+                  NULL);
 
   gtk_show_about_dialog(NULL,
                        "authors", authors,