[network-manager-applet] menu: make active connection bold



commit 29093135c1a27a9064bdece5ea13a93be496cb97
Author: Dan Williams <dcbw redhat com>
Date:   Wed Sep 30 22:47:52 2009 -0700

    menu: make active connection bold

 src/applet-device-bt.c    |   12 +++---------
 src/applet-device-cdma.c  |    5 +----
 src/applet-device-gsm.c   |    5 +----
 src/applet-device-wired.c |    7 ++-----
 src/applet.c              |   26 ++++++++++++++++++++++++++
 src/applet.h              |    4 ++++
 6 files changed, 37 insertions(+), 22 deletions(-)
---
diff --git a/src/applet-device-bt.c b/src/applet-device-bt.c
index 50a009e..d1ad0d2 100644
--- a/src/applet-device-bt.c
+++ b/src/applet-device-bt.c
@@ -90,7 +90,6 @@ typedef enum {
 static void
 add_connection_items (NMDevice *device,
                       GSList *connections,
-                      gboolean carrier,
                       NMConnection *active,
                       AddActiveInactiveEnum flag,
                       GtkWidget *menu,
@@ -101,7 +100,6 @@ add_connection_items (NMDevice *device,
 
 	for (iter = connections; iter; iter = g_slist_next (iter)) {
 		NMConnection *connection = NM_CONNECTION (iter->data);
-		NMSettingConnection *s_con;
 		GtkWidget *item;
 
 		if (active == connection) {
@@ -112,10 +110,7 @@ add_connection_items (NMDevice *device,
 				continue;
 		}
 
-		s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
-		item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
-		gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
- 		gtk_widget_set_sensitive (GTK_WIDGET (item), carrier);
+		item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE));
 
 		info = g_slice_new0 (BtMenuItemInfo);
 		info->applet = applet;
@@ -141,7 +136,6 @@ bt_add_menu_item (NMDevice *device,
 	const char *text;
 	GtkWidget *item;
 	GSList *connections, *all;
-	gboolean carrier = TRUE;
 
 	all = applet_get_all_connections (applet);
 	connections = utils_filter_connections_for_device (device, all);
@@ -162,7 +156,7 @@ bt_add_menu_item (NMDevice *device,
 	gtk_widget_show (item);
 
 	if (g_slist_length (connections))
-		add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet);
+		add_connection_items (device, connections, active, ADD_ACTIVE, menu, applet);
 
 	/* Notify user of unmanaged or unavailable device */
 	item = nma_menu_device_get_menu_item (device, applet, NULL);
@@ -175,7 +169,7 @@ bt_add_menu_item (NMDevice *device,
 		/* Add menu items for existing bluetooth connections for this device */
 		if (g_slist_length (connections)) {
 			applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1);
-			add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet);
+			add_connection_items (device, connections, active, ADD_INACTIVE, menu, applet);
 		}
 	}
 
diff --git a/src/applet-device-cdma.c b/src/applet-device-cdma.c
index 47009b5..1473277 100644
--- a/src/applet-device-cdma.c
+++ b/src/applet-device-cdma.c
@@ -185,7 +185,6 @@ add_connection_items (NMDevice *device,
 
 	for (iter = connections; iter; iter = g_slist_next (iter)) {
 		NMConnection *connection = NM_CONNECTION (iter->data);
-		NMSettingConnection *s_con;
 		GtkWidget *item;
 
 		if (active == connection) {
@@ -196,9 +195,7 @@ add_connection_items (NMDevice *device,
 				continue;
 		}
 
-		s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
-		item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
-		gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
+		item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE));
 
 		info = g_slice_new0 (CdmaMenuItemInfo);
 		info->applet = applet;
diff --git a/src/applet-device-gsm.c b/src/applet-device-gsm.c
index 78d41ff..09c4c35 100644
--- a/src/applet-device-gsm.c
+++ b/src/applet-device-gsm.c
@@ -186,7 +186,6 @@ add_connection_items (NMDevice *device,
 
 	for (iter = connections; iter; iter = g_slist_next (iter)) {
 		NMConnection *connection = NM_CONNECTION (iter->data);
-		NMSettingConnection *s_con;
 		GtkWidget *item;
 
 		if (active == connection) {
@@ -197,9 +196,7 @@ add_connection_items (NMDevice *device,
 				continue;
 		}
 
-		s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
-		item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
-		gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
+		item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE));
 
 		info = g_slice_new0 (GSMMenuItemInfo);
 		info->applet = applet;
diff --git a/src/applet-device-wired.c b/src/applet-device-wired.c
index 182ae4b..8bb7760 100644
--- a/src/applet-device-wired.c
+++ b/src/applet-device-wired.c
@@ -126,7 +126,6 @@ add_connection_items (NMDevice *device,
 
 	for (iter = connections; iter; iter = g_slist_next (iter)) {
 		NMConnection *connection = NM_CONNECTION (iter->data);
-		NMSettingConnection *s_con;
 		GtkWidget *item;
 
 		if (active == connection) {
@@ -137,10 +136,8 @@ add_connection_items (NMDevice *device,
 				continue;
 		}
 
-		s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
-		item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
-		gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
- 		gtk_widget_set_sensitive (GTK_WIDGET (item), carrier);
+		item = applet_new_menu_item_helper (connection, active, (flag & ADD_ACTIVE));
+		gtk_widget_set_sensitive (item, carrier);
 
 		info = g_slice_new0 (WiredMenuItemInfo);
 		info->applet = applet;
diff --git a/src/applet.c b/src/applet.c
index ca8d7f4..0fec6a0 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -448,6 +448,32 @@ applet_menu_item_add_complex_separator_helper (GtkWidget *menu,
 	return;
 }
 
+GtkWidget *
+applet_new_menu_item_helper (NMConnection *connection,
+                             NMConnection *active,
+                             gboolean add_active)
+{
+	GtkWidget *item;
+	NMSettingConnection *s_con;
+	char *markup;
+	GtkWidget *label;
+
+	s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
+	item = gtk_image_menu_item_new_with_label ("");
+	if (add_active && (active == connection)) {
+		/* Pure evil */
+		label = gtk_bin_get_child (GTK_BIN (item));
+		gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+		markup = g_markup_printf_escaped ("<b>%s</b>", nm_setting_connection_get_id (s_con));
+		gtk_label_set_markup (GTK_LABEL (label), markup);
+		g_free (markup);
+	} else
+		gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con));
+
+	gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE);
+	return item;
+}
+
 #define TITLE_TEXT_R ((double) 0x5e / 255.0 )
 #define TITLE_TEXT_G ((double) 0x5e / 255.0 )
 #define TITLE_TEXT_B ((double) 0x5e / 255.0 )
diff --git a/src/applet.h b/src/applet.h
index 8386fe8..c577e1e 100644
--- a/src/applet.h
+++ b/src/applet.h
@@ -255,4 +255,8 @@ NMConnection * applet_find_active_connection_for_device (NMDevice *device,
                                                          NMApplet *applet,
                                                          NMActiveConnection **out_active);
 
+GtkWidget * applet_new_menu_item_helper (NMConnection *connection,
+                                         NMConnection *active,
+                                         gboolean add_active);
+
 #endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]