[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