[Pkg-xfce-devel] Bug#552765: xfce4-wavelan-plugin: Please provide an option to disable the icon
- Subject: [Pkg-xfce-devel] Bug#552765: xfce4-wavelan-plugin: Please provide an option to disable the icon
- From: sd at sedf.de (Sebastian Dalfuß)
- Date: Tue, 27 Oct 2009 22:19:43 +0100
- Message-id: <[🔎] 20091027211943.29068.40718.reportbug@atom>
Package: xfce4-wavelan-plugin
Version: 0.5.5-3-1
Severity: wishlist
Tags: patch
The icon has no particular purpose, but occupies space at the taskbar. An
option to disable the icon (so that only the bar graph is shown) would be
nice, beause there are devices where screen space is a very limited ressource
(e.g. so called "netbooks").
Below is a patch that provides that option. But it is not meant for
inclusion, because it takes a xfce4-panel -r to respect the toggled option.
03_show_icon.patch
--- panel-plugin/wavelan.c.orig 2009-10-26 23:11:23.529360906 +0100
+++ panel-plugin/wavelan.c 2009-10-26 23:06:53.336054344 +0100
@@ -54,6 +54,7 @@
gboolean autohide;
gboolean autohide_missing;
gboolean signal_colors;
+ gboolean show_icon;
int size;
GtkOrientation orientation;
@@ -258,6 +259,7 @@
wavelan->autohide = xfce_rc_read_bool_entry (rc, "Autohide", FALSE);
wavelan->autohide_missing = xfce_rc_read_bool_entry(rc, "AutohideMissing", FALSE);
wavelan->signal_colors = xfce_rc_read_bool_entry(rc, "SignalColors", FALSE);
+ wavelan->show_icon = xfce_rc_read_bool_entry(rc, "ShowIcon", FALSE);
}
}
@@ -285,6 +287,8 @@
wavelan->signal_colors = TRUE;
+ wavelan->show_icon = TRUE;
+
wavelan->plugin = plugin;
wavelan->size = xfce_panel_plugin_get_size (plugin);
@@ -313,10 +317,15 @@
gtk_widget_set_size_request(wavelan->signal, -1, 8);
}
- wavelan->image = gtk_image_new();
- gtk_image_set_from_pixbuf(GTK_IMAGE(wavelan->image), gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "network-wireless", wavelan->size-6, 0, NULL));
+ wavelan_read_config(plugin, wavelan);
+
+ /* load image */
+ if (wavelan->show_icon == TRUE){
+ wavelan->image = gtk_image_new();
+ gtk_image_set_from_pixbuf(GTK_IMAGE(wavelan->image), gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "network-wireless", wavelan->size-6, 0, NULL));
+ gtk_box_pack_start(GTK_BOX(wavelan->box), GTK_WIDGET(wavelan->image), FALSE, FALSE, 2);
+ }
- gtk_box_pack_start(GTK_BOX(wavelan->box), GTK_WIDGET(wavelan->image), FALSE, FALSE, 2);
gtk_box_pack_start(GTK_BOX(wavelan->box), GTK_WIDGET(wavelan->signal), FALSE, FALSE, 2);
gtk_widget_show_all(wavelan->box);
@@ -326,8 +335,6 @@
gtk_widget_set_size_request(wavelan->ebox, -1, wavelan->size);
else
gtk_widget_set_size_request(wavelan->ebox, wavelan->size, -1);
-
- wavelan_read_config(plugin, wavelan);
wavelan_set_state(wavelan, wavelan->state);
@@ -378,6 +385,7 @@
xfce_rc_write_bool_entry (rc, "Autohide", wavelan->autohide);
xfce_rc_write_bool_entry (rc, "AutohideMissing", wavelan->autohide_missing);
xfce_rc_write_bool_entry (rc, "SignalColors", wavelan->signal_colors);
+ xfce_rc_write_bool_entry (rc, "ShowIcon", wavelan->show_icon);
xfce_rc_close(rc);
@@ -404,7 +412,10 @@
wavelan_set_size(t_wavelan *wavelan, int size)
{
wavelan->size = size;
- gtk_image_set_from_pixbuf(GTK_IMAGE(wavelan->image), gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "network-wireless", wavelan->size-6, 0, NULL));
+ if (wavelan->show_icon == TRUE){
+ gtk_image_set_from_pixbuf(GTK_IMAGE(wavelan->image), gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), "network-wireless", wavelan->size-6, 0, NULL));
+ }
+
if (wavelan->orientation == GTK_ORIENTATION_HORIZONTAL)
gtk_widget_set_size_request(wavelan->ebox, -1, wavelan->size);
else
@@ -448,6 +459,15 @@
wavelan_set_state(wavelan, wavelan->state);
}
+/* show icon callback */
+static void
+show_icon_changed(GtkToggleButton *button, t_wavelan *wavelan)
+{
+ TRACE ("Entered show_icon_changed");
+ wavelan->show_icon = gtk_toggle_button_get_active(button);
+ wavelan_set_state(wavelan, wavelan->state);
+}
+
static void
wavelan_dialog_response (GtkWidget *dlg, int response, t_wavelan *wavelan)
{
@@ -464,7 +484,7 @@
{
GtkWidget *dlg, *hbox, *label, *interface, *vbox, *autohide;
GtkWidget *autohide_missing, *header, *warn_label, *signal_colors;
- GtkWidget *combo;
+ GtkWidget *combo, *show_icon;
GList *interfaces, *lp;
TRACE ("Entered wavelan_create_options");
@@ -561,6 +581,17 @@
gtk_box_pack_start(GTK_BOX(hbox), signal_colors, TRUE, TRUE, 1);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 1);
+ hbox = gtk_hbox_new(FALSE, 2);
+ gtk_widget_show(hbox);
+ show_icon = gtk_check_button_new_with_label(_("Show icon"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(show_icon),
+ wavelan->show_icon);
+ g_signal_connect(show_icon, "toggled",
+ G_CALLBACK(show_icon_changed), wavelan);
+ gtk_widget_show(show_icon);
+ gtk_box_pack_start(GTK_BOX(hbox), show_icon, TRUE, TRUE, 1);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 1);
+
for (lp = interfaces; lp != NULL; lp = lp ->next)
g_free (lp->data);
g_list_free (interfaces);
@@ -569,6 +600,7 @@
}
+
static void
wavelan_orientation_changed (XfcePanelPlugin *plugin,
GtkOrientation orientation,
Reply to: