32
32
#include <libxfce4util/libxfce4util.h>
33
#include <libxfcegui4/libxfcegui4.h>
33
#include <libxfce4ui/libxfce4ui.h>
35
35
#include <dbus/dbus-glib.h>
36
36
#include <dbus/dbus-glib-lowlevel.h>
38
38
#include <xfconf/xfconf.h>
40
#include "libxfpm/xfpm-popups.h"
41
#include "libxfpm/xfpm-string.h"
42
#include "libxfpm/xfpm-common.h"
43
#include "libxfpm/xfpm-dbus.h"
40
#include "common/xfpm-common.h"
45
42
#include "xfce-power-manager-dbus-client.h"
46
43
#include "xfpm-settings.h"
47
44
#include "xfpm-config.h"
49
int main(int argc, char **argv)
45
#include "xfpm-dbus.h"
47
#include "xfpm-unique.h"
49
int main (int argc, char **argv)
51
52
GError *error = NULL;
52
53
DBusGConnection *bus;
53
54
GHashTable *config_hash;
55
gboolean system_laptop;
56
gboolean user_privilege;
57
gboolean auth_suspend;
58
gboolean auth_hibernate;
57
59
gboolean can_suspend;
58
60
gboolean can_hibernate;
61
gboolean can_shutdown;
59
62
gboolean has_lcd_brightness;
60
63
gboolean has_sleep_button;
61
64
gboolean has_hibernate_button;
62
65
gboolean has_power_button;
67
gboolean can_spin_down;
63
69
gboolean start_xfpm_if_not_running;
65
71
GdkNativeWindow socket_id = 0;
98
104
g_error ("%s\n",error->message);
101
if ( xfpm_dbus_name_has_owner(dbus_g_connection_get_connection(bus), "org.xfce.PowerManager") )
107
if ( xfpm_dbus_name_has_owner (dbus_g_connection_get_connection(bus), "org.xfce.PowerManager") )
103
111
TRACE("Xfce power manager is running\n");
105
if ( xfpm_dbus_name_has_owner(dbus_g_connection_get_connection(bus), "org.xfce.PowerManager.Config") )
107
TRACE("Settings dialog already open\n");
108
dbus_g_connection_unref(bus);
112
xfpm_dbus_register_name(dbus_g_connection_get_connection(bus), "org.xfce.PowerManager.Config");
114
if ( !xfconf_init(&error) )
116
g_critical("xfconf init failed: %s using default settings\n", error->message);
118
xfpm_popup_message(_("Xfce Power Manager"),_("Failed to load power manager configuration, "\
119
"using defaults"), GTK_MESSAGE_WARNING);
125
if ( !g_thread_supported () )
126
g_thread_init (NULL);
128
dbus_g_thread_init ();
130
channel = xfconf_channel_new(XFPM_CHANNEL_CFG);
132
proxy = dbus_g_proxy_new_for_name(bus,
133
"org.xfce.PowerManager",
134
"/org/xfce/PowerManager",
135
"org.xfce.Power.Manager");
137
xfpm_manager_dbus_client_get_config (proxy,
143
g_critical ("Unable to get configuration information from xfce power manager: %s", error->message);
144
xfpm_error (_("Xfce Power Manager Settings"),
145
_("Unable to connect to Xfce Power Manager") );
146
g_error_free (error);
150
system_laptop = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "system-laptop"));
151
can_suspend = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "can-suspend"));
152
can_hibernate = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "can-hibernate"));
153
user_privilege = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "caller-privilege"));
154
has_lcd_brightness = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "has-brightness"));
155
has_sleep_button = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "sleep-button"));
156
has_power_button = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "power-button"));
157
has_hibernate_button = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "hibernate-button"));
159
xfpm_settings_dialog_new (channel, system_laptop, user_privilege,
160
can_suspend, can_hibernate, has_lcd_brightness,
161
system_laptop, has_sleep_button, has_hibernate_button, has_power_button,
166
xfpm_dbus_release_name(dbus_g_connection_get_connection(bus), "org.xfce.PowerManager.Config");
167
dbus_g_connection_unref(bus);
113
unique = xfpm_unique_new ("org.xfce.PowerManager.Config");
115
if ( !xfpm_unique_app_is_running (unique) )
117
if ( !xfconf_init(&error) )
119
g_critical("xfconf init failed: %s using default settings\n", error->message);
120
xfce_dialog_show_warning (NULL,
121
_("Xfce Power Manager"),
123
_("Failed to load power manager configuration, using defaults"));
124
g_error_free (error);
129
if ( !g_thread_supported () )
130
g_thread_init (NULL);
132
dbus_g_thread_init ();
134
channel = xfconf_channel_new(XFPM_CHANNEL_CFG);
136
proxy = dbus_g_proxy_new_for_name(bus,
137
"org.xfce.PowerManager",
138
"/org/xfce/PowerManager",
139
"org.xfce.Power.Manager");
141
xfpm_manager_dbus_client_get_config (proxy,
147
g_critical ("Unable to get configuration information from xfce power manager: %s", error->message);
148
xfce_dialog_show_error (NULL, error, "%s", _("Unable to connect to Xfce Power Manager"));
149
g_error_free (error);
153
has_battery = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "has-battery"));
154
has_lid = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "has-lid"));
155
can_suspend = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "can-suspend"));
156
can_hibernate = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "can-hibernate"));
157
auth_suspend = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "auth-suspend"));
158
auth_hibernate = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "auth-hibernate"));
159
has_lcd_brightness = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "has-brightness"));
160
has_sleep_button = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "sleep-button"));
161
has_power_button = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "power-button"));
162
has_hibernate_button = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "hibernate-button"));
163
can_shutdown = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "can-shutdown"));
164
can_spin_down = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "can-spin"));
165
devkit_disk = xfpm_string_to_bool (g_hash_table_lookup (config_hash, "devkit-disk"));
167
g_hash_table_destroy (config_hash);
169
dialog = xfpm_settings_dialog_new (channel, has_battery, auth_hibernate, auth_suspend,
170
can_shutdown, can_suspend, can_hibernate, has_lcd_brightness,
171
has_lid, has_sleep_button, has_hibernate_button, has_power_button,
172
devkit_disk, can_spin_down, socket_id);
174
g_signal_connect_swapped (unique, "ping-received",
175
G_CALLBACK (gtk_window_present), dialog);
179
xfpm_dbus_release_name(dbus_g_connection_get_connection(bus), "org.xfce.PowerManager.Config");
180
dbus_g_connection_unref (bus);
181
g_object_unref (proxy);
184
g_object_unref (unique);
169
186
return EXIT_SUCCESS;