Re: [PATCH] nm-applet for MBM (Show technology)



On Mon, 2008-10-27 at 16:35 -0400, Dan Williams wrote:
> On Mon, 2008-10-27 at 10:14 -0700, bjornrun wrote:
> > Hello NetworkManager List!
> > 
> > Here are some patches to networkmanager applet for MBM so technology used in
> > connection is shown in applet.
> > Note this uses the earlier patch in Modem-Manager.
> 
> Hang on for a bit with these patches, we'll be switching over to
> ModemManager imminently and then we can start doing this sort of thing.
> 
> But, for the icons, don't create completely new ones.  Just create small
> badges (the same size as nm-vpn-active-lock.png) and then we'll just
> composite them on top of the existing icon in another layer.  There's
> already a VPN layer, so we'll just add another for mobile broadband
> speeds.

BTW, are there "standard" decals/icons for the speeds?  I know most
phones use a G or an E for GPRS/EDGE, and a "3G" for UMTS/HSPA, maybe we
can do a bit better and have some more color :)  As long as people will
recognize it of course.

Dan

> However, where would it go?  The VPN lock already occupies the
> lower-right corner, so that can't be used.  We can't cover up too much
> of the signal strength bars, otherwise it starts getting rediculous...
> we may want to hold off on speed icons until we redesign the applet UI.
> 
> Dan
> 
> > Regards,
> > Bjorn
> > 
> > @@ -316,6 +347,7 @@
> >                char **tip,
> >                NMApplet *applet)
> >  {
> > +	NMAGsmModem *modem;
> >  	GdkPixbuf *pixbuf = NULL;
> >  	const char *iface;
> >  	NMSettingConnection *s_con = NULL;
> > @@ -335,16 +367,82 @@
> >  		*tip = g_strdup_printf (_("Waiting for user authentication on device
> > '%s'..."), iface);
> >  		break;
> >  	case NM_DEVICE_STATE_ACTIVATED:
> > -		if (s_con) {
> > -			const char *id;
> > +		modem = (NMAGsmModem *) g_object_get_data (G_OBJECT (device),
> > "gsm-modem");
> > +		if (modem) {
> > +			char *oper_code;
> > +			char *oper_name;
> > +			guint32 reg_status;
> > +			guint32 quality;
> > +			guint32 network_mode;
> > +			
> > +
> > +			quality = nma_gsm_modem_get_signal_quality (modem);
> > +			quality = CLAMP (quality, 0, 100);
> > +			network_mode = nma_gsm_modem_get_network_mode (modem);
> > +
> > +			g_debug("quality = %d, net = %d", quality, network_mode);
> > +
> > +			if (quality > 80) {
> > +				switch (network_mode) {
> > +				case MM_MODEM_GSM_NETWORK_MODE_HSDPA:
> > +					pixbuf = applet->wireless_100_H_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_3G:
> > +					pixbuf = applet->wireless_100_U_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_GPRS:
> > +					pixbuf = applet->wireless_100_E_icon; break;
> > +				default:
> > +					pixbuf = applet->wireless_100_icon;
> > +				}
> > +			} else if (quality > 55) {
> > +				switch (network_mode) {
> > +				case MM_MODEM_GSM_NETWORK_MODE_HSDPA:
> > +					pixbuf = applet->wireless_75_H_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_3G:
> > +					pixbuf = applet->wireless_75_U_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_GPRS:
> > +					pixbuf = applet->wireless_75_E_icon; break;
> > +				default:
> > +					pixbuf = applet->wireless_75_icon;
> > +				}
> > +			} else if (quality > 30) {
> > +				switch (network_mode) {
> > +				case MM_MODEM_GSM_NETWORK_MODE_HSDPA:
> > +					pixbuf = applet->wireless_50_H_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_3G:
> > +					pixbuf = applet->wireless_50_U_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_GPRS:
> > +					pixbuf = applet->wireless_50_E_icon; break;
> > +				default:
> > +					pixbuf = applet->wireless_50_icon;
> > +				}
> > +			} else if (quality > 5) {
> > +				switch (network_mode) {
> > +				case MM_MODEM_GSM_NETWORK_MODE_HSDPA:
> > +					pixbuf = applet->wireless_25_H_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_3G:
> > +					pixbuf = applet->wireless_25_U_icon; break;
> > +				case MM_MODEM_GSM_NETWORK_MODE_GPRS:
> > +					pixbuf = applet->wireless_25_E_icon; break;
> > +				default:
> > +					pixbuf = applet->wireless_25_icon;
> > +				}
> > +			} else
> > +				pixbuf = applet->wireless_00_icon;
> > +
> > +			reg_status = nma_gsm_modem_get_registration_info (modem, &oper_code,
> > &oper_name);
> > +			*tip = g_strdup_printf (_("%s GSM connection '%s' (%d%%)"),
> > +							    reg_status == MM_GSM_MODEM_REG_STATUS_ROAMING ? _("Roaming") :
> > _("Home"),
> > +			                        oper_name, quality);
> > +
> > +			g_free (oper_name);
> > +			g_free (oper_code);
> > +
> > +		} else {
> > +			pixbuf = applet->wireless_00_icon;
> > +			*tip = g_strdup_printf (_("GSM connection"));
> > +		}
> >  
> > -			id = nm_setting_connection_get_id (s_con);
> > -			if (id)
> > -				*tip = g_strdup_printf (_("Mobile broadband connection '%s'"), id);
> > -		} else
> > -			*tip = g_strdup (_("Mobile broadband connection"));
> > -		pixbuf = applet->wwan_icon;
> >  		break;
> >  	default:
> >  		break;
> > 
> > @@ -1974,6 +1965,21 @@
> >  	CLEAR_ICON(applet->wireless_50_icon);
> >  	CLEAR_ICON(applet->wireless_75_icon);
> >  	CLEAR_ICON(applet->wireless_100_icon);
> > +	CLEAR_ICON(applet->wireless_00_E_icon);
> > +	CLEAR_ICON(applet->wireless_25_E_icon);
> > +	CLEAR_ICON(applet->wireless_50_E_icon);
> > +	CLEAR_ICON(applet->wireless_75_E_icon);
> > +	CLEAR_ICON(applet->wireless_100_E_icon);
> > +	CLEAR_ICON(applet->wireless_00_U_icon);
> > +	CLEAR_ICON(applet->wireless_25_U_icon);
> > +	CLEAR_ICON(applet->wireless_50_U_icon);
> > +	CLEAR_ICON(applet->wireless_75_U_icon);
> > +	CLEAR_ICON(applet->wireless_100_U_icon);
> > +	CLEAR_ICON(applet->wireless_00_H_icon);
> > +	CLEAR_ICON(applet->wireless_25_H_icon);
> > +	CLEAR_ICON(applet->wireless_50_H_icon);
> > +	CLEAR_ICON(applet->wireless_75_H_icon);
> > +	CLEAR_ICON(applet->wireless_100_H_icon);
> >  
> >  	for (i = 0; i < NUM_CONNECTING_STAGES; i++) {
> >  		for (j = 0; j < NUM_CONNECTING_FRAMES; j++)
> > @@ -2021,6 +2027,21 @@
> >  	ICON_LOAD(applet->wireless_50_icon, "nm-signal-50");
> >  	ICON_LOAD(applet->wireless_75_icon, "nm-signal-75");
> >  	ICON_LOAD(applet->wireless_100_icon, "nm-signal-100");
> > +	ICON_LOAD(applet->wireless_00_E_icon, "nm-signal-00-E");
> > +	ICON_LOAD(applet->wireless_25_E_icon, "nm-signal-25-E");
> > +	ICON_LOAD(applet->wireless_50_E_icon, "nm-signal-50-E");
> > +	ICON_LOAD(applet->wireless_75_E_icon, "nm-signal-75-E");
> > +	ICON_LOAD(applet->wireless_100_E_icon, "nm-signal-100-E");
> > +	ICON_LOAD(applet->wireless_00_U_icon, "nm-signal-00-U");
> > +	ICON_LOAD(applet->wireless_25_U_icon, "nm-signal-25-U");
> > +	ICON_LOAD(applet->wireless_50_U_icon, "nm-signal-50-U");
> > +	ICON_LOAD(applet->wireless_75_U_icon, "nm-signal-75-U");
> > +	ICON_LOAD(applet->wireless_100_U_icon, "nm-signal-100-U");
> > +	ICON_LOAD(applet->wireless_00_H_icon, "nm-signal-00-H");
> > +	ICON_LOAD(applet->wireless_25_H_icon, "nm-signal-25-H");
> > +	ICON_LOAD(applet->wireless_50_H_icon, "nm-signal-50-H");
> > +	ICON_LOAD(applet->wireless_75_H_icon, "nm-signal-75-H");
> > +	ICON_LOAD(applet->wireless_100_H_icon, "nm-signal-100-H");
> >  
> >  	for (i = 0; i < NUM_CONNECTING_STAGES; i++) {
> >  		for (j = 0; j < NUM_CONNECTING_FRAMES; j++) {
> > 
> > 
> > 
> > --- ../foss/network-manager-applet/svn/src/applet.h	2008-10-27
> > 04:58:11.000000000 -0700
> > +++ ../src/network-manager-applet/src/applet.h	2008-10-24 07:04:35.000000000
> > -0700
> > @@ -109,6 +109,21 @@
> >  	GdkPixbuf *		wireless_50_icon;
> >  	GdkPixbuf *		wireless_75_icon;
> >  	GdkPixbuf *		wireless_100_icon;
> > +	GdkPixbuf *		wireless_00_E_icon;
> > +	GdkPixbuf *		wireless_25_E_icon;
> > +	GdkPixbuf *		wireless_50_E_icon;
> > +	GdkPixbuf *		wireless_75_E_icon;
> > +	GdkPixbuf *		wireless_100_E_icon;
> > +	GdkPixbuf *		wireless_00_U_icon;
> > +	GdkPixbuf *		wireless_25_U_icon;
> > +	GdkPixbuf *		wireless_50_U_icon;
> > +	GdkPixbuf *		wireless_75_U_icon;
> > +	GdkPixbuf *		wireless_100_U_icon;
> > +	GdkPixbuf *		wireless_00_H_icon;
> > +	GdkPixbuf *		wireless_25_H_icon;
> > +	GdkPixbuf *		wireless_50_H_icon;
> > +	GdkPixbuf *		wireless_75_H_icon;
> > +	GdkPixbuf *		wireless_100_H_icon;
> >  #define NUM_CONNECTING_STAGES 3
> >  #define NUM_CONNECTING_FRAMES 11
> >  	GdkPixbuf *	
> > network_connecting_icons[NUM_CONNECTING_STAGES][NUM_CONNECTING_FRAMES];
> > @@ -215,4 +230,17 @@
> >                                                           NMApplet *applet,
> >                                                           NMActiveConnection
> > **out_active);
> >  
> > +
> > +typedef enum {
> > +  MM_MODEM_GSM_NETWORK_MODE_ANY       = 0,
> > +  MM_MODEM_GSM_NETWORK_MODE_GPRS      = 1,
> > +  MM_MODEM_GSM_NETWORK_MODE_EDGE      = 2,
> > +  MM_MODEM_GSM_NETWORK_MODE_3G        = 3,
> > +  MM_MODEM_GSM_NETWORK_MODE_HSDPA     = 4,
> > +  MM_MODEM_GSM_NETWORK_MODE_PREFER_2G = 5,
> > +  MM_MODEM_GSM_NETWORK_MODE_PREFER_3G = 6,
> > +
> > +    MM_MODEM_GSM_NETWORK_MODE_LAST = MM_MODEM_GSM_NETWORK_MODE_PREFER_3G
> > +} MMModemGsmNetworkMode;
> > +
> >  #endif
> > 
> > 
> > 
> > 
> > http://www.nabble.com/file/p20192060/nm-signal-00-E.png nm-signal-00-E.png 
> > http://www.nabble.com/file/p20192060/nm-signal-00-U.png nm-signal-00-U.png 
> > http://www.nabble.com/file/p20192060/nm-signal-00-H.png nm-signal-00-H.png 
> > http://www.nabble.com/file/p20192060/nm-signal-25-E.png nm-signal-25-E.png 
> > http://www.nabble.com/file/p20192060/nm-signal-25-H.png nm-signal-25-H.png 
> > http://www.nabble.com/file/p20192060/nm-signal-25-U.png nm-signal-25-U.png 
> > http://www.nabble.com/file/p20192060/nm-signal-50-E.png nm-signal-50-E.png 
> > http://www.nabble.com/file/p20192060/nm-signal-50-H.png nm-signal-50-H.png 
> > http://www.nabble.com/file/p20192060/nm-signal-50-U.png nm-signal-50-U.png 
> > http://www.nabble.com/file/p20192060/nm-signal-75-E.png nm-signal-75-E.png 
> > http://www.nabble.com/file/p20192060/nm-signal-75-H.png nm-signal-75-H.png 
> > http://www.nabble.com/file/p20192060/nm-signal-75-U.png nm-signal-75-U.png 
> > http://www.nabble.com/file/p20192060/nm-signal-100-E.png nm-signal-100-E.png 
> > http://www.nabble.com/file/p20192060/nm-signal-100-H.png nm-signal-100-H.png 
> > http://www.nabble.com/file/p20192060/nm-signal-100-U.png nm-signal-100-U.png 
> > 
> > 
> > -- 
> > View this message in context: http://www.nabble.com/-PATCH--nm-applet-for-MBM-%28Show-technology%29-tp20192060p20192060.html
> > Sent from the Gnome - NetworkManager mailing list archive at Nabble.com.
> > 
> > _______________________________________________
> > NetworkManager-list mailing list
> > NetworkManager-list gnome org
> > http://mail.gnome.org/mailman/listinfo/networkmanager-list
> 
> _______________________________________________
> NetworkManager-list mailing list
> NetworkManager-list gnome org
> http://mail.gnome.org/mailman/listinfo/networkmanager-list



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