Author: olivier
Date: 2006-07-08 12:36:25 +0000 (Sat, 08 Jul 2006)
New Revision: 22293
Modified:
xfwm4/trunk/mcs-plugin/wmtweaks_plugin.c
xfwm4/trunk/mcs-plugin/xfwm4_plugin.c
Log:
Use GtkComboBox instead of deprecated GtkOptionMenu (patch from Darren Salt
<[EMAIL PROTECTED]>, bug #1999).
Modified: xfwm4/trunk/mcs-plugin/wmtweaks_plugin.c
===================================================================
--- xfwm4/trunk/mcs-plugin/wmtweaks_plugin.c 2006-07-08 12:32:54 UTC (rev
22292)
+++ xfwm4/trunk/mcs-plugin/wmtweaks_plugin.c 2006-07-08 12:36:25 UTC (rev
22293)
@@ -169,17 +169,21 @@
static void
cb_menuitem_changed (GtkWidget * widget, gpointer user_data)
{
- gchar **value = (gchar **) user_data;
- gchar *setting_name = NULL;
- McsPlugin *mcs_plugin = NULL;
+ const gchar **value = user_data;
+ gchar *setting_name;
+ McsPlugin *mcs_plugin;
+ const gchar *const *values;
- *value = (gchar *) g_object_get_data (G_OBJECT (widget), "setting-value");
+ values = g_object_get_data (G_OBJECT (widget), "setting-values");
setting_name = (gchar *) g_object_get_data (G_OBJECT (widget),
"setting-name");
mcs_plugin = (McsPlugin *) g_object_get_data (G_OBJECT (widget),
"mcs-plugin");
g_assert (setting_name);
g_assert (mcs_plugin);
+ g_assert (values);
+ *value = values[gtk_combo_box_get_active (GTK_COMBO_BOX (widget))];
+
mcs_manager_set_string (mcs_plugin->manager, setting_name, CHANNEL,
*value);
mcs_manager_notify (mcs_plugin->manager, CHANNEL);
write_options (mcs_plugin);
@@ -261,12 +265,11 @@
}
static GtkWidget *
-create_option_menu (McsPlugin * mcs_plugin, gchar * values[], const gchar *
label, gchar * setting_name,
- gchar ** value)
+create_option_menu (McsPlugin * mcs_plugin, const gchar *const values[],
+ const gchar * label, gchar * setting_name, gchar ** value)
{
GtkWidget *hbox;
GtkWidget *label_widget;
- GtkWidget *menu;
GtkWidget *omenu;
GtkWidget *item;
guint n;
@@ -281,29 +284,24 @@
gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5);
gtk_widget_show (label_widget);
- omenu = gtk_option_menu_new ();
+ omenu = gtk_combo_box_new_text ();
gtk_box_pack_start (GTK_BOX (hbox), omenu, FALSE, TRUE, 2);
gtk_widget_show (omenu);
- menu = gtk_menu_new ();
- gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);
- gtk_widget_show (menu);
-
for (n = 0; n < 12; n++)
{
- item = gtk_menu_item_new_with_mnemonic (values[n]);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- gtk_widget_show (item);
+ gtk_combo_box_append_text (GTK_COMBO_BOX (omenu),
+ (n == 11) ? gettext (values[n]) : values[n]);
if (!g_ascii_strcasecmp (*value, values[n]))
- gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), n);
-
- g_object_set_data (G_OBJECT (item), "setting-name", setting_name);
- g_object_set_data (G_OBJECT (item), "mcs-plugin", mcs_plugin);
- g_object_set_data (G_OBJECT (item), "setting-value", values[n]);
- g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK
(cb_menuitem_changed), value);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (omenu), n);
}
+ g_object_set_data (G_OBJECT (omenu), "mcs-plugin", mcs_plugin);
+ g_object_set_data (G_OBJECT (omenu), "setting-name", setting_name);
+ g_object_set_data (G_OBJECT (omenu), "setting-values", (gpointer) values);
+ g_signal_connect (G_OBJECT (omenu), "changed", G_CALLBACK
(cb_menuitem_changed), value);
+
return (hbox);
}
@@ -356,7 +354,7 @@
GtkWidget *button;
guint nth = 0;
- gchar *modifier_list[] = {
+ static const gchar *const modifier_list[] = {
"Alt",
"Control",
"Hyper",
Modified: xfwm4/trunk/mcs-plugin/xfwm4_plugin.c
===================================================================
--- xfwm4/trunk/mcs-plugin/xfwm4_plugin.c 2006-07-08 12:32:54 UTC (rev
22292)
+++ xfwm4/trunk/mcs-plugin/xfwm4_plugin.c 2006-07-08 12:36:25 UTC (rev
22293)
@@ -660,28 +660,20 @@
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
gtk_widget_show (hbox);
- omenu = gtk_option_menu_new ();
+ omenu = gtk_combo_box_new_text ();
gtk_box_pack_start (GTK_BOX (hbox), omenu, TRUE, TRUE, 0);
gtk_widget_show (omenu);
- menu = gtk_menu_new ();
- gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);
- gtk_widget_show (menu);
-
for (n = 0; n < size; n++)
{
- item = gtk_menu_item_new_with_mnemonic (_(template[n].label));
- gtk_widget_show (item);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ gtk_combo_box_append_text (GTK_COMBO_BOX (omenu),
_(template[n].label));
if (strcmp (value, template[n].action) == 0)
- gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), n);
-
- g_object_set_data (G_OBJECT (item), "user-data", template[n].action);
-
- g_signal_connect (G_OBJECT (item), "activate", G_CALLBACK (handler),
user_data);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (omenu), n);
}
+ g_signal_connect (G_OBJECT (omenu), "changed", G_CALLBACK (handler),
user_data);
+
return (vbox);
}
@@ -1308,14 +1300,12 @@
cb_dblclick_action_value_changed (GtkWidget * widget, gpointer user_data)
{
McsPlugin *mcs_plugin = (McsPlugin *) user_data;
- const gchar *action;
+ gint active;
- action = (const gchar *) g_object_get_data (G_OBJECT (widget),
"user-data");
+ g_free (dbl_click_action);
+ active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
+ dbl_click_action = g_strdup (dbl_click_values[active].action);
- if (dbl_click_action)
- g_free (dbl_click_action);
-
- dbl_click_action = g_strdup (action);
mcs_manager_set_string (mcs_plugin->manager, "Xfwm/DblClickAction",
CHANNEL1, dbl_click_action);
mcs_manager_notify (mcs_plugin->manager, CHANNEL1);
xfwm4_plugin_write_options (mcs_plugin);
@@ -1325,14 +1315,12 @@
cb_title_align_value_changed (GtkWidget * widget, gpointer user_data)
{
McsPlugin *mcs_plugin = (McsPlugin *) user_data;
- const gchar *action;
+ gint active;
- action = (const gchar *) g_object_get_data (G_OBJECT (widget),
"user-data");
+ g_free (title_align);
+ active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
+ title_align = g_strdup (title_align_values[active].action);
- if (title_align)
- g_free (title_align);
-
- title_align = g_strdup (action);
mcs_manager_set_string (mcs_plugin->manager, "Xfwm/TitleAlign", CHANNEL1,
title_align);
mcs_manager_notify (mcs_plugin->manager, CHANNEL1);
xfwm4_plugin_write_options (mcs_plugin);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits