[Goodies-commits] r5628 - in xfce4-power-manager/trunk: . src
Ali Abdallah
aliov at xfce.org
Wed Oct 15 09:21:51 CEST 2008
Author: aliov
Date: 2008-10-15 07:21:51 +0000 (Wed, 15 Oct 2008)
New Revision: 5628
Modified:
xfce4-power-manager/trunk/TODO
xfce4-power-manager/trunk/src/xfpm-ac-adapter.c
xfce4-power-manager/trunk/src/xfpm-battery.c
xfce4-power-manager/trunk/src/xfpm-button.c
xfce4-power-manager/trunk/src/xfpm-button.h
xfce4-power-manager/trunk/src/xfpm-common.c
xfce4-power-manager/trunk/src/xfpm-common.h
xfce4-power-manager/trunk/src/xfpm-driver.c
xfce4-power-manager/trunk/src/xfpm-hal.c
xfce4-power-manager/trunk/src/xfpm-hal.h
xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c
xfce4-power-manager/trunk/src/xfpm-lcd-brightness.h
xfce4-power-manager/trunk/src/xfpm-settings.c
xfce4-power-manager/trunk/src/xfpm-settings.h
Log:
Some optimizations
Modified: xfce4-power-manager/trunk/TODO
===================================================================
--- xfce4-power-manager/trunk/TODO 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/TODO 2008-10-15 07:21:51 UTC (rev 5628)
@@ -1,6 +1,5 @@
1)-better notification support.
-2)-search for untranslated strings.
-3)-Supports cpu freq settings for other OSs.
-4)-Find or draw icons for XFPM.
+2)-Supports cpu freq settings for other OSs.
+3)-Find or draw icons for XFPM.
-5)- Release
\ No newline at end of file
+4)- Release
\ No newline at end of file
Modified: xfce4-power-manager/trunk/src/xfpm-ac-adapter.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-ac-adapter.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-ac-adapter.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -214,9 +214,10 @@
_("Unkown adapter status, the power manager will not work properly"));
#ifdef HAVE_LIBNOTIFY
xfpm_notify_simple(_("Xfce power manager"),
- _("Unkown adapter status, the power manager will not work properly,"\
- "make sure ac adapter driver is loaded into the kernel"),
- 10000,
+ _("Unable to get adapter status, the power manager will not work properly."\
+ "Possible reasons: ac adapter driver is not loaded into the kernel "\
+ "Broken connection with the hardware abstract layer or the message bus daemon is not running"),
+ 12000,
NOTIFY_URGENCY_CRITICAL,
NULL,
"gpm-ac-adapter",
@@ -491,6 +492,13 @@
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_ABOUT,NULL);
+ gtk_widget_set_sensitive(mi,TRUE);
+ gtk_widget_show(mi);
+ g_signal_connect(mi,"activate",G_CALLBACK(xfpm_about),NULL);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
+
mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES,NULL);
gtk_widget_set_sensitive(mi,TRUE);
gtk_widget_show(mi);
Modified: xfce4-power-manager/trunk/src/xfpm-battery.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-battery.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -379,15 +379,6 @@
G_OBJECT_CLASS(xfpm_battery_parent_class)->finalize(object);
}
-#ifdef HAVE_LIBNOTIFY
-static gboolean
-_set_tray_visible_timeout(XfpmBatteryIcon *icon)
-{
- g_object_set(G_OBJECT(icon),"visible",FALSE,NULL);
- return FALSE;
-}
-#endif
-
static void
xfpm_battery_refresh_tray_icon(XfpmBattery *batt)
{
@@ -454,11 +445,7 @@
}
else
{
-#ifdef HAVE_LIBNOTIFY
- g_timeout_add(6000,(GSourceFunc)_set_tray_visible_timeout,icon);
-#else
g_object_set(G_OBJECT(icon),"visible",FALSE,NULL);
-#endif
}
}
}
@@ -587,7 +574,7 @@
#ifdef HAVE_LIBNOTIFY
batt->notify_enabled = TRUE;
#endif
- batt->power_save = TRUE;
+ batt->power_save = FALSE;
batt->show_tray = ALWAYS;
return;
}
@@ -598,7 +585,7 @@
batt->critical_level = xfconf_channel_get_uint(channel,CRITICAL_BATT_CFG,10);
batt->critical_action = xfconf_channel_get_uint(channel,CRITICAL_BATT_ACTION_CFG,NOTHING);
batt->show_tray = xfconf_channel_get_uint(channel,SHOW_TRAY_ICON_CFG,ALWAYS);
- batt->power_save = xfconf_channel_get_bool(channel,POWER_SAVE_CFG,TRUE);
+ batt->power_save = xfconf_channel_get_bool(channel,POWER_SAVE_CFG,FALSE);
#ifdef HAVE_LIBNOTIFY
batt->notify_enabled = xfconf_channel_get_bool(channel,BATT_STATE_NOTIFICATION_CFG,TRUE);
#endif
@@ -988,10 +975,19 @@
}
gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
+
// Separotor
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_ABOUT,NULL);
+ gtk_widget_set_sensitive(mi,TRUE);
+ gtk_widget_show(mi);
+ g_signal_connect(mi,"activate",G_CALLBACK(xfpm_about),NULL);
+
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu),mi);
+
mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES,NULL);
gtk_widget_set_sensitive(mi,TRUE);
gtk_widget_show(mi);
Modified: xfce4-power-manager/trunk/src/xfpm-button.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-button.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-button.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -96,10 +96,10 @@
gboolean have_sleep_bt;
gboolean sleep_button_has_state;
-
+
+ gboolean device_found;
};
-
G_DEFINE_TYPE(XfpmButton,xfpm_button,G_TYPE_OBJECT)
enum
@@ -162,17 +162,19 @@
priv->have_sleep_bt = FALSE;
priv->sleep_button_has_state= FALSE;
-
priv->hal = xfpm_hal_new();
xfpm_button_load_config(bt);
xfpm_button_get_switches(bt);
- if (xfpm_hal_connect_to_signals(priv->hal,FALSE,FALSE,FALSE,TRUE) )
+ if ( priv->have_lid_bt || priv->have_power_bt || priv->have_sleep_bt )
{
- priv->handler_id =
- g_signal_connect(priv->hal,"xfpm-device-condition",
- G_CALLBACK(xfpm_button_handle_device_condition_cb),bt);
+ if (xfpm_hal_connect_to_signals(priv->hal,FALSE,FALSE,FALSE,TRUE) )
+ {
+ priv->handler_id =
+ g_signal_connect(priv->hal,"xfpm-device-condition",
+ G_CALLBACK(xfpm_button_handle_device_condition_cb),bt);
+ }
}
}
@@ -621,3 +623,29 @@
bt = g_object_new(XFPM_TYPE_BUTTON,NULL);
return bt;
}
+
+guint8
+xfpm_button_get_available_buttons(XfpmButton *button)
+{
+ g_return_val_if_fail(XFPM_IS_BUTTON(button),0);
+
+ XfpmButtonPrivate *priv;
+ priv = XFPM_BUTTON_GET_PRIVATE(button);
+
+ guint8 buttons = 0;
+
+ if ( priv->have_lid_bt )
+ {
+ buttons |= LID_SWITCH;
+ }
+ if ( priv->have_power_bt )
+ {
+ buttons |= POWER_SWITCH;
+ }
+ if ( priv->have_sleep_bt )
+ {
+ buttons |= SLEEP_SWITCH;
+ }
+
+ return buttons;
+}
Modified: xfce4-power-manager/trunk/src/xfpm-button.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-button.h 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-button.h 2008-10-15 07:21:51 UTC (rev 5628)
@@ -30,6 +30,7 @@
#define XFPM_TYPE_BUTTON (xfpm_button_get_type())
#define XFPM_BUTTON(o) (G_TYPE_CHECK_INSTANCE_CAST(o,XFPM_TYPE_BUTTON,XfpmButton))
+#define XFPM_IS_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE(o,XFPM_TYPE_BUTTON))
typedef struct XfpmButtonPrivate XfpmButtonPrivate;
@@ -52,7 +53,8 @@
} XfpmButtonClass;
GType xfpm_button_get_type(void) G_GNUC_CONST;
-XfpmButton *xfpm_button_new(void);
+XfpmButton *xfpm_button_new(void);
+guint8 xfpm_button_get_available_buttons(XfpmButton *button);
G_END_DECLS
Modified: xfce4-power-manager/trunk/src/xfpm-common.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-common.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -19,6 +19,9 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <glib.h>
+#include <glib/gi18n.h>
+
#include "xfpm-common.h"
#include "xfpm-debug.h"
@@ -61,7 +64,6 @@
{
g_critical("Connot lock screen\n");
}
-
}
void
@@ -69,3 +71,18 @@
{
g_spawn_command_line_async("xfce4-power-manager -c",NULL);
}
+
+void
+xfpm_about(GtkWidget *widget,gpointer data)
+{
+ GtkWidget *about;
+ const gchar* authors[3] = {"Ali MA <ali.slackware at gmail.com>",
+ _("Part of the Xfce goodies project"),NULL};
+ about = gtk_about_dialog_new();
+ gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), _("Xfce4 Power Manager"));
+ gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), NULL);
+ gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(about), (const gchar**) authors);
+ gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(about), "");
+ gtk_dialog_run(GTK_DIALOG(about));
+ gtk_widget_destroy (about);
+}
Modified: xfce4-power-manager/trunk/src/xfpm-common.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.h 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-common.h 2008-10-15 07:21:51 UTC (rev 5628)
@@ -69,14 +69,15 @@
typedef enum
{
- LID,
- SLEEP,
- POWER
+ LID_SWITCH = (1<<0),
+ SLEEP_SWITCH = (1<<1),
+ POWER_SWITCH = (1<<2)
} XfpmSwitchButton;
GdkPixbuf* xfpm_load_icon(const gchar *icon_name,gint size);
void xfpm_lock_screen(void);
void xfpm_preferences(void);
+void xfpm_about(GtkWidget *widget,gpointer data);
#endif /* XFPM_COMMON_H */
Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -110,6 +110,10 @@
gboolean can_suspend;
gboolean can_hibernate;
+ gboolean cpufreq_control;
+ gboolean buttons_control;
+ gboolean lcd_brightness_control;
+
XfpmHal *hal;
XfpmCpu *cpu;
XfpmBattery *batt;
@@ -141,6 +145,9 @@
XfpmDriverPrivate *priv;
priv = XFPM_DRIVER_GET_PRIVATE(drv);
priv->dialog_opened = FALSE;
+ priv->cpufreq_control = FALSE;
+ priv->buttons_control = FALSE;
+ priv->lcd_brightness_control = FALSE;
priv->loop = NULL;
priv->cpu = NULL;
priv->adapter = NULL;
@@ -153,7 +160,7 @@
#endif
#ifdef HAVE_LIBNOTIFY
- notify_init("Basics");
+ notify_init("xfce4-power-manager");
#endif
}
@@ -214,11 +221,16 @@
#ifdef HAVE_DPMS
XFPM_DEBUG("Setting DPMS ac-adapter property\n");
g_object_set(G_OBJECT(priv->dpms),"on-ac-adapter",priv->ac_adapter_present,NULL);
-#endif
- g_object_set(G_OBJECT(priv->cpu),"on-ac-adapter",priv->ac_adapter_present,NULL);
-
+#endif
+ if ( priv->cpufreq_control )
+ {
+ g_object_set(G_OBJECT(priv->cpu),"on-ac-adapter",priv->ac_adapter_present,NULL);
+ }
g_object_set(G_OBJECT(priv->batt),"on-ac-adapter",priv->ac_adapter_present,NULL);
- g_object_set(G_OBJECT(priv->lcd),"on-ac-adapter",priv->ac_adapter_present,NULL);
+ if ( priv->lcd_brightness_control )
+ {
+ g_object_set(G_OBJECT(priv->lcd),"on-ac-adapter",priv->ac_adapter_present,NULL);
+ }
}
static void
@@ -287,26 +299,28 @@
return;
}
- if ( !strcmp(property,CPU_FREQ_SCALING_CFG) )
+ if ( priv->cpufreq_control )
{
- gboolean val = g_value_get_boolean(value);
- g_object_set(G_OBJECT(priv->cpu),"cpu-freq",val,NULL);
- return;
+ if ( !strcmp(property,CPU_FREQ_SCALING_CFG) )
+ {
+ gboolean val = g_value_get_boolean(value);
+ g_object_set(G_OBJECT(priv->cpu),"cpu-freq",val,NULL);
+ return;
+ }
+
+ if ( !strcmp(property,ON_AC_CPU_GOV_CFG) )
+ {
+ guint val = g_value_get_uint(value);
+ g_object_set(G_OBJECT(priv->cpu),"on-ac-cpu-gov",val,NULL);
+ return;
+ }
+ if ( !strcmp(property,ON_BATT_CPU_GOV_CFG) )
+ {
+ guint val = g_value_get_uint(value);
+ g_object_set(G_OBJECT(priv->cpu),"on-batt-cpu-gov",val,NULL);
+ return;
+ }
}
-
- if ( !strcmp(property,ON_AC_CPU_GOV_CFG) )
- {
- guint val = g_value_get_uint(value);
- g_object_set(G_OBJECT(priv->cpu),"on-ac-cpu-gov",val,NULL);
- return;
- }
- if ( !strcmp(property,ON_BATT_CPU_GOV_CFG) )
- {
- guint val = g_value_get_uint(value);
- g_object_set(G_OBJECT(priv->cpu),"on-batt-cpu-gov",val,NULL);
- return;
- }
-
#ifdef HAVE_LIBNOTIFY
if ( !strcmp(property,BATT_STATE_NOTIFICATION_CFG) )
{
@@ -316,11 +330,14 @@
}
#endif
- if ( !strcmp(property,LCD_BRIGHTNESS_CFG) )
+ if ( priv->lcd_brightness_control )
{
- gboolean val = g_value_get_boolean(value);
- g_object_set(G_OBJECT(priv->lcd),"brightness-enabled",val,NULL);
- return;
+ if ( !strcmp(property,LCD_BRIGHTNESS_CFG) )
+ {
+ gboolean val = g_value_get_boolean(value);
+ g_object_set(G_OBJECT(priv->lcd),"brightness-enabled",val,NULL);
+ return;
+ }
}
#ifdef HAVE_DPMS
if ( !strcmp(property,DPMS_ENABLE_CFG) )
@@ -382,33 +399,36 @@
}
#endif
- if ( !strcmp(property,LID_SWITCH_CFG) )
+ if ( priv->buttons_control )
{
- guint val = g_value_get_uint(value);
- g_object_set(G_OBJECT(priv->bt),"lid-switch-action",val,NULL);
- return;
+ if ( !strcmp(property,LID_SWITCH_CFG) )
+ {
+ guint val = g_value_get_uint(value);
+ g_object_set(G_OBJECT(priv->bt),"lid-switch-action",val,NULL);
+ return;
+ }
+
+ if ( !strcmp(property,SLEEP_SWITCH_CFG) )
+ {
+ guint val = g_value_get_uint(value);
+ g_object_set(G_OBJECT(priv->bt),"sleep-switch-action",val,NULL);
+ return;
+ }
+
+ if ( !strcmp(property,POWER_SWITCH_CFG) )
+ {
+ guint val = g_value_get_uint(value);
+ g_object_set(G_OBJECT(priv->bt),"power-switch-action",val,NULL);
+ return;
+ }
+
+ if ( !strcmp(property,POWER_SAVE_CFG) )
+ {
+ gboolean val = g_value_get_boolean(value);
+ g_object_set(G_OBJECT(priv->batt),"enable-powersave",val,NULL);
+ return;
+ }
}
-
- if ( !strcmp(property,SLEEP_SWITCH_CFG) )
- {
- guint val = g_value_get_uint(value);
- g_object_set(G_OBJECT(priv->bt),"sleep-switch-action",val,NULL);
- return;
- }
-
- if ( !strcmp(property,POWER_SWITCH_CFG) )
- {
- guint val = g_value_get_uint(value);
- g_object_set(G_OBJECT(priv->bt),"power-switch-action",val,NULL);
- return;
- }
-
- if ( !strcmp(property,POWER_SAVE_CFG) )
- {
- gboolean val = g_value_get_boolean(value);
- g_object_set(G_OBJECT(priv->batt),"enable-powersave",val,NULL);
- return;
- }
}
static gboolean
@@ -438,45 +458,54 @@
g_object_set_data(G_OBJECT(drv),"conf-channel",channel);
g_signal_connect(channel,"property-changed",
G_CALLBACK(xfpm_driver_property_changed_cb),drv);
-
- gchar **govs;
+
guint8 gov = 0;
-
- govs = xfpm_hal_get_available_cpu_governors(priv->hal,&g_error);
- if ( g_error )
- {
- XFPM_DEBUG("%s :\n",g_error->message);
- g_error_free(g_error);
- goto no_gov;
- }
- int i = 0;
- if ( govs )
- {
- for ( i = 0 ; govs[i] ; i++ )
+ if ( priv->cpufreq_control )
+ {
+ gchar **govs;
+
+ govs = xfpm_hal_get_available_cpu_governors(priv->hal,&g_error);
+ if ( g_error )
{
- if ( !strcmp(govs[i],"powersave") ) gov |= POWERSAVE;
- if ( !strcmp(govs[i],"ondemand") ) gov |= ONDEMAND;
- if ( !strcmp(govs[i],"performance") ) gov |= PERFORMANCE;
- if ( !strcmp(govs[i],"conservative") ) gov |= CONSERVATIVE;
- if ( !strcmp(govs[i],"userspace") ) gov |= USERSPACE;
- }
- libhal_free_string_array(govs);
+ XFPM_DEBUG("%s :\n",g_error->message);
+ g_error_free(g_error);
+ goto no_gov_found;
+ }
+ int i = 0;
+ if ( govs )
+ {
+ for ( i = 0 ; govs[i] ; i++ )
+ {
+ if ( !strcmp(govs[i],"powersave") ) gov |= POWERSAVE;
+ if ( !strcmp(govs[i],"ondemand") ) gov |= ONDEMAND;
+ if ( !strcmp(govs[i],"performance") ) gov |= PERFORMANCE;
+ if ( !strcmp(govs[i],"conservative") ) gov |= CONSERVATIVE;
+ if ( !strcmp(govs[i],"userspace") ) gov |= USERSPACE;
+ }
+ libhal_free_string_array(govs);
+ }
}
-
- no_gov:
-
+ no_gov_found:
#ifdef HAVE_DPMS
with_dpms = xfpm_dpms_capable(priv->dpms);
#else
with_dpms = FALSE;
#endif
+ guint8 switch_buttons = 0;
+ if ( priv->buttons_control )
+ {
+ switch_buttons = xfpm_button_get_available_buttons(priv->bt);
+ }
+
dialog = xfpm_settings_new(channel,
priv->formfactor == SYSTEM_LAPTOP ? TRUE : FALSE,
priv->can_hibernate,
priv->can_suspend,
with_dpms,
- gov);
+ gov,
+ switch_buttons,
+ priv->lcd_brightness_control);
xfce_gtk_window_center_on_monitor_with_pointer(GTK_WINDOW(dialog));
gtk_window_set_modal(GTK_WINDOW(dialog), FALSE);
@@ -636,16 +665,59 @@
{
XFPM_DEBUG("%s: \n",g_error->message);
g_error_free(g_error);
+ g_error = NULL;
}
#ifdef HAVE_DPMS
priv->dpms = xfpm_dpms_new();
#endif
- priv->cpu = xfpm_cpu_new();
+
+ // Load Cpu only if device exists
+ gchar **cpu_udi = NULL;
+ gint cpu_udi_num;
+ cpu_udi = xfpm_hal_get_device_udi_by_capability(priv->hal,
+ "cpufreq_control",
+ &cpu_udi_num,
+ &g_error);
+ if ( g_error )
+ {
+ XFPM_DEBUG("%s: \n",g_error->message);
+ g_error_free(g_error);
+ priv->cpufreq_control = FALSE;
+ }
+ if ( !cpu_udi || cpu_udi_num == 0 )
+ {
+ XFPM_DEBUG("Cpu control not found\n");
+ }
+ else
+ {
+ priv->cpu = xfpm_cpu_new();
+ priv->cpufreq_control = TRUE;
+ libhal_free_string_array(cpu_udi);
+ }
+
priv->bt = xfpm_button_new();
+ // if no device found free the allocated memory
+ guint8 buttons = xfpm_button_get_available_buttons(priv->bt);
+ if ( buttons == 0 )
+ {
+ g_object_unref(priv->bt);
+ priv->buttons_control = FALSE;
+ }
+ else
+ {
+ priv->buttons_control = TRUE;
+ }
+
priv->lcd = xfpm_lcd_brightness_new();
+ priv->lcd_brightness_control = xfpm_lcd_brightness_device_exists(priv->lcd);
+ if ( !priv->lcd_brightness_control )
+ {
+ g_object_unref(priv->lcd);
+ }
+
priv->batt = xfpm_battery_new();
g_signal_connect(priv->batt,"xfpm-show-adapter-icon",G_CALLBACK(_show_adapter_icon),drv);
Modified: xfce4-power-manager/trunk/src/xfpm-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-hal.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-hal.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -81,12 +81,9 @@
enum
{
-
XFPM_DEVICE_ADDED,
XFPM_DEVICE_REMOVED,
XFPM_DEVICE_PROPERTY_CHANGED,
- XFPM_DEVICE_NEW_CAPABILITY,
- XFPM_DEVICE_LOST_CAPABILITY,
XFPM_DEVICE_CONDITION,
LAST_SIGNAL
};
@@ -130,24 +127,6 @@
G_TYPE_STRING,G_TYPE_STRING,
G_TYPE_BOOLEAN,G_TYPE_BOOLEAN);
- signals[XFPM_DEVICE_NEW_CAPABILITY] = g_signal_new("xfpm-device-new-capability",
- XFPM_TYPE_HAL,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(XfpmHalClass,device_new_capability),
- NULL,NULL,
- _xfpm_marshal_VOID__STRING_STRING,
- G_TYPE_NONE,2,
- G_TYPE_STRING,G_TYPE_STRING);
-
- signals[XFPM_DEVICE_LOST_CAPABILITY] = g_signal_new("xfpm-device-lost-capability",
- XFPM_TYPE_HAL,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(XfpmHalClass,device_lost_capability),
- NULL,NULL,
- _xfpm_marshal_VOID__STRING_STRING,
- G_TYPE_NONE,2,
- G_TYPE_STRING,G_TYPE_STRING);
-
signals[XFPM_DEVICE_CONDITION] = g_signal_new("xfpm-device-condition",
XFPM_TYPE_HAL,
G_SIGNAL_RUN_LAST,
@@ -179,8 +158,6 @@
{
priv->connected = TRUE;
}
-
-
}
static void
@@ -217,7 +194,6 @@
xfpm_hal_device_added(LibHalContext *ctx,const gchar *udi) {
XfpmHal *xfpm_hal = libhal_ctx_get_user_data(ctx);
- XFPM_DEBUG("device added %s\n",udi);
g_signal_emit(G_OBJECT(xfpm_hal),signals[XFPM_DEVICE_ADDED],0,udi);
}
@@ -226,49 +202,26 @@
xfpm_hal_device_removed(LibHalContext *ctx,const gchar *udi) {
XfpmHal *xfpm_hal = libhal_ctx_get_user_data(ctx);
- XFPM_DEBUG("device removed %s\n",udi);
g_signal_emit(G_OBJECT(xfpm_hal),signals[XFPM_DEVICE_REMOVED],0,udi);
}
-
static void
xfpm_hal_device_property_modified(LibHalContext *ctx,const gchar *udi,
const gchar *key,dbus_bool_t is_removed,
dbus_bool_t is_added) {
XfpmHal *xfpm_hal = libhal_ctx_get_user_data(ctx);
- //XFPM_DEBUG("device property modified udi=%s key=%s\n",udi,key);
g_signal_emit(G_OBJECT(xfpm_hal),signals[XFPM_DEVICE_PROPERTY_CHANGED],0,udi,key,is_removed,is_added);
}
-/*
-static void
-xfpm_hal_device_new_capability(LibHalContext *ctx,const gchar *udi,const gchar *capability) {
-
- XfpmHal *xfpm_hal = libhal_ctx_get_user_data(ctx);
- XFPM_DEBUG("device new capability udi=%s capability=%s\n",udi,capability);
- g_signal_emit(G_OBJECT(xfpm_hal),signals[XFPM_DEVICE_NEW_CAPABILITY],0,udi,capability);
-
-}
-
-static void
-xfpm_hal_device_lost_capability(LibHalContext *ctx,const gchar *udi,const gchar *capability) {
-
- XfpmHal *xfpm_hal = libhal_ctx_get_user_data(ctx);
- XFPM_DEBUG("device lost capability udi=%s capability=%s\n",udi,capability);
- g_signal_emit(G_OBJECT(xfpm_hal),signals[XFPM_DEVICE_LOST_CAPABILITY],0,udi,capability);
-
-}
-*/
static void xfpm_hal_device_condition (LibHalContext *ctx,
const gchar *udi,
const gchar *condition_name,
const gchar *condition_detail) {
XfpmHal *xfpm_hal = libhal_ctx_get_user_data(ctx);
- XFPM_DEBUG("device condition udi=%s condition_name=%s condition_detail=%s\n",udi,condition_name,condition_detail);
g_signal_emit(G_OBJECT(xfpm_hal),signals[XFPM_DEVICE_CONDITION],0,udi,condition_name,condition_detail);
}
@@ -336,9 +289,6 @@
libhal_ctx_set_device_condition(priv->ctx,xfpm_hal_device_condition);
}
- //libhal_ctx_set_device_new_capability(priv->ctx,xfpm_hal_device_new_capability);
- //libhal_ctx_set_device_lost_capability(priv->ctx,xfpm_hal_device_lost_capability);
-
libhal_device_property_watch_all(priv->ctx,&error);
if ( dbus_error_is_set(&error) ) {
Modified: xfce4-power-manager/trunk/src/xfpm-hal.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-hal.h 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-hal.h 2008-10-15 07:21:51 UTC (rev 5628)
@@ -69,14 +69,6 @@
gboolean is_removed,
gboolean is_added);
- void (*device_new_capability) (XfpmHal *xfpm_hal,
- const gchar *udi,
- const gchar *capability);
-
- void (*device_lost_capability) (XfpmHal *xfpm_hal,
- const gchar *udi,
- const gchar *capability);
-
void (*device_condition) (XfpmHal *xfpm_hal,
const gchar *udi,
const gchar *condition_name,
Modified: xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -353,3 +353,12 @@
lcd = g_object_new(XFPM_TYPE_LCD_BRIGHTNESS,NULL);
return lcd;
}
+
+gboolean
+xfpm_lcd_brightness_device_exists(XfpmLcdBrightness *lcd)
+{
+ g_return_val_if_fail(XFPM_IS_LCD_BRIGHTNESS(lcd),FALSE);
+ XfpmLcdBrightnessPrivate *priv;
+ priv = XFPM_LCD_BRIGHTNESS_GET_PRIVATE(lcd);
+ return priv->device_exists;
+}
Modified: xfce4-power-manager/trunk/src/xfpm-lcd-brightness.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-lcd-brightness.h 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-lcd-brightness.h 2008-10-15 07:21:51 UTC (rev 5628)
@@ -28,6 +28,7 @@
#define XFPM_TYPE_LCD_BRIGHTNESS (xfpm_lcd_brightness_get_type())
#define XFPM_LCD_BRIGHTNESS(o) (G_TYPE_CHECK_INSTANCE_CAST(o,XFPM_TYPE_LCD_BRIGHTNESS,XfpmLcdBrightness))
+#define XFPM_IS_LCD_BRIGHTNESS(o) (G_TYPE_CHECK_INSTANCE_TYPE(o,XFPM_TYPE_LCD_BRIGHTNESS))
typedef struct XfpmLcdBrightnessPrivate XfpmLcdBrightnessPrivate;
@@ -49,7 +50,7 @@
GType xfpm_lcd_brightness_get_type(void) G_GNUC_CONST;
XfpmLcdBrightness *xfpm_lcd_brightness_new(void);
-
+gboolean xfpm_lcd_brightness_device_exists(XfpmLcdBrightness *lcd);
G_END_DECLS
#endif
Modified: xfce4-power-manager/trunk/src/xfpm-settings.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-settings.c 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-settings.c 2008-10-15 07:21:51 UTC (rev 5628)
@@ -19,7 +19,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -444,7 +443,7 @@
gtk_table_attach(GTK_TABLE(table),check_powersave,1,2,2,3,GTK_SHRINK,GTK_SHRINK,0,0);
g_signal_connect(check_powersave,"toggled",G_CALLBACK(set_power_save_cb),channel);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_powersave),
- xfconf_channel_get_bool(channel,POWER_SAVE_CFG,TRUE));
+ xfconf_channel_get_bool(channel,POWER_SAVE_CFG,FALSE));
#ifdef HAVE_LIBNOTIFY
@@ -672,6 +671,7 @@
gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0);
gtk_widget_show(label);
gtk_widget_set_sensitive(GTK_WIDGET(cpu_gov),FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cpu_gov),FALSE);
}
else
{
@@ -692,12 +692,12 @@
}
static GtkWidget *
-xfpm_settings_lcd_brightness(XfconfChannel *channel,gboolean laptop)
+xfpm_settings_lcd_brightness(XfconfChannel *channel,gboolean laptop,gboolean lcd)
{
GtkWidget *hbox;
hbox = gtk_hbox_new(FALSE,2);
- if ( laptop )
+ if ( laptop && lcd)
{
GtkWidget *label;
label = gtk_label_new(_("Enable lcd brigthness control"));
@@ -797,7 +797,8 @@
#endif
static GtkWidget *
-xfpm_settings_dpms(XfconfChannel *channel,gboolean laptop,gboolean dpms_capable)
+xfpm_settings_monitor(XfconfChannel *channel,gboolean laptop,
+ gboolean dpms_capable,gboolean lcd)
{
GtkWidget *hbox;
hbox = gtk_hbox_new(FALSE,2);
@@ -834,7 +835,7 @@
}
}
#endif
- GtkWidget *lcd_box = xfpm_settings_lcd_brightness(channel,laptop);
+ GtkWidget *lcd_box = xfpm_settings_lcd_brightness(channel,laptop,lcd);
gtk_box_pack_start(GTK_BOX(vbox),lcd_box,TRUE,TRUE,0);
return vbox;
}
@@ -842,11 +843,14 @@
static GtkWidget *
xfpm_settings_keys(XfconfChannel *channel,gboolean can_hibernate,
- gboolean can_suspend,gboolean laptop)
+ gboolean can_suspend,gboolean laptop,guint8 switch_buttons)
{
GtkWidget *table;
GtkWidget *label;
GtkWidget *frame,*align;
+ GtkWidget *vbox;
+ vbox = gtk_vbox_new(FALSE,0);
+ gtk_widget_show(vbox);
frame = xfce_create_framebox(_("Keyboard shortcuts"), &align);
gtk_widget_show(frame);
@@ -855,45 +859,52 @@
guint default_config;
/// Power Button
- label = gtk_label_new(_("When power button is pressed do"));
- gtk_widget_show(label);
- gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,0,1);
+ if ( switch_buttons & POWER_SWITCH )
+ {
+ label = gtk_label_new(_("When power button is pressed do"));
+ gtk_widget_show(label);
+ gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,0,1);
+ GtkWidget *power_button;
+ default_config = xfconf_channel_get_uint(channel,POWER_SWITCH_CFG,0);
+ power_button = gtk_combo_box_new_text();
+ gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Nothing"));
+ if ( can_suspend )
+ gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Suspend"));
+ if ( can_hibernate )
+ gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Hibernate"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Shutdown"));
+ gtk_combo_box_set_active(GTK_COMBO_BOX(power_button),default_config);
+ gtk_table_attach(GTK_TABLE(table),power_button,1,2,0,1,GTK_SHRINK,GTK_SHRINK,0,0);
+ g_signal_connect(power_button,"changed",G_CALLBACK(set_power_button_action_cb),channel);
+
+ gtk_widget_show(power_button);
+ }
- GtkWidget *power_button;
- default_config = xfconf_channel_get_uint(channel,POWER_SWITCH_CFG,0);
- power_button = gtk_combo_box_new_text();
- gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Nothing"));
- if ( can_suspend )
- gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Suspend"));
- if ( can_hibernate )
- gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Hibernate"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(power_button),_("Shutdown"));
- gtk_combo_box_set_active(GTK_COMBO_BOX(power_button),default_config);
- gtk_widget_show(power_button);
- gtk_table_attach(GTK_TABLE(table),power_button,1,2,0,1,GTK_SHRINK,GTK_SHRINK,0,0);
- g_signal_connect(power_button,"changed",G_CALLBACK(set_power_button_action_cb),channel);
-
/// Sleep Button
- label = gtk_label_new(_("When sleep button is pressed do"));
- gtk_widget_show(label);
- gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,1,2);
+ if ( switch_buttons & SLEEP_SWITCH )
+ {
+ label = gtk_label_new(_("When sleep button is pressed do"));
+ gtk_widget_show(label);
+ gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,1,2);
+
+ GtkWidget *sleep_button;
+ default_config = xfconf_channel_get_uint(channel,SLEEP_SWITCH_CFG,0);
+ sleep_button = gtk_combo_box_new_text();
+
+ gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Nothing"));
+ if ( can_suspend )
+ gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Suspend"));
+ if ( can_hibernate )
+ gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Hibernate"));
+ gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Shutdown"));
+ gtk_combo_box_set_active(GTK_COMBO_BOX(sleep_button),default_config);
+ gtk_widget_show(sleep_button);
+ gtk_table_attach(GTK_TABLE(table),sleep_button,1,2,1,2,GTK_SHRINK,GTK_SHRINK,0,0);
+ g_signal_connect(sleep_button,"changed",G_CALLBACK(set_sleep_button_action_cb),channel);
+ }
- GtkWidget *sleep_button;
- default_config = xfconf_channel_get_uint(channel,SLEEP_SWITCH_CFG,0);
- sleep_button = gtk_combo_box_new_text();
- gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Nothing"));
- if ( can_suspend )
- gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Suspend"));
- if ( can_hibernate )
- gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Hibernate"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(sleep_button),_("Shutdown"));
- gtk_combo_box_set_active(GTK_COMBO_BOX(sleep_button),default_config);
- gtk_widget_show(sleep_button);
- gtk_table_attach(GTK_TABLE(table),sleep_button,1,2,1,2,GTK_SHRINK,GTK_SHRINK,0,0);
- g_signal_connect(sleep_button,"changed",G_CALLBACK(set_sleep_button_action_cb),channel);
-
/// Lid Button
- if ( laptop )
+ if ( laptop && ( switch_buttons & LID_SWITCH ) )
{
label = gtk_label_new(_("When lid button is pressed do"));
gtk_widget_show(label);
@@ -913,7 +924,14 @@
g_signal_connect(lid_button,"changed",G_CALLBACK(set_lid_button_action_cb),channel);
}
- gtk_container_add(GTK_CONTAINER(align),table);
+ gtk_container_add(GTK_CONTAINER(align),vbox);
+ gtk_box_pack_start(GTK_BOX(vbox),table,TRUE,TRUE,0);
+ if ( !switch_buttons )
+ {
+ label = gtk_label_new(_("No available shortcuts found"));
+ gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(vbox),label,TRUE,TRUE,0);
+ }
return frame;
}
@@ -1071,19 +1089,21 @@
}
/// Keyboard Settings
- pix = xfpm_load_icon("keyboard",38);
- gtk_list_store_append(list_store,&iter);
- if ( pix )
+ if ( is_laptop )
{
- gtk_list_store_set(list_store,&iter,0,pix,1,_("Shortcuts"),2,2,-1);
- g_object_unref(pix);
+ pix = xfpm_load_icon("keyboard",38);
+ gtk_list_store_append(list_store,&iter);
+ if ( pix )
+ {
+ gtk_list_store_set(list_store,&iter,0,pix,1,_("Shortcuts"),2,2,-1);
+ g_object_unref(pix);
+ }
+ else
+ {
+ gtk_list_store_set(list_store,&iter,1,_("Shortcuts"),2,2,-1);
+ }
}
- else
- {
- gtk_list_store_set(list_store,&iter,1,_("Shortcuts"),2,2,-1);
- }
-
/// Dpms settings
#ifdef HAVE_DPMS
pix = xfpm_load_icon("display",38);
@@ -1114,7 +1134,8 @@
GtkWidget *
xfpm_settings_new(XfconfChannel *channel,gboolean is_laptop,
gboolean can_hibernate,gboolean can_suspend,
- gboolean dpms_capable,guint8 govs)
+ gboolean dpms_capable,guint8 govs,
+ guint8 switch_buttons,gboolean lcd)
{
GtkWidget *Dialog; /* Main dialog window */
GtkWidget *mainbox; /* Box to get (Dialog)->vbox */
@@ -1161,11 +1182,11 @@
gtk_notebook_append_page(GTK_NOTEBOOK(nt),box,NULL);
/// Keyboard buttons settings
- box = xfpm_settings_keys(channel,can_hibernate,can_suspend,is_laptop);
+ box = xfpm_settings_keys(channel,can_hibernate,can_suspend,is_laptop,switch_buttons);
gtk_notebook_append_page(GTK_NOTEBOOK(nt),box,NULL);
- /// Dpms settings && LCD brightness settings
- box = xfpm_settings_dpms(channel,is_laptop,dpms_capable);
+ /// Dpms settings && LCD brightness settings DPMS existence is checked above
+ box = xfpm_settings_monitor(channel,is_laptop,dpms_capable,lcd);
gtk_notebook_append_page(GTK_NOTEBOOK(nt),box,NULL);
return Dialog;
Modified: xfce4-power-manager/trunk/src/xfpm-settings.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-settings.h 2008-10-14 22:36:44 UTC (rev 5627)
+++ xfce4-power-manager/trunk/src/xfpm-settings.h 2008-10-15 07:21:51 UTC (rev 5628)
@@ -24,7 +24,8 @@
GtkWidget *xfpm_settings_new(XfconfChannel *channel,gboolean is_laptop,
gboolean can_hibernate,gboolean can_suspend,
- gboolean dpms_capable,guint8 govs);
+ gboolean dpms_capable,guint8 govs,
+ guint8 switch_buttons,gboolean lcd);
#endif /* __XFPM_SETTINGS_H */
More information about the Goodies-commits
mailing list