want to save any settings that may have changed. */
g_object_set_data(G_OBJECT(hdaps->plugin), "dialog", NULL);
hdaps->poll_frequency = gtk_spin_button_get_value_as_int((GtkSpinButton*)hdaps->sb_poll_frequency);
- hdaps->device_name = gtk_combo_box_get_active_text((GtkComboBox*)hdaps->cb_device_name);
+ hdaps->device_name = gtk_combo_box_text_get_active_text((GtkComboBoxText*)hdaps->cb_device_name);
snprintf(hdaps->sysfs_file, FILENAME_MAX, UNLOAD_HEADS_FMT, hdaps->device_name);
hdaps_save(hdaps->plugin, hdaps);
hdaps_reset_timeout(hdaps);
/* Create the dialog */
dialog = xfce_titled_dialog_new_with_buttons(_("Hdaps Plugin"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (plugin))),
- GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
- GTK_STOCK_HELP, GTK_RESPONSE_HELP,
- GTK_STOCK_SAVE, GTK_RESPONSE_OK,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ "gtk-help", GTK_RESPONSE_HELP,
+ "gtk-save", GTK_RESPONSE_OK,
+ "gtk-cancel", GTK_RESPONSE_CANCEL,
NULL);
/* Center the dialog on screen. */
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:"));
gtk_size_group_add_widget(sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_widget_set_halign(label, 0.0);
+ gtk_widget_set_valign(label, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
hdaps->sb_poll_frequency = gtk_spin_button_new_with_range(100, 5000, 100);
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:"));
gtk_size_group_add_widget(sg, label);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_widget_set_halign(label, 0.0);
+ gtk_widget_set_valign(label, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- hdaps->cb_device_name = gtk_combo_box_new_text();
+ hdaps->cb_device_name = gtk_combo_box_text_new();
/* Add the current device name, it should always be available.
Oh, and it should be the default, too. */
- gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps->device_name);
+ gtk_combo_box_text_append_text((GtkComboBoxText*)hdaps->cb_device_name, hdaps->device_name);
/* This function takes an index, and 0 should be the first
(only) index at this point. */
the only entry. Therefore, to avoid duplicates, we only
have to avoid adding the current device name a second time. */
if (strcmp(hdaps_devices[list_idx], hdaps->device_name) != 0) {
- gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps_devices[list_idx]);
+ gtk_combo_box_text_append_text((GtkComboBoxText*)hdaps->cb_device_name, hdaps_devices[list_idx]);
}
}
-/* 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,