[Goodies-commits] r6553 - xfce4-radio-plugin/trunk/panel-plugin
Stefan Ott
cockroach at xfce.org
Sun Jan 25 22:56:11 CET 2009
Author: cockroach
Date: 2009-01-25 21:56:10 +0000 (Sun, 25 Jan 2009)
New Revision: 6553
Modified:
xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c
xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h
Log:
Added config options for the graphical signal strength display
Modified: xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c
===================================================================
--- xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c 2009-01-25 21:53:06 UTC (rev 6552)
+++ xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.c 2009-01-25 21:56:10 UTC (rev 6553)
@@ -60,7 +60,7 @@
static GdkPixmap *signal_s;
static void
-show_signal_image(radio_gui* data, gint signal)
+update_signal_image(radio_gui* data, gint signal)
{
GdkImage *image;
@@ -77,46 +77,65 @@
gtk_box_pack_start (GTK_BOX (data->outer_box),
data->signal_image, FALSE, FALSE, 1);
}
+ g_object_unref(signal_s);
+ g_object_unref(image);
}
+static void
+update_signal_bar (radio_gui* data, gint signal)
+{
+ GdkColor color;
+
+ gtk_widget_show (data->signal_bar);
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR
+ (data->signal_bar), signal / data->max_signal_strength);
+
+ if (signal == 1)
+ gdk_color_parse (COLOR_SIGNAL_LOW, &color);
+ else if (signal == data->max_signal_strength)
+ gdk_color_parse (COLOR_SIGNAL_HIGH, &color);
+ else
+ gdk_color_parse (COLOR_SIGNAL_MED, &color);
+
+ gtk_widget_modify_bg (data->signal_bar, GTK_STATE_PRELIGHT, &color);
+}
+
static gboolean
-update_signal_bar (radio_gui* data)
+update_signal (radio_gui* data)
{
if (!data->on || !data->show_signal)
{
+ data->signal_timeout_id = 0;
gtk_widget_hide (data->signal_bar);
- data->signal_timeout_id = 0;
- show_signal_image (data, 0);
+
+ if (data->on && !data->show_signal)
+ gtk_widget_hide (data->signal_image);
+
+ if (!data->on && data->show_label_when_off)
+ gtk_widget_hide (data->signal_image);
+
return FALSE;
}
else
{
- gtk_widget_show (data->signal_bar);
double signal = radio_get_signal ();
-
- if (signal > data->max_signal_strength)
- data->max_signal_strength = signal;
-
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR
- (data->signal_bar), signal / data->max_signal_strength);
-
- GdkColor color;
- if (signal == 1)
- gdk_color_parse (COLOR_SIGNAL_LOW, &color);
- else if (signal == data->max_signal_strength)
- gdk_color_parse (COLOR_SIGNAL_HIGH, &color);
- else
- gdk_color_parse (COLOR_SIGNAL_MED, &color);
-
- gtk_widget_modify_bg (data->signal_bar, GTK_STATE_PRELIGHT,
- &color);
+
if (data->signal_timeout_id == 0)
{
data->signal_timeout_id = g_timeout_add (500,
- (GtkFunction) update_signal_bar,
- (gpointer) data);
+ (GtkFunction) update_signal, (gpointer) data);
}
- show_signal_image (data, signal);
+
+ if (data->show_signal_graphical)
+ {
+ gtk_widget_hide (data->signal_bar);
+ update_signal_image (data, signal);
+ }
+ else
+ {
+ gtk_widget_hide (data->signal_image);
+ update_signal_bar(data, signal);
+ }
return TRUE;
}
}
@@ -174,30 +193,63 @@
}
static void
-update_label (radio_gui* data)
+update_label_radio_on (radio_gui *data)
{
gchar *label;
- if (data->on)
+ if (data->show_label)
+ gtk_widget_show (data->label);
+ else
+ gtk_widget_hide (data->label);
+
+ if (data->resolve_presets_in_label)
{
- //GtkTreeIter iter;
- //GtkTreeModel *presets = GTK_TREE_MODEL (data->presets);
- //if (find_preset_by_freq (presets, data->freq, &iter))
- // gtk_tree_model_get (presets, &iter, 0, &label, -1);
- //else
+ GtkTreeIter iter;
+ GtkTreeModel *presets = GTK_TREE_MODEL (data->presets);
+ if (find_preset_by_freq (presets, data->freq, &iter))
+ gtk_tree_model_get (presets, &iter, 0, &label, -1);
+ else
+ label = g_strdup_printf
+ ("%5.1f", ((float) data->freq) / 100);
+ }
+ else
label = g_strdup_printf ("%5.1f", ((float) data->freq) / 100);
- update_tooltip (data);
+
+ gtk_label_set_label (GTK_LABEL (data->label), label);
+ g_free (label);
+}
+
+static void
+update_label_radio_off (radio_gui *data)
+{
+ gchar *label;
+ label = g_strdup (_("- off -"));
+ if (data->show_label_when_off)
+ {
+ gtk_widget_hide (data->signal_image);
+ gtk_widget_show (data->label);
}
else
{
- label = g_strdup (_("- off -"));
+ gtk_widget_hide (data->label);
+ update_signal_image (data, 0);
}
-
gtk_label_set_label (GTK_LABEL (data->label), label);
g_free (label);
}
+static void
+update_label (radio_gui *data)
+{
+ if (data->on)
+ update_label_radio_on (data);
+ else
+ update_label_radio_off (data);
+
+ update_tooltip (data);
+}
+
static gboolean
update_radio (radio_gui *data)
{
@@ -228,7 +280,7 @@
DBG ("Updating frequency to %d", data->freq);
}
update_label (data);
- update_signal_bar (data);
+ update_signal (data);
return TRUE;
}
@@ -241,7 +293,7 @@
DBG ("Tuning to %f", freq);
update_label (data);
- update_signal_bar (data);
+ update_signal (data);
write_config (data, FALSE);
}
@@ -468,7 +520,7 @@
event->button, event->time);
}
update_label (data);
- update_signal_bar (data);
+ update_signal (data);
return event->button != 3;
}
@@ -643,6 +695,9 @@
strcpy(plugin_data->device, "/dev/radio0");
plugin_data->show_signal = TRUE;
+ plugin_data->show_signal_graphical = TRUE;
+ plugin_data->show_label = TRUE;
+ plugin_data->show_label_when_off = FALSE;
plugin_data->auto_update_display = TRUE;
plugin_data->presets = NULL;
plugin_data->presets = NULL;
@@ -689,12 +744,56 @@
radio_show_signal_changed (GtkEditable* editable, void *pointer)
{
radio_gui* data = (radio_gui*) pointer;
+ if (!data->show_label)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editable),
+ TRUE);
data->show_signal = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(editable));
- update_signal_bar (data);
+ update_signal (data);
}
static void
+radio_show_label_changed (GtkEditable* editable, void *pointer)
+{
+ radio_gui* data = (radio_gui*) pointer;
+ if (!data->show_signal)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (editable),
+ TRUE);
+ data->show_label = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
+ (editable));
+ update_label (data);
+}
+
+static void
+radio_show_label_when_off_changed (GtkEditable* editable, void *pointer)
+{
+ radio_gui* data = (radio_gui*) pointer;
+ data->show_label_when_off = gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (editable));
+ update_label (data);
+}
+
+static void
+radio_resolve_presets_changed (GtkEditable* editable, void *pointer)
+{
+ radio_gui* data = (radio_gui*) pointer;
+ data->resolve_presets_in_label = gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (editable));
+ update_label (data);
+}
+
+static void
+radio_signal_type_changed (GtkEditable* editable, void *pointer)
+{
+ radio_gui* data = (radio_gui*) pointer;
+ data->show_signal_graphical = !gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON (editable));
+ update_signal (data);
+
+ DBG ("show_signal_graphical = %d", data->show_signal_graphical);
+}
+
+static void
radio_auto_update_display_changed (GtkEditable* editable, void *pointer)
{
radio_gui* data = (radio_gui*) pointer;
@@ -880,15 +979,21 @@
static void
radio_plugin_create_options (XfcePanelPlugin *plugin, radio_gui *data)
{
- DBG("%d", data->freq);
GtkWidget *table;
GtkWidget *label;
GtkWidget *hbox;
GtkWidget *dialog;
+ GtkWidget *frame;
+ GtkWidget *real_frame;
- GSList *show_signal_group = NULL; // signal strength:
- GtkWidget *signal_show; // - show
- GtkWidget *signal_hide; // - hide
+ GtkWidget *show_signal; // show the signal when on
+ GtkWidget *show_label; // show the label when on
+ GSList *signal_type_group = NULL; // show signal strength as:
+ GtkWidget *signal_type_bar; // - progress bar
+ GtkWidget *signal_type_xpm; // - graphical
+ GSList *show_when_off = NULL; // what to show when off:
+ GtkWidget *label_when_off; // - label
+ GtkWidget *graphics_when_off; // - graphics
GSList *auto_update_display_group = NULL;// auto update display:
GtkWidget *auto_update_display_yes; // - show
GtkWidget *auto_update_display_no; // - hide
@@ -1006,164 +1111,298 @@
notebook = gtk_notebook_new ();
gtk_notebook_set_tab_pos (GTK_NOTEBOOK(notebook), GTK_POS_TOP);
gtk_notebook_set_show_tabs (GTK_NOTEBOOK(notebook), TRUE);
- label_properties = gtk_label_new (_("Properties"));
+ label_properties = gtk_label_new (_("Options"));
label_presets = gtk_label_new (_("Presets"));
- gtk_notebook_append_page (GTK_NOTEBOOK(notebook), preset_box,
- label_presets);
- gtk_notebook_append_page (GTK_NOTEBOOK(notebook), table,
- label_properties);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), notebook,
- TRUE, TRUE, 0);
+ gtk_notebook_append_page
+ (GTK_NOTEBOOK(notebook), preset_box, label_presets);
+ gtk_box_pack_start
+ (GTK_BOX (GTK_DIALOG (dialog)->vbox), notebook, TRUE, TRUE, 0);
gtk_widget_show (notebook);
+ GtkWidget *align = gtk_alignment_new (0, 0, 0.5, 0.5);
+ gtk_widget_show (align);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 5, 5, 5);
+ gtk_notebook_append_page
+ (GTK_NOTEBOOK(notebook), align, label_properties);
+
+ GtkWidget *properties = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (properties);
+ gtk_container_add (GTK_CONTAINER (align), properties);
+
+ // Device
+ real_frame = gtk_frame_new (_("Device"));
+ frame = gtk_alignment_new (0, 0, 0.5, 0.5);
+ table = gtk_table_new (2, 2, FALSE);
+
+ gtk_widget_show (frame);
+ gtk_widget_show (table);
+ gtk_widget_show (real_frame);
+
+ gtk_alignment_set_padding (GTK_ALIGNMENT (frame), 0, 2, 2, 2);
+
+ gtk_container_add (GTK_CONTAINER (properties), real_frame);
+ gtk_container_add (GTK_CONTAINER (real_frame), frame);
+ gtk_container_add (GTK_CONTAINER (frame), table);
+
// V4L device
+ hbox = gtk_hbox_new (FALSE, 0);
label = gtk_label_new (_("V4L device"));
- gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL,
- 0, 0, 0);
- gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ device_entry = gtk_entry_new_with_max_length (MAX_DEVICE_NAME_LENGTH);
+ gtk_entry_set_text (GTK_ENTRY (device_entry), data->device);
- // Show the signal strength
- label = gtk_label_new (_("Display signal strength"));
gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL,
- 0, 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-
- hbox = gtk_hbox_new (FALSE, 0);
+ gtk_widget_show (device_entry);
gtk_widget_show (hbox);
- gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 1, 2, GTK_FILL,
- GTK_FILL, 0, 0);
- signal_show = gtk_radio_button_new_with_label (NULL, _("yes"));
- gtk_widget_show (signal_show);
- gtk_box_pack_start (GTK_BOX (hbox), signal_show, FALSE, FALSE, 0);
- gtk_radio_button_set_group (GTK_RADIO_BUTTON (signal_show),
- show_signal_group);
- show_signal_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON
- (signal_show));
+ gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- signal_hide = gtk_radio_button_new_with_label (show_signal_group,
- _("no"));
- gtk_widget_show (signal_hide);
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), label, 0, 1, 0, 1);
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), device_entry, 1, 2, 0, 1);
- gtk_box_pack_start (GTK_BOX (hbox), signal_hide, FALSE, FALSE, 0);
-
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (signal_show),
- data->show_signal);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (signal_hide),
- !data->show_signal);
-
// Auto-update the display
+ hbox = gtk_hbox_new (FALSE, 0);
label = gtk_label_new (_("Synchronize state with the card"));
+ auto_update_display_yes = gtk_radio_button_new_with_label
+ (NULL, _("yes"));
+
+ gtk_widget_show (hbox);
gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL,
- 0, 0, 0);
+
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox);
- gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_FILL,
- GTK_FILL, 0, 0);
- auto_update_display_yes = gtk_radio_button_new_with_label (NULL,
- _("yes"));
- gtk_widget_show (auto_update_display_yes);
- gtk_box_pack_start (GTK_BOX (hbox), auto_update_display_yes, FALSE,
- FALSE, 0);
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), label, 0, 1, 1, 2);
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), hbox, 1, 2, 1, 2);
+
gtk_radio_button_set_group (GTK_RADIO_BUTTON (auto_update_display_yes),
- auto_update_display_group);
+ auto_update_display_group);
auto_update_display_group = gtk_radio_button_get_group
- (GTK_RADIO_BUTTON (auto_update_display_yes));
+ (GTK_RADIO_BUTTON (auto_update_display_yes));
auto_update_display_no = gtk_radio_button_new_with_label
- (auto_update_display_group, _("no"));
+ (auto_update_display_group, _("no"));
+
+ gtk_widget_show (auto_update_display_yes);
gtk_widget_show (auto_update_display_no);
- gtk_box_pack_start (GTK_BOX (hbox), auto_update_display_no, FALSE,
- FALSE, 0);
+ gtk_box_pack_start
+ (GTK_BOX (hbox), auto_update_display_no, FALSE, FALSE, 0);
+ gtk_box_pack_start
+ (GTK_BOX (hbox), auto_update_display_yes, FALSE, FALSE, 0);
+
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(auto_update_display_yes), data->auto_update_display);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(auto_update_display_no), !data->auto_update_display);
- // Post-startup command
- label = gtk_label_new (_("Execute command after startup"));
- gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5, GTK_FILL,
- 0, 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+ // Mouse-scrolling
+ hbox = gtk_hbox_new (FALSE, 0);
+ label = gtk_label_new (_("Mouse scrolling changes"));
- startup_command_entry = gtk_entry_new_with_max_length
- (MAX_COMMAND_LENGTH);
- gtk_entry_set_text (GTK_ENTRY (startup_command_entry),
- data->startup_command);
- gtk_widget_show (startup_command_entry);
- gtk_table_attach (GTK_TABLE (table), startup_command_entry, 1, 2, 4, 5,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
- // Post-shutdown command
- label = gtk_label_new (_("Execute command after shutdown"));
+ gtk_widget_show (hbox);
gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 5, 6, GTK_FILL,
- 0, 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- shutdown_command_entry = gtk_entry_new_with_max_length
- (MAX_COMMAND_LENGTH);
- gtk_entry_set_text (GTK_ENTRY (shutdown_command_entry),
- data->shutdown_command);
- gtk_widget_show (shutdown_command_entry);
- gtk_table_attach (GTK_TABLE (table), shutdown_command_entry, 1, 2, 5, 6,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
-
- // Mouse-scrolling
- label = gtk_label_new (_("Mouse scrolling changes"));
- gtk_widget_show (label);
- gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL,
- 0, 0, 0);
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox);
- gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_FILL,
- GTK_FILL, 0, 0);
+ gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3);
+ gtk_table_attach_defaults (GTK_TABLE (table), hbox, 1, 2, 2, 3);
frequency_button = gtk_radio_button_new_with_label (NULL,
- _("frequency"));
- gtk_widget_show (frequency_button);
- gtk_box_pack_start (GTK_BOX (hbox), frequency_button, FALSE, FALSE, 0);
+ _("frequency"));
gtk_radio_button_set_group (GTK_RADIO_BUTTON (frequency_button),
- scroll_group);
+ scroll_group);
scroll_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON
- (frequency_button));
+ (frequency_button));
+ preset_button = gtk_radio_button_new_with_label (NULL, _("preset"));
- preset_button = gtk_radio_button_new_with_label (NULL, _("preset"));
- gtk_widget_show (preset_button);
+ gtk_box_pack_start (GTK_BOX (hbox), frequency_button, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), preset_button, FALSE, FALSE, 0);
- gtk_radio_button_set_group (GTK_RADIO_BUTTON (preset_button),
- scroll_group);
- scroll_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON
- (preset_button));
+ gtk_widget_show (frequency_button);
+ gtk_widget_show (preset_button);
+
+ gtk_radio_button_set_group
+ (GTK_RADIO_BUTTON (preset_button), scroll_group);
+ scroll_group =
+ gtk_radio_button_get_group (GTK_RADIO_BUTTON (preset_button));
+
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (frequency_button),
- data->scroll == CHANGE_FREQ);
+ data->scroll == CHANGE_FREQ);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (preset_button),
- data->scroll == CHANGE_PRESET);
+ data->scroll == CHANGE_PRESET);
- device_entry = gtk_entry_new_with_max_length (MAX_DEVICE_NAME_LENGTH);
- gtk_entry_set_text (GTK_ENTRY (device_entry), data->device);
- gtk_widget_show (device_entry);
- gtk_table_attach (GTK_TABLE(table), device_entry, 1, 2, 0, 1,
- GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ // When off
+ real_frame = gtk_frame_new (_("When radio is off"));
+ frame = gtk_alignment_new (0, 0, 0.5, 0.5);
+ GtkWidget *when_off = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (when_off);
+ gtk_widget_show (frame);
+ gtk_widget_show (real_frame);
+
+ gtk_alignment_set_padding (GTK_ALIGNMENT (frame), 0, 2, 2, 2);
+
+ gtk_box_pack_start (GTK_BOX (properties), real_frame, FALSE, FALSE, 9);
+ gtk_container_add (GTK_CONTAINER (real_frame), frame);
+ gtk_container_add (GTK_CONTAINER (frame), when_off);
+
+ label_when_off = gtk_radio_button_new_with_label
+ (NULL, _("Show the label"));
+ gtk_radio_button_set_group (GTK_RADIO_BUTTON (label_when_off),
+ show_when_off);
+ show_when_off = gtk_radio_button_get_group (GTK_RADIO_BUTTON
+ (label_when_off));
+ graphics_when_off = gtk_radio_button_new_with_label
+ (show_when_off, _("Show graphics"));
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+ (label_when_off), data->show_label_when_off);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+ (graphics_when_off), !data->show_label_when_off);
+
+ gtk_widget_show (label_when_off);
+ gtk_widget_show (graphics_when_off);
+
+ gtk_container_add (GTK_CONTAINER (when_off), label_when_off);
+ gtk_container_add (GTK_CONTAINER (when_off), graphics_when_off);
+
+ // When on
+ real_frame = gtk_frame_new (_("When radio is running"));
+ frame = gtk_alignment_new (0, 0, 0.5, 0.5);
+ GtkWidget *when_on = gtk_vbox_new (FALSE, 0);
+ GtkWidget *strength = gtk_hbox_new (FALSE, 0);
+
+ gtk_widget_show (frame);
+ gtk_widget_show (when_on);
+ gtk_widget_show (strength);
+ gtk_widget_show (real_frame);
+
+ gtk_alignment_set_padding (GTK_ALIGNMENT (frame), 0, 2, 2, 2);
+
+ gtk_box_pack_start (GTK_BOX (properties), real_frame, FALSE, FALSE, 9);
+ gtk_container_add (GTK_CONTAINER (real_frame), frame);
+ gtk_container_add (GTK_CONTAINER (frame), when_on);
+ gtk_container_add (GTK_CONTAINER (when_on), strength);
+
+ // Show the signal strength
+ show_signal = gtk_check_button_new_with_label
+ (_("Show signal strength"));
+ gtk_widget_show (show_signal);
+ gtk_container_add (GTK_CONTAINER (strength), show_signal);
+
+ // Show the signal strength as
+ hbox = gtk_hbox_new (FALSE, 0);
+ gtk_widget_show (hbox);
+ gtk_container_add (GTK_CONTAINER (strength), hbox);
+
+ signal_type_bar = gtk_radio_button_new_with_label
+ (signal_type_group, _("as a bar"));
+ signal_type_group = gtk_radio_button_get_group
+ (GTK_RADIO_BUTTON (signal_type_bar));
+ signal_type_xpm = gtk_radio_button_new_with_label
+ (signal_type_group, _("graphically"));
+
+ gtk_widget_show (signal_type_bar);
+ gtk_widget_show (signal_type_xpm);
+
+ gtk_container_add (GTK_CONTAINER (strength), signal_type_bar);
+ gtk_container_add (GTK_CONTAINER (strength), signal_type_xpm);
+
+ // Show the label
+ show_label = gtk_check_button_new_with_label
+ (_("Show the label"));
+ gtk_widget_show (show_label);
+ gtk_container_add (GTK_CONTAINER (when_on), show_label);
+
+ // Resolve presets
+ GtkWidget *resolve_presets = gtk_check_button_new_with_label
+ (_("Show preset names in label"));
+ gtk_widget_show (resolve_presets);
+ gtk_container_add (GTK_CONTAINER (when_on), resolve_presets);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+ (show_signal), data->show_signal);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+ (signal_type_bar), !data->show_signal_graphical);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+ (signal_type_xpm), data->show_signal_graphical);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+ (show_label), data->show_label);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+ (resolve_presets), data->resolve_presets_in_label);
+
+ // Commands
+ real_frame = gtk_frame_new (_("Commands"));
+ frame = gtk_alignment_new (0, 0, 0.5, 0.5);
+ table = gtk_table_new(2, 2, FALSE);
+
+ gtk_widget_show (frame);
+ gtk_widget_show (table);
+ gtk_widget_show (real_frame);
+
+ gtk_table_set_row_spacing (GTK_TABLE (table), 0, 2);
+ gtk_table_set_col_spacing (GTK_TABLE (table), 0, 2);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (frame), 0, 2, 2, 2);
+
+ gtk_container_add (GTK_CONTAINER (frame), table);
+ gtk_container_add (GTK_CONTAINER (real_frame), frame);
+ gtk_box_pack_start(GTK_BOX(properties), real_frame, FALSE, FALSE, 0);
+
+ // Post-startup command
+ label = gtk_label_new (_("Run after startup"));
+ startup_command_entry = gtk_entry_new_with_max_length
+ (MAX_COMMAND_LENGTH);
+
+ gtk_widget_show (label);
+ gtk_widget_show (startup_command_entry);
+
+ gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+
+ gtk_entry_set_text
+ (GTK_ENTRY (startup_command_entry), data->startup_command);
+
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), label, 0, 1, 0, 1);
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), startup_command_entry, 1, 2, 0, 1);
+
+ // Post-shutdown command
+ label = gtk_label_new (_("Run after shutdown"));
+ shutdown_command_entry = gtk_entry_new_with_max_length
+ (MAX_COMMAND_LENGTH);
+
+ gtk_widget_show (label);
+ gtk_widget_show (shutdown_command_entry);
+
+ gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+
+ gtk_entry_set_text
+ (GTK_ENTRY (shutdown_command_entry), data->shutdown_command);
+
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), label, 0, 1, 1, 2);
+ gtk_table_attach_defaults
+ (GTK_TABLE (table), shutdown_command_entry, 1, 2, 1, 2);
+
g_signal_connect ((gpointer) startup_command_entry, "changed",
G_CALLBACK (radio_startup_command_changed), data);
g_signal_connect ((gpointer) shutdown_command_entry, "changed",
G_CALLBACK (radio_shutdown_command_changed), data);
g_signal_connect ((gpointer) device_entry, "changed",
G_CALLBACK (radio_device_changed), data);
- g_signal_connect (G_OBJECT (signal_show), "toggled",
+ g_signal_connect (G_OBJECT (show_signal), "toggled",
G_CALLBACK (radio_show_signal_changed), data);
+ g_signal_connect (G_OBJECT (show_label), "toggled",
+ G_CALLBACK (radio_show_label_changed), data);
+ g_signal_connect (G_OBJECT (label_when_off), "toggled",
+ G_CALLBACK (radio_show_label_when_off_changed), data);
+ g_signal_connect (G_OBJECT (resolve_presets), "toggled",
+ G_CALLBACK (radio_resolve_presets_changed), data);
+ g_signal_connect (G_OBJECT (signal_type_bar), "toggled",
+ G_CALLBACK (radio_signal_type_changed), data);
g_signal_connect (G_OBJECT (auto_update_display_yes), "toggled",
G_CALLBACK (radio_auto_update_display_changed), data);
g_signal_connect (G_OBJECT (frequency_button), "toggled",
Modified: xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h
===================================================================
--- xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h 2009-01-25 21:53:06 UTC (rev 6552)
+++ xfce4-radio-plugin/trunk/panel-plugin/xfce4-radio.h 2009-01-25 21:56:10 UTC (rev 6553)
@@ -78,7 +78,11 @@
gint radio_timeout_id;
gboolean on;
+ gboolean show_label;
gboolean show_signal;
+ gboolean show_label_when_off;
+ gboolean resolve_presets_in_label;
+ gboolean show_signal_graphical;
gboolean auto_update_display;
gint freq;
char device [MAX_DEVICE_NAME_LENGTH];
More information about the Goodies-commits
mailing list