102
COL_SIDEBAR_BATTERY_DEVICE, /* Pointer to the UpDevice */
103
COL_SIDEBAR_OBJECT_PATH, /* UpDevice object path */
104
COL_SIDEBAR_SIGNAL_ID, /* device changed callback id */
105
COL_SIDEBAR_VIEW, /* Pointer to GtkTreeView of the devcie details */
102
COL_SIDEBAR_BATTERY_DEVICE, /* Pointer to the UpDevice */
103
COL_SIDEBAR_OBJECT_PATH, /* UpDevice object path */
104
COL_SIDEBAR_SIGNAL_ID, /* device changed callback id */
105
COL_SIDEBAR_VIEW, /* Pointer to GtkTreeView of the devcie details */
111
XFPM_DEVICE_INFO_NAME,
112
XFPM_DEVICE_INFO_VALUE,
113
XFPM_DEVICE_INFO_LAST
111
XFPM_DEVICE_INFO_NAME,
112
XFPM_DEVICE_INFO_VALUE,
113
XFPM_DEVICE_INFO_LAST
117
117
* GtkBuilder callbacks
119
void brightness_level_on_ac (GtkWidget *w,
120
XfconfChannel *channel);
122
void brightness_level_on_battery (GtkWidget *w,
123
XfconfChannel *channel);
125
void battery_critical_changed_cb (GtkWidget *w,
126
XfconfChannel *channel);
128
void inactivity_on_ac_value_changed_cb (GtkWidget *widget,
129
XfconfChannel *channel);
131
void inactivity_on_battery_value_changed_cb (GtkWidget *widget,
132
XfconfChannel *channel);
134
void button_sleep_changed_cb (GtkWidget *w,
135
XfconfChannel *channel);
137
void button_power_changed_cb (GtkWidget *w,
138
XfconfChannel *channel);
140
void button_hibernate_changed_cb (GtkWidget *w,
141
XfconfChannel *channel);
143
void button_battery_changed_cb (GtkWidget *w,
144
XfconfChannel *channel);
146
void on_sleep_mode_changed_cb (GtkWidget *w,
147
XfconfChannel *channel);
149
void dpms_toggled_cb (GtkWidget *w,
151
XfconfChannel *channel);
153
void sleep_on_battery_value_changed_cb (GtkWidget *w,
154
XfconfChannel *channel);
156
void display_blank_on_battery_value_changed_cb (GtkWidget *w,
157
XfconfChannel *channel);
159
void off_on_battery_value_changed_cb (GtkWidget *w,
160
XfconfChannel *channel);
162
void display_blank_on_ac_value_changed_cb (GtkWidget *w,
163
XfconfChannel *channel);
165
void sleep_on_ac_value_changed_cb (GtkWidget *w,
166
XfconfChannel *channel);
168
void off_on_ac_value_changed_cb (GtkWidget *w,
169
XfconfChannel *channel);
171
gchar *format_dpms_value_cb (gint value);
173
gchar *format_inactivity_value_cb (gint value);
175
gchar *format_brightness_value_cb (gint value);
177
gchar *format_brightness_percentage_cb (gint value);
179
void brightness_on_battery_value_changed_cb (GtkWidget *w,
180
XfconfChannel *channel);
182
void brightness_on_ac_value_changed_cb (GtkWidget *w,
183
XfconfChannel *channel);
185
void on_battery_lid_changed_cb (GtkWidget *w,
186
XfconfChannel *channel);
188
void on_ac_lid_changed_cb (GtkWidget *w,
189
XfconfChannel *channel);
191
void critical_level_value_changed_cb (GtkSpinButton *w,
192
XfconfChannel *channel);
194
void lock_screen_toggled_cb (GtkWidget *w,
195
XfconfChannel *channel);
197
static void view_cursor_changed_cb (GtkTreeView *view,
198
gpointer *user_data);
199
void on_ac_sleep_mode_changed_cb (GtkWidget *w,
200
XfconfChannel *channel);
201
void on_battery_sleep_mode_changed_cb (GtkWidget *w,
202
XfconfChannel *channel);
119
void brightness_level_on_ac (GtkWidget *w,
120
XfconfChannel *channel);
121
void brightness_level_on_battery (GtkWidget *w,
122
XfconfChannel *channel);
123
void battery_critical_changed_cb (GtkWidget *w,
124
XfconfChannel *channel);
125
void inactivity_on_ac_value_changed_cb (GtkWidget *widget,
126
XfconfChannel *channel);
127
void inactivity_on_battery_value_changed_cb (GtkWidget *widget,
128
XfconfChannel *channel);
129
void button_sleep_changed_cb (GtkWidget *w,
130
XfconfChannel *channel);
131
void button_power_changed_cb (GtkWidget *w,
132
XfconfChannel *channel);
133
void button_hibernate_changed_cb (GtkWidget *w,
134
XfconfChannel *channel);
135
void button_battery_changed_cb (GtkWidget *w,
136
XfconfChannel *channel);
137
void on_sleep_mode_changed_cb (GtkWidget *w,
138
XfconfChannel *channel);
139
void dpms_toggled_cb (GtkWidget *w,
141
XfconfChannel *channel);
142
void sleep_on_battery_value_changed_cb (GtkWidget *w,
143
XfconfChannel *channel);
144
void display_blank_on_battery_value_changed_cb (GtkWidget *w,
145
XfconfChannel *channel);
146
void off_on_battery_value_changed_cb (GtkWidget *w,
147
XfconfChannel *channel);
148
void display_blank_on_ac_value_changed_cb (GtkWidget *w,
149
XfconfChannel *channel);
150
void sleep_on_ac_value_changed_cb (GtkWidget *w,
151
XfconfChannel *channel);
152
void off_on_ac_value_changed_cb (GtkWidget *w,
153
XfconfChannel *channel);
154
gchar *format_dpms_value_cb (gint value);
155
gchar *format_inactivity_value_cb (gint value);
156
gchar *format_brightness_value_cb (gint value);
157
gchar *format_brightness_percentage_cb (gint value);
158
void brightness_on_battery_value_changed_cb (GtkWidget *w,
159
XfconfChannel *channel);
160
void brightness_on_ac_value_changed_cb (GtkWidget *w,
161
XfconfChannel *channel);
162
void on_battery_lid_changed_cb (GtkWidget *w,
163
XfconfChannel *channel);
164
void on_ac_lid_changed_cb (GtkWidget *w,
165
XfconfChannel *channel);
166
void critical_level_value_changed_cb (GtkSpinButton *w,
167
XfconfChannel *channel);
168
void lock_screen_toggled_cb (GtkWidget *w,
169
XfconfChannel *channel);
170
static void view_cursor_changed_cb (GtkTreeView *view,
171
gpointer *user_data);
172
void on_ac_sleep_mode_changed_cb (GtkWidget *w,
173
XfconfChannel *channel);
174
void on_battery_sleep_mode_changed_cb (GtkWidget *w,
175
XfconfChannel *channel);
204
176
/* Light Locker Integration */
205
gchar *format_light_locker_value_cb (gint value);
177
gchar *format_light_locker_value_cb (gint value);
207
178
void light_locker_late_locking_value_changed_cb (GtkWidget *w,
208
179
XfconfChannel *channel);
210
void light_locker_automatic_locking_changed_cb (GtkWidget *w,
211
XfconfChannel *channel);
213
void xfpm_update_logind_handle_lid_switch (XfconfChannel *channel);
180
void light_locker_automatic_locking_changed_cb (GtkWidget *w,
181
XfconfChannel *channel);
182
void xfpm_update_logind_handle_lid_switch (XfconfChannel *channel);
214
183
/* END Light Locker Integration */
217
186
update_label (GtkWidget *label, GtkWidget *scale, gchar* (*format)(gint))
219
gint value = (gint) gtk_range_get_value (GTK_RANGE (scale));
188
gint value = (gint) gtk_range_get_value (GTK_RANGE (scale));
221
gchar *formatted_value = format (value);
222
gtk_label_set_text (GTK_LABEL (label), formatted_value);
223
g_free (formatted_value);
190
gchar *formatted_value = format (value);
191
gtk_label_set_text (GTK_LABEL (label), formatted_value);
192
g_free (formatted_value);
226
195
void brightness_level_on_ac (GtkWidget *w, XfconfChannel *channel)
228
guint val = (guint) gtk_range_get_value (GTK_RANGE (w));
230
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_AC, val) )
232
g_critical ("Unable to set value %u for property %s\n", val, BRIGHTNESS_LEVEL_ON_AC);
235
update_label (label_brightness_level_on_ac, w, format_brightness_percentage_cb);
197
guint val = (guint) gtk_range_get_value (GTK_RANGE (w));
199
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_AC, val) )
201
g_critical ("Unable to set value %u for property %s\n", val, BRIGHTNESS_LEVEL_ON_AC);
204
update_label (label_brightness_level_on_ac, w, format_brightness_percentage_cb);
238
207
void brightness_level_on_battery (GtkWidget *w, XfconfChannel *channel)
240
guint val = (guint) gtk_range_get_value (GTK_RANGE (w));
242
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_BATTERY, val) )
244
g_critical ("Unable to set value %u for property %s\n", val, BRIGHTNESS_LEVEL_ON_BATTERY);
247
update_label (label_brightness_level_on_battery, w, format_brightness_percentage_cb);
209
guint val = (guint) gtk_range_get_value (GTK_RANGE (w));
211
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_BATTERY, val) )
213
g_critical ("Unable to set value %u for property %s\n", val, BRIGHTNESS_LEVEL_ON_BATTERY);
216
update_label (label_brightness_level_on_battery, w, format_brightness_percentage_cb);
251
220
battery_critical_changed_cb (GtkWidget *w, XfconfChannel *channel)
254
GtkTreeIter selected_row;
257
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
260
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
262
gtk_tree_model_get(model,
268
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_BATT_ACTION_CFG, value) )
270
g_critical ("Cannot set value for property %s\n", CRITICAL_BATT_ACTION_CFG);
223
GtkTreeIter selected_row;
226
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
229
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
231
gtk_tree_model_get(model,
237
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_BATT_ACTION_CFG, value) )
239
g_critical ("Cannot set value for property %s\n", CRITICAL_BATT_ACTION_CFG);
275
244
inactivity_on_ac_value_changed_cb (GtkWidget *widget, XfconfChannel *channel)
277
gint value = (gint)gtk_range_get_value (GTK_RANGE (widget));
279
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_INACTIVITY_TIMEOUT, value))
281
g_critical ("Cannot set value for property %s\n", ON_AC_INACTIVITY_TIMEOUT);
284
update_label (label_inactivity_on_ac, widget, format_inactivity_value_cb);
246
gint value = (gint)gtk_range_get_value (GTK_RANGE (widget));
248
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_INACTIVITY_TIMEOUT, value))
250
g_critical ("Cannot set value for property %s\n", ON_AC_INACTIVITY_TIMEOUT);
253
update_label (label_inactivity_on_ac, widget, format_inactivity_value_cb);
288
257
inactivity_on_battery_value_changed_cb (GtkWidget *widget, XfconfChannel *channel)
290
gint value = (gint)gtk_range_get_value (GTK_RANGE (widget));
292
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_INACTIVITY_TIMEOUT, value))
294
g_critical ("Cannot set value for property %s\n", ON_BATTERY_INACTIVITY_TIMEOUT);
297
update_label (label_inactivity_on_battery, widget, format_inactivity_value_cb);
259
gint value = (gint)gtk_range_get_value (GTK_RANGE (widget));
261
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_INACTIVITY_TIMEOUT, value))
263
g_critical ("Cannot set value for property %s\n", ON_BATTERY_INACTIVITY_TIMEOUT);
266
update_label (label_inactivity_on_battery, widget, format_inactivity_value_cb);
301
270
button_sleep_changed_cb (GtkWidget *w, XfconfChannel *channel)
304
GtkTreeIter selected_row;
307
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
310
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
312
gtk_tree_model_get(model,
318
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX SLEEP_SWITCH_CFG, value ) )
320
g_critical ("Cannot set value for property %s\n", SLEEP_SWITCH_CFG);
273
GtkTreeIter selected_row;
276
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
279
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
281
gtk_tree_model_get(model,
287
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX SLEEP_SWITCH_CFG, value ) )
289
g_critical ("Cannot set value for property %s\n", SLEEP_SWITCH_CFG);
325
294
button_power_changed_cb (GtkWidget *w, XfconfChannel *channel)
328
GtkTreeIter selected_row;
331
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
334
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
336
gtk_tree_model_get(model,
342
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX POWER_SWITCH_CFG, value) )
344
g_critical ("Cannot set value for property %s\n", POWER_SWITCH_CFG);
297
GtkTreeIter selected_row;
300
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
303
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
305
gtk_tree_model_get(model,
311
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX POWER_SWITCH_CFG, value) )
313
g_critical ("Cannot set value for property %s\n", POWER_SWITCH_CFG);
349
318
button_hibernate_changed_cb (GtkWidget *w, XfconfChannel *channel)
352
GtkTreeIter selected_row;
355
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
358
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
360
gtk_tree_model_get(model,
366
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX HIBERNATE_SWITCH_CFG, value ) )
368
g_critical ("Cannot set value for property %s\n", HIBERNATE_SWITCH_CFG);
321
GtkTreeIter selected_row;
324
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
327
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
329
gtk_tree_model_get (model,
335
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX HIBERNATE_SWITCH_CFG, value ) )
337
g_critical ("Cannot set value for property %s\n", HIBERNATE_SWITCH_CFG);
373
342
button_battery_changed_cb (GtkWidget *w, XfconfChannel *channel)
376
GtkTreeIter selected_row;
379
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
382
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
384
gtk_tree_model_get(model,
390
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BATTERY_SWITCH_CFG, value ) )
392
g_critical ("Cannot set value for property %s\n", BATTERY_SWITCH_CFG);
345
GtkTreeIter selected_row;
348
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
351
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
353
gtk_tree_model_get (model,
359
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BATTERY_SWITCH_CFG, value ) )
361
g_critical ("Cannot set value for property %s\n", BATTERY_SWITCH_CFG);
397
366
on_ac_sleep_mode_changed_cb (GtkWidget *w, XfconfChannel *channel)
400
GtkTreeIter selected_row;
403
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
406
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
408
gtk_tree_model_get(model,
414
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_AC, value) )
416
g_critical ("Cannot set value for property %s\n", INACTIVITY_SLEEP_MODE_ON_AC);
369
GtkTreeIter selected_row;
372
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
375
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
377
gtk_tree_model_get(model,
383
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_AC, value) )
385
g_critical ("Cannot set value for property %s\n", INACTIVITY_SLEEP_MODE_ON_AC);
421
390
on_battery_sleep_mode_changed_cb (GtkWidget *w, XfconfChannel *channel)
424
GtkTreeIter selected_row;
427
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
430
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
432
gtk_tree_model_get(model,
438
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_BATTERY, value) )
440
g_critical ("Cannot set value for property %s\n", INACTIVITY_SLEEP_MODE_ON_BATTERY);
393
GtkTreeIter selected_row;
396
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
399
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
401
gtk_tree_model_get(model,
407
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_BATTERY, value) )
409
g_critical ("Cannot set value for property %s\n", INACTIVITY_SLEEP_MODE_ON_BATTERY);
445
414
dpms_toggled_cb (GtkWidget *w, gboolean is_active, XfconfChannel *channel)
447
xfconf_channel_set_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, is_active);
449
gtk_widget_set_sensitive (on_ac_dpms_off, is_active);
450
gtk_widget_set_sensitive (on_ac_dpms_sleep, is_active);
451
gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-label")), is_active);
452
gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-label")), is_active);
454
if ( GTK_IS_WIDGET (on_battery_dpms_off ) )
456
gtk_widget_set_sensitive (on_battery_dpms_off, is_active);
457
gtk_widget_set_sensitive (on_battery_dpms_sleep, is_active);
416
xfconf_channel_set_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, is_active);
418
gtk_widget_set_sensitive (on_ac_dpms_off, is_active);
419
gtk_widget_set_sensitive (on_ac_dpms_sleep, is_active);
420
gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-label")), is_active);
421
gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-label")), is_active);
423
if ( GTK_IS_WIDGET (on_battery_dpms_off ) )
425
gtk_widget_set_sensitive (on_battery_dpms_off, is_active);
426
gtk_widget_set_sensitive (on_battery_dpms_sleep, is_active);
462
431
display_blank_on_battery_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
465
gint blank_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_display_blank));
466
gint sleep_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_dpms_sleep));
467
gint brightness_value;
469
if ( sleep_value != 0 )
471
if ( blank_value >= sleep_value )
473
gtk_range_set_value (GTK_RANGE(on_battery_dpms_sleep), blank_value + 1 );
477
if ( lcd_brightness )
479
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-battery"));
480
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
482
if ( blank_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
484
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
488
update_label (label_display_blank_on_battery, w, format_dpms_value_cb);
434
gint blank_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_display_blank));
435
gint sleep_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_dpms_sleep));
436
gint brightness_value;
438
if ( sleep_value != 0 )
440
if ( blank_value >= sleep_value )
442
gtk_range_set_value (GTK_RANGE(on_battery_dpms_sleep), blank_value + 1 );
446
if ( lcd_brightness )
448
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-battery"));
449
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
451
if ( blank_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
453
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
457
update_label (label_display_blank_on_battery, w, format_dpms_value_cb);
492
461
sleep_on_battery_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
495
gint off_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_dpms_off));
496
gint sleep_value = (gint) gtk_range_get_value (GTK_RANGE (w));
497
gint blank_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_display_blank));
498
gint brightness_value;
500
if ( off_value != 0 )
502
if ( sleep_value >= off_value )
504
gtk_range_set_value (GTK_RANGE(on_battery_dpms_off), sleep_value + 1 );
508
if ( blank_value != 0 )
510
if ( blank_value >= sleep_value )
512
gtk_range_set_value (GTK_RANGE(on_battery_display_blank), sleep_value - 1 );
516
if ( lcd_brightness )
518
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-battery"));
519
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
521
if ( sleep_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
523
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
527
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_SLEEP, sleep_value))
529
g_critical ("Cannot set value for property %s\n", ON_BATT_DPMS_SLEEP);
532
update_label (label_dpms_sleep_on_battery, w, format_dpms_value_cb);
464
gint off_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_dpms_off));
465
gint sleep_value = (gint) gtk_range_get_value (GTK_RANGE (w));
466
gint blank_value = (gint) gtk_range_get_value (GTK_RANGE (on_battery_display_blank));
467
gint brightness_value;
469
if ( off_value != 0 )
471
if ( sleep_value >= off_value )
473
gtk_range_set_value (GTK_RANGE(on_battery_dpms_off), sleep_value + 1 );
477
if ( blank_value != 0 )
479
if ( blank_value >= sleep_value )
481
gtk_range_set_value (GTK_RANGE(on_battery_display_blank), sleep_value - 1 );
485
if ( lcd_brightness )
487
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-battery"));
488
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
490
if ( sleep_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
492
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
496
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_SLEEP, sleep_value))
498
g_critical ("Cannot set value for property %s\n", ON_BATT_DPMS_SLEEP);
501
update_label (label_dpms_sleep_on_battery, w, format_dpms_value_cb);
536
505
off_on_battery_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
538
gint off_value = (gint)gtk_range_get_value (GTK_RANGE(w));
539
gint sleep_value = (gint)gtk_range_get_value (GTK_RANGE(on_battery_dpms_sleep));
541
if ( sleep_value != 0 )
543
if ( off_value <= sleep_value )
545
gtk_range_set_value (GTK_RANGE(on_battery_dpms_sleep), off_value -1 );
549
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_OFF, off_value))
551
g_critical ("Cannot set value for property %s\n", ON_BATT_DPMS_OFF);
554
update_label (label_dpms_off_on_battery, w, format_dpms_value_cb);
507
gint off_value = (gint)gtk_range_get_value (GTK_RANGE(w));
508
gint sleep_value = (gint)gtk_range_get_value (GTK_RANGE(on_battery_dpms_sleep));
510
if ( sleep_value != 0 )
512
if ( off_value <= sleep_value )
514
gtk_range_set_value (GTK_RANGE(on_battery_dpms_sleep), off_value -1 );
518
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_OFF, off_value))
520
g_critical ("Cannot set value for property %s\n", ON_BATT_DPMS_OFF);
523
update_label (label_dpms_off_on_battery, w, format_dpms_value_cb);
558
527
display_blank_on_ac_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
561
gint blank_value = (gint) gtk_range_get_value (GTK_RANGE (on_ac_display_blank));
562
gint sleep_value = (gint) gtk_range_get_value (GTK_RANGE (on_ac_dpms_sleep));
563
gint brightness_value;
565
if ( sleep_value != 0 )
567
if ( blank_value >= sleep_value )
569
gtk_range_set_value (GTK_RANGE(on_ac_dpms_sleep), blank_value + 1 );
573
if ( lcd_brightness )
575
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-ac"));
576
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
578
if ( blank_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
580
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
584
update_label (label_display_blank_on_ac, w, format_dpms_value_cb);
530
gint blank_value = (gint) gtk_range_get_value (GTK_RANGE (on_ac_display_blank));
531
gint sleep_value = (gint) gtk_range_get_value (GTK_RANGE (on_ac_dpms_sleep));
532
gint brightness_value;
534
if ( sleep_value != 0 )
536
if ( blank_value >= sleep_value )
538
gtk_range_set_value (GTK_RANGE(on_ac_dpms_sleep), blank_value + 1 );
542
if ( lcd_brightness )
544
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-ac"));
545
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
547
if ( blank_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
549
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
553
update_label (label_display_blank_on_ac, w, format_dpms_value_cb);
588
557
sleep_on_ac_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
592
gint brightness_value;
593
gint off_value = (gint)gtk_range_get_value (GTK_RANGE (on_ac_dpms_off));
594
gint sleep_value = (gint)gtk_range_get_value (GTK_RANGE (w));
595
gint blank_value = (gint)gtk_range_get_value (GTK_RANGE (on_ac_display_blank));
597
if ( off_value > 60 || sleep_value > 60 )
600
if ( off_value != 0 )
602
if ( sleep_value >= off_value )
604
gtk_range_set_value (GTK_RANGE(on_ac_dpms_off), sleep_value + 1 );
608
if ( blank_value != 0 )
610
if ( blank_value >= sleep_value )
612
gtk_range_set_value (GTK_RANGE(on_ac_display_blank), sleep_value - 1 );
616
if ( lcd_brightness )
618
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-ac"));
620
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
622
if ( sleep_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
624
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
628
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_SLEEP, sleep_value))
630
g_critical ("Cannot set value for property %s\n", ON_AC_DPMS_SLEEP);
633
update_label (label_dpms_sleep_on_ac, w, format_dpms_value_cb);
561
gint brightness_value;
562
gint off_value = (gint)gtk_range_get_value (GTK_RANGE (on_ac_dpms_off));
563
gint sleep_value = (gint)gtk_range_get_value (GTK_RANGE (w));
564
gint blank_value = (gint)gtk_range_get_value (GTK_RANGE (on_ac_display_blank));
566
if ( off_value > 60 || sleep_value > 60 )
569
if ( off_value != 0 )
571
if ( sleep_value >= off_value )
573
gtk_range_set_value (GTK_RANGE(on_ac_dpms_off), sleep_value + 1 );
577
if ( blank_value != 0 )
579
if ( blank_value >= sleep_value )
581
gtk_range_set_value (GTK_RANGE(on_ac_display_blank), sleep_value - 1 );
585
if ( lcd_brightness )
587
brg = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-ac"));
589
brightness_value = (gint) gtk_range_get_value (GTK_RANGE (brg));
591
if ( sleep_value * 60 <= brightness_value && brightness_value != BRIGHTNESS_DISABLED)
593
gtk_range_set_value (GTK_RANGE (brg), BRIGHTNESS_DISABLED);
597
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_SLEEP, sleep_value))
599
g_critical ("Cannot set value for property %s\n", ON_AC_DPMS_SLEEP);
602
update_label (label_dpms_sleep_on_ac, w, format_dpms_value_cb);
637
606
off_on_ac_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
639
gint off_value = (gint)gtk_range_get_value (GTK_RANGE(w));
640
gint sleep_value = (gint)gtk_range_get_value (GTK_RANGE(on_ac_dpms_sleep));
642
if ( off_value > 60 || sleep_value > 60 )
645
if ( sleep_value != 0 )
647
if ( off_value <= sleep_value )
649
gtk_range_set_value (GTK_RANGE(on_ac_dpms_sleep), off_value -1 );
653
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_OFF, off_value))
655
g_critical ("Cannot set value for property %s\n", ON_AC_DPMS_OFF);
658
update_label (label_dpms_off_on_ac, w, format_dpms_value_cb);
608
gint off_value = (gint)gtk_range_get_value (GTK_RANGE(w));
609
gint sleep_value = (gint)gtk_range_get_value (GTK_RANGE(on_ac_dpms_sleep));
611
if ( off_value > 60 || sleep_value > 60 )
614
if ( sleep_value != 0 )
616
if ( off_value <= sleep_value )
618
gtk_range_set_value (GTK_RANGE(on_ac_dpms_sleep), off_value -1 );
622
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_OFF, off_value))
624
g_critical ("Cannot set value for property %s\n", ON_AC_DPMS_OFF);
627
update_label (label_dpms_off_on_ac, w, format_dpms_value_cb);
707
676
format_brightness_value_cb (gint value)
710
return g_strdup (_("Never"));
679
return g_strdup (_("Never"));
712
return g_strdup_printf ("%d %s", value, _("seconds"));
681
return g_strdup_printf ("%d %s", value, _("seconds"));
716
685
format_brightness_percentage_cb (gint value)
718
return g_strdup_printf ("%d %s", value, _("%"));
687
return g_strdup_printf ("%d %s", value, _("%"));
722
691
brightness_on_battery_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
724
gint value = (gint)gtk_range_get_value (GTK_RANGE (w));
725
gint dpms_sleep = (gint) gtk_range_get_value (GTK_RANGE (on_battery_dpms_sleep) );
727
if ( value != BRIGHTNESS_DISABLED )
729
if ( dpms_sleep != 0 && dpms_sleep * 60 <= value)
731
gtk_range_set_value (GTK_RANGE (on_battery_dpms_sleep), (value / 60) + 1);
735
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_ON_BATTERY, value))
737
g_critical ("Cannot set value for property %s\n", BRIGHTNESS_ON_BATTERY);
740
update_label (label_brightness_inactivity_on_battery, w, format_brightness_value_cb);
693
gint value = (gint)gtk_range_get_value (GTK_RANGE (w));
694
gint dpms_sleep = (gint) gtk_range_get_value (GTK_RANGE (on_battery_dpms_sleep) );
696
if ( value != BRIGHTNESS_DISABLED )
698
if ( dpms_sleep != 0 && dpms_sleep * 60 <= value)
700
gtk_range_set_value (GTK_RANGE (on_battery_dpms_sleep), (value / 60) + 1);
704
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_ON_BATTERY, value))
706
g_critical ("Cannot set value for property %s\n", BRIGHTNESS_ON_BATTERY);
709
update_label (label_brightness_inactivity_on_battery, w, format_brightness_value_cb);
744
713
brightness_on_ac_value_changed_cb (GtkWidget *w, XfconfChannel *channel)
746
gint value = (gint)gtk_range_get_value (GTK_RANGE (w));
747
gint dpms_sleep = (gint) gtk_range_get_value (GTK_RANGE (on_ac_dpms_sleep) );
749
if ( value != BRIGHTNESS_DISABLED )
751
if ( dpms_sleep != 0 && dpms_sleep * 60 <= value)
753
gtk_range_set_value (GTK_RANGE (on_ac_dpms_sleep), (value / 60) + 1);
757
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_ON_AC, value))
759
g_critical ("Cannot set value for property %s\n", BRIGHTNESS_ON_AC);
762
update_label (label_brightness_inactivity_on_ac, w, format_brightness_value_cb);
715
gint value = (gint)gtk_range_get_value (GTK_RANGE (w));
716
gint dpms_sleep = (gint) gtk_range_get_value (GTK_RANGE (on_ac_dpms_sleep) );
718
if ( value != BRIGHTNESS_DISABLED )
720
if ( dpms_sleep != 0 && dpms_sleep * 60 <= value)
722
gtk_range_set_value (GTK_RANGE (on_ac_dpms_sleep), (value / 60) + 1);
726
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_ON_AC, value))
728
g_critical ("Cannot set value for property %s\n", BRIGHTNESS_ON_AC);
731
update_label (label_brightness_inactivity_on_ac, w, format_brightness_value_cb);
766
735
on_battery_lid_changed_cb (GtkWidget *w, XfconfChannel *channel)
769
GtkTreeIter selected_row;
772
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
775
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
777
gtk_tree_model_get(model,
783
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_BATTERY_CFG, value) )
785
g_critical ("Cannot set value for property %s\n", LID_SWITCH_ON_BATTERY_CFG);
787
xfpm_update_logind_handle_lid_switch (channel);
738
GtkTreeIter selected_row;
741
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
744
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
746
gtk_tree_model_get (model,
752
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_BATTERY_CFG, value) )
754
g_critical ("Cannot set value for property %s\n", LID_SWITCH_ON_BATTERY_CFG);
756
xfpm_update_logind_handle_lid_switch (channel);
791
760
on_ac_lid_changed_cb (GtkWidget *w, XfconfChannel *channel)
794
GtkTreeIter selected_row;
797
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
800
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
802
gtk_tree_model_get(model,
808
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_AC_CFG, value) )
810
g_critical ("Cannot set value for property %s\n", LID_SWITCH_ON_AC_CFG);
812
xfpm_update_logind_handle_lid_switch (channel);
763
GtkTreeIter selected_row;
766
if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
769
model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
771
gtk_tree_model_get (model,
777
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_AC_CFG, value) )
779
g_critical ("Cannot set value for property %s\n", LID_SWITCH_ON_AC_CFG);
781
xfpm_update_logind_handle_lid_switch (channel);
816
785
critical_level_value_changed_cb (GtkSpinButton *w, XfconfChannel *channel)
818
guint val = (guint) gtk_spin_button_get_value (w);
787
guint val = (guint) gtk_spin_button_get_value (w);
820
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_POWER_LEVEL, val) )
822
g_critical ("Unable to set value %d for property %s\n", val, CRITICAL_POWER_LEVEL);
789
if (!xfconf_channel_set_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_POWER_LEVEL, val) )
791
g_critical ("Unable to set value %d for property %s\n", val, CRITICAL_POWER_LEVEL);
827
796
lock_screen_toggled_cb (GtkWidget *w, XfconfChannel *channel)
829
XfconfChannel *session_channel = xfconf_channel_get ("xfce4-session");
830
gboolean val = (gint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(w));
832
if ( !xfconf_channel_set_bool (session_channel, "/shutdown/LockScreen", val) )
834
g_critical ("Unable to set value for property %s\n", LOCK_SCREEN_ON_SLEEP);
837
if ( !xfconf_channel_set_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, val) )
839
g_critical ("Unable to set value for property %s\n", LOCK_SCREEN_ON_SLEEP);
842
/* Light Locker Integration */
843
if ( light_locker_settings )
846
variant = g_variant_new_boolean (val);
847
if (!g_settings_set_value (light_locker_settings, "lock-on-suspend", variant))
848
g_critical ("Cannot set value for property lock-on-suspend\n");
850
xfpm_update_logind_handle_lid_switch (channel);
852
/* END Light Locker Integration */
798
XfconfChannel *session_channel = xfconf_channel_get ("xfce4-session");
799
gboolean val = (gint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(w));
801
if ( !xfconf_channel_set_bool (session_channel, "/shutdown/LockScreen", val) )
803
g_critical ("Unable to set value for property %s\n", LOCK_SCREEN_ON_SLEEP);
806
if ( !xfconf_channel_set_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, val) )
808
g_critical ("Unable to set value for property %s\n", LOCK_SCREEN_ON_SLEEP);
811
/* Light Locker Integration */
812
if ( light_locker_settings )
815
variant = g_variant_new_boolean (val);
816
if (!g_settings_set_value (light_locker_settings, "lock-on-suspend", variant))
817
g_critical ("Cannot set value for property lock-on-suspend\n");
819
xfpm_update_logind_handle_lid_switch (channel);
821
/* END Light Locker Integration */
855
824
/* Light Locker Integration */
857
826
xfpm_update_logind_handle_lid_switch (XfconfChannel *channel)
859
gboolean lock_on_suspend = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, TRUE);
860
guint lid_switch_on_ac = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_AC_CFG, LID_TRIGGER_LOCK_SCREEN);
861
guint lid_switch_on_battery = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_BATTERY_CFG, LID_TRIGGER_LOCK_SCREEN);
828
gboolean lock_on_suspend = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, TRUE);
829
guint lid_switch_on_ac = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_AC_CFG, LID_TRIGGER_LOCK_SCREEN);
830
guint lid_switch_on_battery = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_BATTERY_CFG, LID_TRIGGER_LOCK_SCREEN);
863
// logind-handle-lid-switch = true when: lock_on_suspend == true and (lid_switch_on_ac == suspend or lid_switch_on_battery == suspend)
864
xfconf_channel_set_bool (channel, XFPM_PROPERTIES_PREFIX LOGIND_HANDLE_LID_SWITCH, lock_on_suspend && (lid_switch_on_ac == 1 || lid_switch_on_battery == 1));
832
// logind-handle-lid-switch = true when: lock_on_suspend == true and (lid_switch_on_ac == suspend or lid_switch_on_battery == suspend)
833
xfconf_channel_set_bool (channel, XFPM_PROPERTIES_PREFIX LOGIND_HANDLE_LID_SWITCH, lock_on_suspend && (lid_switch_on_ac == 1 || lid_switch_on_battery == 1));
866
835
/* END Light Locker Integration */
871
840
gboolean can_hibernate, gboolean can_shutdown,
872
841
gboolean has_lcd_brightness, gboolean has_lid)
874
gboolean valid, handle_dpms;
877
GtkListStore *list_store;
879
GtkWidget *inact_timeout, *inact_action;
880
GtkWidget *battery_critical;
883
GtkWidget *brg_level;
886
* Inactivity sleep mode on battery
888
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
889
inact_action = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-mode-on-battery"));
890
gtk_combo_box_set_model (GTK_COMBO_BOX(inact_action), GTK_TREE_MODEL(list_store));
843
gboolean valid, handle_dpms;
846
GtkListStore *list_store;
848
GtkWidget *inact_timeout, *inact_action;
849
GtkWidget *battery_critical;
852
GtkWidget *brg_level;
855
* Inactivity sleep mode on battery
857
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
858
inact_action = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-mode-on-battery"));
859
gtk_combo_box_set_model (GTK_COMBO_BOX(inact_action), GTK_TREE_MODEL(list_store));
894
863
gtk_list_store_append (list_store, &iter);
895
864
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
897
else if ( !auth_suspend )
866
else if ( !auth_suspend )
899
868
gtk_widget_set_tooltip_text (inact_action, _("Suspend operation not permitted"));
903
872
gtk_widget_set_tooltip_text (inact_action, _("Suspend operation not supported"));
908
877
gtk_list_store_append (list_store, &iter);
909
878
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
911
else if ( !auth_hibernate )
880
else if ( !auth_hibernate )
913
882
gtk_widget_set_tooltip_text (inact_action, _("Hibernate operation not permitted"));
917
886
gtk_widget_set_tooltip_text (inact_action, _("Hibernate operation not supported"));
920
gtk_combo_box_set_active (GTK_COMBO_BOX (inact_action), 0);
922
val = xfconf_channel_get_uint (channel,
923
XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_BATTERY,
926
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
928
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
930
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
932
if ( val == list_value )
934
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (inact_action), &iter);
940
* Inactivity timeout on battery
942
inact_timeout = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-battery"));
944
if ( !can_suspend && !can_hibernate )
889
gtk_combo_box_set_active (GTK_COMBO_BOX (inact_action), 0);
891
val = xfconf_channel_get_uint (channel,
892
XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_BATTERY,
895
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
897
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
899
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
901
if ( val == list_value )
903
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (inact_action), &iter);
909
* Inactivity timeout on battery
911
inact_timeout = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-battery"));
913
if ( !can_suspend && !can_hibernate )
946
915
gtk_widget_set_sensitive (inact_timeout, FALSE);
947
916
gtk_widget_set_tooltip_text (inact_timeout, _("Hibernate and suspend operations not supported"));
949
else if ( !auth_suspend && !auth_hibernate )
918
else if ( !auth_suspend && !auth_hibernate )
951
920
gtk_widget_set_sensitive (inact_timeout, FALSE);
952
921
gtk_widget_set_tooltip_text (inact_timeout, _("Hibernate and suspend operations not permitted"));
924
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_INACTIVITY_TIMEOUT, 14);
925
gtk_range_set_value (GTK_RANGE (inact_timeout), val);
931
battery_critical = GTK_WIDGET (gtk_builder_get_object (xml, "critical-power-action-combo"));
933
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
935
gtk_combo_box_set_model (GTK_COMBO_BOX(battery_critical), GTK_TREE_MODEL(list_store));
937
gtk_list_store_append(list_store, &iter);
938
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
940
if ( can_suspend && auth_suspend )
942
gtk_list_store_append(list_store, &iter);
943
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
946
if ( can_hibernate && auth_hibernate )
948
gtk_list_store_append(list_store, &iter);
949
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
954
gtk_list_store_append(list_store, &iter);
955
gtk_list_store_set (list_store, &iter, 0, _("Shutdown"), 1, XFPM_DO_SHUTDOWN, -1);
958
gtk_list_store_append(list_store, &iter);
959
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
961
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_BATT_ACTION_CFG, XFPM_DO_NOTHING);
963
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
965
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
967
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
969
if ( val == list_value )
971
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (battery_critical), &iter);
955
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_INACTIVITY_TIMEOUT, 14);
956
gtk_range_set_value (GTK_RANGE (inact_timeout), val);
962
battery_critical = GTK_WIDGET (gtk_builder_get_object (xml, "critical-power-action-combo"));
977
* DPMS settings when running on battery power
979
handle_dpms = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, TRUE);
981
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_SLEEP, 5);
982
gtk_range_set_value (GTK_RANGE(on_battery_dpms_sleep), val);
983
gtk_widget_set_sensitive (on_battery_dpms_sleep, handle_dpms);
985
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_OFF, 10);
986
gtk_range_set_value (GTK_RANGE(on_battery_dpms_off), val);
987
gtk_widget_set_sensitive (on_battery_dpms_off, handle_dpms);
990
* Lid switch settings on battery
992
lid = GTK_WIDGET (gtk_builder_get_object (xml, "lid-on-battery-combo"));
964
995
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
966
gtk_combo_box_set_model (GTK_COMBO_BOX(battery_critical), GTK_TREE_MODEL(list_store));
997
gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
968
gtk_list_store_append(list_store, &iter);
969
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
999
gtk_list_store_append (list_store, &iter);
1000
gtk_list_store_set (list_store, &iter, 0, _("Switch off display"), 1, LID_TRIGGER_NOTHING, -1);
971
1002
if ( can_suspend && auth_suspend )
973
gtk_list_store_append(list_store, &iter);
974
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
977
if ( can_hibernate && auth_hibernate )
979
gtk_list_store_append(list_store, &iter);
980
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
985
gtk_list_store_append(list_store, &iter);
986
gtk_list_store_set (list_store, &iter, 0, _("Shutdown"), 1, XFPM_DO_SHUTDOWN, -1);
1004
gtk_list_store_append(list_store, &iter);
1005
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, LID_TRIGGER_SUSPEND, -1);
1008
if ( can_hibernate && auth_hibernate)
1010
gtk_list_store_append(list_store, &iter);
1011
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, LID_TRIGGER_HIBERNATE, -1);
989
1014
gtk_list_store_append(list_store, &iter);
990
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
992
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_BATT_ACTION_CFG, XFPM_DO_NOTHING);
1015
gtk_list_store_set (list_store, &iter, 0, _("Lock screen"), 1, LID_TRIGGER_LOCK_SCREEN, -1);
1017
gtk_combo_box_set_active (GTK_COMBO_BOX (lid), 0);
1019
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_BATTERY_CFG, LID_TRIGGER_LOCK_SCREEN);
994
1021
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
996
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
998
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1000
if ( val == list_value )
1002
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (battery_critical), &iter);
1008
* DPMS settings when running on battery power
1010
handle_dpms = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, TRUE);
1012
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_SLEEP, 5);
1013
gtk_range_set_value (GTK_RANGE(on_battery_dpms_sleep), val);
1014
gtk_widget_set_sensitive (on_battery_dpms_sleep, handle_dpms);
1016
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATT_DPMS_OFF, 10);
1017
gtk_range_set_value (GTK_RANGE(on_battery_dpms_off), val);
1018
gtk_widget_set_sensitive (on_battery_dpms_off, handle_dpms);
1021
* Lid switch settings on battery
1023
lid = GTK_WIDGET (gtk_builder_get_object (xml, "lid-on-battery-combo"));
1026
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1028
gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
1030
gtk_list_store_append(list_store, &iter);
1031
gtk_list_store_set (list_store, &iter, 0, _("Switch off display"), 1, LID_TRIGGER_NOTHING, -1);
1033
if ( can_suspend && auth_suspend )
1035
gtk_list_store_append(list_store, &iter);
1036
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, LID_TRIGGER_SUSPEND, -1);
1039
if ( can_hibernate && auth_hibernate)
1041
gtk_list_store_append(list_store, &iter);
1042
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, LID_TRIGGER_HIBERNATE, -1);
1045
gtk_list_store_append(list_store, &iter);
1046
gtk_list_store_set (list_store, &iter, 0, _("Lock screen"), 1, LID_TRIGGER_LOCK_SCREEN, -1);
1048
gtk_combo_box_set_active (GTK_COMBO_BOX (lid), 0);
1050
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_BATTERY_CFG, LID_TRIGGER_LOCK_SCREEN);
1052
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1054
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1056
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1057
1, &list_value, -1);
1058
if ( val == list_value )
1060
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (lid), &iter);
1067
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-action-label")));
1068
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-on-battery-header")));
1069
gtk_widget_hide (lid);
1073
* Brightness on battery
1075
brg = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-inactivity-on-battery"));
1076
brg_level = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-level-on-battery"));
1077
if ( has_lcd_brightness )
1023
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1025
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1026
1, &list_value, -1);
1027
if ( val == list_value )
1029
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (lid), &iter);
1036
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-action-label")));
1037
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-on-battery-header")));
1038
gtk_widget_hide (lid);
1042
* Brightness on battery
1044
brg = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-inactivity-on-battery"));
1045
brg_level = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-level-on-battery"));
1046
if ( has_lcd_brightness )
1079
1048
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_ON_BATTERY, 120);
1080
1049
gtk_range_set_value (GTK_RANGE(brg), val);
1082
1051
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_BATTERY, 20);
1083
1052
gtk_range_set_value (GTK_RANGE (brg_level), val);
1087
1056
gtk_widget_hide (brg);
1088
1057
gtk_widget_hide (brg_level);
1091
label_inactivity_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-battery-label"));
1092
label_display_blank_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-battery-label"));
1093
label_dpms_sleep_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-battery-label"));
1094
label_dpms_off_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-battery-label"));
1095
label_brightness_level_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-level-on-battery-label"));
1096
label_brightness_inactivity_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-battery-label"));
1098
update_label (label_inactivity_on_battery, inact_timeout, format_inactivity_value_cb);
1099
update_label (label_display_blank_on_battery, on_battery_display_blank, format_dpms_value_cb);
1100
update_label (label_dpms_sleep_on_battery, on_battery_dpms_sleep, format_dpms_value_cb);
1101
update_label (label_dpms_off_on_battery, on_battery_dpms_off, format_dpms_value_cb);
1102
update_label (label_brightness_level_on_battery, brg_level, format_brightness_percentage_cb);
1103
update_label (label_brightness_inactivity_on_battery, brg, format_brightness_value_cb);
1060
label_inactivity_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-battery-label"));
1061
label_display_blank_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-battery-label"));
1062
label_dpms_sleep_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-battery-label"));
1063
label_dpms_off_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-battery-label"));
1064
label_brightness_level_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-level-on-battery-label"));
1065
label_brightness_inactivity_on_battery = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-battery-label"));
1067
update_label (label_inactivity_on_battery, inact_timeout, format_inactivity_value_cb);
1068
update_label (label_display_blank_on_battery, on_battery_display_blank, format_dpms_value_cb);
1069
update_label (label_dpms_sleep_on_battery, on_battery_dpms_sleep, format_dpms_value_cb);
1070
update_label (label_dpms_off_on_battery, on_battery_dpms_off, format_dpms_value_cb);
1071
update_label (label_brightness_level_on_battery, brg_level, format_brightness_percentage_cb);
1072
update_label (label_brightness_inactivity_on_battery, brg, format_brightness_value_cb);
1109
1078
gboolean can_hibernate, gboolean has_lcd_brightness,
1110
1079
gboolean has_lid)
1112
gboolean valid, handle_dpms;
1113
GtkWidget *inact_timeout, *inact_action;
1116
GtkWidget *brg_level;
1117
GtkListStore *list_store;
1123
* Inactivity sleep mode on AC
1125
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1126
inact_action = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-mode-on-ac"));
1127
gtk_combo_box_set_model (GTK_COMBO_BOX(inact_action), GTK_TREE_MODEL(list_store));
1081
gboolean valid, handle_dpms;
1082
GtkWidget *inact_timeout, *inact_action;
1085
GtkWidget *brg_level;
1086
GtkListStore *list_store;
1092
* Inactivity sleep mode on AC
1094
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1095
inact_action = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-mode-on-ac"));
1096
gtk_combo_box_set_model (GTK_COMBO_BOX(inact_action), GTK_TREE_MODEL(list_store));
1131
1100
gtk_list_store_append (list_store, &iter);
1132
1101
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1134
else if ( !auth_suspend )
1103
else if ( !auth_suspend )
1136
1105
gtk_widget_set_tooltip_text (inact_action, _("Suspend operation not permitted"));
1140
1109
gtk_widget_set_tooltip_text (inact_action, _("Suspend operation not supported"));
1143
if ( can_hibernate )
1112
if ( can_hibernate )
1145
1114
gtk_list_store_append (list_store, &iter);
1146
1115
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1148
else if ( !auth_hibernate )
1117
else if ( !auth_hibernate )
1150
1119
gtk_widget_set_tooltip_text (inact_action, _("Hibernate operation not permitted"));
1154
1123
gtk_widget_set_tooltip_text (inact_action, _("Hibernate operation not supported"));
1157
gtk_combo_box_set_active (GTK_COMBO_BOX (inact_action), 0);
1159
val = xfconf_channel_get_uint (channel,
1160
XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_AC,
1163
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1165
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1167
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1168
1, &list_value, -1);
1169
if ( val == list_value )
1171
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (inact_action), &iter);
1177
* Inactivity timeout on AC
1179
inact_timeout = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-ac"));
1181
if ( !can_suspend && !can_hibernate )
1126
gtk_combo_box_set_active (GTK_COMBO_BOX (inact_action), 0);
1128
val = xfconf_channel_get_uint (channel,
1129
XFPM_PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE_ON_AC,
1132
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1134
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1136
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1137
1, &list_value, -1);
1138
if ( val == list_value )
1140
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (inact_action), &iter);
1146
* Inactivity timeout on AC
1148
inact_timeout = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-ac"));
1150
if ( !can_suspend && !can_hibernate )
1183
1152
gtk_widget_set_sensitive (inact_timeout, FALSE);
1184
1153
gtk_widget_set_tooltip_text (inact_timeout, _("Hibernate and suspend operations not supported"));
1186
else if ( !auth_suspend && !auth_hibernate )
1155
else if ( !auth_suspend && !auth_hibernate )
1188
1157
gtk_widget_set_sensitive (inact_timeout, FALSE);
1189
1158
gtk_widget_set_tooltip_text (inact_timeout, _("Hibernate and suspend operations not permitted"));
1192
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_INACTIVITY_TIMEOUT, 14);
1193
gtk_range_set_value (GTK_RANGE (inact_timeout), val);
1196
* DPMS settings when running on AC power
1198
handle_dpms = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, TRUE);
1200
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_SLEEP, 10);
1201
gtk_range_set_value (GTK_RANGE (on_ac_dpms_sleep), val);
1202
gtk_widget_set_sensitive (on_ac_dpms_sleep, handle_dpms);
1204
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_OFF, 15);
1205
gtk_range_set_value (GTK_RANGE(on_ac_dpms_off), val);
1206
gtk_widget_set_sensitive (on_ac_dpms_off, handle_dpms);
1209
* Lid switch settings on AC power
1211
lid = GTK_WIDGET (gtk_builder_get_object (xml, "lid-on-ac-combo"));
1214
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1216
gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
1218
gtk_list_store_append(list_store, &iter);
1219
gtk_list_store_set (list_store, &iter, 0, _("Switch off display"), 1, LID_TRIGGER_NOTHING, -1);
1221
if ( can_suspend && auth_suspend )
1223
gtk_list_store_append(list_store, &iter);
1224
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, LID_TRIGGER_SUSPEND, -1);
1227
if ( can_hibernate && auth_hibernate )
1229
gtk_list_store_append(list_store, &iter);
1230
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, LID_TRIGGER_HIBERNATE, -1);
1233
gtk_list_store_append(list_store, &iter);
1234
gtk_list_store_set (list_store, &iter, 0, _("Lock screen"), 1, LID_TRIGGER_LOCK_SCREEN, -1);
1236
gtk_combo_box_set_active (GTK_COMBO_BOX (lid), 0);
1238
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_AC_CFG, LID_TRIGGER_LOCK_SCREEN);
1239
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1241
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1243
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1244
1, &list_value, -1);
1245
if ( val == list_value )
1247
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (lid), &iter);
1254
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-action-label1")));
1255
gtk_widget_hide (lid);
1256
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-plugged-in-header")));
1260
* Brightness on AC power
1262
brg = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-inactivity-on-ac"));
1263
brg_level = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-level-on-ac"));
1264
if ( has_lcd_brightness )
1266
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_ON_AC, 9);
1267
gtk_range_set_value (GTK_RANGE(brg), val);
1269
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_AC, 80);
1270
gtk_range_set_value (GTK_RANGE (brg_level), val);
1275
gtk_widget_hide (brg);
1276
gtk_widget_hide (brg_level);
1279
label_inactivity_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-ac-label"));
1280
label_display_blank_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-ac-label"));
1281
label_dpms_sleep_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-ac-label"));
1282
label_dpms_off_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-ac-label"));
1283
label_brightness_level_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-level-on-ac-label"));
1284
label_brightness_inactivity_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-ac-label"));
1286
update_label (label_inactivity_on_ac, inact_timeout, format_inactivity_value_cb);
1287
update_label (label_display_blank_on_ac, on_ac_display_blank, format_dpms_value_cb);
1288
update_label (label_dpms_sleep_on_ac, on_ac_dpms_sleep, format_dpms_value_cb);
1289
update_label (label_dpms_off_on_ac, on_ac_dpms_off, format_dpms_value_cb);
1290
update_label (label_brightness_level_on_ac, brg_level, format_brightness_percentage_cb);
1291
update_label (label_brightness_inactivity_on_ac, brg, format_brightness_value_cb);
1161
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_INACTIVITY_TIMEOUT, 14);
1162
gtk_range_set_value (GTK_RANGE (inact_timeout), val);
1165
* DPMS settings when running on AC power
1167
handle_dpms = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, TRUE);
1169
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_SLEEP, 10);
1170
gtk_range_set_value (GTK_RANGE (on_ac_dpms_sleep), val);
1171
gtk_widget_set_sensitive (on_ac_dpms_sleep, handle_dpms);
1173
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_AC_DPMS_OFF, 15);
1174
gtk_range_set_value (GTK_RANGE(on_ac_dpms_off), val);
1175
gtk_widget_set_sensitive (on_ac_dpms_off, handle_dpms);
1178
* Lid switch settings on AC power
1180
lid = GTK_WIDGET (gtk_builder_get_object (xml, "lid-on-ac-combo"));
1183
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1185
gtk_combo_box_set_model (GTK_COMBO_BOX(lid), GTK_TREE_MODEL(list_store));
1187
gtk_list_store_append (list_store, &iter);
1188
gtk_list_store_set (list_store, &iter, 0, _("Switch off display"), 1, LID_TRIGGER_NOTHING, -1);
1190
if ( can_suspend && auth_suspend )
1192
gtk_list_store_append(list_store, &iter);
1193
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, LID_TRIGGER_SUSPEND, -1);
1196
if ( can_hibernate && auth_hibernate )
1198
gtk_list_store_append(list_store, &iter);
1199
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, LID_TRIGGER_HIBERNATE, -1);
1202
gtk_list_store_append(list_store, &iter);
1203
gtk_list_store_set (list_store, &iter, 0, _("Lock screen"), 1, LID_TRIGGER_LOCK_SCREEN, -1);
1205
gtk_combo_box_set_active (GTK_COMBO_BOX (lid), 0);
1207
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX LID_SWITCH_ON_AC_CFG, LID_TRIGGER_LOCK_SCREEN);
1208
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1210
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1212
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1213
1, &list_value, -1);
1214
if ( val == list_value )
1216
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (lid), &iter);
1223
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-action-label1")));
1224
gtk_widget_hide (lid);
1225
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "lid-plugged-in-header")));
1229
* Brightness on AC power
1231
brg = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-inactivity-on-ac"));
1232
brg_level = GTK_WIDGET (gtk_builder_get_object (xml ,"brightness-level-on-ac"));
1233
if ( has_lcd_brightness )
1235
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_ON_AC, 9);
1236
gtk_range_set_value (GTK_RANGE(brg), val);
1238
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_AC, 80);
1239
gtk_range_set_value (GTK_RANGE (brg_level), val);
1243
gtk_widget_hide (brg);
1244
gtk_widget_hide (brg_level);
1247
label_inactivity_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "system-sleep-inactivity-on-ac-label"));
1248
label_display_blank_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-ac-label"));
1249
label_dpms_sleep_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-ac-label"));
1250
label_dpms_off_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-ac-label"));
1251
label_brightness_level_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-level-on-ac-label"));
1252
label_brightness_inactivity_on_ac = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-inactivity-on-ac-label"));
1254
update_label (label_inactivity_on_ac, inact_timeout, format_inactivity_value_cb);
1255
update_label (label_display_blank_on_ac, on_ac_display_blank, format_dpms_value_cb);
1256
update_label (label_dpms_sleep_on_ac, on_ac_dpms_sleep, format_dpms_value_cb);
1257
update_label (label_dpms_off_on_ac, on_ac_dpms_off, format_dpms_value_cb);
1258
update_label (label_brightness_level_on_ac, brg_level, format_brightness_percentage_cb);
1259
update_label (label_brightness_inactivity_on_ac, brg, format_brightness_value_cb);
1298
1266
gboolean has_sleep_button, gboolean has_hibernate_button,
1299
1267
gboolean has_power_button, gboolean has_battery_button)
1302
GtkWidget *power_label;
1303
GtkWidget *hibernate;
1304
GtkWidget *hibernate_label;
1306
GtkWidget *sleep_label;
1307
GtkWidget *battery_w;
1308
GtkWidget *battery_label;
1316
GtkListStore *list_store;
1319
dpms = GTK_WIDGET (gtk_builder_get_object (xml, "handle-dpms"));
1322
* Global dpms settings (enable/disable)
1324
val = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, TRUE);
1325
gtk_switch_set_state (GTK_SWITCH (dpms), val);
1330
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1331
power = GTK_WIDGET (gtk_builder_get_object (xml, "button-power-combo"));
1332
power_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-power-label"));
1334
if ( has_power_button )
1336
gtk_combo_box_set_model (GTK_COMBO_BOX(power), GTK_TREE_MODEL(list_store));
1338
gtk_list_store_append (list_store, &iter);
1339
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1341
if ( can_suspend && auth_suspend)
1343
gtk_list_store_append (list_store, &iter);
1344
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1347
if ( can_hibernate && auth_hibernate )
1349
gtk_list_store_append (list_store, &iter);
1350
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1355
gtk_list_store_append (list_store, &iter);
1356
gtk_list_store_set (list_store, &iter, 0, _("Shutdown"), 1, XFPM_DO_SHUTDOWN, -1);
1359
gtk_list_store_append (list_store, &iter);
1360
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1362
gtk_combo_box_set_active (GTK_COMBO_BOX (power), 0);
1364
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX POWER_SWITCH_CFG, XFPM_DO_NOTHING);
1365
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1367
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1369
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1370
1, &list_value, -1);
1371
if ( value == list_value )
1373
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (power), &iter);
1380
gtk_widget_hide (power);
1381
gtk_widget_hide (power_label);
1387
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1388
hibernate = GTK_WIDGET (gtk_builder_get_object (xml, "button-hibernate-combo"));
1389
hibernate_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-hibernate-label"));
1391
if (has_hibernate_button )
1393
gtk_combo_box_set_model (GTK_COMBO_BOX(hibernate), GTK_TREE_MODEL(list_store));
1395
gtk_list_store_append (list_store, &iter);
1396
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1398
if ( can_suspend && auth_suspend)
1400
gtk_list_store_append (list_store, &iter);
1401
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1404
if ( can_hibernate && auth_hibernate )
1406
gtk_list_store_append (list_store, &iter);
1407
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1410
gtk_list_store_append (list_store, &iter);
1411
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1413
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX HIBERNATE_SWITCH_CFG, XFPM_DO_NOTHING);
1415
gtk_combo_box_set_active (GTK_COMBO_BOX (hibernate), 0);
1417
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1419
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1421
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1422
1, &list_value, -1);
1423
if ( value == list_value )
1425
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (hibernate), &iter);
1432
gtk_widget_hide (hibernate);
1433
gtk_widget_hide (hibernate_label);
1439
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1440
sleep_w = GTK_WIDGET (gtk_builder_get_object (xml, "button-sleep-combo"));
1441
sleep_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-sleep-label"));
1443
if ( has_sleep_button )
1445
gtk_combo_box_set_model (GTK_COMBO_BOX(sleep_w), GTK_TREE_MODEL(list_store));
1447
gtk_list_store_append (list_store, &iter);
1448
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1450
if ( can_suspend && auth_suspend )
1452
gtk_list_store_append (list_store, &iter);
1453
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1456
if ( can_hibernate && auth_hibernate)
1458
gtk_list_store_append (list_store, &iter);
1459
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1462
gtk_list_store_append (list_store, &iter);
1463
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1465
gtk_combo_box_set_active (GTK_COMBO_BOX (sleep_w), 0);
1467
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX SLEEP_SWITCH_CFG, XFPM_DO_NOTHING);
1468
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1470
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1472
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1473
1, &list_value, -1);
1474
if ( value == list_value )
1476
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (sleep_w), &iter);
1483
gtk_widget_hide (sleep_w);
1484
gtk_widget_hide (sleep_label);
1490
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1491
battery_w = GTK_WIDGET (gtk_builder_get_object (xml, "button-battery-combo"));
1492
battery_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-battery-label"));
1494
if ( has_battery_button )
1496
gtk_combo_box_set_model (GTK_COMBO_BOX(battery_w), GTK_TREE_MODEL(list_store));
1498
gtk_list_store_append (list_store, &iter);
1499
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1501
if ( can_suspend && auth_suspend )
1503
gtk_list_store_append (list_store, &iter);
1504
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1507
if ( can_hibernate && auth_hibernate)
1509
gtk_list_store_append (list_store, &iter);
1510
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1513
gtk_list_store_append (list_store, &iter);
1514
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1516
gtk_combo_box_set_active (GTK_COMBO_BOX (battery_w), 0);
1518
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BATTERY_SWITCH_CFG, XFPM_DO_NOTHING);
1519
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1521
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1523
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1524
1, &list_value, -1);
1525
if ( value == list_value )
1527
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (battery_w), &iter);
1534
gtk_widget_hide (battery_w);
1535
gtk_widget_hide (battery_label);
1270
GtkWidget *power_label;
1271
GtkWidget *hibernate;
1272
GtkWidget *hibernate_label;
1274
GtkWidget *sleep_label;
1275
GtkWidget *battery_w;
1276
GtkWidget *battery_label;
1284
GtkListStore *list_store;
1287
dpms = GTK_WIDGET (gtk_builder_get_object (xml, "handle-dpms"));
1290
* Global dpms settings (enable/disable)
1292
val = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX DPMS_ENABLED_CFG, TRUE);
1293
gtk_switch_set_state (GTK_SWITCH (dpms), val);
1298
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1299
power = GTK_WIDGET (gtk_builder_get_object (xml, "button-power-combo"));
1300
power_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-power-label"));
1302
if ( has_power_button )
1304
gtk_combo_box_set_model (GTK_COMBO_BOX(power), GTK_TREE_MODEL(list_store));
1306
gtk_list_store_append (list_store, &iter);
1307
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1309
if ( can_suspend && auth_suspend)
1311
gtk_list_store_append (list_store, &iter);
1312
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1315
if ( can_hibernate && auth_hibernate )
1317
gtk_list_store_append (list_store, &iter);
1318
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1323
gtk_list_store_append (list_store, &iter);
1324
gtk_list_store_set (list_store, &iter, 0, _("Shutdown"), 1, XFPM_DO_SHUTDOWN, -1);
1327
gtk_list_store_append (list_store, &iter);
1328
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1330
gtk_combo_box_set_active (GTK_COMBO_BOX (power), 0);
1332
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX POWER_SWITCH_CFG, XFPM_DO_NOTHING);
1334
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1336
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1338
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1339
1, &list_value, -1);
1340
if ( value == list_value )
1342
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (power), &iter);
1349
gtk_widget_hide (power);
1350
gtk_widget_hide (power_label);
1356
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1357
hibernate = GTK_WIDGET (gtk_builder_get_object (xml, "button-hibernate-combo"));
1358
hibernate_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-hibernate-label"));
1360
if (has_hibernate_button )
1362
gtk_combo_box_set_model (GTK_COMBO_BOX(hibernate), GTK_TREE_MODEL(list_store));
1364
gtk_list_store_append (list_store, &iter);
1365
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1367
if ( can_suspend && auth_suspend)
1369
gtk_list_store_append (list_store, &iter);
1370
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1373
if ( can_hibernate && auth_hibernate )
1375
gtk_list_store_append (list_store, &iter);
1376
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1379
gtk_list_store_append (list_store, &iter);
1380
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1382
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX HIBERNATE_SWITCH_CFG, XFPM_DO_NOTHING);
1384
gtk_combo_box_set_active (GTK_COMBO_BOX (hibernate), 0);
1386
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1388
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1390
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1391
1, &list_value, -1);
1392
if ( value == list_value )
1394
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (hibernate), &iter);
1401
gtk_widget_hide (hibernate);
1402
gtk_widget_hide (hibernate_label);
1408
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1409
sleep_w = GTK_WIDGET (gtk_builder_get_object (xml, "button-sleep-combo"));
1410
sleep_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-sleep-label"));
1412
if ( has_sleep_button )
1414
gtk_combo_box_set_model (GTK_COMBO_BOX(sleep_w), GTK_TREE_MODEL(list_store));
1416
gtk_list_store_append (list_store, &iter);
1417
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1419
if ( can_suspend && auth_suspend )
1421
gtk_list_store_append (list_store, &iter);
1422
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1425
if ( can_hibernate && auth_hibernate)
1427
gtk_list_store_append (list_store, &iter);
1428
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1431
gtk_list_store_append (list_store, &iter);
1432
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1434
gtk_combo_box_set_active (GTK_COMBO_BOX (sleep_w), 0);
1436
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX SLEEP_SWITCH_CFG, XFPM_DO_NOTHING);
1437
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1439
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1441
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1442
1, &list_value, -1);
1443
if ( value == list_value )
1445
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (sleep_w), &iter);
1452
gtk_widget_hide (sleep_w);
1453
gtk_widget_hide (sleep_label);
1459
list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
1460
battery_w = GTK_WIDGET (gtk_builder_get_object (xml, "button-battery-combo"));
1461
battery_label = GTK_WIDGET (gtk_builder_get_object (xml, "button-battery-label"));
1463
if ( has_battery_button )
1465
gtk_combo_box_set_model (GTK_COMBO_BOX(battery_w), GTK_TREE_MODEL(list_store));
1467
gtk_list_store_append (list_store, &iter);
1468
gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1);
1470
if ( can_suspend && auth_suspend )
1472
gtk_list_store_append (list_store, &iter);
1473
gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1);
1476
if ( can_hibernate && auth_hibernate)
1478
gtk_list_store_append (list_store, &iter);
1479
gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1);
1482
gtk_list_store_append (list_store, &iter);
1483
gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1);
1485
gtk_combo_box_set_active (GTK_COMBO_BOX (battery_w), 0);
1487
value = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX BATTERY_SWITCH_CFG, XFPM_DO_NOTHING);
1488
for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
1490
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
1492
gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
1493
1, &list_value, -1);
1494
if ( value == list_value )
1496
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (battery_w), &iter);
1503
gtk_widget_hide (battery_w);
1504
gtk_widget_hide (battery_label);
1541
1510
gboolean auth_hibernate, gboolean can_suspend,
1542
1511
gboolean can_hibernate, gboolean has_battery)
1545
GtkWidget *critical_level;
1550
* Critical battery level
1552
critical_level = GTK_WIDGET (gtk_builder_get_object (xml, "critical-power-level-spin"));
1514
GtkWidget *critical_level;
1519
* Critical battery level
1521
critical_level = GTK_WIDGET (gtk_builder_get_object (xml, "critical-power-level-spin"));
1524
gtk_widget_set_tooltip_text (critical_level,
1525
_("When all the power sources of the computer reach this charge level"));
1527
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_POWER_LEVEL, 10);
1529
if ( val > 20 || val < 1)
1555
gtk_widget_set_tooltip_text (critical_level,
1556
_("When all the power sources of the computer reach this charge level"));
1558
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_POWER_LEVEL, 10);
1560
if ( val > 20 || val < 1)
1562
g_critical ("Value %d if out of range for property %s\n", val, CRITICAL_POWER_LEVEL);
1563
gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), 10);
1566
gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), val);
1531
g_critical ("Value %d if out of range for property %s\n", val, CRITICAL_POWER_LEVEL);
1532
gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), 10);
1570
label = GTK_WIDGET (gtk_builder_get_object (xml, "critical-power-level-label" ));
1571
gtk_widget_hide (critical_level);
1572
gtk_widget_hide (label);
1576
* Lock screen for suspend/hibernate
1578
lock = GTK_WIDGET (gtk_builder_get_object (xml, "lock-screen"));
1580
if ( !can_suspend && !can_hibernate )
1582
gtk_widget_set_sensitive (lock, FALSE);
1583
gtk_widget_set_tooltip_text (lock, _("Hibernate and suspend operations not supported"));
1585
else if ( !auth_hibernate && !auth_suspend)
1587
gtk_widget_set_sensitive (lock, FALSE);
1588
gtk_widget_set_tooltip_text (lock, _("Hibernate and suspend operations not permitted"));
1591
val = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, TRUE);
1592
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(lock), val);
1535
gtk_spin_button_set_value (GTK_SPIN_BUTTON(critical_level), val);
1539
label = GTK_WIDGET (gtk_builder_get_object (xml, "critical-power-level-label" ));
1540
gtk_widget_hide (critical_level);
1541
gtk_widget_hide (label);
1545
* Lock screen for suspend/hibernate
1547
lock = GTK_WIDGET (gtk_builder_get_object (xml, "lock-screen"));
1549
if ( !can_suspend && !can_hibernate )
1551
gtk_widget_set_sensitive (lock, FALSE);
1552
gtk_widget_set_tooltip_text (lock, _("Hibernate and suspend operations not supported"));
1554
else if ( !auth_hibernate && !auth_suspend)
1556
gtk_widget_set_sensitive (lock, FALSE);
1557
gtk_widget_set_tooltip_text (lock, _("Hibernate and suspend operations not permitted"));
1560
val = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, TRUE);
1561
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(lock), val);
1595
1564
/* Light Locker Integration */
1597
1566
get_light_locker_path (void)
1599
gchar** paths = NULL;
1568
gchar** paths = NULL;
1603
/* Check if executable in path */
1604
paths = g_strsplit(g_getenv("PATH"), ":", 0);
1605
for (i = 0; i < g_strv_length(paths); i++) {
1606
path = g_strdup(g_build_filename(paths[i], "light-locker", NULL));
1607
if (g_file_test(path, G_FILE_TEST_EXISTS))
1572
/* Check if executable is in path */
1573
paths = g_strsplit (g_getenv ("PATH"), ":", 0);
1574
for (i = 0; i < g_strv_length (paths); i++) {
1575
path = g_strdup (g_build_filename (paths[i], "light-locker", NULL));
1576
if (g_file_test (path, G_FILE_TEST_EXISTS))
1620
1589
format_light_locker_value_cb (gint value)
1625
return g_strdup (_("Never"));
1626
else if ( value < 60 )
1627
return g_strdup_printf ("%d %s", value, _("seconds"));
1594
return g_strdup (_("Never"));
1595
else if ( value < 60 )
1596
return g_strdup_printf ("%d %s", value, _("seconds"));
1601
return g_strdup_printf ("%d %s", min + 1, _("minute"));
1632
return g_strdup_printf ("%d %s", min + 1, _("minute"));
1634
return g_strdup_printf ("%d %s", min + 1, _("minutes"));
1603
return g_strdup_printf ("%d %s", min + 1, _("minutes"));
1639
1608
light_locker_late_locking_value_changed_cb (GtkWidget *widget, XfconfChannel *channel)
1642
gint value = (gint)gtk_range_get_value (GTK_RANGE (widget));
1645
value = ((value - 60) + 1) * 60;
1648
variant = g_variant_new_uint32 (value);
1650
if (!g_settings_set_value (light_locker_settings, "lock-after-screensaver", variant))
1652
g_critical ("Cannot set value for property lock-after-screensaver\n");
1655
update_label (label_light_locker_late_locking_scale, widget, format_light_locker_value_cb);
1611
gint value = (gint)gtk_range_get_value (GTK_RANGE (widget));
1614
value = ((value - 60) + 1) * 60;
1617
variant = g_variant_new_uint32 (value);
1619
if (!g_settings_set_value (light_locker_settings, "lock-after-screensaver", variant))
1621
g_critical ("Cannot set value for property lock-after-screensaver\n");
1624
update_label (label_light_locker_late_locking_scale, widget, format_light_locker_value_cb);
1659
1628
light_locker_automatic_locking_changed_cb (GtkWidget *widget, XfconfChannel *channel)
1663
gint lock_after_screensaver;
1664
gboolean late_locking = FALSE;
1666
value = gtk_combo_box_get_active (GTK_COMBO_BOX(widget));
1667
gtk_widget_set_sensitive (light_locker_delay, value != 0);
1670
lock_after_screensaver = 0;
1672
lock_after_screensaver = (gint)gtk_range_get_value (GTK_RANGE (light_locker_delay));
1673
if (lock_after_screensaver > 60) {
1674
lock_after_screensaver = (lock_after_screensaver - 60) * 60;
1632
gint lock_after_screensaver;
1633
gboolean late_locking = FALSE;
1635
value = gtk_combo_box_get_active (GTK_COMBO_BOX(widget));
1636
gtk_widget_set_sensitive (light_locker_delay, value != 0);
1639
lock_after_screensaver = 0;
1641
lock_after_screensaver = (gint)gtk_range_get_value (GTK_RANGE (light_locker_delay));
1642
if (lock_after_screensaver > 60) {
1643
lock_after_screensaver = (lock_after_screensaver - 60) * 60;
1679
late_locking = TRUE;
1681
variant = g_variant_new_uint32 (lock_after_screensaver);
1682
if (!g_settings_set_value (light_locker_settings, "lock-after-screensaver", variant))
1683
g_critical ("Cannot set value for property lock-after-screensaver\n");
1685
variant = g_variant_new_boolean (late_locking);
1686
if (!g_settings_set_value (light_locker_settings, "late-locking", variant))
1687
g_critical ("Cannot set value for property late-locking\n");
1648
late_locking = TRUE;
1650
variant = g_variant_new_uint32 (lock_after_screensaver);
1651
if (!g_settings_set_value (light_locker_settings, "lock-after-screensaver", variant))
1652
g_critical ("Cannot set value for property lock-after-screensaver\n");
1654
variant = g_variant_new_boolean (late_locking);
1655
if (!g_settings_set_value (light_locker_settings, "late-locking", variant))
1656
g_critical ("Cannot set value for property late-locking\n");
1690
1659
static void xfpm_settings_light_locker (XfconfChannel *channel,
1691
1660
gboolean auth_suspend, gboolean auth_hibernate,
1692
1661
gboolean can_suspend, gboolean can_hibernate)
1694
GSettingsSchemaSource *schema_source;
1695
GSettingsSchema *schema;
1697
gboolean late_locking, lock_on_suspend, xfpm_lock_on_suspend;
1698
guint32 lock_after_screensaver;
1699
GtkWidget *security_frame;
1701
/* Collect the Light Locker widgets */
1702
light_locker_tab = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-vbox1"));
1703
light_locker_autolock = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-automatic-locking-combo"));
1704
light_locker_delay = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-late-locking-scale"));
1705
light_locker_sleep = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-suspend"));
1707
if ( !can_suspend && !can_hibernate )
1709
gtk_widget_set_sensitive (light_locker_sleep, FALSE);
1710
gtk_widget_set_tooltip_text (light_locker_sleep, _("Hibernate and suspend operations not supported"));
1712
else if ( !auth_hibernate && !auth_suspend)
1714
gtk_widget_set_sensitive (light_locker_sleep, FALSE);
1715
gtk_widget_set_tooltip_text (light_locker_sleep, _("Hibernate and suspend operations not permitted"));
1718
schema_source = g_settings_schema_source_get_default();
1719
schema = g_settings_schema_source_lookup (schema_source, "apps.light-locker", TRUE);
1721
if (schema != NULL && get_light_locker_path() != NULL) {
1722
security_frame = GTK_WIDGET (gtk_builder_get_object (xml, "security-frame"));
1723
gtk_widget_hide(security_frame);
1724
/* Load the settings (Light Locker compiled with GSettings backend required) */
1725
light_locker_settings = g_settings_new ("apps.light-locker");
1727
variant = g_settings_get_value (light_locker_settings, "late-locking");
1728
late_locking = g_variant_get_boolean (variant);
1730
variant = g_settings_get_value (light_locker_settings, "lock-on-suspend");
1731
lock_on_suspend = g_variant_get_boolean (variant);
1732
xfpm_lock_on_suspend = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, TRUE);
1733
if (lock_on_suspend != xfpm_lock_on_suspend) {
1734
variant = g_variant_new_boolean (xfpm_lock_on_suspend);
1735
if (!g_settings_set_value (light_locker_settings, "lock-on-suspend", variant)) {
1736
g_critical ("Cannot set value for property lock-on-suspend\n");
1738
lock_on_suspend = xfpm_lock_on_suspend;
1741
variant = g_settings_get_value (light_locker_settings, "lock-after-screensaver");
1742
lock_after_screensaver = g_variant_get_uint32 (variant);
1744
gtk_widget_set_sensitive (light_locker_delay, lock_after_screensaver != 0);
1746
if (lock_after_screensaver > 60) {
1747
lock_after_screensaver = (lock_after_screensaver / 60) + 60;
1750
/* Apply the settings */
1751
if (lock_after_screensaver == 0) {
1752
gtk_combo_box_set_active (GTK_COMBO_BOX(light_locker_autolock), 0);
1754
if (!late_locking) {
1755
gtk_combo_box_set_active (GTK_COMBO_BOX(light_locker_autolock), 1);
1757
gtk_combo_box_set_active (GTK_COMBO_BOX(light_locker_autolock), 2);
1759
gtk_range_set_value (GTK_RANGE(light_locker_delay), lock_after_screensaver);
1762
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(light_locker_sleep), lock_on_suspend);
1764
g_settings_schema_unref (schema);
1766
XFPM_DEBUG ("Schema \"apps.light-locker\" not found. Not configuring Light Locker.");
1767
gtk_widget_hide (light_locker_tab);
1770
label_light_locker_late_locking_scale = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-late-locking-scale-label"));
1771
update_label (label_light_locker_late_locking_scale, light_locker_delay, format_light_locker_value_cb);
1663
GSettingsSchemaSource *schema_source;
1664
GSettingsSchema *schema;
1666
gboolean late_locking, lock_on_suspend, xfpm_lock_on_suspend;
1667
guint32 lock_after_screensaver;
1668
GtkWidget *security_frame;
1670
/* Collect the Light Locker widgets */
1671
light_locker_tab = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-vbox1"));
1672
light_locker_autolock = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-automatic-locking-combo"));
1673
light_locker_delay = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-late-locking-scale"));
1674
light_locker_sleep = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-suspend"));
1676
if ( !can_suspend && !can_hibernate )
1678
gtk_widget_set_sensitive (light_locker_sleep, FALSE);
1679
gtk_widget_set_tooltip_text (light_locker_sleep, _("Hibernate and suspend operations not supported"));
1681
else if ( !auth_hibernate && !auth_suspend)
1683
gtk_widget_set_sensitive (light_locker_sleep, FALSE);
1684
gtk_widget_set_tooltip_text (light_locker_sleep, _("Hibernate and suspend operations not permitted"));
1687
schema_source = g_settings_schema_source_get_default();
1688
schema = g_settings_schema_source_lookup (schema_source, "apps.light-locker", TRUE);
1690
if (schema != NULL && get_light_locker_path() != NULL)
1692
security_frame = GTK_WIDGET (gtk_builder_get_object (xml, "security-frame"));
1693
gtk_widget_hide (security_frame);
1694
/* Load the settings (Light Locker compiled with GSettings backend required) */
1695
light_locker_settings = g_settings_new ("apps.light-locker");
1697
variant = g_settings_get_value (light_locker_settings, "late-locking");
1698
late_locking = g_variant_get_boolean (variant);
1700
variant = g_settings_get_value (light_locker_settings, "lock-on-suspend");
1701
lock_on_suspend = g_variant_get_boolean (variant);
1702
xfpm_lock_on_suspend = xfconf_channel_get_bool (channel, XFPM_PROPERTIES_PREFIX LOCK_SCREEN_ON_SLEEP, TRUE);
1703
if (lock_on_suspend != xfpm_lock_on_suspend)
1705
variant = g_variant_new_boolean (xfpm_lock_on_suspend);
1706
if (!g_settings_set_value (light_locker_settings, "lock-on-suspend", variant))
1708
g_critical ("Cannot set value for property lock-on-suspend\n");
1710
lock_on_suspend = xfpm_lock_on_suspend;
1713
variant = g_settings_get_value (light_locker_settings, "lock-after-screensaver");
1714
lock_after_screensaver = g_variant_get_uint32 (variant);
1716
gtk_widget_set_sensitive (light_locker_delay, lock_after_screensaver != 0);
1718
if (lock_after_screensaver > 60)
1720
lock_after_screensaver = (lock_after_screensaver / 60) + 60;
1723
/* Apply the settings */
1724
if (lock_after_screensaver == 0)
1726
gtk_combo_box_set_active (GTK_COMBO_BOX(light_locker_autolock), 0);
1732
gtk_combo_box_set_active (GTK_COMBO_BOX(light_locker_autolock), 1);
1736
gtk_combo_box_set_active (GTK_COMBO_BOX(light_locker_autolock), 2);
1738
gtk_range_set_value (GTK_RANGE(light_locker_delay), lock_after_screensaver);
1741
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(light_locker_sleep), lock_on_suspend);
1743
g_settings_schema_unref (schema);
1747
XFPM_DEBUG ("Schema \"apps.light-locker\" not found. Not configuring Light Locker.");
1748
gtk_widget_hide (light_locker_tab);
1751
label_light_locker_late_locking_scale = GTK_WIDGET (gtk_builder_get_object (xml, "light-locker-late-locking-scale-label"));
1752
update_label (label_light_locker_late_locking_scale, light_locker_delay, format_light_locker_value_cb);
1773
1754
/* END Light Locker Integration */
1852
1835
const gchar *name,
1853
1836
const gchar *value)
1857
g_return_if_fail (GTK_IS_TREE_VIEW(view));
1858
g_return_if_fail (GTK_IS_LIST_STORE(list_store));
1859
g_return_if_fail (name != NULL);
1860
/* Value can be NULL */
1862
DBG ("updating name %s with value %s", name, value);
1864
iter = find_device_info_name_in_tree (view, name);
1867
/* The row doesn't exist yet, add it */
1868
GtkTreeIter new_iter;
1869
gtk_list_store_append (list_store, &new_iter);
1870
iter = gtk_tree_iter_copy (&new_iter);
1875
gtk_list_store_set (list_store, iter,
1876
XFPM_DEVICE_INFO_NAME, name,
1877
XFPM_DEVICE_INFO_VALUE, value,
1882
/* The value no longer applies, remove the row */
1883
gtk_list_store_remove (list_store, iter);
1886
gtk_tree_iter_free (iter);
1840
g_return_if_fail (GTK_IS_TREE_VIEW(view));
1841
g_return_if_fail (GTK_IS_LIST_STORE(list_store));
1842
g_return_if_fail (name != NULL);
1843
/* Value can be NULL */
1845
DBG ("updating name %s with value %s", name, value);
1847
iter = find_device_info_name_in_tree (view, name);
1850
/* The row doesn't exist yet, add it */
1851
GtkTreeIter new_iter;
1852
gtk_list_store_append (list_store, &new_iter);
1853
iter = gtk_tree_iter_copy (&new_iter);
1858
gtk_list_store_set (list_store, iter,
1859
XFPM_DEVICE_INFO_NAME, name,
1860
XFPM_DEVICE_INFO_VALUE, value,
1865
/* The value no longer applies, remove the row */
1866
gtk_list_store_remove (list_store, iter);
1869
gtk_tree_iter_free (iter);
1890
1873
update_sideview_icon (UpDevice *device)
1892
GtkListStore *list_store;
1896
gchar *name = NULL, *icon_name = NULL, *model = NULL, *vendor = NULL;
1897
const gchar *object_path = up_device_get_object_path(device);
1899
list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (sideview)));
1901
TRACE("entering for %s", object_path);
1903
iter = find_device_in_tree (object_path);
1905
/* quit if device doesn't exist in the sidebar */
1909
/* hack, this depends on XFPM_DEVICE_TYPE_* being in sync with UP_DEVICE_KIND_* */
1910
g_object_get (device,
1917
name = get_device_description (upower, device);
1918
icon_name = get_device_icon_name (upower, device);
1920
pix = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
1923
GTK_ICON_LOOKUP_USE_BUILTIN,
1926
gtk_list_store_set (list_store, iter,
1927
COL_SIDEBAR_ICON, pix,
1928
COL_SIDEBAR_NAME, name,
1932
g_object_unref (pix);
1937
gtk_tree_iter_free (iter);
1875
GtkListStore *list_store;
1879
gchar *name = NULL, *icon_name = NULL, *model = NULL, *vendor = NULL;
1880
const gchar *object_path = up_device_get_object_path(device);
1882
list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (sideview)));
1884
TRACE("entering for %s", object_path);
1886
iter = find_device_in_tree (object_path);
1888
/* quit if device doesn't exist in the sidebar */
1892
/* hack, this depends on XFPM_DEVICE_TYPE_* being in sync with UP_DEVICE_KIND_* */
1893
g_object_get (device,
1900
name = get_device_description (upower, device);
1901
icon_name = get_device_icon_name (upower, device);
1903
pix = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
1906
GTK_ICON_LOOKUP_USE_BUILTIN,
1909
gtk_list_store_set (list_store, iter,
1910
COL_SIDEBAR_ICON, pix,
1911
COL_SIDEBAR_NAME, name,
1915
g_object_unref (pix);
1920
gtk_tree_iter_free (iter);
1941
1924
update_device_details (UpDevice *device)
1944
GtkListStore *list_store;
1945
GtkTreeIter *sideview_iter;
1947
guint type = 0, tech = 0;
1948
gdouble energy_full_design = -1.0, energy_full = -1.0, energy_empty = -1.0, voltage = -1.0, percent = -1.0;
1949
gboolean p_supply = FALSE;
1950
gchar *model = NULL, *vendor = NULL, *serial = NULL;
1951
const gchar *battery_type = NULL;
1952
const gchar *object_path = up_device_get_object_path(device);
1954
TRACE("entering for %s", object_path);
1956
sideview_iter = find_device_in_tree (object_path);
1958
/* quit if device doesn't exist in the sidebar */
1959
if (sideview_iter == NULL)
1962
gtk_tree_model_get (gtk_tree_view_get_model(GTK_TREE_VIEW(sideview)), sideview_iter,
1963
COL_SIDEBAR_VIEW, &view,
1966
list_store = GTK_LIST_STORE (gtk_tree_view_get_model (view));
1969
* Add/Update Device information:
1972
update_device_info_value_for_name (view,
1975
g_str_has_prefix (object_path, UPOWER_PATH_DEVICE) ? object_path + strlen (UPOWER_PATH_DEVICE) : object_path);
1978
/* hack, this depends on XFPM_DEVICE_TYPE_* being in sync with UP_DEVICE_KIND_* */
1979
g_object_get (device,
1981
"power-supply", &p_supply,
1985
"technology", &tech,
1986
"energy-full-design", &energy_full_design,
1987
"energy-full", &energy_full,
1988
"energy-empty", &energy_empty,
1989
"voltage", &voltage,
1990
"percentage", &percent,
1993
if (type != UP_DEVICE_KIND_UNKNOWN)
1995
battery_type = xfpm_power_translate_device_type (type);
1996
update_device_info_value_for_name (view, list_store, _("Type"), battery_type);
1999
update_device_info_value_for_name (view,
2002
p_supply == TRUE ? _("True") : _("False"));
2004
if ( type != UP_DEVICE_KIND_LINE_POWER )
2007
if (model && strlen (model) > 0)
2009
update_device_info_value_for_name (view, list_store, _("Model"), model);
2012
update_device_info_value_for_name (view, list_store, _("Technology"), xfpm_power_translate_technology (tech));
2017
str = g_strdup_printf("%d%%", (guint) percent);
2019
update_device_info_value_for_name (view, list_store, _("Current charge"), str);
2024
if (energy_full_design > 0)
2026
/* TRANSLATORS: Unit here is Watt hour*/
2027
str = xfpm_info_get_energy_property (energy_full_design, _("Wh"));
2029
update_device_info_value_for_name (view, list_store, _("Fully charged (design)"), str);
2034
if (energy_full > 0)
2038
/* TRANSLATORS: Unit here is Watt hour*/
2039
str = xfpm_info_get_energy_property (energy_full, _("Wh"));
2040
str2 = g_strdup_printf ("%s (%d%%)", str, (guint) (energy_full / energy_full_design *100));
2042
update_device_info_value_for_name (view, list_store, _("Fully charged"), str2);
2048
if (energy_empty > 0)
2050
/* TRANSLATORS: Unit here is Watt hour*/
2051
str = xfpm_info_get_energy_property (energy_empty, _("Wh"));
2053
update_device_info_value_for_name (view, list_store, _("Energy empty"), str);
2060
/* TRANSLATORS: Unit here is Volt*/
2061
str = xfpm_info_get_energy_property (voltage, _("V"));
2063
update_device_info_value_for_name (view, list_store, _("Voltage"), str);
2068
if (vendor && strlen (vendor) > 0)
2070
update_device_info_value_for_name (view, list_store, _("Vendor"), vendor);
2073
if (serial && strlen (serial) > 0)
2075
update_device_info_value_for_name (view, list_store, _("Serial"), serial);
2079
update_sideview_icon (device);
2080
gtk_widget_show_all (GTK_WIDGET(view));
1927
GtkListStore *list_store;
1928
GtkTreeIter *sideview_iter;
1930
guint type = 0, tech = 0;
1931
gdouble energy_full_design = -1.0, energy_full = -1.0, energy_empty = -1.0, voltage = -1.0, percent = -1.0;
1932
gboolean p_supply = FALSE;
1933
gchar *model = NULL, *vendor = NULL, *serial = NULL;
1934
const gchar *battery_type = NULL;
1935
const gchar *object_path = up_device_get_object_path(device);
1937
TRACE("entering for %s", object_path);
1939
sideview_iter = find_device_in_tree (object_path);
1941
/* quit if device doesn't exist in the sidebar */
1942
if (sideview_iter == NULL)
1945
gtk_tree_model_get (gtk_tree_view_get_model (GTK_TREE_VIEW(sideview)), sideview_iter,
1946
COL_SIDEBAR_VIEW, &view,
1949
list_store = GTK_LIST_STORE (gtk_tree_view_get_model (view));
1952
* Add/Update Device information:
1955
update_device_info_value_for_name (view,
1958
g_str_has_prefix (object_path, UPOWER_PATH_DEVICE) ? object_path + strlen (UPOWER_PATH_DEVICE) : object_path);
1961
/* hack, this depends on XFPM_DEVICE_TYPE_* being in sync with UP_DEVICE_KIND_* */
1962
g_object_get (device,
1964
"power-supply", &p_supply,
1968
"technology", &tech,
1969
"energy-full-design", &energy_full_design,
1970
"energy-full", &energy_full,
1971
"energy-empty", &energy_empty,
1972
"voltage", &voltage,
1973
"percentage", &percent,
1976
if (type != UP_DEVICE_KIND_UNKNOWN)
1978
battery_type = xfpm_power_translate_device_type (type);
1979
update_device_info_value_for_name (view, list_store, _("Type"), battery_type);
1982
update_device_info_value_for_name (view,
1985
p_supply == TRUE ? _("True") : _("False"));
1987
if ( type != UP_DEVICE_KIND_LINE_POWER )
1990
if (model && strlen (model) > 0)
1992
update_device_info_value_for_name (view, list_store, _("Model"), model);
1995
update_device_info_value_for_name (view, list_store, _("Technology"), xfpm_power_translate_technology (tech));
2000
str = g_strdup_printf("%d%%", (guint) percent);
2002
update_device_info_value_for_name (view, list_store, _("Current charge"), str);
2007
if (energy_full_design > 0)
2009
/* TRANSLATORS: Unit here is Watt hour*/
2010
str = xfpm_info_get_energy_property (energy_full_design, _("Wh"));
2012
update_device_info_value_for_name (view, list_store, _("Fully charged (design)"), str);
2017
if (energy_full > 0)
2021
/* TRANSLATORS: Unit here is Watt hour*/
2022
str = xfpm_info_get_energy_property (energy_full, _("Wh"));
2023
str2 = g_strdup_printf ("%s (%d%%)", str, (guint) (energy_full / energy_full_design *100));
2025
update_device_info_value_for_name (view, list_store, _("Fully charged"), str2);
2031
if (energy_empty > 0)
2033
/* TRANSLATORS: Unit here is Watt hour*/
2034
str = xfpm_info_get_energy_property (energy_empty, _("Wh"));
2036
update_device_info_value_for_name (view, list_store, _("Energy empty"), str);
2043
/* TRANSLATORS: Unit here is Volt*/
2044
str = xfpm_info_get_energy_property (voltage, _("V"));
2046
update_device_info_value_for_name (view, list_store, _("Voltage"), str);
2051
if (vendor && strlen (vendor) > 0)
2053
update_device_info_value_for_name (view, list_store, _("Vendor"), vendor);
2056
if (serial && strlen (serial) > 0)
2058
update_device_info_value_for_name (view, list_store, _("Serial"), serial);
2062
update_sideview_icon (device);
2063
gtk_widget_show_all (GTK_WIDGET(view));
2090
2073
add_device (UpDevice *device)
2092
GtkTreeIter iter, *device_iter;
2093
GtkListStore *sideview_store, *devices_store;
2094
GtkTreeViewColumn *col;
2095
GtkCellRenderer *renderer;
2096
GtkWidget *frame, *view;
2097
const gchar *object_path = up_device_get_object_path(device);
2100
static gboolean first_run = TRUE;
2102
TRACE("entering for %s", object_path);
2104
/* don't add the same device twice */
2105
device_iter = find_device_in_tree (object_path);
2108
gtk_tree_iter_free (device_iter);
2112
/* Make sure the devices tab is shown */
2113
gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2115
signal_id = g_signal_connect (device, "notify", G_CALLBACK (device_changed_cb), NULL);
2117
sideview_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (sideview)));
2119
index = gtk_notebook_get_n_pages (GTK_NOTEBOOK (device_details_notebook));
2121
/* Create the page that the update_device_details will update/replace */
2122
frame = gtk_frame_new (NULL);
2123
view = gtk_tree_view_new ();
2124
gtk_container_add (GTK_CONTAINER (frame), view);
2125
gtk_widget_show_all (frame);
2126
gtk_notebook_append_page (GTK_NOTEBOOK (device_details_notebook), frame, NULL);
2127
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE);
2129
/* Create the list store that the devices view will display */
2130
devices_store = gtk_list_store_new (XFPM_DEVICE_INFO_LAST, G_TYPE_STRING, G_TYPE_STRING);
2131
gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (devices_store));
2133
/* Create the headers for this item in the device details tab */
2134
renderer = gtk_cell_renderer_text_new ();
2136
/*Device Attribute*/
2137
col = gtk_tree_view_column_new();
2138
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2139
gtk_tree_view_column_set_attributes (col, renderer, "text", XFPM_DEVICE_INFO_NAME, NULL);
2140
gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
2142
/*Device Attribute Value*/
2143
col = gtk_tree_view_column_new();
2144
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2145
gtk_tree_view_column_set_attributes (col, renderer, "text", XFPM_DEVICE_INFO_VALUE, NULL);
2147
gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
2149
/* Add the new device to the sidebar */
2150
gtk_list_store_append (sideview_store, &iter);
2151
gtk_list_store_set (sideview_store, &iter,
2152
COL_SIDEBAR_INT, index,
2153
COL_SIDEBAR_BATTERY_DEVICE, device,
2154
COL_SIDEBAR_OBJECT_PATH, object_path,
2155
COL_SIDEBAR_SIGNAL_ID, signal_id,
2156
COL_SIDEBAR_VIEW, view,
2159
/* Add the icon and description for the device */
2160
update_device_details (device);
2162
/* See if we're to select this device, for it to be selected,
2163
* the starting_device_id must be unset and the this is the first
2164
* time add_device is called (i.e. select the first device) or
2165
* our current device matches starting_device_id. */
2166
if ((starting_device_id == NULL && first_run == TRUE) ||
2167
(g_strcmp0 (object_path, starting_device_id) == 0))
2169
GtkTreeSelection *selection;
2171
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sideview));
2173
gtk_tree_selection_select_iter (selection, &iter);
2174
view_cursor_changed_cb (GTK_TREE_VIEW (sideview), NULL);
2075
GtkTreeIter iter, *device_iter;
2076
GtkListStore *sideview_store, *devices_store;
2077
GtkTreeViewColumn *col;
2078
GtkCellRenderer *renderer;
2079
GtkWidget *frame, *view;
2080
const gchar *object_path = up_device_get_object_path(device);
2083
static gboolean first_run = TRUE;
2085
TRACE("entering for %s", object_path);
2087
/* don't add the same device twice */
2088
device_iter = find_device_in_tree (object_path);
2091
gtk_tree_iter_free (device_iter);
2095
/* Make sure the devices tab is shown */
2096
gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2098
signal_id = g_signal_connect (device, "notify", G_CALLBACK (device_changed_cb), NULL);
2100
sideview_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (sideview)));
2102
index = gtk_notebook_get_n_pages (GTK_NOTEBOOK (device_details_notebook));
2104
/* Create the page that the update_device_details will update/replace */
2105
frame = gtk_frame_new (NULL);
2106
view = gtk_tree_view_new ();
2107
gtk_container_add (GTK_CONTAINER (frame), view);
2108
gtk_widget_show_all (frame);
2109
gtk_notebook_append_page (GTK_NOTEBOOK (device_details_notebook), frame, NULL);
2110
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE);
2112
/* Create the list store that the devices view will display */
2113
devices_store = gtk_list_store_new (XFPM_DEVICE_INFO_LAST, G_TYPE_STRING, G_TYPE_STRING);
2114
gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (devices_store));
2116
/* Create the headers for this item in the device details tab */
2117
renderer = gtk_cell_renderer_text_new ();
2119
/*Device Attribute*/
2120
col = gtk_tree_view_column_new();
2121
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2122
gtk_tree_view_column_set_attributes (col, renderer, "text", XFPM_DEVICE_INFO_NAME, NULL);
2123
gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
2125
/*Device Attribute Value*/
2126
col = gtk_tree_view_column_new();
2127
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2128
gtk_tree_view_column_set_attributes (col, renderer, "text", XFPM_DEVICE_INFO_VALUE, NULL);
2130
gtk_tree_view_append_column (GTK_TREE_VIEW (view), col);
2132
/* Add the new device to the sidebar */
2133
gtk_list_store_append (sideview_store, &iter);
2134
gtk_list_store_set (sideview_store, &iter,
2135
COL_SIDEBAR_INT, index,
2136
COL_SIDEBAR_BATTERY_DEVICE, device,
2137
COL_SIDEBAR_OBJECT_PATH, object_path,
2138
COL_SIDEBAR_SIGNAL_ID, signal_id,
2139
COL_SIDEBAR_VIEW, view,
2142
/* Add the icon and description for the device */
2143
update_device_details (device);
2145
/* See if we're to select this device, for it to be selected,
2146
* the starting_device_id must be unset and the this is the first
2147
* time add_device is called (i.e. select the first device) or
2148
* our current device matches starting_device_id. */
2149
if ((starting_device_id == NULL && first_run == TRUE) ||
2150
(g_strcmp0 (object_path, starting_device_id) == 0))
2152
GtkTreeSelection *selection;
2154
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sideview));
2156
gtk_tree_selection_select_iter (selection, &iter);
2157
view_cursor_changed_cb (GTK_TREE_VIEW (sideview), NULL);
2181
2164
remove_device (const gchar *object_path)
2184
GtkListStore *list_store;
2188
TRACE("entering for %s", object_path);
2190
iter = find_device_in_tree (object_path);
2195
list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(sideview)));
2197
gtk_tree_model_get (GTK_TREE_MODEL(list_store), iter,
2198
COL_SIDEBAR_SIGNAL_ID, &signal_id,
2199
COL_SIDEBAR_BATTERY_DEVICE, &device,
2202
gtk_list_store_remove (list_store, iter);
2205
g_signal_handler_disconnect (device, signal_id);
2207
/* If there are no devices left, hide the devices tab */
2208
if(!gtk_tree_model_get_iter_first (GTK_TREE_MODEL(list_store), iter))
2209
gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2167
GtkListStore *list_store;
2171
TRACE("entering for %s", object_path);
2173
iter = find_device_in_tree (object_path);
2178
list_store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(sideview)));
2180
gtk_tree_model_get (GTK_TREE_MODEL(list_store), iter,
2181
COL_SIDEBAR_SIGNAL_ID, &signal_id,
2182
COL_SIDEBAR_BATTERY_DEVICE, &device,
2185
gtk_list_store_remove (list_store, iter);
2188
g_signal_handler_disconnect (device, signal_id);
2190
/* If there are no devices left, hide the devices tab */
2191
if(!gtk_tree_model_get_iter_first (GTK_TREE_MODEL(list_store), iter))
2192
gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2213
2196
device_added_cb (UpClient *upclient, UpDevice *device, gpointer user_data)
2215
add_device (device);
2198
add_device (device);
2219
2202
device_removed_cb (UpClient *upclient, const gchar *object_path, gpointer user_data)
2221
remove_device (object_path);
2204
remove_device (object_path);
2225
2208
add_all_devices (void)
2227
GPtrArray *array = NULL;
2210
GPtrArray *array = NULL;
2230
2213
#if UP_CHECK_VERSION(0, 99, 8)
2231
array = up_client_get_devices2 (upower);
2214
array = up_client_get_devices2 (upower);
2233
array = up_client_get_devices (upower);
2216
array = up_client_get_devices (upower);
2221
for ( i = 0; i < array->len; i++)
2238
for ( i = 0; i < array->len; i++)
2240
UpDevice *device = g_ptr_array_index (array, i);
2223
UpDevice *device = g_ptr_array_index (array, i);
2242
add_device (device);
2244
g_ptr_array_free (array, TRUE);
2225
add_device (device);
2227
g_ptr_array_free (array, TRUE);
2249
2232
settings_create_devices_list (void)
2251
upower = up_client_new ();
2253
g_signal_connect (upower, "device-added", G_CALLBACK (device_added_cb), NULL);
2254
g_signal_connect (upower, "device-removed", G_CALLBACK (device_removed_cb), NULL);
2234
upower = up_client_new ();
2236
g_signal_connect (upower, "device-added", G_CALLBACK (device_added_cb), NULL);
2237
g_signal_connect (upower, "device-removed", G_CALLBACK (device_removed_cb), NULL);
2260
2243
view_cursor_changed_cb (GtkTreeView *view, gpointer *user_data)
2262
GtkTreeSelection *sel;
2263
GtkTreeModel *model;
2264
GtkTreeIter selected_row;
2267
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
2269
if ( !gtk_tree_selection_get_selected (sel, &model, &selected_row))
2272
gtk_tree_model_get(model,
2278
gtk_notebook_set_current_page (GTK_NOTEBOOK (device_details_notebook), int_data);
2245
GtkTreeSelection *sel;
2246
GtkTreeModel *model;
2247
GtkTreeIter selected_row;
2250
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
2252
if ( !gtk_tree_selection_get_selected (sel, &model, &selected_row))
2255
gtk_tree_model_get (model,
2261
gtk_notebook_set_current_page (GTK_NOTEBOOK (device_details_notebook), int_data);
2282
2265
settings_quit (GtkWidget *widget, XfconfChannel *channel)
2284
g_object_unref (channel);
2286
gtk_widget_destroy (widget);
2287
/* initiate the quit action on the application so it terminates */
2288
g_action_group_activate_action(G_ACTION_GROUP(app), "quit", NULL);
2267
g_object_unref (channel);
2269
gtk_widget_destroy (widget);
2270
/* initiate the quit action on the application so it terminates */
2271
g_action_group_activate_action (G_ACTION_GROUP(app), "quit", NULL);
2291
2274
static void dialog_response_cb (GtkDialog *dialog, gint response, XfconfChannel *channel)
2295
case GTK_RESPONSE_HELP:
2296
xfce_dialog_show_help_with_version (NULL, "xfce4-power-manager", "start", NULL, XFPM_VERSION_SHORT);
2299
settings_quit (GTK_WIDGET (dialog), channel);
2278
case GTK_RESPONSE_HELP:
2279
xfce_dialog_show_help_with_version (NULL, "xfce4-power-manager", "start", NULL, XFPM_VERSION_SHORT);
2282
settings_quit (GTK_WIDGET (dialog), channel);
2305
2288
delete_event_cb (GtkWidget *plug, GdkEvent *ev, XfconfChannel *channel)
2307
settings_quit (plug, channel);
2290
settings_quit (plug, channel);
2317
2300
gboolean has_battery_button, Window id, gchar *device_id,
2318
2301
GtkApplication *gtk_app)
2323
GtkWidget *plugged_box;
2324
GtkWidget *viewport;
2327
GtkWidget *switch_widget;
2329
GtkStyleContext *context;
2330
GtkListStore *list_store;
2331
GtkTreeViewColumn *col;
2332
GtkCellRenderer *renderer;
2333
GError *error = NULL;
2335
GtkCssProvider *css_provider;
2337
XFPM_DEBUG ("auth_hibernate=%s auth_suspend=%s can_shutdown=%s can_suspend=%s can_hibernate=%s " \
2338
"has_battery=%s has_lcd_brightness=%s has_lid=%s has_sleep_button=%s " \
2339
"has_hibernate_button=%s has_power_button=%s has_battery_button=%s",
2340
xfpm_bool_to_string (has_battery), xfpm_bool_to_string (auth_hibernate),
2341
xfpm_bool_to_string (can_shutdown), xfpm_bool_to_string (auth_suspend),
2342
xfpm_bool_to_string (can_suspend), xfpm_bool_to_string (can_hibernate),
2343
xfpm_bool_to_string (has_lcd_brightness), xfpm_bool_to_string (has_lid),
2344
xfpm_bool_to_string (has_sleep_button), xfpm_bool_to_string (has_hibernate_button),
2345
xfpm_bool_to_string (has_power_button), xfpm_bool_to_string (has_battery_button));
2347
xml = xfpm_builder_new_from_string (xfpm_settings_ui, &error);
2349
if ( G_UNLIKELY (error) )
2351
xfce_dialog_show_error (NULL, error, "%s", _("Check your power manager installation"));
2352
g_error ("%s", error->message);
2355
lcd_brightness = has_lcd_brightness;
2356
starting_device_id = device_id;
2358
on_battery_dpms_sleep = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-battery"));
2359
on_battery_dpms_off = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-battery"));
2360
on_ac_dpms_sleep = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-ac"));
2361
on_ac_dpms_off = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-ac"));
2363
on_battery_display_blank = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-battery"));
2364
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_BLANK, 1);
2365
gtk_range_set_value (GTK_RANGE (on_battery_display_blank), val);
2366
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_BLANK,
2367
G_TYPE_INT, gtk_range_get_adjustment (GTK_RANGE (on_battery_display_blank)),
2370
on_ac_display_blank = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-ac"));
2371
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX ON_AC_BLANK,
2372
G_TYPE_INT, gtk_range_get_adjustment (GTK_RANGE (on_ac_display_blank)),
2375
switch_widget = GTK_WIDGET (gtk_builder_get_object (xml, "handle-brightness-keys"));
2376
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX HANDLE_BRIGHTNESS_KEYS,
2377
G_TYPE_BOOLEAN, switch_widget, "active");
2379
switch_widget = GTK_WIDGET (gtk_builder_get_object (xml, "show-notifications"));
2380
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX GENERAL_NOTIFICATION_CFG,
2381
G_TYPE_BOOLEAN, switch_widget, "active");
2383
switch_widget = GTK_WIDGET (gtk_builder_get_object (xml, "show-systray"));
2384
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX SHOW_TRAY_ICON_CFG,
2385
G_TYPE_BOOLEAN, switch_widget, "active");
2387
dialog = GTK_WIDGET (gtk_builder_get_object (xml, "xfpm-settings-dialog"));
2388
nt = GTK_WIDGET (gtk_builder_get_object (xml, "main-notebook"));
2391
css_provider = gtk_css_provider_new ();
2392
gtk_css_provider_load_from_data (css_provider,
2393
".xfce4-scale-label { padding-bottom: 0; }",
2395
gtk_style_context_add_provider_for_screen (gdk_screen_get_default(),
2396
GTK_STYLE_PROVIDER(css_provider),
2397
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
2398
g_object_unref (css_provider);
2400
/* Devices listview */
2401
sideview = gtk_tree_view_new ();
2402
list_store = gtk_list_store_new (NCOLS_SIDEBAR,
2403
GDK_TYPE_PIXBUF, /* COL_SIDEBAR_ICON */
2404
G_TYPE_STRING, /* COL_SIDEBAR_NAME */
2405
G_TYPE_INT, /* COL_SIDEBAR_INT */
2406
G_TYPE_POINTER, /* COL_SIDEBAR_BATTERY_DEVICE */
2407
G_TYPE_STRING, /* COL_SIDEBAR_OBJECT_PATH */
2408
G_TYPE_ULONG, /* COL_SIDEBAR_SIGNAL_ID */
2409
G_TYPE_POINTER /* COL_SIDEBAR_VIEW */
2412
gtk_tree_view_set_model (GTK_TREE_VIEW (sideview), GTK_TREE_MODEL (list_store));
2414
col = gtk_tree_view_column_new ();
2416
renderer = gtk_cell_renderer_pixbuf_new ();
2418
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2419
gtk_tree_view_column_set_attributes (col, renderer, "pixbuf", 0, NULL);
2421
/* The device label */
2422
renderer = gtk_cell_renderer_text_new ();
2423
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2424
gtk_tree_view_column_set_attributes (col, renderer, "markup", 1, NULL);
2426
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (sideview), FALSE);
2427
gtk_tree_view_append_column (GTK_TREE_VIEW (sideview), col);
2429
g_signal_connect (sideview, "cursor-changed", G_CALLBACK (view_cursor_changed_cb), NULL);
2431
/* Pack the content of the devices tab */
2432
device_details_notebook = gtk_notebook_new ();
2434
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (device_details_notebook), FALSE);
2435
context = gtk_widget_get_style_context (GTK_WIDGET (device_details_notebook));
2436
gtk_style_context_add_class (context, "frame");
2437
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
2439
viewport = gtk_viewport_new (NULL, NULL);
2440
gtk_container_add (GTK_CONTAINER (viewport), sideview);
2441
gtk_box_pack_start (GTK_BOX (hbox), viewport, FALSE, FALSE, 0);
2442
gtk_box_pack_start (GTK_BOX (hbox), device_details_notebook, TRUE, TRUE, 0);
2443
gtk_container_set_border_width (GTK_CONTAINER (hbox), 12);
2444
devices_page_num = gtk_notebook_append_page (GTK_NOTEBOOK (nt), hbox, gtk_label_new (_("Devices")) );
2446
gtk_widget_show_all (sideview);
2447
gtk_widget_show_all (viewport);
2448
gtk_widget_show_all (hbox);
2449
gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2451
settings_create_devices_list ();
2453
xfpm_settings_on_ac (channel,
2462
xfpm_settings_on_battery (channel,
2472
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml ,"critical-power-frame")));
2473
stack = GTK_WIDGET (gtk_builder_get_object (xml ,"system-stack"));
2474
gtk_widget_hide (gtk_stack_get_child_by_name (GTK_STACK (stack), "page0"));
2475
stack = GTK_WIDGET (gtk_builder_get_object (xml ,"display-stack"));
2476
gtk_widget_hide (gtk_stack_get_child_by_name (GTK_STACK (stack), "page0"));
2477
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml ,"system-stack-switcher")));
2478
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml ,"display-stack-switcher")));
2481
xfpm_settings_general (channel, auth_suspend, auth_hibernate, can_suspend, can_hibernate, can_shutdown,
2482
has_sleep_button, has_hibernate_button, has_power_button, has_battery_button);
2484
xfpm_settings_advanced (channel, auth_suspend, auth_hibernate, can_suspend, can_hibernate, has_battery);
2486
/* Light Locker Integration */
2487
xfpm_settings_light_locker (channel, auth_suspend, auth_hibernate, can_suspend, can_hibernate);
2488
/* END Light Locker Integration */
2490
if ( !has_lcd_brightness )
2306
GtkWidget *plugged_box;
2307
GtkWidget *viewport;
2310
GtkWidget *switch_widget;
2312
GtkStyleContext *context;
2313
GtkListStore *list_store;
2314
GtkTreeViewColumn *col;
2315
GtkCellRenderer *renderer;
2316
GError *error = NULL;
2318
GtkCssProvider *css_provider;
2320
XFPM_DEBUG ("auth_hibernate=%s auth_suspend=%s can_shutdown=%s can_suspend=%s can_hibernate=%s " \
2321
"has_battery=%s has_lcd_brightness=%s has_lid=%s has_sleep_button=%s " \
2322
"has_hibernate_button=%s has_power_button=%s has_battery_button=%s",
2323
xfpm_bool_to_string (has_battery), xfpm_bool_to_string (auth_hibernate),
2324
xfpm_bool_to_string (can_shutdown), xfpm_bool_to_string (auth_suspend),
2325
xfpm_bool_to_string (can_suspend), xfpm_bool_to_string (can_hibernate),
2326
xfpm_bool_to_string (has_lcd_brightness), xfpm_bool_to_string (has_lid),
2327
xfpm_bool_to_string (has_sleep_button), xfpm_bool_to_string (has_hibernate_button),
2328
xfpm_bool_to_string (has_power_button), xfpm_bool_to_string (has_battery_button));
2330
xml = xfpm_builder_new_from_string (xfpm_settings_ui, &error);
2332
if ( G_UNLIKELY (error) )
2334
xfce_dialog_show_error (NULL, error, "%s", _("Check your power manager installation"));
2335
g_error ("%s", error->message);
2338
lcd_brightness = has_lcd_brightness;
2339
starting_device_id = device_id;
2341
on_battery_dpms_sleep = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-battery"));
2342
on_battery_dpms_off = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-battery"));
2343
on_ac_dpms_sleep = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-sleep-on-ac"));
2344
on_ac_dpms_off = GTK_WIDGET (gtk_builder_get_object (xml, "dpms-off-on-ac"));
2346
on_battery_display_blank = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-battery"));
2347
val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_BLANK, 1);
2348
gtk_range_set_value (GTK_RANGE (on_battery_display_blank), val);
2349
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX ON_BATTERY_BLANK,
2350
G_TYPE_INT, gtk_range_get_adjustment (GTK_RANGE (on_battery_display_blank)),
2353
on_ac_display_blank = GTK_WIDGET (gtk_builder_get_object (xml, "display-blank-on-ac"));
2354
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX ON_AC_BLANK,
2355
G_TYPE_INT, gtk_range_get_adjustment (GTK_RANGE (on_ac_display_blank)),
2358
switch_widget = GTK_WIDGET (gtk_builder_get_object (xml, "handle-brightness-keys"));
2359
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX HANDLE_BRIGHTNESS_KEYS,
2360
G_TYPE_BOOLEAN, switch_widget, "active");
2362
switch_widget = GTK_WIDGET (gtk_builder_get_object (xml, "show-notifications"));
2363
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX GENERAL_NOTIFICATION_CFG,
2364
G_TYPE_BOOLEAN, switch_widget, "active");
2366
switch_widget = GTK_WIDGET (gtk_builder_get_object (xml, "show-systray"));
2367
xfconf_g_property_bind (channel, XFPM_PROPERTIES_PREFIX SHOW_TRAY_ICON_CFG,
2368
G_TYPE_BOOLEAN, switch_widget, "active");
2370
dialog = GTK_WIDGET (gtk_builder_get_object (xml, "xfpm-settings-dialog"));
2371
nt = GTK_WIDGET (gtk_builder_get_object (xml, "main-notebook"));
2374
css_provider = gtk_css_provider_new ();
2375
gtk_css_provider_load_from_data (css_provider,
2376
".xfce4-scale-label { padding-bottom: 0; }",
2378
gtk_style_context_add_provider_for_screen (gdk_screen_get_default(),
2379
GTK_STYLE_PROVIDER(css_provider),
2380
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
2381
g_object_unref (css_provider);
2383
/* Devices listview */
2384
sideview = gtk_tree_view_new ();
2385
list_store = gtk_list_store_new (NCOLS_SIDEBAR,
2386
GDK_TYPE_PIXBUF, /* COL_SIDEBAR_ICON */
2387
G_TYPE_STRING, /* COL_SIDEBAR_NAME */
2388
G_TYPE_INT, /* COL_SIDEBAR_INT */
2389
G_TYPE_POINTER, /* COL_SIDEBAR_BATTERY_DEVICE */
2390
G_TYPE_STRING, /* COL_SIDEBAR_OBJECT_PATH */
2391
G_TYPE_ULONG, /* COL_SIDEBAR_SIGNAL_ID */
2392
G_TYPE_POINTER /* COL_SIDEBAR_VIEW */
2395
gtk_tree_view_set_model (GTK_TREE_VIEW (sideview), GTK_TREE_MODEL (list_store));
2397
col = gtk_tree_view_column_new ();
2399
renderer = gtk_cell_renderer_pixbuf_new ();
2401
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2402
gtk_tree_view_column_set_attributes (col, renderer, "pixbuf", 0, NULL);
2404
/* The device label */
2405
renderer = gtk_cell_renderer_text_new ();
2406
gtk_tree_view_column_pack_start (col, renderer, FALSE);
2407
gtk_tree_view_column_set_attributes (col, renderer, "markup", 1, NULL);
2409
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (sideview), FALSE);
2410
gtk_tree_view_append_column (GTK_TREE_VIEW (sideview), col);
2412
g_signal_connect (sideview, "cursor-changed", G_CALLBACK (view_cursor_changed_cb), NULL);
2414
/* Pack the content of the devices tab */
2415
device_details_notebook = gtk_notebook_new ();
2417
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (device_details_notebook), FALSE);
2418
context = gtk_widget_get_style_context (GTK_WIDGET (device_details_notebook));
2419
gtk_style_context_add_class (context, "frame");
2420
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
2422
viewport = gtk_viewport_new (NULL, NULL);
2423
gtk_container_add (GTK_CONTAINER (viewport), sideview);
2424
gtk_box_pack_start (GTK_BOX (hbox), viewport, FALSE, FALSE, 0);
2425
gtk_box_pack_start (GTK_BOX (hbox), device_details_notebook, TRUE, TRUE, 0);
2426
gtk_container_set_border_width (GTK_CONTAINER (hbox), 12);
2427
devices_page_num = gtk_notebook_append_page (GTK_NOTEBOOK (nt), hbox, gtk_label_new (_("Devices")) );
2429
gtk_widget_show_all (sideview);
2430
gtk_widget_show_all (viewport);
2431
gtk_widget_show_all (hbox);
2432
gtk_widget_hide (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2434
settings_create_devices_list ();
2436
xfpm_settings_on_ac (channel,
2445
xfpm_settings_on_battery (channel,
2455
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml ,"critical-power-frame")));
2456
stack = GTK_WIDGET (gtk_builder_get_object (xml ,"system-stack"));
2457
gtk_widget_hide (gtk_stack_get_child_by_name (GTK_STACK (stack), "page0"));
2458
stack = GTK_WIDGET (gtk_builder_get_object (xml ,"display-stack"));
2459
gtk_widget_hide (gtk_stack_get_child_by_name (GTK_STACK (stack), "page0"));
2460
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml ,"system-stack-switcher")));
2461
gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml ,"display-stack-switcher")));
2464
xfpm_settings_general (channel, auth_suspend, auth_hibernate, can_suspend, can_hibernate, can_shutdown,
2465
has_sleep_button, has_hibernate_button, has_power_button, has_battery_button);
2467
xfpm_settings_advanced (channel, auth_suspend, auth_hibernate, can_suspend, can_hibernate, has_battery);
2469
/* Light Locker Integration */
2470
xfpm_settings_light_locker (channel, auth_suspend, auth_hibernate, can_suspend, can_hibernate);
2471
/* END Light Locker Integration */
2473
if ( !has_lcd_brightness )
2492
2475
frame = GTK_WIDGET (gtk_builder_get_object (xml, "brightness-frame"));
2493
2476
gtk_widget_hide (frame);
2494
2477
frame = GTK_WIDGET (gtk_builder_get_object (xml, "handle-brightness-keys"));
2495
2478
gtk_widget_hide (frame);
2496
2479
frame = GTK_WIDGET (gtk_builder_get_object (xml, "handle-brightness-keys-label"));
2497
2480
gtk_widget_hide (frame);
2502
plugged_box = GTK_WIDGET (gtk_builder_get_object (xml, "plug-child"));
2503
plug = gtk_plug_new (id);
2504
gtk_widget_show (plug);
2485
plugged_box = GTK_WIDGET (gtk_builder_get_object (xml, "plug-child"));
2486
plug = gtk_plug_new (id);
2487
gtk_widget_show (plug);
2506
2489
parent = gtk_widget_get_parent (plugged_box);
2509
g_object_ref (plugged_box);
2510
gtk_container_remove (GTK_CONTAINER (parent), plugged_box);
2511
gtk_container_add (GTK_CONTAINER (plug), plugged_box);
2512
g_object_unref (plugged_box);
2515
g_signal_connect (plug, "delete-event",
2516
G_CALLBACK (delete_event_cb), channel);
2517
gdk_notify_startup_complete ();
2521
g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), channel);
2522
gtk_widget_show (dialog);
2525
gtk_builder_connect_signals (xml, channel);
2527
/* If we passed in a device to display, show the devices tab now, otherwise hide it */
2528
if (device_id != NULL)
2530
gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2531
gtk_notebook_set_current_page (GTK_NOTEBOOK (nt), devices_page_num);
2534
/* keep a pointer to the GtkApplication instance so we can signal a
2492
g_object_ref (plugged_box);
2493
gtk_container_remove (GTK_CONTAINER (parent), plugged_box);
2494
gtk_container_add (GTK_CONTAINER (plug), plugged_box);
2495
g_object_unref (plugged_box);
2498
g_signal_connect (plug, "delete-event",
2499
G_CALLBACK (delete_event_cb), channel);
2500
gdk_notify_startup_complete ();
2504
g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), channel);
2505
gtk_widget_show (dialog);
2508
gtk_builder_connect_signals (xml, channel);
2510
/* If we passed in a device to display, show the devices tab now, otherwise hide it */
2511
if (device_id != NULL)
2513
gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2514
gtk_notebook_set_current_page (GTK_NOTEBOOK (nt), devices_page_num);
2517
/* keep a pointer to the GtkApplication instance so we can signal a
2542
2525
xfpm_settings_show_device_id (gchar *device_id)
2544
GtkTreeIter *device_iter;
2546
if (device_id == NULL)
2549
gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2550
gtk_notebook_set_current_page (GTK_NOTEBOOK (nt), devices_page_num);
2552
DBG("device_id %s", device_id);
2554
device_iter = find_device_in_tree (device_id);
2557
GtkTreeSelection *selection;
2559
DBG("device found");
2561
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sideview));
2563
gtk_tree_selection_select_iter (selection, device_iter);
2564
view_cursor_changed_cb (GTK_TREE_VIEW (sideview), NULL);
2565
gtk_tree_iter_free (device_iter);
2527
GtkTreeIter *device_iter;
2529
if (device_id == NULL)
2532
gtk_widget_show (gtk_notebook_get_nth_page (GTK_NOTEBOOK (nt), devices_page_num));
2533
gtk_notebook_set_current_page (GTK_NOTEBOOK (nt), devices_page_num);
2535
DBG("device_id %s", device_id);
2537
device_iter = find_device_in_tree (device_id);
2540
GtkTreeSelection *selection;
2542
DBG("device found");
2544
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sideview));
2546
gtk_tree_selection_select_iter (selection, device_iter);
2547
view_cursor_changed_cb (GTK_TREE_VIEW (sideview), NULL);
2548
gtk_tree_iter_free (device_iter);