[Pkg-xfce-devel] Bug#552765: xfce4-wavelan-plugin: Please provide an option to disable the icon
Sebastian Dalfuß
sd at sedf.de
Tue Oct 27 21:19:43 UTC 2009
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,
More information about the Pkg-xfce-devel
mailing list