[Goodies-commits] r7027 - in xfce4-power-manager/trunk: . src

Ali Abdallah aliov at xfce.org
Sun Mar 29 16:01:48 CEST 2009


Author: aliov
Date: 2009-03-29 14:01:47 +0000 (Sun, 29 Mar 2009)
New Revision: 7027

Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/src/xfpm-supply.c
   xfce4-power-manager/trunk/src/xfpm-tray-icon.c
   xfce4-power-manager/trunk/src/xfpm-tray-icon.h
Log:
Show an adapter icon if no battery device found and user select to always show icon

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-03-29 13:39:50 UTC (rev 7026)
+++ xfce4-power-manager/trunk/ChangeLog	2009-03-29 14:01:47 UTC (rev 7027)
@@ -1,4 +1,7 @@
 
+2009-03-29 16:01 Ali aliov at xfce.org 
+	 * : Show an adapter icon if no battery device found and user select to always show icon
+
 2009-03-29 15:39 Ali aliov at xfce.org 
 	 * : Added xfpmshutdown to sync all the request
 

Modified: xfce4-power-manager/trunk/src/xfpm-supply.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-29 13:39:50 UTC (rev 7026)
+++ xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-29 14:01:47 UTC (rev 7027)
@@ -110,6 +110,9 @@
     supply->priv->notify  = xfpm_notify_new    ();
     supply->priv->conf    = xfpm_xfconf_new    ();
     supply->priv->tray    = xfpm_tray_icon_new ();
+    xfpm_tray_icon_set_visible (supply->priv->tray, FALSE);
+    xfpm_tray_icon_set_icon (supply->priv->tray, "gpm-ac-adapter");
+    xfpm_tray_icon_set_show_info_menu (supply->priv->tray, FALSE);
 }
 
 static void
@@ -132,32 +135,44 @@
 	
     G_OBJECT_CLASS(xfpm_supply_parent_class)->finalize(object);
 }
-/*
+
 static void
-xfpm_supply_show_tray_icon (XfpmSupply *supply)
+xfpm_supply_refresh_tray_icon (XfpmSupply *supply)
 {
     guint8 show_icon;
     
     show_icon = xfpm_xfconf_get_property_enum (supply->priv->conf, SHOW_TRAY_ICON_CFG);
     
-    if ( show_icon == SHOW_ICON_ALWAYS && g_hash_table_size (supply->priv->hash) == 0 )
+    if ( show_icon == SHOW_ICON_ALWAYS )
     {
-	
+	if ( g_hash_table_size (supply->priv->hash) == 0 )
+	{
+	    xfpm_tray_icon_set_tooltip (supply->priv->tray,
+					supply->priv->adapter_present ? 
+					(_("Adapter present")) :
+					(_("Adapter not present")) );
+	    xfpm_tray_icon_set_visible (supply->priv->tray, TRUE);
+	}
+	else
+	    xfpm_tray_icon_set_visible (supply->priv->tray, FALSE);
     }
-    else if ( sh
 }
-*/
 
 gboolean xfpm_supply_on_low_power (XfpmSupply *supply)
 {
+    guint low_power_level;
+    
     GList *list = NULL;
     int i;
     gboolean low_power = FALSE;
+    
     list = g_hash_table_get_values (supply->priv->hash);
     
     if ( !list)
 	return FALSE;
 	
+    low_power_level = xfpm_xfconf_get_property_int (supply->priv->conf, CRITICAL_POWER_LEVEL);
+     
     for ( i=0; i< g_list_length(list); i++)
     {
 	XfpmBattery *battery = NULL;
@@ -173,7 +188,7 @@
 	if ( type != HAL_DEVICE_TYPE_PRIMARY )
 	    continue;
 	    
-	if ( percentage < 10 ) //FIXME: make this configurable
+	if ( percentage < low_power_level ) 
 	    low_power = TRUE;
 	else 
 	    low_power = FALSE;
@@ -314,7 +329,8 @@
     
     g_signal_connect (G_OBJECT(battery), "battery-state-changed",
 		      G_CALLBACK(xfpm_supply_battery_state_changed_cb), supply);
-
+		      
+    xfpm_supply_refresh_tray_icon (supply);
 }
 
 static void
@@ -327,10 +343,10 @@
     if ( battery )
     {
 	TRACE("Removing battery %s", udi);
-	g_object_unref(battery);
 	if (!g_hash_table_remove(supply->priv->hash, udi))
 		g_critical ("Unable to remove battery object from hash");
     }
+    xfpm_supply_refresh_tray_icon (supply);
 }
 
 static void
@@ -400,6 +416,8 @@
 		     
     g_signal_connect(supply->priv->power, "battery-removed",
 		     G_CALLBACK(xfpm_supply_battery_removed_cb), supply);
+		     
+    xfpm_supply_refresh_tray_icon (supply);
     
 }
 

Modified: xfce4-power-manager/trunk/src/xfpm-tray-icon.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-tray-icon.c	2009-03-29 13:39:50 UTC (rev 7026)
+++ xfce4-power-manager/trunk/src/xfpm-tray-icon.c	2009-03-29 14:01:47 UTC (rev 7027)
@@ -58,6 +58,7 @@
     
     GtkStatusIcon *icon;
     GQuark         icon_quark;
+    gboolean       info_menu;
 };
 
 enum
@@ -230,37 +231,40 @@
     gtk_widget_show(mi);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
     
-    // Separator
-    mi = gtk_separator_menu_item_new();
-    gtk_widget_show(mi);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
+    if ( tray->priv->info_menu )
+    {
+	mi = gtk_separator_menu_item_new();
+	gtk_widget_show(mi);
+	gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
     
-    // Battery informations
-    mi = gtk_image_menu_item_new_with_label (_("Information"));
-    img = gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_MENU);
-    gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(mi), img);
+	// Battery informations
     
-    gtk_widget_set_sensitive(mi,FALSE);
-    gtk_widget_set_sensitive (mi,TRUE);
+	mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_INFO, NULL);
+	
+	gtk_widget_set_sensitive(mi,FALSE);
+	gtk_widget_set_sensitive (mi,TRUE);
+	
+	g_signal_connect(mi,"activate",
+			 G_CALLBACK(xfpm_tray_info), tray);
+			 
+	gtk_widget_show(mi);
+	gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
     
-    g_signal_connect(mi,"activate",
-		     G_CALLBACK(xfpm_tray_info), tray);
-		     
-    gtk_widget_show(mi);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
     
-    // Separator
-    mi = gtk_separator_menu_item_new();
-    gtk_widget_show(mi);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
-    
+	// Separator
+	mi = gtk_separator_menu_item_new();
+	gtk_widget_show(mi);
+	gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
+    }
+	
     mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_HELP,NULL);
     gtk_widget_set_sensitive(mi,TRUE);
     gtk_widget_show(mi);
     g_signal_connect(mi,"activate",G_CALLBACK(xfpm_help),NULL);
-    
+	
     gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
     
+    
     mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT,NULL);
     gtk_widget_set_sensitive(mi,TRUE);
     gtk_widget_show(mi);
@@ -310,6 +314,7 @@
     tray->priv->conf  = xfpm_xfconf_new ();
     tray->priv->notify = xfpm_notify_new ();
     
+    tray->priv->info_menu = TRUE;
     tray->priv->icon_quark = 0;
     
     g_signal_connect (tray->priv->icon, "size-changed",
@@ -345,6 +350,12 @@
     return tray;
 }
 
+void xfpm_tray_icon_set_show_info_menu (XfpmTrayIcon *icon, gboolean value)
+{
+    g_return_if_fail (XFPM_IS_TRAY_ICON (icon));
+    icon->priv->info_menu = value;
+}
+
 void xfpm_tray_icon_set_icon (XfpmTrayIcon *icon, const gchar *icon_name)
 {
     g_return_if_fail(XFPM_IS_TRAY_ICON(icon));

Modified: xfce4-power-manager/trunk/src/xfpm-tray-icon.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-tray-icon.h	2009-03-29 13:39:50 UTC (rev 7026)
+++ xfce4-power-manager/trunk/src/xfpm-tray-icon.h	2009-03-29 14:01:47 UTC (rev 7027)
@@ -47,23 +47,26 @@
 	
 } XfpmTrayIconClass;
 
-GType        	    xfpm_tray_icon_get_type        (void) G_GNUC_CONST;
-XfpmTrayIcon       *xfpm_tray_icon_new             (void);
+GType        	    xfpm_tray_icon_get_type        	(void) G_GNUC_CONST;
+XfpmTrayIcon       *xfpm_tray_icon_new             	(void);
 
-void                xfpm_tray_icon_set_icon        (XfpmTrayIcon *icon,
-						    const gchar *icon_name);
+void                xfpm_tray_icon_set_show_info_menu 	(XfpmTrayIcon *icon,
+						         gboolean value);
+
+void                xfpm_tray_icon_set_icon        	(XfpmTrayIcon *icon,
+							 const gchar *icon_name);
 						    
-void                xfpm_tray_icon_set_tooltip     (XfpmTrayIcon *icon,
-						    const gchar *tooltip);
+void                xfpm_tray_icon_set_tooltip     	(XfpmTrayIcon *icon,
+							 const gchar *tooltip);
 						    
-void                xfpm_tray_icon_set_visible     (XfpmTrayIcon *icon,
-						    gboolean visible);
+void                xfpm_tray_icon_set_visible    	(XfpmTrayIcon *icon,
+							 gboolean visible);
 						    
-gboolean            xfpm_tray_icon_get_visible     (XfpmTrayIcon *icon);
+gboolean            xfpm_tray_icon_get_visible     	(XfpmTrayIcon *icon);
 
-GtkStatusIcon      *xfpm_tray_icon_get_tray_icon   (XfpmTrayIcon *icon) G_GNUC_PURE;
+GtkStatusIcon      *xfpm_tray_icon_get_tray_icon   	(XfpmTrayIcon *icon) G_GNUC_PURE;
 
-const gchar        *xfpm_tray_icon_get_icon_name   (XfpmTrayIcon *icon) G_GNUC_PURE;  
+const gchar        *xfpm_tray_icon_get_icon_name   	(XfpmTrayIcon *icon) G_GNUC_PURE;  
 
 G_END_DECLS
 




More information about the Goodies-commits mailing list