[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