New Ad-Hoc icon for notification area icon when connected to Ad-Hoc networks

git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@345 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams 2004-12-17 22:08:09 +00:00
parent d12bd5843a
commit 7dd74c7c47
7 changed files with 80 additions and 27 deletions

View file

@ -273,12 +273,15 @@ nmwa_update_state (NMWirelessApplet *applet)
strength = applet->active_device->strength;
}
#if 0
/* Only show icon if there's more than one device and at least one is wireless */
if (g_slist_length (applet->device_list) == 1 &&
applet->applet_state != APPLET_STATE_NO_NM)
{
if (((NetworkDevice *)applet->device_list->data)->type == DEVICE_TYPE_WIRED_ETHERNET)
show_applet = FALSE;
}
#endif
nmwa_update_network_state (applet);
@ -302,17 +305,25 @@ nmwa_update_state (NMWirelessApplet *applet)
case (APPLET_STATE_WIRELESS):
if (applet->active_device)
{
if (strength > 75)
pixbuf = applet->wireless_100_icon;
else if (strength > 50)
pixbuf = applet->wireless_75_icon;
else if (strength > 25)
pixbuf = applet->wireless_50_icon;
else if (strength > 0)
pixbuf = applet->wireless_25_icon;
if (applet->is_adhoc)
{
pixbuf = applet->adhoc_icon;
tip = g_strdup_printf (_("Connected to an Ad-Hoc wireless network"));
}
else
pixbuf = applet->wireless_00_icon;
tip = g_strdup_printf (_("Wireless network connection (%d%%)"), strength);
{
if (strength > 75)
pixbuf = applet->wireless_100_icon;
else if (strength > 50)
pixbuf = applet->wireless_75_icon;
else if (strength > 25)
pixbuf = applet->wireless_50_icon;
else if (strength > 0)
pixbuf = applet->wireless_25_icon;
else
pixbuf = applet->wireless_00_icon;
tip = g_strdup_printf (_("Wireless network connection (%d%%)"), strength);
}
}
else
tip = g_strdup (_("Wireless network connection"));
@ -324,6 +335,7 @@ nmwa_update_state (NMWirelessApplet *applet)
tip = g_strdup (_("Connecting to a wireless network..."));
break;
case (APPLET_STATE_NO_NM):
show_applet = FALSE;
tip = g_strdup (_("NetworkManager is not running"));
case (APPLET_STATE_WIRELESS_SCANNING):
applet->animation_step = CLAMP (applet->animation_step, 0, NUM_WIRELESS_SCANNING_FRAMES - 1);
@ -341,9 +353,9 @@ nmwa_update_state (NMWirelessApplet *applet)
gtk_tooltips_set_tip (applet->tooltips, applet->event_box, tip, NULL);
g_free (tip);
/*determine if we should hide the notification icon*/
gtk_image_set_from_pixbuf (GTK_IMAGE (applet->pixmap), pixbuf);
/*determine if we should hide the notification icon*/
if (show_applet)
gtk_widget_show (GTK_WIDGET (applet));
else
@ -1052,6 +1064,7 @@ nmwa_icons_free (NMWirelessApplet *applet)
g_object_unref (applet->no_nm_icon);
g_object_unref (applet->wired_icon);
g_object_unref (applet->adhoc_icon);
for (i = 0; i < NUM_WIRED_CONNECTING_FRAMES; i++)
g_object_unref (applet->wired_connecting_icons[i]);
g_object_unref (applet->wireless_00_icon);
@ -1074,21 +1087,22 @@ nmwa_icons_load_from_disk (NMWirelessApplet *applet,
/* Assume icon is square */
icon_size = 22;
applet->no_nm_icon = gtk_icon_theme_load_icon (icon_theme, "nm-device-broken", icon_size, 0, NULL);
applet->wired_icon = gtk_icon_theme_load_icon (icon_theme, "nm-device-wired", icon_size, 0, NULL);
applet->wired_connecting_icons[0] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting00", icon_size, 0, NULL);
applet->wired_connecting_icons[1] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting01", icon_size, 0, NULL);
applet->wired_connecting_icons[2] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting02", icon_size, 0, NULL);
applet->wired_connecting_icons[3] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting03", icon_size, 0, NULL);
applet->wireless_00_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-00", icon_size, 0, NULL);
applet->wireless_25_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-25", icon_size, 0, NULL);
applet->wireless_50_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-50", icon_size, 0, NULL);
applet->wireless_75_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-75", icon_size, 0, NULL);
applet->wireless_100_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-100", icon_size, 0, NULL);
applet->wireless_connecting_icons[0] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting00", icon_size, 0, NULL);
applet->wireless_connecting_icons[1] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting01", icon_size, 0, NULL);
applet->wireless_connecting_icons[2] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting02", icon_size, 0, NULL);
applet->wireless_connecting_icons[3] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting03", icon_size, 0, NULL);
applet->no_nm_icon = gtk_icon_theme_load_icon (icon_theme, "nm-device-broken", icon_size, 0, NULL);
applet->wired_icon = gtk_icon_theme_load_icon (icon_theme, "nm-device-wired", icon_size, 0, NULL);
applet->adhoc_icon = gtk_icon_theme_load_icon (icon_theme, "nm-adhoc", icon_size, 0, NULL);
applet->wired_connecting_icons[0] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting00", icon_size, 0, NULL);
applet->wired_connecting_icons[1] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting01", icon_size, 0, NULL);
applet->wired_connecting_icons[2] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting02", icon_size, 0, NULL);
applet->wired_connecting_icons[3] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting03", icon_size, 0, NULL);
applet->wireless_00_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-00", icon_size, 0, NULL);
applet->wireless_25_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-25", icon_size, 0, NULL);
applet->wireless_50_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-50", icon_size, 0, NULL);
applet->wireless_75_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-75", icon_size, 0, NULL);
applet->wireless_100_icon = gtk_icon_theme_load_icon (icon_theme, "nm-signal-100", icon_size, 0, NULL);
applet->wireless_connecting_icons[0] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting00", icon_size, 0, NULL);
applet->wireless_connecting_icons[1] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting01", icon_size, 0, NULL);
applet->wireless_connecting_icons[2] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting02", icon_size, 0, NULL);
applet->wireless_connecting_icons[3] = gtk_icon_theme_load_icon (icon_theme, "nm-connecting03", icon_size, 0, NULL);
applet->wireless_scanning_icons[0] = gtk_icon_theme_load_icon (icon_theme, "nm-detect00", icon_size, 0, NULL);
applet->wireless_scanning_icons[1] = gtk_icon_theme_load_icon (icon_theme, "nm-detect01", icon_size, 0, NULL);
applet->wireless_scanning_icons[2] = gtk_icon_theme_load_icon (icon_theme, "nm-detect02", icon_size, 0, NULL);

View file

@ -113,6 +113,7 @@ typedef struct
GMutex *data_mutex;
AppletState applet_state;
gboolean forcing_device;
gboolean is_adhoc;
GSList *device_list;
NetworkDevice *active_device;
char *nm_status;
@ -120,6 +121,7 @@ typedef struct
GdkPixbuf *no_nm_icon;
GdkPixbuf *wired_icon;
GdkPixbuf *adhoc_icon;
#define NUM_WIRED_CONNECTING_FRAMES 4
GdkPixbuf *wired_connecting_icons[NUM_WIRED_CONNECTING_FRAMES];
GdkPixbuf *wireless_00_icon;

View file

@ -324,6 +324,30 @@ static char * nmwa_dbus_get_object_name (NMWirelessApplet *applet, char *path)
}
/*
* nmwa_dbus_get_object_mode
*
* Returns the mode (ie Ad-Hoc, Infrastructure) of a specified object (wireless network, device, etc)
*
*/
static NMNetworkMode nmwa_dbus_get_object_mode (NMWirelessApplet *applet, char *path)
{
NMNetworkMode mode = NETWORK_MODE_INFRA;
switch (nmwa_dbus_call_nm_method (applet->connection, path, "getMode", DBUS_TYPE_INT32, (void **)(&mode), NULL))
{
case (RETURN_NO_NM):
applet->applet_state = APPLET_STATE_NO_NM;
break;
default:
break;
}
return (mode);
}
/*
* nmwa_dbus_get_device_udi
*
@ -901,6 +925,7 @@ static void nmwa_dbus_update_devices (NMWirelessApplet *applet)
GSList *device_list = NULL;
NetworkDevice *active_device = NULL;
char *nm_status = NULL;
gboolean adhoc = FALSE;
g_return_if_fail (applet->data_mutex != NULL);
@ -954,7 +979,11 @@ static void nmwa_dbus_update_devices (NMWirelessApplet *applet)
network_device_ref (dev);
applet->dbus_active_device = dev;
network_device_ref (dev);
nmwa_dbus_update_device_wireless_networks (dev, TRUE, applet);
if (dev->type == DEVICE_TYPE_WIRELESS_ETHERNET)
{
adhoc = nmwa_dbus_get_object_mode (applet, nm_act_dev);
nmwa_dbus_update_device_wireless_networks (dev, TRUE, applet);
}
}
else
nmwa_dbus_update_device_wireless_networks (dev, FALSE, applet);
@ -981,6 +1010,7 @@ static void nmwa_dbus_update_devices (NMWirelessApplet *applet)
applet->device_list = device_list;
applet->active_device = active_device;
applet->nm_status = nm_status;
applet->is_adhoc = adhoc;
g_mutex_unlock (applet->data_mutex);
}

View file

@ -8,6 +8,7 @@ largeicon_DATA=\
smallicondir=${datadir}/icons/hicolor/22x22/apps
smallicon_DATA=\
nm-device-wired.png \
nm-adhoc.png \
nm-connecting00.png \
nm-connecting01.png \
nm-connecting02.png \

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

View file

@ -1347,6 +1347,8 @@ static DBusMessage *nm_dbus_devices_handle_networks_request (DBusConnection *con
dbus_message_append_args (reply_message, DBUS_TYPE_INT32, nm_ap_get_rate (ap), DBUS_TYPE_INVALID);
else if (strcmp ("getEncrypted", request) == 0)
dbus_message_append_args (reply_message, DBUS_TYPE_BOOLEAN, nm_ap_get_encrypted (ap), DBUS_TYPE_INVALID);
else if (strcmp ("getMode", request) == 0)
dbus_message_append_args (reply_message, DBUS_TYPE_INT32, nm_ap_get_mode (ap), DBUS_TYPE_INVALID);
else
{
/* Must destroy the allocated message */
@ -1407,6 +1409,8 @@ static DBusMessage *nm_dbus_devices_handle_request (DBusConnection *connection,
dbus_message_append_args (reply_message, DBUS_TYPE_STRING, nm_device_get_udi (dev), DBUS_TYPE_INVALID);
else if (strcmp ("getIP4Address", request) == 0)
dbus_message_append_args (reply_message, DBUS_TYPE_UINT32, nm_device_get_ip4_address (dev), DBUS_TYPE_INVALID);
else if (strcmp ("getMode", request) == 0)
dbus_message_append_args (reply_message, DBUS_TYPE_UINT32, nm_device_get_mode (dev), DBUS_TYPE_INVALID);
else if (strcmp ("getStrength", request) == 0)
{
/* Only wireless devices have signal strength */

View file

@ -66,6 +66,8 @@ void nm_device_set_essid (NMDevice *dev, const char *essid);
void nm_device_get_ap_address (NMDevice *dev, struct ether_addr *addr);
NMNetworkMode nm_device_get_mode (NMDevice *dev);
guint32 nm_device_get_ip4_address (NMDevice *dev);
void nm_device_update_ip4_address (NMDevice *dev);