Some more stuff from this kernel-hacker-turned-UI-ninja.

Some of this might be a bit more contentious, but it is all in the name
of the illusive "stetic":

        - Rename "Other Wireless Networks..." to "Connect to Other
          Wireless Network..."
        - Rename "Create new Wireless Network..." to "Create New
          Wireless Network..."
        - Don't center the "Wireless Networks" menu item.
        - Actually make the "Wireless Networks" menu item inactive.
          I realize this was done deliberately (with the nasty signal
          hack), but the thing /is/ insensitive, unselectable, and a
          label, not a menu item.  The greyed-out look is in.
        - Use gtk_menu_new_with_label(), not the previous complications.
        - Consolidate a few seemingly related functions, all called from
          the same place once, into one.
        - Misc. cleanup: net patch change is -36 lines!

Compare:

        http://rlove.org/log/2005061601.html

All my love,

        Robert Love

 applet.c     |   23 +++++++++---------
 menu-items.c |   72 ++++++++++++-----------------------------------------------
 menu-items.h |    9 +++++--
 3 files changed, 34 insertions(+), 70 deletions(-)

Index: gnome/applet/applet.c
===================================================================
RCS file: /cvs/gnome/NetworkManager/gnome/applet/applet.c,v
retrieving revision 1.12
diff -u -u -r1.12 applet.c
--- gnome/applet/applet.c       12 Jun 2005 14:35:58 -0000      1.12
+++ gnome/applet/applet.c       16 Jun 2005 20:12:00 -0000
@@ -1298,16 +1298,17 @@
 
                case DEVICE_TYPE_WIRELESS_ETHERNET:
                {
-                       NMWirelessMenuItem *item = wireless_menu_item_new ();
-                       GtkMenuItem *gtk_item = wireless_menu_item_get_item 
(item);
-                    wireless_menu_item_update (item, device, n_devices);
-
-                       g_object_set_data (G_OBJECT (gtk_item), "device", 
g_strdup (network_device_get_nm_path (device)));
-                       g_object_set_data (G_OBJECT (gtk_item), "nm-item-data", 
item);
-                       g_signal_connect(G_OBJECT (gtk_item), "activate", 
G_CALLBACK (nmwa_menu_item_activate), applet);
+                       NMWirelessMenuItem *item = wireless_menu_item_new 
(device, n_devices);
 
-                       gtk_menu_shell_append (GTK_MENU_SHELL (menu), 
GTK_WIDGET (gtk_item));
-                       gtk_widget_show (GTK_WIDGET (gtk_item));
+                       g_object_set_data (G_OBJECT (item->menu_item), 
"device", g_strdup (network_device_get_nm_path (device)));
+                       g_object_set_data (G_OBJECT (item->menu_item), 
"nm-item-data", item);
+                       g_signal_connect (G_OBJECT (item->menu_item), 
"activate", G_CALLBACK (nmwa_menu_item_activate), applet);
+
+                       gtk_menu_shell_append (GTK_MENU_SHELL (menu), 
GTK_WIDGET (item->separator));
+                       gtk_widget_show (GTK_WIDGET (item->separator));
+
+                       gtk_menu_shell_append (GTK_MENU_SHELL (menu), 
GTK_WIDGET (item->menu_item));
+                       gtk_widget_show (GTK_WIDGET (item->menu_item));
                        break;
                }
 
@@ -1329,7 +1330,7 @@
   GtkWidget *label;
 
   menu_item = gtk_menu_item_new ();
-  label = gtk_label_new (_("Other Wireless Networks..."));
+  label = gtk_label_new (_("Connect to Other Wireless Network..."));
   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
   gtk_container_add (GTK_CONTAINER (menu_item), label);
   gtk_widget_show_all (menu_item);
@@ -1350,7 +1351,7 @@
   GtkWidget *label;
 
   menu_item = gtk_menu_item_new ();
-  label = gtk_label_new (_("Create new Wireless Network..."));
+  label = gtk_label_new (_("Create New Wireless Network..."));
   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
   gtk_container_add (GTK_CONTAINER (menu_item), label);
   gtk_widget_show_all (menu_item);
Index: gnome/applet/menu-items.c
===================================================================
RCS file: /cvs/gnome/NetworkManager/gnome/applet/menu-items.c,v
retrieving revision 1.2
diff -u -u -r1.2 menu-items.c
--- gnome/applet/menu-items.c   6 May 2005 02:58:05 -0000       1.2
+++ gnome/applet/menu-items.c   16 Jun 2005 20:12:00 -0000
@@ -101,76 +101,34 @@
                gtk_widget_set_sensitive (GTK_WIDGET (item->check_item), 
network_device_get_link (dev));
 }
 
-
-/****************************************************************
- *   Wireless menu item
- ****************************************************************/
-
-struct NMWirelessMenuItem
-{
-       GtkMenuItem     *menu_item;
-       GtkLabel                *label;
-};
-
-
-static gboolean label_expose (GtkWidget *widget)
+NMWirelessMenuItem *wireless_menu_item_new (NetworkDevice *dev, const gint 
n_devices)
 {
-       /* Bad hack to make the label draw normally, instead of insensitive. */
-       widget->state = GTK_STATE_NORMAL;
-  
-       return FALSE;
-}
-
-NMWirelessMenuItem *wireless_menu_item_new (void)
-{
-       NMWirelessMenuItem      *item = g_malloc0 (sizeof (NMWirelessMenuItem));
-
-       g_return_val_if_fail (item != NULL, NULL);
-
-       item->menu_item = GTK_MENU_ITEM (gtk_menu_item_new ());
-
-       /* Make sure it looks slightly different if the label determines the 
width of the widget */
-       item->label = GTK_LABEL (gtk_label_new (NULL));
-       gtk_misc_set_padding (GTK_MISC (item->label), 6, 0);
-       g_signal_connect (G_OBJECT (item->label), "expose-event", G_CALLBACK 
(label_expose), NULL);
-
-       gtk_container_add (GTK_CONTAINER (item->menu_item), GTK_WIDGET 
(item->label));
-       gtk_widget_show (GTK_WIDGET (item->label));
-
-       gtk_widget_set_sensitive (GTK_WIDGET (item->menu_item), FALSE);
-
-       return item;
-}
-
-GtkMenuItem *wireless_menu_item_get_item (NMWirelessMenuItem *item)
-{
-       g_return_val_if_fail (item != NULL, NULL);
-
-       return item->menu_item;
-}
-
-void wireless_menu_item_update (NMWirelessMenuItem *item, NetworkDevice *dev, 
const gint n_devices)
-{
-       char *text;
-       const char *dev_name;
+       NMWirelessMenuItem *item = g_malloc0 (sizeof (NMWirelessMenuItem));
        gint n_essids;
+       char *text;
 
-       g_return_if_fail (dev != NULL);
-       g_return_if_fail (item != NULL);
+       g_return_val_if_fail (dev != NULL, NULL);
+       g_return_val_if_fail (item != NULL, NULL);
        g_assert (network_device_is_wireless (dev));
 
-       n_essids = network_device_get_num_wireless_networks (dev);
-       dev_name = network_device_get_desc (dev) ? network_device_get_desc 
(dev) : network_device_get_iface (dev);
+       item->separator = gtk_separator_menu_item_new ();
 
+       n_essids = network_device_get_num_wireless_networks (dev);
        if (n_devices > 1)
+       {
+               const char *dev_name = network_device_get_desc (dev) ? 
network_device_get_desc (dev) : network_device_get_iface (dev);
                text = g_strdup_printf (ngettext ("Wireless Network (%s)", 
"Wireless Networks (%s)", n_essids), dev_name);
+       }
        else
                text = g_strdup (ngettext ("Wireless Network", "Wireless 
Networks", n_essids));
 
-       gtk_label_set_markup (GTK_LABEL (item->label), text);
+       item->menu_item = GTK_MENU_ITEM (gtk_menu_item_new_with_label (text));
+       gtk_widget_set_sensitive (GTK_WIDGET (item->menu_item), FALSE);
+
        g_free (text);
-}
 
+       return item;
+}
 
 /****************************************************************
  *   Wireless Network menu item
Index: gnome/applet/menu-items.h
===================================================================
RCS file: /cvs/gnome/NetworkManager/gnome/applet/menu-items.h,v
retrieving revision 1.1
diff -u -u -r1.1 menu-items.h
--- gnome/applet/menu-items.h   27 Apr 2005 18:05:02 -0000      1.1
+++ gnome/applet/menu-items.h   16 Jun 2005 20:12:00 -0000
@@ -27,15 +27,20 @@
 
 
 typedef struct NMWiredMenuItem NMWiredMenuItem;
-typedef struct NMWirelessMenuItem NMWirelessMenuItem;
 typedef struct NMNetworkMenuItem NMNetworkMenuItem;
 
+typedef struct NMWirelessMenuItem
+{
+       GtkWidget               *separator;
+       GtkMenuItem     *menu_item;
+       GtkLabel                *label;
+} NMWirelessMenuItem;
 
 NMWiredMenuItem        *wired_menu_item_new (void);
 GtkCheckMenuItem       *wired_menu_item_get_check_item (NMWiredMenuItem *item);
 void                            wired_menu_item_update (NMWiredMenuItem *item, 
NetworkDevice *dev, const gint n_devices);
 
-NMWirelessMenuItem     *wireless_menu_item_new (void);
+NMWirelessMenuItem     *wireless_menu_item_new (NetworkDevice *dev, const gint 
nr_devices);
 GtkMenuItem            *wireless_menu_item_get_item (NMWirelessMenuItem *item);
 void                            wireless_menu_item_update (NMWirelessMenuItem 
*item, NetworkDevice *dev, const gint n_devices);
 
_______________________________________________
NetworkManager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to