[Goodies-commits] r6944 - in xfce4-power-manager/trunk: . libxfpm settings src
Ali Abdallah
aliov at xfce.org
Wed Mar 18 22:18:15 CET 2009
Author: aliov
Date: 2009-03-18 21:18:15 +0000 (Wed, 18 Mar 2009)
New Revision: 6944
Modified:
xfce4-power-manager/trunk/ChangeLog
xfce4-power-manager/trunk/libxfpm/hal-manager.c
xfce4-power-manager/trunk/settings/xfpm-settings-main.c
xfce4-power-manager/trunk/settings/xfpm-settings.c
xfce4-power-manager/trunk/settings/xfpm-settings.glade
xfce4-power-manager/trunk/settings/xfpm-settings.h
xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml
xfce4-power-manager/trunk/src/xfpm-adapter.c
xfce4-power-manager/trunk/src/xfpm-adapter.h
xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
xfce4-power-manager/trunk/src/xfpm-brightness-hal.h
xfce4-power-manager/trunk/src/xfpm-engine.c
xfce4-power-manager/trunk/src/xfpm-engine.h
xfce4-power-manager/trunk/src/xfpm-idle.c
xfce4-power-manager/trunk/src/xfpm-manager.c
Log:
Load relevent settings depending on the form factor the power manager is running on
Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/ChangeLog 2009-03-18 21:18:15 UTC (rev 6944)
@@ -1,4 +1,7 @@
+2009-03-18 22:18 Ali aliov at xfce.org
+ * : Load relevent settings depending on the form factor the power manager is running on
+
2009-03-18 10:46 Ali aliov at xfce.org
* : Removed already deleted file from PTOFILES.in+modified string in the settings dialog
Modified: xfce4-power-manager/trunk/libxfpm/hal-manager.c
===================================================================
--- xfce4-power-manager/trunk/libxfpm/hal-manager.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/libxfpm/hal-manager.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -53,11 +53,66 @@
LAST_SIGNAL
};
+static gpointer hal_manager_object = NULL;
+
static guint signals[LAST_SIGNAL] = { 0 };
G_DEFINE_TYPE (HalManager, hal_manager, G_TYPE_OBJECT)
static void
+hal_manager_device_added_cb (DBusGProxy *proxy, const gchar *udi, HalManager *manager)
+{
+ g_signal_emit (G_OBJECT(manager), signals[DEVICE_ADDED], 0, udi);
+}
+
+static void
+hal_manager_device_removed_cb (DBusGProxy *proxy, const gchar *udi, HalManager *manager)
+{
+ g_signal_emit (G_OBJECT(manager), signals[DEVICE_REMOVED], 0, udi);
+}
+
+static void
+hal_manager_connect (HalManager *manager)
+{
+ GError *error = NULL;
+
+ manager->priv->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+
+ if ( error )
+ {
+ g_critical ("Failed to get bus system %s\n", error->message);
+ g_error_free (error);
+ goto out;
+ }
+ manager->priv->connected = TRUE;
+
+ manager->priv->proxy = dbus_g_proxy_new_for_name (manager->priv->bus,
+ "org.freedesktop.Hal",
+ "/org/freedesktop/Hal/Manager",
+ "org.freedesktop.Hal.Manager");
+
+ if ( !manager->priv->proxy )
+ {
+ g_critical ("Unable to get proxy for \n");
+ goto out;
+ }
+
+ dbus_g_proxy_add_signal (manager->priv->proxy, "DeviceAdded",
+ G_TYPE_STRING, G_TYPE_INVALID);
+
+ dbus_g_proxy_connect_signal (manager->priv->proxy, "DeviceAdded",
+ G_CALLBACK (hal_manager_device_added_cb), manager, NULL);
+
+ dbus_g_proxy_add_signal (manager->priv->proxy, "DeviceRemoved",
+ G_TYPE_STRING, G_TYPE_INVALID);
+
+ dbus_g_proxy_connect_signal (manager->priv->proxy, "DeviceRemoved",
+ G_CALLBACK (hal_manager_device_removed_cb), manager, NULL);
+out:
+ ;
+}
+
+static void
hal_manager_class_init(HalManagerClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
@@ -94,6 +149,8 @@
manager->priv->bus = NULL;
manager->priv->proxy = NULL;
manager->priv->connected = FALSE;
+
+ hal_manager_connect (manager);
}
static void
@@ -112,70 +169,22 @@
G_OBJECT_CLASS(hal_manager_parent_class)->finalize(object);
}
-static void
-hal_manager_device_added_cb (DBusGProxy *proxy, const gchar *udi, HalManager *manager)
+HalManager *
+hal_manager_new (void)
{
- g_signal_emit (G_OBJECT(manager), signals[DEVICE_ADDED], 0, udi);
-}
-
-static void
-hal_manager_device_removed_cb (DBusGProxy *proxy, const gchar *udi, HalManager *manager)
-{
- g_signal_emit (G_OBJECT(manager), signals[DEVICE_REMOVED], 0, udi);
-}
-
-static void
-hal_manager_connect (HalManager *manager)
-{
- GError *error = NULL;
-
- manager->priv->bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
-
- if ( error )
+ if ( hal_manager_object != NULL )
{
- g_critical ("Failed to get bus system %s\n", error->message);
- g_error_free (error);
- goto out;
+ g_object_ref (hal_manager_object);
}
- manager->priv->connected = TRUE;
-
- manager->priv->proxy = dbus_g_proxy_new_for_name (manager->priv->bus,
- "org.freedesktop.Hal",
- "/org/freedesktop/Hal/Manager",
- "org.freedesktop.Hal.Manager");
-
- if ( !manager->priv->proxy )
+ else
{
- g_critical ("Unable to get proxy for \n");
- goto out;
+ hal_manager_object = g_object_new (HAL_TYPE_MANAGER, NULL);
+ g_object_add_weak_pointer (hal_manager_object, &hal_manager_object);
}
- dbus_g_proxy_add_signal (manager->priv->proxy, "DeviceAdded",
- G_TYPE_STRING, G_TYPE_INVALID);
-
- dbus_g_proxy_connect_signal (manager->priv->proxy, "DeviceAdded",
- G_CALLBACK (hal_manager_device_added_cb), manager, NULL);
-
- dbus_g_proxy_add_signal (manager->priv->proxy, "DeviceRemoved",
- G_TYPE_STRING, G_TYPE_INVALID);
-
- dbus_g_proxy_connect_signal (manager->priv->proxy, "DeviceRemoved",
- G_CALLBACK (hal_manager_device_removed_cb), manager, NULL);
-out:
- ;
+ return HAL_MANAGER (hal_manager_object);
}
-HalManager *
-hal_manager_new (void)
-{
- HalManager *manager = NULL;
- manager = g_object_new (HAL_TYPE_MANAGER, NULL);
-
- hal_manager_connect (manager);
-
- return manager;
-}
-
gchar **hal_manager_find_device_by_capability (HalManager *manager, const gchar *capability)
{
g_return_val_if_fail (HAL_IS_MANAGER(manager), NULL);
Modified: xfce4-power-manager/trunk/settings/xfpm-settings-main.c
===================================================================
--- xfce4-power-manager/trunk/settings/xfpm-settings-main.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/settings/xfpm-settings-main.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -75,6 +75,16 @@
GError *error = NULL;
DBusGConnection *bus = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
+ gboolean system_laptop;
+ gboolean user_privilege;
+ gboolean can_suspend;
+ gboolean can_hibernate;
+ gboolean has_lid;
+ gboolean has_lcd_brightness;
+
+ XfconfChannel *channel;
+ DBusGProxy *proxy;
+ GtkWidget *dialog;
if ( error )
{
@@ -98,24 +108,39 @@
if ( !xfconf_init(&error) )
{
- g_critical("xfconf init failed: %s using default settings\n",error->message);
+ g_critical("xfconf init failed: %s using default settings\n", error->message);
xfpm_popup_message(_("Xfce Power Manager"),_("Failed to load power manager configuration, "\
"using defaults"), GTK_MESSAGE_WARNING);
g_error_free(error);
error = NULL;
+ return EXIT_FAILURE;
}
- XfconfChannel *channel = xfconf_channel_new(XFPM_CHANNEL_CFG);
- DBusGProxy *proxy;
- GtkWidget *dialog;
+ channel = xfconf_channel_new(XFPM_CHANNEL_CFG);
proxy = dbus_g_proxy_new_for_name(bus,
"org.xfce.PowerManager",
"/org/xfce/PowerManager",
"org.xfce.Power.Manager");
- dialog = xfpm_settings_dialog_new (channel);
+ xfpm_manager_dbus_client_get_config (proxy, &system_laptop, &user_privilege,
+ &can_suspend, &can_hibernate, &has_lcd_brightness,
+ &has_lid, &error);
+
+ if ( error )
+ {
+ g_critical ("Unable to get configuration information from xfce power manager: %s", error->message);
+ xfpm_error (_("Xfce Power Manager Settings"),
+ _("Unable to connect to Xfce Power Manager") );
+ g_error_free (error);
+ return EXIT_FAILURE;
+ }
+
+ dialog = xfpm_settings_dialog_new (channel, system_laptop, user_privilege,
+ can_suspend, can_hibernate, has_lcd_brightness,
+ has_lid);
+
g_signal_connect(dialog, "response", G_CALLBACK(dialog_response_cb), bus);
gtk_widget_show(dialog);
Modified: xfce4-power-manager/trunk/settings/xfpm-settings.c
===================================================================
--- xfce4-power-manager/trunk/settings/xfpm-settings.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/settings/xfpm-settings.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -405,10 +405,19 @@
}
static void
-xfpm_settings_on_battery (XfconfChannel *channel)
+xfpm_settings_on_battery (XfconfChannel *channel, gboolean user_privilege, gboolean can_suspend,
+ gboolean can_hibernate, gboolean has_lcd_brightness, gboolean has_lid)
{
gint val;
+
GtkWidget *battery_critical = glade_xml_get_widget (xml, "battery-critical-combox");
+
+ if (!user_privilege )
+ {
+ gtk_widget_set_sensitive (battery_critical, FALSE);
+ gtk_widget_set_tooltip_text (battery_critical, _("Shutdown and hibernate operations not permitted"));
+ }
+
GtkListStore *list_store;
GtkTreeIter iter;
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
@@ -418,11 +427,13 @@
gtk_list_store_append(list_store, &iter);
gtk_list_store_set (list_store, &iter, 0, _("Nothing"), 1, 0, -1);
+ if ( can_hibernate )
+ {
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
+ }
gtk_list_store_append(list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
-
- gtk_list_store_append(list_store, &iter);
gtk_list_store_set (list_store, &iter, 0, _("Shutdown"), 1, 3, -1);
g_signal_connect (battery_critical, "changed",
@@ -483,57 +494,84 @@
* Lid switch settings on battery
*/
GtkWidget *lid = glade_xml_get_widget (xml, "on-battery-lid");
-
- list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
-
- gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
-
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Nothing"), 1, 0, -1);
-
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, 1, -1);
-
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
-
- g_signal_connect (lid, "changed",
- G_CALLBACK(on_battery_lid_changed_cb), channel);
-
- str = xfconf_channel_get_string (channel, LID_SWITCH_ON_BATTERY_CFG, "Nothing");
-
- val = xfpm_shutdown_string_to_int (str);
-
- if ( val == -1 || val == 3 /*we don't do shutdown here */)
+ if ( has_lid )
{
- g_warning ("Invalid value %s for property %s\n", str, LID_SWITCH_ON_BATTERY_CFG);
- gtk_combo_box_set_active (GTK_COMBO_BOX(lid), 0);
+ if (!user_privilege )
+ {
+ gtk_widget_set_sensitive (lid, FALSE);
+ gtk_widget_set_tooltip_text (lid, _("Shutdown and hibernate operations not permitted"));
+ }
+
+ list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
+
+ gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
+
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Nothing"), 1, 0, -1);
+
+ if ( can_suspend )
+ {
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, 1, -1);
+ }
+
+ if ( can_hibernate)
+ {
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
+ }
+
+ g_signal_connect (lid, "changed",
+ G_CALLBACK(on_battery_lid_changed_cb), channel);
+
+ str = xfconf_channel_get_string (channel, LID_SWITCH_ON_BATTERY_CFG, "Nothing");
+
+ val = xfpm_shutdown_string_to_int (str);
+
+ if ( val == -1 || val == 3 /*we don't do shutdown here */)
+ {
+ g_warning ("Invalid value %s for property %s\n", str, LID_SWITCH_ON_BATTERY_CFG);
+ gtk_combo_box_set_active (GTK_COMBO_BOX(lid), 0);
+ }
+ else
+ gtk_combo_box_set_active (GTK_COMBO_BOX(lid), val);
+
+ g_free (str);
}
else
- gtk_combo_box_set_active (GTK_COMBO_BOX(lid), val);
-
- g_free (str);
+ {
+ GtkWidget *label = glade_xml_get_widget (xml, "on-battery-lid-label");
+ gtk_widget_hide (label);
+ gtk_widget_hide (lid);
+ }
/*
*
* Brightness on battery power
*/
GtkWidget *brg = glade_xml_get_widget (xml ,"brg-on-battery");
-
- val = xfconf_channel_get_uint (channel, BRIGHTNESS_ON_BATTERY, 10);
-
- gtk_range_set_value (GTK_RANGE(brg), val);
-
- g_signal_connect (brg, "value-changed",
- G_CALLBACK(brightness_on_battery_value_changed_cb), channel);
-
- g_signal_connect (brg, "format-value",
- G_CALLBACK(format_brightness_value_cb), NULL);
-
+ if ( has_lcd_brightness )
+ {
+ val = xfconf_channel_get_uint (channel, BRIGHTNESS_ON_BATTERY, 10);
+
+ gtk_range_set_value (GTK_RANGE(brg), val);
+
+ g_signal_connect (brg, "value-changed",
+ G_CALLBACK(brightness_on_battery_value_changed_cb), channel);
+
+ g_signal_connect (brg, "format-value",
+ G_CALLBACK(format_brightness_value_cb), NULL);
+ }
+ else
+ {
+ GtkWidget *frame = glade_xml_get_widget (xml, "on-battery-brg-frame");
+ gtk_widget_hide_all (frame);
+ }
}
static void
-xfpm_settings_on_ac (XfconfChannel *channel)
+xfpm_settings_on_ac (XfconfChannel *channel, gboolean user_privilege, gboolean can_suspend,
+ gboolean can_hibernate, gboolean has_lcd_brightness, gboolean has_lid)
{
guint val;
#ifdef HAVE_DPMS
@@ -564,63 +602,89 @@
g_signal_connect (on_ac_dpms_off, "format-value",
G_CALLBACK(format_dpms_value_cb), NULL);
#endif
-
/*
* Lid switch settings on AC power
*/
- GtkListStore *list_store;
- GtkTreeIter iter;
- list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
-
GtkWidget *lid = glade_xml_get_widget (xml, "on-ac-lid");
- gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
-
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Nothing"), 1, 0, -1);
-
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, 1, -1);
-
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
-
- g_signal_connect (lid, "changed",
- G_CALLBACK(on_ac_lid_changed_cb), channel);
-
- gchar *str = xfconf_channel_get_string (channel, LID_SWITCH_ON_AC_CFG, "Nothing");
-
- val = xfpm_shutdown_string_to_int (str);
-
- if ( val == -1 || val == 3 /*we don't do shutdown here */)
+ if ( has_lid )
{
- g_warning ("Invalid value %s for property %s\n", str, LID_SWITCH_ON_AC_CFG);
- gtk_combo_box_set_active (GTK_COMBO_BOX(lid), 0);
+ GtkListStore *list_store;
+ GtkTreeIter iter;
+ list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
+
+ if ( !user_privilege )
+ {
+ gtk_widget_set_sensitive (lid, FALSE);
+ gtk_widget_set_tooltip_text (lid, _("Hibernate and suspend operations not permitted"));
+
+ }
+ gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
+
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Nothing"), 1, 0, -1);
+
+ if ( can_suspend )
+ {
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, 1, -1);
+ }
+
+ if ( can_hibernate )
+ {
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
+ }
+
+ g_signal_connect (lid, "changed",
+ G_CALLBACK(on_ac_lid_changed_cb), channel);
+
+ gchar *str = xfconf_channel_get_string (channel, LID_SWITCH_ON_AC_CFG, "Nothing");
+
+ val = xfpm_shutdown_string_to_int (str);
+
+ if ( val == -1 || val == 3 /*we don't do shutdown here */)
+ {
+ g_warning ("Invalid value %s for property %s\n", str, LID_SWITCH_ON_AC_CFG);
+ gtk_combo_box_set_active (GTK_COMBO_BOX(lid), 0);
+ }
+ else
+ gtk_combo_box_set_active (GTK_COMBO_BOX(lid), val);
+
+ g_free (str);
}
else
- gtk_combo_box_set_active (GTK_COMBO_BOX(lid), val);
-
- g_free (str);
+ {
+ GtkWidget *frame = glade_xml_get_widget (xml, "on-ac-actions-frame");
+ gtk_widget_hide_all (frame);
+ }
-
/*
*
* Brightness on AC power
*/
GtkWidget *brg = glade_xml_get_widget (xml ,"brg-on-ac");
-
- val = xfconf_channel_get_uint (channel, BRIGHTNESS_ON_AC, 9);
-
- gtk_range_set_value (GTK_RANGE(brg), val);
-
- g_signal_connect (brg, "value-changed",
- G_CALLBACK(brightness_on_ac_value_changed_cb), channel);
-
- g_signal_connect (brg, "format-value",
- G_CALLBACK(format_brightness_value_cb), NULL);
+ if ( has_lcd_brightness )
+ {
+ val = xfconf_channel_get_uint (channel, BRIGHTNESS_ON_AC, 9);
+
+ gtk_range_set_value (GTK_RANGE(brg), val);
+
+ g_signal_connect (brg, "value-changed",
+ G_CALLBACK(brightness_on_ac_value_changed_cb), channel);
+
+ g_signal_connect (brg, "format-value",
+ G_CALLBACK(format_brightness_value_cb), NULL);
+ }
+ else
+ {
+ GtkWidget *frame = glade_xml_get_widget (xml, "on-ac-brg-frame");
+ gtk_widget_hide_all (frame);
+ }
}
static void
-xfpm_settings_general (XfconfChannel *channel)
+xfpm_settings_general (XfconfChannel *channel, gboolean user_privilege,
+ gboolean can_suspend, gboolean can_hibernate)
{
/*
* Tray icon settings
@@ -665,18 +729,28 @@
*/
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
GtkWidget *sleep = glade_xml_get_widget (xml, "sleep-combox");
+ if (!user_privilege )
+ {
+ gtk_widget_set_sensitive (sleep, FALSE);
+ gtk_widget_set_tooltip_text (sleep, _("Hibernate and suspend operations not permitted"));
+ }
gtk_combo_box_set_model (GTK_COMBO_BOX(sleep), GTK_TREE_MODEL(list_store));
gtk_list_store_append (list_store, &iter);
gtk_list_store_set (list_store, &iter, 0, _("Nothing"), 1, 0, -1);
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, 1, -1);
+ if ( can_suspend )
+ {
+ gtk_list_store_append (list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, 1, -1);
+ }
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
-
+ if ( can_hibernate )
+ {
+ gtk_list_store_append (list_store, &iter);
+ gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, 2, -1);
+ }
g_signal_connect (sleep, "changed",
G_CALLBACK(set_sleep_changed_cb), channel);
@@ -691,8 +765,6 @@
gtk_combo_box_set_active (GTK_COMBO_BOX(sleep), sleep_val_int);
g_free (default_sleep_value);
-
-
/*
* Enable/Disable Notification
*/
@@ -707,8 +779,9 @@
}
static void
-xfpm_settings_advanced (XfconfChannel *channel )
+xfpm_settings_advanced (XfconfChannel *channel, gboolean system_latop, gboolean user_privilege )
{
+ guint val;
#ifdef HAVE_DPMS
sleep_dpms_mode = glade_xml_get_widget (xml, "sleep-dpms-mode");
suspend_dpms_mode = glade_xml_get_widget (xml, "suspend-dpms-mode");
@@ -730,36 +803,50 @@
g_free (str);
-
-#endif
+#endif /* HAVE_DPMS */
+
/*
* Critical battery level
*/
GtkWidget *critical_level = glade_xml_get_widget (xml, "critical-spin");
+ if ( system_latop )
+ {
+ gtk_widget_set_tooltip_text (critical_level,
+ _("When the main power on the computer reaches this value of charge percentage"));
- gtk_widget_set_tooltip_text (critical_level,
- _("When the main power on the computer reaches this value of charge percentage"));
-
- g_signal_connect (critical_level, "output",
- G_CALLBACK(critical_spin_output_cb), NULL);
- g_signal_connect (critical_level, "value-changed",
- G_CALLBACK(critical_level_value_changed_cb), channel);
+ g_signal_connect (critical_level, "output",
+ G_CALLBACK(critical_spin_output_cb), NULL);
+ g_signal_connect (critical_level, "value-changed",
+ G_CALLBACK(critical_level_value_changed_cb), channel);
- guint val = xfconf_channel_get_uint (channel, CRITICAL_POWER_LEVEL, 10 );
-
- if ( val > 20 )
+ val = xfconf_channel_get_uint (channel, CRITICAL_POWER_LEVEL, 10 );
+
+ if ( val > 20 )
+ {
+ g_critical ("Value %d if out of range for property %s\n", val, CRITICAL_POWER_LEVEL);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), 10);
+ }
+ else
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), 10);
+ }
+ else
{
- g_critical ("Value %d if out of range for property %s\n", val, CRITICAL_POWER_LEVEL);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), 10);
+ GtkWidget *label = glade_xml_get_widget (xml, "critical-level-label" );
+ gtk_widget_hide (critical_level);
+ gtk_widget_hide (label);
}
- else
- gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), 10);
/*
* Lock screen for suspend/hibernate
*/
GtkWidget *lock = glade_xml_get_widget (xml, "lock-screen");
+ if ( !user_privilege )
+ {
+ gtk_widget_set_sensitive (lock, FALSE);
+ gtk_widget_set_tooltip_text (lock, _("Hibernate and suspend operations not permitted"));
+ }
+
val = xfconf_channel_get_bool (channel, LOCK_SCREEN_ON_SLEEP, TRUE);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(lock), val);
g_signal_connect (lock, "toggled",
@@ -793,7 +880,7 @@
}
static void
-xfpm_settings_tree_view (XfconfChannel *channel)
+xfpm_settings_tree_view (XfconfChannel *channel, gboolean system_laptop)
{
GtkWidget *view = glade_xml_get_widget (xml, "treeview");
GdkPixbuf *pix;
@@ -801,6 +888,8 @@
GtkTreeIter iter;
GtkTreeViewColumn *col;
GtkCellRenderer *renderer;
+ GtkTreeSelection *sel;
+ GtkTreePath *path;
gint i = 0;
list_store = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT);
@@ -852,18 +941,20 @@
}
i++;
-
- pix = xfpm_load_icon("battery", 48);
- gtk_list_store_append(list_store, &iter);
- if ( pix )
+ if ( system_laptop )
{
- gtk_list_store_set(list_store, &iter, 0, pix, 1, _("On Battery"), 2, i, -1);
- g_object_unref(pix);
+ pix = xfpm_load_icon("battery", 48);
+ gtk_list_store_append(list_store, &iter);
+ if ( pix )
+ {
+ gtk_list_store_set(list_store, &iter, 0, pix, 1, _("On Battery"), 2, i, -1);
+ g_object_unref(pix);
+ }
+ else
+ {
+ gtk_list_store_set(list_store, &iter, 1, _("On Battery"), 2, i, -1);
+ }
}
- else
- {
- gtk_list_store_set(list_store, &iter, 1, _("On Battery"), 2, i, -1);
- }
i++;
pix = xfpm_load_icon("applications-other", 48);
@@ -877,10 +968,6 @@
{
gtk_list_store_set(list_store, &iter, 1, _("Advance"), 2, i, -1);
}
-
-
- GtkTreeSelection *sel;
- GtkTreePath *path;
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
@@ -908,8 +995,16 @@
}
GtkWidget *
-xfpm_settings_dialog_new (XfconfChannel *channel)
+xfpm_settings_dialog_new (XfconfChannel *channel,
+ gboolean system_laptop, gboolean user_privilege,
+ gboolean can_suspend, gboolean can_hibernate,
+ gboolean has_lcd_brightness, gboolean has_lid)
{
+ TRACE("system_laptop=%s user_privilege=%s can_suspend=%s can_hibernate=%s has_lcd_brightness=%s has_lid=%s",
+ xfpm_bool_to_string (system_laptop), xfpm_bool_to_string (user_privilege),
+ xfpm_bool_to_string (can_suspend), xfpm_bool_to_string (can_hibernate),
+ xfpm_bool_to_string (has_lcd_brightness), xfpm_bool_to_string (has_lid) );
+
GtkWidget *dialog;
xml = glade_xml_new_from_buffer (xfpm_settings_glade,
@@ -918,11 +1013,15 @@
dialog = glade_xml_get_widget (xml, "xfpm-settings-dialog");
- xfpm_settings_on_ac (channel);
- xfpm_settings_on_battery (channel);
- xfpm_settings_tree_view (channel);
- xfpm_settings_general (channel);
- xfpm_settings_advanced (channel);
+ xfpm_settings_on_ac (channel, user_privilege, can_suspend, can_hibernate, has_lid, has_lcd_brightness);
+
+ if ( system_laptop )
+ xfpm_settings_on_battery (channel, user_privilege, can_suspend, can_hibernate, has_lid, has_lcd_brightness);
+
+ xfpm_settings_tree_view (channel, system_laptop);
+
+ xfpm_settings_general (channel, user_privilege, can_suspend, can_hibernate);
+ xfpm_settings_advanced (channel, system_laptop, user_privilege);
g_signal_connect (dialog, "response", G_CALLBACK(dialog_response_cb), channel);
Modified: xfce4-power-manager/trunk/settings/xfpm-settings.glade
===================================================================
--- xfce4-power-manager/trunk/settings/xfpm-settings.glade 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/settings/xfpm-settings.glade 2009-03-18 21:18:15 UTC (rev 6944)
@@ -212,7 +212,7 @@
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
- <widget class="GtkFrame" id="frame7">
+ <widget class="GtkFrame" id="on-ac-actions-frame">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
@@ -230,7 +230,7 @@
<property name="visible">True</property>
<property name="spacing">10</property>
<child>
- <widget class="GtkLabel" id="label27">
+ <widget class="GtkLabel" id="on-ac-lid-label">
<property name="visible">True</property>
<property name="label" translatable="yes">When laptop lid is closed:</property>
</widget>
@@ -376,7 +376,7 @@
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame8">
+ <widget class="GtkFrame" id="on-ac-brg-frame">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
@@ -527,7 +527,7 @@
<widget class="GtkHBox" id="hbox20">
<property name="visible">True</property>
<child>
- <widget class="GtkLabel" id="label33">
+ <widget class="GtkLabel" id="on-battery-lid-label">
<property name="visible">True</property>
<property name="label" translatable="yes">When laptop lid is closed:</property>
</widget>
@@ -694,7 +694,7 @@
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame10">
+ <widget class="GtkFrame" id="on-battery-brg-frame">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
@@ -874,9 +874,9 @@
<property name="visible">True</property>
<property name="spacing">10</property>
<child>
- <widget class="GtkLabel" id="label3">
+ <widget class="GtkLabel" id="critical-level-label">
<property name="visible">True</property>
- <property name="label" translatable="yes">Consider the computer on low power:</property>
+ <property name="label" translatable="yes">Consider the computer on low power at:</property>
</widget>
<packing>
<property name="expand">False</property>
Modified: xfce4-power-manager/trunk/settings/xfpm-settings.h
===================================================================
--- xfce4-power-manager/trunk/settings/xfpm-settings.h 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/settings/xfpm-settings.h 2009-03-18 21:18:15 UTC (rev 6944)
@@ -22,7 +22,13 @@
#define __XFPM_SETTINGS_H
-GtkWidget * xfpm_settings_dialog_new (XfconfChannel *channel);
+GtkWidget * xfpm_settings_dialog_new (XfconfChannel *channel,
+ gboolean system_laptop,
+ gboolean user_privilege,
+ gboolean can_suspend,
+ gboolean can_hibernate,
+ gboolean has_lcd_brightness,
+ gboolean has_lid);
Modified: xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml
===================================================================
--- xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/org.xfce.Power.Manager.xml 2009-03-18 21:18:15 UTC (rev 6944)
@@ -10,14 +10,13 @@
<method name="Quit">
</method>
- <method name="GetAll">
+ <method name="GetConfig">
<arg direction="out" name="system_laptop" type="b"/>
- <arg direction="out" name="power_management" type="i"/>
- <arg direction="out" name="with_dpms" type="b"/>
- <arg direction="out" name="governor" type="i"/>
- <arg direction="out" name="switch_buttons" type="i"/>
- <arg direction="out" name="brightness_control" type="b"/>
- <arg direction="out" name="ups_found" type="b"/>
+ <arg direction="out" name="user_privilege" type="b"/>
+ <arg direction="out" name="can_suspend" type="b"/>
+ <arg direction="out" name="can_hibernate" type="b"/>
+ <arg direction="out" name="has_lcd_brightness" type="b"/>
+ <arg direction="out" name="has_lid" type="b"/>
</method>
<method name="GetInfo">
Modified: xfce4-power-manager/trunk/src/xfpm-adapter.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-adapter.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-adapter.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -58,6 +58,7 @@
{
HalDevice *device;
gboolean present;
+ gboolean hw_found;
};
enum
@@ -82,7 +83,38 @@
adapter->priv->present = hal_device_get_property_bool (adapter->priv->device, "ac_adapter.present");
g_signal_emit (G_OBJECT(adapter), signals[ADAPTER_CHANGED], 0, adapter->priv->present);
}
+}
+
+static void
+xfpm_adapter_set_device (XfpmAdapter *adapter)
+{
+ HalManager *manager;
+ gchar **udi;
+ manager = hal_manager_new ();
+
+ udi = hal_manager_find_device_by_capability (manager, "ac_adapter");
+
+ if (!udi )//FIXME Adapter should be present on laptops
+ goto out;
+
+ TRACE("Found AC Adapter with udi=%s\n", udi[0]);
+
+ adapter->priv->hw_found = TRUE;
+
+ adapter->priv->device = hal_device_new ();
+ hal_device_set_udi (adapter->priv->device, udi[0]);
+
+ hal_manager_free_string_array (udi);
+
+ adapter->priv->present = hal_device_get_property_bool (adapter->priv->device, "ac_adapter.present");
+
+ g_signal_connect (adapter->priv->device, "device-changed",
+ G_CALLBACK(xfpm_adapter_device_changed_cb), adapter);
+
+ hal_device_watch (adapter->priv->device);
+out:
+ g_object_unref (manager);
}
static void
@@ -107,41 +139,34 @@
static void
xfpm_adapter_init(XfpmAdapter *adapter)
{
- HalManager *manager;
- gchar **udi = NULL;
+ HalDevice *device;
gchar *form_factor = NULL;
adapter->priv = XFPM_ADAPTER_GET_PRIVATE(adapter);
- adapter->priv->device = hal_device_new ();
- hal_device_set_udi (adapter->priv->device, "/org/freedesktop/Hal/devices/computer");
+ adapter->priv->device = NULL;
+ adapter->priv->present = TRUE;
+ adapter->priv->hw_found = FALSE;
- form_factor = hal_device_get_property_string (adapter->priv->device, "system.formfactor");
+ device = hal_device_new ();
+ hal_device_set_udi (device, "/org/freedesktop/Hal/devices/computer");
+
+ form_factor = hal_device_get_property_string (device, "system.formfactor");
- TRACE("System formfactor=%s\n", form_factor); //FIXME Use this value
- g_free(form_factor);
-
- manager = hal_manager_new ();
+ TRACE("System formfactor=%s\n", form_factor);
+ if ( xfpm_strequal (form_factor, "laptop") )
+ {
+ xfpm_adapter_set_device (adapter);
+ TRACE("System is identified as a laptop");
+ }
+ else
+ {
+ TRACE("System is not identified as a laptop");
+ }
- udi = hal_manager_find_device_by_capability (manager, "ac_adapter");
-
- if (!udi )//FIXME Adapter should be present on laptops
- goto out;
-
- TRACE("Found AC Adapter with udi=%s\n", udi[0]);
-
- hal_device_set_udi (adapter->priv->device, udi[0]);
-
- hal_manager_free_string_array (udi);
-
- adapter->priv->present = hal_device_get_property_bool (adapter->priv->device, "ac_adapter.present");
- g_signal_connect (adapter->priv->device, "device-changed",
- G_CALLBACK(xfpm_adapter_device_changed_cb), adapter);
-
- hal_device_watch (adapter->priv->device);
-out:
- g_object_unref (manager);
-
+ g_object_unref (device);
+ if ( form_factor )
+ g_free(form_factor);
}
static void
@@ -178,3 +203,10 @@
return adapter->priv->present;
}
+
+gboolean xfpm_adapter_has_hw (XfpmAdapter *adapter)
+{
+ g_return_val_if_fail (XFPM_IS_ADAPTER(adapter), FALSE);
+
+ return adapter->priv->hw_found;
+}
Modified: xfce4-power-manager/trunk/src/xfpm-adapter.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-adapter.h 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-adapter.h 2009-03-18 21:18:15 UTC (rev 6944)
@@ -51,6 +51,9 @@
XfpmAdapter *xfpm_adapter_new (void);
gboolean xfpm_adapter_get_present (XfpmAdapter *adapter);
+
+gboolean xfpm_adapter_has_hw (XfpmAdapter *adapter);
+
G_END_DECLS
#endif /* __XFPM_ADAPTER_H */
Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -480,3 +480,10 @@
return brg;
}
+
+gboolean xfpm_brightness_hal_has_hw (XfpmBrightnessHal *brg)
+{
+ g_return_val_if_fail (XFPM_IS_BRIGHTNESS_HAL (brg), FALSE);
+
+ return brg->priv->hw_found;
+}
Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.h 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.h 2009-03-18 21:18:15 UTC (rev 6944)
@@ -46,6 +46,8 @@
GType xfpm_brightness_hal_get_type (void) G_GNUC_CONST;
XfpmBrightnessHal *xfpm_brightness_hal_new (void);
+
+gboolean xfpm_brightness_hal_has_hw (XfpmBrightnessHal *brg);
G_END_DECLS
#endif /* __XFPM_BRIGHTNESS_HAL_H */
Modified: xfce4-power-manager/trunk/src/xfpm-engine.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-engine.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -42,6 +42,7 @@
#include <xfconf/xfconf.h>
#include "libxfpm/hal-iface.h"
+#include "libxfpm/hal-device.h"
#include "libxfpm/xfpm-string.h"
#include "libxfpm/xfpm-common.h"
@@ -95,6 +96,10 @@
gboolean block_shutdown;
+ gboolean is_laptop;
+ gboolean has_lcd_brightness;
+ gboolean has_lid;
+
/*Configuration */
XfpmShutdownRequest sleep_button;
XfpmShutdownRequest lid_button_ac;
@@ -208,12 +213,38 @@
static void
xfpm_engine_load_all (XfpmEngine *engine)
{
+ HalDevice *device;
+ gchar *form_factor = NULL;
+
xfpm_engine_check_hal_iface (engine);
+ device = hal_device_new ();
+
+ hal_device_set_udi (device, "/org/freedesktop/Hal/devices/computer");
+
+ form_factor = hal_device_get_property_string (device, "system.formfactor");
+
+ TRACE("System formfactor=%s\n", form_factor);
+ if ( xfpm_strequal (form_factor, "laptop") )
+ {
+ engine->priv->is_laptop = TRUE;
+ TRACE("System is identified as a laptop");
+ }
+ else
+ {
+ engine->priv->is_laptop = FALSE;
+ TRACE("System is not identified as a laptop");
+ }
+ if ( form_factor )
+ g_free (form_factor);
+
+ g_object_unref (device);
+
#ifdef HAVE_DPMS
engine->priv->dpms = xfpm_dpms_new ();
#endif
- engine->priv->cpu = xfpm_cpu_new ();
+ if ( engine->priv->is_laptop )
+ engine->priv->cpu = xfpm_cpu_new ();
engine->priv->supply = xfpm_supply_new (engine->priv->power_management);
xfpm_supply_monitor (engine->priv->supply);
@@ -229,19 +260,30 @@
/*
* Lid from HAL
*/
- engine->priv->lid = xfpm_lid_hal_new ();
-
- if ( xfpm_lid_hw_found (engine->priv->lid ))
- g_signal_connect (engine->priv->lid, "lid-closed",
- G_CALLBACK(xfpm_engine_lid_closed_cb), engine);
+ if ( engine->priv->is_laptop )
+ {
+ engine->priv->lid = xfpm_lid_hal_new ();
+ engine->priv->has_lid = xfpm_lid_hw_found (engine->priv->lid );
+ if ( engine->priv->has_lid )
+ g_signal_connect (engine->priv->lid, "lid-closed",
+ G_CALLBACK(xfpm_engine_lid_closed_cb), engine);
+ else
+ g_object_unref (engine->priv->lid);
+ }
/*
* Brightness HAL
*/
- engine->priv->brg_hal = xfpm_brightness_hal_new ();
-
- g_signal_connect (G_OBJECT(engine->priv->supply), "shutdown-request",
- G_CALLBACK (xfpm_engine_shutdown_request_battery_cb), engine);
+ if ( engine->priv->is_laptop )
+ {
+ engine->priv->brg_hal = xfpm_brightness_hal_new ();
+ engine->priv->has_lcd_brightness = xfpm_brightness_hal_has_hw (engine->priv->brg_hal);
+ if ( engine->priv->has_lcd_brightness )
+ g_signal_connect (G_OBJECT(engine->priv->supply), "shutdown-request",
+ G_CALLBACK (xfpm_engine_shutdown_request_battery_cb), engine);
+ else
+ g_object_unref (engine->priv->brg_hal);
+ }
}
static void
@@ -367,9 +409,11 @@
static void
xfpm_engine_init (XfpmEngine *engine)
{
+ GError *error = NULL;
engine->priv = XFPM_ENGINE_GET_PRIVATE(engine);
engine->priv->iface = hal_iface_new ();
+ engine->priv->adapter = xfpm_adapter_new ();
engine->priv->inhibit = xfpm_inhibit_new ();
engine->priv->inhibited = FALSE;
@@ -390,6 +434,25 @@
engine->priv->power_management = 0;
xfpm_engine_dbus_init (engine);
+
+ if ( !xfconf_init(&error) )
+ {
+ g_critical ("xfconf_init failed: %s\n", error->message);
+ g_error_free (error);
+ }
+
+ engine->priv->conf = xfpm_xfconf_new ();
+
+ engine->priv->on_battery = ! xfpm_adapter_get_present (engine->priv->adapter);
+
+ g_signal_connect (engine->priv->adapter, "adapter-changed",
+ G_CALLBACK(xfpm_engine_adapter_changed_cb), engine);
+
+ g_signal_connect (engine->priv->conf->channel, "property-changed",
+ G_CALLBACK(xfpm_engine_property_changed_cb), engine);
+
+ xfpm_engine_load_configuration (engine);
+ xfpm_engine_load_all (engine);
}
static void
@@ -431,28 +494,28 @@
XfpmEngine *engine = NULL;
engine = g_object_new (XFPM_TYPE_ENGINE, NULL);
- GError *error = NULL;
- if ( !xfconf_init(&error) )
- {
- g_critical ("xfconf_init failed: %s\n", error->message);
- g_error_free (error);
- }
+ return engine;
+}
+
+void xfpm_engine_get_info (XfpmEngine *engine,
+ gboolean *system_laptop,
+ gboolean *user_privilege,
+ gboolean *can_suspend,
+ gboolean *can_hibernate,
+ gboolean *has_lcd_brightness,
+ gboolean *has_lid)
+{
+ g_return_if_fail (XFPM_IS_ENGINE(engine));
- engine->priv->conf = xfpm_xfconf_new ();
- engine->priv->adapter = xfpm_adapter_new ();
+ g_object_get (G_OBJECT(engine->priv->iface),
+ "caller-privilege", user_privilege,
+ "can-suspend", can_suspend,
+ "can-hibernate",can_hibernate,
+ NULL);
- engine->priv->on_battery = ! xfpm_adapter_get_present (engine->priv->adapter);
-
- g_signal_connect (engine->priv->adapter, "adapter-changed",
- G_CALLBACK(xfpm_engine_adapter_changed_cb), engine);
-
- g_signal_connect (engine->priv->conf->channel, "property-changed",
- G_CALLBACK(xfpm_engine_property_changed_cb), engine);
-
- xfpm_engine_load_configuration (engine);
- xfpm_engine_load_all (engine);
-
- return engine;
+ *system_laptop = engine->priv->is_laptop;
+ *has_lcd_brightness = engine->priv->has_lcd_brightness;
+ *has_lid = engine->priv->has_lid;
}
/*
Modified: xfce4-power-manager/trunk/src/xfpm-engine.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.h 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-engine.h 2009-03-18 21:18:15 UTC (rev 6944)
@@ -47,6 +47,13 @@
GType xfpm_engine_get_type (void) G_GNUC_CONST;
XfpmEngine *xfpm_engine_new (void);
+void xfpm_engine_get_info (XfpmEngine *engine,
+ gboolean *system_laptop,
+ gboolean *user_privilege,
+ gboolean *can_suspend,
+ gboolean *can_hibernate,
+ gboolean *has_lcd_brightness,
+ gboolean *has_lid);
G_END_DECLS
#endif /* __XFPM_ENGINE_H */
Modified: xfce4-power-manager/trunk/src/xfpm-idle.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-idle.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-idle.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -300,6 +300,8 @@
xfpm_idle_free_alarm (idle, alarm);
}
g_ptr_array_free (idle->priv->array, TRUE);
+
+ gdk_window_remove_filter (NULL, xfpm_idle_x_event_filter, idle);
G_OBJECT_CLASS(xfpm_idle_parent_class)->finalize(object);
}
Modified: xfce4-power-manager/trunk/src/xfpm-manager.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-manager.c 2009-03-18 09:46:52 UTC (rev 6943)
+++ xfce4-power-manager/trunk/src/xfpm-manager.c 2009-03-18 21:18:15 UTC (rev 6944)
@@ -171,16 +171,23 @@
* DBus server implementation
*
*/
-static gboolean xfpm_manager_dbus_quit (XfpmManager *manager,
- GError **error);
-static gboolean xfpm_manager_dbus_get_all (XfpmManager *manager,
- GHashTable **OUT_hash,
- GError **error);
-static gboolean xfpm_manager_dbus_get_info (XfpmManager *manager,
- gchar **OUT_name,
- gchar **OUT_version,
- gchar **OUT_vendor,
- GError **error);
+static gboolean xfpm_manager_dbus_quit (XfpmManager *manager,
+ GError **error);
+
+static gboolean xfpm_manager_dbus_get_config (XfpmManager *manager,
+ gboolean *OUT_system_laptop,
+ gboolean *OUT_user_privilege,
+ gboolean *OUT_can_suspend,
+ gboolean *OUT_can_hibernate,
+ gboolean *OUT_has_lcd_brightness,
+ gboolean *OUT_has_lid,
+ GError **error);
+
+static gboolean xfpm_manager_dbus_get_info (XfpmManager *manager,
+ gchar **OUT_name,
+ gchar **OUT_version,
+ gchar **OUT_vendor,
+ GError **error);
#include "xfce-power-manager-dbus-server.h"
@@ -209,18 +216,26 @@
return TRUE;
}
-static gboolean
-xfpm_manager_dbus_get_all(XfpmManager *manager,
- GHashTable **OUT_hash,
- GError **error)
+static gboolean xfpm_manager_dbus_get_config (XfpmManager *manager,
+ gboolean *OUT_system_laptop,
+ gboolean *OUT_user_privilege,
+ gboolean *OUT_can_suspend,
+ gboolean *OUT_can_hibernate,
+ gboolean *OUT_has_lcd_brightness,
+ gboolean *OUT_has_lid,
+ GError **error)
{
- TRACE("Get all message received\n");
-
- *OUT_hash = g_hash_table_new(g_str_hash, g_str_equal);
+ xfpm_engine_get_info (manager->priv->engine,
+ OUT_system_laptop,
+ OUT_user_privilege,
+ OUT_can_suspend,
+ OUT_can_hibernate,
+ OUT_has_lcd_brightness,
+ OUT_has_lid);
return TRUE;
}
-
+
static gboolean
xfpm_manager_dbus_get_info (XfpmManager *manager,
gchar **OUT_name,
More information about the Goodies-commits
mailing list