e_int_config_color_classes.h \
e_int_config_mime.h \
e_int_config_mime_edit.h \
+e_int_config_screensaver.h \
+e_int_config_dpms.h \
e_exebuf.h \
e_desklock.h \
+e_screensaver.h \
+e_dpms.h \
e_int_config_modules.h \
e_exehist.h \
e_color_class.h \
e_int_config_color_classes.c \
e_int_config_mime.c \
e_int_config_mime_edit.c \
+e_int_config_screensaver.c \
+e_int_config_dpms.c \
e_exebuf.c \
e_desklock.c \
+e_screensaver.c \
+e_dpms.c \
e_int_config_modules.c \
e_exehist.c \
e_color_class.c \
static E_Config_DD *_e_config_shelf_edd = NULL;
static E_Config_DD *_e_config_mime_icon_edd = NULL;
-
/* externally accessible functions */
EAPI int
e_config_init(void)
E_CONFIG_VAL(D, T, enabled, UCHAR);
_e_config_font_default_edd = E_CONFIG_DD_NEW("E_Font_Default",
- E_Font_Default);
+ E_Font_Default);
#undef T
#undef D
#define T E_Font_Default
E_CONFIG_VAL(D, T, size, INT);
_e_config_font_fallback_edd = E_CONFIG_DD_NEW("E_Font_Fallback",
- E_Font_Fallback);
+ E_Font_Fallback);
#undef T
#undef D
#define T E_Font_Fallback
#define D _e_config_font_fallback_edd
E_CONFIG_VAL(D, T, name, STR);
- _e_config_bindings_mouse_edd = E_CONFIG_DD_NEW("E_Config_Binding_Mouse", E_Config_Binding_Mouse);
+ _e_config_bindings_mouse_edd = E_CONFIG_DD_NEW("E_Config_Binding_Mouse",
+ E_Config_Binding_Mouse);
#undef T
#undef D
#define T E_Config_Binding_Mouse
E_CONFIG_VAL(D, T, button, UCHAR);
E_CONFIG_VAL(D, T, any_mod, UCHAR);
- _e_config_bindings_key_edd = E_CONFIG_DD_NEW("E_Config_Binding_Key", E_Config_Binding_Key);
+ _e_config_bindings_key_edd = E_CONFIG_DD_NEW("E_Config_Binding_Key",
+ E_Config_Binding_Key);
#undef T
#undef D
#define T E_Config_Binding_Key
E_CONFIG_VAL(D, T, params, STR);
E_CONFIG_VAL(D, T, any_mod, UCHAR);
- _e_config_bindings_signal_edd = E_CONFIG_DD_NEW("E_Config_Binding_Signal", E_Config_Binding_Signal);
+ _e_config_bindings_signal_edd = E_CONFIG_DD_NEW("E_Config_Binding_Signal",
+ E_Config_Binding_Signal);
#undef T
#undef D
#define T E_Config_Binding_Signal
E_CONFIG_VAL(D, T, action, STR);
E_CONFIG_VAL(D, T, params, STR);
- _e_config_bindings_wheel_edd = E_CONFIG_DD_NEW("E_Config_Binding_Wheel", E_Config_Binding_Wheel);
+ _e_config_bindings_wheel_edd = E_CONFIG_DD_NEW("E_Config_Binding_Wheel",
+ E_Config_Binding_Wheel);
#undef T
#undef D
#define T E_Config_Binding_Wheel
E_CONFIG_VAL(D, T, b3, INT);
E_CONFIG_VAL(D, T, a3, INT);
- _e_config_mime_icon_edd = E_CONFIG_DD_NEW("E_Config_Mime_Icon", E_Config_Mime_Icon);
+ _e_config_mime_icon_edd = E_CONFIG_DD_NEW("E_Config_Mime_Icon",
+ E_Config_Mime_Icon);
#undef T
#undef D
#define T E_Config_Mime_Icon
E_CONFIG_VAL(D, T, desklock_background, STR);
E_CONFIG_VAL(D, T, desklock_auth_method, INT);
E_CONFIG_VAL(D, T, desklock_login_box_zone, INT);
- E_CONFIG_VAL(D, T, desklock_autolock, INT);
- E_CONFIG_VAL(D, T, desklock_use_timeout, INT);
- E_CONFIG_VAL(D, T, desklock_timeout, DOUBLE);
- E_CONFIG_VAL(D, T, desklock_disable_screensaver, INT);
- E_CONFIG_VAL(D, T, desklock_use_custom_screensaver, INT);
- E_CONFIG_VAL(D, T, desklock_custom_screensaver_cmd, STR);
+ E_CONFIG_VAL(D, T, desklock_autolock_screensaver, INT);
+ E_CONFIG_VAL(D, T, desklock_autolock_idle, INT);
+ E_CONFIG_VAL(D, T, desklock_autolock_idle_timeout, DOUBLE);
+ E_CONFIG_VAL(D, T, desklock_use_custom_desklock, INT);
+ E_CONFIG_VAL(D, T, desklock_custom_desklock_cmd, STR);
E_CONFIG_VAL(D, T, display_res_restore, INT);
E_CONFIG_VAL(D, T, display_res_width, INT);
E_CONFIG_VAL(D, T, display_res_height, INT);
E_CONFIG_VAL(D, T, display_res_hz, INT);
E_CONFIG_VAL(D, T, display_res_rotation, INT);
+ E_CONFIG_VAL(D, T, screensaver_enable, INT);
+ E_CONFIG_VAL(D, T, screensaver_timeout, INT);
+ E_CONFIG_VAL(D, T, screensaver_interval, INT);
+ E_CONFIG_VAL(D, T, screensaver_blanking, INT);
+ E_CONFIG_VAL(D, T, screensaver_expose, INT);
+
+ E_CONFIG_VAL(D, T, dpms_enable, INT);
+ E_CONFIG_VAL(D, T, dpms_standby_enable, INT);
+ E_CONFIG_VAL(D, T, dpms_suspend_enable, INT);
+ E_CONFIG_VAL(D, T, dpms_off_enable, INT);
+ E_CONFIG_VAL(D, T, dpms_standby_timeout, INT);
+ E_CONFIG_VAL(D, T, dpms_suspend_timeout, INT);
+ E_CONFIG_VAL(D, T, dpms_off_timeout, INT);
+
E_CONFIG_VAL(D, T, border_raise_on_mouse_action, INT);
E_CONFIG_VAL(D, T, border_raise_on_focus, INT);
E_CONFIG_VAL(D, T, desk_flip_wrap, INT);
e_config->desklock_background = NULL;
e_config->desklock_auth_method = 0;
e_config->desklock_login_box_zone = -1;
- e_config->desklock_autolock = 0;
- e_config->desklock_use_timeout = 0;
- e_config->desklock_timeout = 300.0;
- e_config->desklock_disable_screensaver = 0;
+ e_config->desklock_autolock_screensaver = 0;
+ e_config->desklock_autolock_idle = 0;
+ e_config->desklock_autolock_idle_timeout = 300.0;
e_config->display_res_restore = 0;
e_config->display_res_width = 0;
//_restore_defaults_cb function
CFG_MOUSEBIND(E_BINDING_CONTEXT_BORDER, 1,
- E_BINDING_MODIFIER_ALT, 0,
- "window_move", NULL);
+ E_BINDING_MODIFIER_ALT, 0, "window_move", NULL);
CFG_MOUSEBIND(E_BINDING_CONTEXT_BORDER, 2,
- E_BINDING_MODIFIER_ALT, 0,
- "window_resize", NULL);
+ E_BINDING_MODIFIER_ALT, 0, "window_resize", NULL);
CFG_MOUSEBIND(E_BINDING_CONTEXT_BORDER, 3,
- E_BINDING_MODIFIER_ALT, 0,
- "window_menu", NULL);
- CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 1,
- 0, 0,
- "menu_show", "main");
- CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 2,
- 0, 0,
- "menu_show", "clients");
+ E_BINDING_MODIFIER_ALT, 0, "window_menu", NULL);
+ CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 1, 0, 0, "menu_show", "main");
+ CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 2, 0, 0, "menu_show", "clients");
#ifdef ENABLE_FAVORITES
- CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 3,
- 0, 0,
- "menu_show", "favorites");
+ CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 3, 0, 0, "menu_show", "favorites");
#endif
}
{
IFCFGEND;
IFCFG(0x00106);
- e_config->desklock_use_custom_screensaver = 0;
- e_config->desklock_custom_screensaver_cmd = NULL;
+ e_config->desklock_use_custom_desklock = 0;
+ e_config->desklock_custom_desklock_cmd = NULL;
IFCFGEND;
IFCFG(0x0107); /* the version # where this value(s) was introduced */
IFCFG(0x0108);
e_config->desk_auto_switch = 0;
IFCFGEND;
-
- e_config->config_version = E_CONFIG_FILE_VERSION;
+ IFCFG(0x0109);
+ e_config->dpms_enable = 0;
+ e_config->dpms_standby_enable = 0;
+ e_config->dpms_suspend_enable = 0;
+ e_config->dpms_off_enable = 0;
+ e_config->dpms_standby_timeout = 0;
+ e_config->dpms_suspend_timeout = 0;
+ e_config->dpms_off_timeout = 0;
+ e_config->screensaver_enable = 0;
+ e_config->screensaver_timeout = 0;
+ e_config->screensaver_interval = 5;
+ e_config->screensaver_blanking = 2;
+ e_config->screensaver_expose = 2;
+ IFCFGEND;
+
+ e_config->config_version = E_CONFIG_FILE_VERSION;
+
#if 0 /* example of new config */
IFCFG(0x0090); /* the version # where this value(s) was introduced */
e_config->new_value = 10; /* set the value(s) */
E_CONFIG_LIMIT(e_config->cfgdlg_default_mode, 0, 1);
E_CONFIG_LIMIT(e_config->font_hinting, 0, 2);
E_CONFIG_LIMIT(e_config->desklock_login_box_zone, -2, 1000);
- E_CONFIG_LIMIT(e_config->desklock_autolock, 0, 1);
- E_CONFIG_LIMIT(e_config->desklock_use_timeout, 0, 1);
- E_CONFIG_LIMIT(e_config->desklock_timeout, 1.0, 5400.0);
- E_CONFIG_LIMIT(e_config->desklock_disable_screensaver, 0, 1);
- E_CONFIG_LIMIT(e_config->desklock_use_custom_screensaver, 0, 1);
+ E_CONFIG_LIMIT(e_config->desklock_autolock_screensaver, 0, 1);
+ E_CONFIG_LIMIT(e_config->desklock_autolock_idle, 0, 1);
+ E_CONFIG_LIMIT(e_config->desklock_autolock_idle_timeout, 1.0, 5400.0);
+ E_CONFIG_LIMIT(e_config->desklock_use_custom_desklock, 0, 1);
E_CONFIG_LIMIT(e_config->display_res_restore, 0, 1);
E_CONFIG_LIMIT(e_config->display_res_width, 1, 8192);
E_CONFIG_LIMIT(e_config->display_res_height, 1, 8192);
E_CONFIG_LIMIT(e_config->desk_flip_wrap, 0, 1);
E_CONFIG_LIMIT(e_config->remember_internal_windows, 0, 1);
E_CONFIG_LIMIT(e_config->desk_auto_switch, 0, 1);
+
+ E_CONFIG_LIMIT(e_config->dpms_enable, 0, 1);
+ E_CONFIG_LIMIT(e_config->dpms_standby_enable, 0, 1);
+ E_CONFIG_LIMIT(e_config->dpms_suspend_enable, 0, 1);
+ E_CONFIG_LIMIT(e_config->dpms_off_enable, 0, 1);
+ E_CONFIG_LIMIT(e_config->dpms_standby_timeout, 0, 5400);
+ E_CONFIG_LIMIT(e_config->dpms_suspend_timeout, 0, 5400);
+ E_CONFIG_LIMIT(e_config->dpms_off_timeout, 0, 5400);
+
+ E_CONFIG_LIMIT(e_config->screensaver_timeout, 0, 5400);
+ E_CONFIG_LIMIT(e_config->screensaver_interval, 0, 5400);
+ E_CONFIG_LIMIT(e_config->screensaver_blanking, 0, 2);
+ E_CONFIG_LIMIT(e_config->screensaver_expose, 0, 2);
/* FIXME: disabled auto apply because it causes problems */
e_config->cfgdlg_auto_apply = 0;
if (e_config->wallpaper_import_last_dev) evas_stringshare_del(e_config->wallpaper_import_last_dev);
if (e_config->wallpaper_import_last_path) evas_stringshare_del(e_config->wallpaper_import_last_path);
if (e_config->theme_default_border_style) evas_stringshare_del(e_config->theme_default_border_style);
- if (e_config->desklock_custom_screensaver_cmd) evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
+ if (e_config->desklock_custom_desklock_cmd) evas_stringshare_del(e_config->desklock_custom_desklock_cmd);
E_FREE(e_config);
}
}
/* increment this whenever a new set of config values are added but the users
* config doesn't need to be wiped - simply new values need to be put in
*/
-#define E_CONFIG_FILE_GENERATION 0x0108
+#define E_CONFIG_FILE_GENERATION 0x0109
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
#define E_EVAS_ENGINE_DEFAULT 0
const char *desklock_background; // GUI
int desklock_auth_method; // GUI
int desklock_login_box_zone; // GUI
- int desklock_autolock; // GUI
- int desklock_use_timeout; // GUI
- double desklock_timeout; // GUI
- int desklock_disable_screensaver; // GUI
- int desklock_use_custom_screensaver; //GUI
- const char *desklock_custom_screensaver_cmd; // GUI
+ int desklock_autolock_screensaver; // GUI
+ int desklock_autolock_idle; // GUI
+ double desklock_autolock_idle_timeout; // GUI
+ int desklock_use_custom_desklock; //GUI
+ const char *desklock_custom_desklock_cmd; // GUI
+ int screensaver_enable;
+ int screensaver_timeout;
+ int screensaver_interval;
+ int screensaver_blanking;
+ int screensaver_expose;
+
+ int dpms_enable;
+ int dpms_standby_enable;
+ int dpms_standby_timeout;
+ int dpms_suspend_enable;
+ int dpms_suspend_timeout;
+ int dpms_off_enable;
+ int dpms_off_timeout;
+
int display_res_restore; // GUI
int display_res_width; // GUI
int display_res_height; // GUI
_e_configure_item_add(cat, _("Virtual Desktops"), "enlightenment/desktops", e_int_config_desks);
_e_configure_item_add(cat, _("Screen Resolution"), "enlightenment/screen_resolution", e_int_config_display);
_e_configure_item_add(cat, _("Screen Lock"), "enlightenment/desklock", e_int_config_desklock);
-
+ _e_configure_item_add(cat, _("Screen Saver"), "enlightenment/screensaver", e_int_config_screensaver);
+ _e_configure_item_add(cat, _("DPMS Settings"), "enlightenment/dpms", e_int_config_dpms);
+
cat = _e_configure_category_add(eco, _("Keyboard & Mouse"), "enlightenment/behavior");
_e_configure_item_add(cat, _("Key Bindings"), "enlightenment/keys", e_int_config_keybindings);
_e_configure_item_add(cat, _("Mouse Bindings"), "enlightenment/mouse_clean", e_int_config_mousebindings);
static Ecore_Event_Handler *_e_desklock_exit_handler = NULL;
static pid_t _e_desklock_child_pid = -1;
#endif
-static Ecore_Exe *_e_custom_saver_exe = NULL;
-static Ecore_Event_Handler *_e_custom_saver_exe_handler = NULL;
+static Ecore_Exe *_e_custom_desklock_exe = NULL;
+static Ecore_Event_Handler *_e_custom_desklock_exe_handler = NULL;
+static Ecore_Timer *_e_desklock_idle_timer = NULL;
+static int _e_desklock_user_idle = 0;
/***********************************************************************/
static int _e_desklock_cb_mouse_up(void *data, int type, void *event);
static int _e_desklock_cb_mouse_wheel(void *data, int type, void *event);
static int _e_desklock_cb_mouse_move(void *data, int type, void *event);
-static int _e_desklock_cb_custom_saver_exit(void *data, int type, void *event);
+static int _e_desklock_cb_custom_desklock_exit(void *data, int type, void *event);
+static int _e_desklock_cb_idle_timer(void *data, int type, void *event);
static void _e_desklock_passwd_update();
static void _e_desklock_backspace();
e_desklock_init(void)
{
- if (e_config->desklock_disable_screensaver)
- ecore_x_screensaver_timeout_set(0);
- else
- {
- if (e_config->desklock_use_timeout)
- ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
- }
-
- /*
- * Effectively hide the X screensaver yet allow
- * it to generate the timer events for us.
- */
- ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
- ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
+ /* A timer to tick every second, watching for an idle user */
+ _e_desklock_idle_timer = ecore_timer_add(1.0,
+ _e_desklock_cb_idle_timer,
+ NULL);
if (e_config->desklock_background)
e_filereg_register(e_config->desklock_background);
int zone_counter;
int total_zone_num;
+ if (_e_custom_desklock_exe) return 0;
-#ifndef HAVE_PAM
- e_util_dialog_show(_("Error - no PAM support"),
- _("No PAM support was built into Enlightenment, so<br>"
- "desk locking is disabled."));
- return 0;
-#endif
- if (_e_custom_saver_exe) return 0;
-
- if (e_config->desklock_use_custom_screensaver)
+ if (e_config->desklock_use_custom_desklock)
{
- _e_custom_saver_exe_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
- _e_desklock_cb_custom_saver_exit,
+ _e_custom_desklock_exe_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
+ _e_desklock_cb_custom_desklock_exit,
NULL);
e_util_library_path_strip();
- _e_custom_saver_exe = ecore_exe_run(e_config->desklock_custom_screensaver_cmd, NULL);
+ _e_custom_desklock_exe = ecore_exe_run(e_config->desklock_custom_desklock_cmd, NULL);
e_util_library_path_restore();
return 1;
}
-
+
+#ifndef HAVE_PAM
+ e_util_dialog_show(_("Error - no PAM support"),
+ _("No PAM support was built into Enlightenment, so<br>"
+ "desk locking is disabled."));
+ return 0;
+#endif
+
if (edd) return 0;
#ifdef HAVE_PAM
{
E_Desklock_Popup_Data *edp;
- if ((!edd) && (!_e_custom_saver_exe)) return;
+ if ((!edd) && (!_e_custom_desklock_exe)) return;
- if (e_config->desklock_use_custom_screensaver)
+ if (e_config->desklock_use_custom_desklock)
{
- _e_custom_saver_exe = NULL;
+ _e_custom_desklock_exe = NULL;
return;
}
if (edd->elock_grab_break_wnd)
ecore_x_window_show(edd->elock_grab_break_wnd);
+
while (edd->elock_wnd_list)
{
edp = edd->elock_wnd_list->data;
#endif
static int
-_e_desklock_cb_custom_saver_exit(void *data, int type, void *event)
+_e_desklock_cb_custom_desklock_exit(void *data, int type, void *event)
{
Ecore_Exe_Event_Del *ev;
ev = event;
- if (ev->exe != _e_custom_saver_exe) return 1;
+ if (ev->exe != _e_custom_desklock_exe) return 1;
if (ev->exit_code != 0)
{
/* do something profound here... like notify someone */
}
- /*
- * Miserable HACK alert!!!
- * Seems I must reset this. Some reason yet unknown, my
- * intended values are getting reset!?!
- */
- ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
- ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
- ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
-
e_desklock_hide();
return 0;
}
+
+static int
+_e_desklock_cb_idle_timer(void *data, int type, void *event)
+{
+ static double time_of_last_event = 0;
+ static unsigned int xtime_of_last_user_activity = 0;
+
+ if ( ecore_x_current_user_activity_time_get() > xtime_of_last_user_activity )
+ {
+ xtime_of_last_user_activity = ecore_x_current_user_activity_time_get();
+ time_of_last_event = ecore_time_get();
+ }
+
+ if (e_config->desklock_autolock_idle)
+ {
+ /* If a desklock is already up, bail */
+ if ((_e_custom_desklock_exe) || (edd)) return 1;
+
+ /* If we have exceeded our idle time... */
+ double t = ecore_time_get();
+ if (t - time_of_last_event >= e_config->desklock_autolock_idle_timeout)
+ {
+ /*
+ * Unfortunately, not all "desklocks" stay up for as long as
+ * the user is idle or until it is unlocked.
+ *
+ * 'xscreensaver-command -lock' for example sends a command
+ * to xscreensaver and then terminates. So, we have another
+ * check (_e_desklock_user_idle) which lets us know that we
+ * have locked the screen due to idleness.
+ */
+ if (!_e_desklock_user_idle)
+ {
+ _e_desklock_user_idle = 1;
+ e_desklock_show();
+ }
+ }
+ else
+ {
+ _e_desklock_user_idle = 0;
+ }
+ }
+
+ /* Make sure our timer persists. */
+ return 1;
+}
--- /dev/null
+/*
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
+#include "e.h"
+
+EAPI int
+e_dpms_init(void)
+{
+ int standby=0, suspend=0, off=0;
+
+ ecore_x_dpms_enabled_set(e_config->dpms_enable);
+
+ if (e_config->dpms_standby_enable)
+ standby = e_config->dpms_standby_timeout;
+
+ if (e_config->dpms_suspend_enable)
+ suspend = e_config->dpms_suspend_timeout;
+
+ if (e_config->dpms_off_enable)
+ off = e_config->dpms_off_timeout;
+
+ ecore_x_dpms_timeouts_set(standby, suspend, off);
+
+ return 1;
+}
--- /dev/null
+#ifdef E_TYPEDEFS
+#else
+#ifndef E_DPMS_H
+#define E_DPMS_H
+
+EAPI int e_dpms_init(void);
+
+#endif
+#endif
#include "e_int_config_winlist.h"
#include "e_int_config_display.h"
#include "e_int_config_desklock.h"
+#include "e_int_config_screensaver.h"
+#include "e_int_config_dpms.h"
#include "e_int_config_exebuf.h"
#include "e_int_config_apps.h"
#include "e_int_config_cfgdialogs.h"
#include "e_int_config_mime_edit.h"
#include "e_exebuf.h"
#include "e_desklock.h"
+#include "e_screensaver.h"
+#include "e_dpms.h"
#include "e_int_config_modules.h"
#include "e_exehist.h"
#include "e_color_class.h"
char *desklock_passwd_cp;
int show_password; // local
+ int autolock_screensaver;
int autolock; // in e_config;
- int use_timeout; // in e_config;
double timeout; // in e_config;
int login_box_zone; // in e_config;
int specific_lb_zone; // local variable
int specific_lb_zone_backup; // used to have smart iface
- int use_custom_screensaver;
- char *custom_screensaver_cmd;
+ int use_custom_desklock;
+ char *custom_desklock_cmd;
int zone_count; // local variable;
cfdata->desklock_passwd_cp = strdup("");
}
- cfdata->autolock = e_config->desklock_autolock;
- cfdata->use_timeout = e_config->desklock_use_timeout;
- cfdata->timeout = e_config->desklock_timeout / 60;
+ cfdata->autolock_screensaver = e_config->desklock_autolock_screensaver;
+ cfdata->autolock = e_config->desklock_autolock_idle;
+ cfdata->timeout = e_config->desklock_autolock_idle_timeout / 60;
/* should be taken from e_config */
//cfdata->login_box_on_zone = -1;
cfdata->auth_method = e_config->desklock_auth_method;
#endif
- cfdata->use_custom_screensaver = e_config->desklock_use_custom_screensaver;
- if (e_config->desklock_custom_screensaver_cmd)
- cfdata->custom_screensaver_cmd = strdup(e_config->desklock_custom_screensaver_cmd);
+ cfdata->use_custom_desklock = e_config->desklock_use_custom_desklock;
+ if (e_config->desklock_custom_desklock_cmd)
+ cfdata->custom_desklock_cmd = strdup(e_config->desklock_custom_desklock_cmd);
//vertical_lb_align = e_config->desklock_login
}
evas_stringshare_del(e_config->desklock_personal_passwd);
}
e_config->desklock_personal_passwd = evas_stringshare_add(cfdata->desklock_passwd_cp);
- e_config->desklock_autolock = cfdata->autolock;
- e_config->desklock_use_timeout = cfdata->use_timeout;
- e_config->desklock_timeout = cfdata->timeout * 60;
+
+ e_config->desklock_autolock_screensaver = cfdata->autolock_screensaver;
+ e_config->desklock_autolock_idle = cfdata->autolock;
+ e_config->desklock_autolock_idle_timeout = cfdata->timeout * 60;
+
#ifdef HAVE_PAM
e_config->desklock_auth_method = cfdata->auth_method;
#endif
- if (e_config->desklock_use_timeout)
- ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
-
- ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
- ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
e_config_save_queue();
return 1;
of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
e_widget_disabled_set(of, !ecore_x_screensaver_event_available_get());
- ob = e_widget_check_add(evas, _("Enable screensaver"), &(cfdata->use_timeout));
+ ob = e_widget_check_add(evas, _("Lock when X screensaver activates"),
+ &(cfdata->autolock_screensaver));
e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
- e_widget_framelist_object_append(of, ob);
+ e_widget_framelist_object_append(of, ob);
- ob = e_widget_check_add(evas, _("Lock when the screensaver starts"), &(cfdata->autolock));
+ ob = e_widget_check_add(evas, _("Lock when idle time exceeded"), &(cfdata->autolock));
e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
e_widget_framelist_object_append(of, ob);
- ob = e_widget_label_add(evas, _("Time until screensaver starts"));
+ ob = e_widget_label_add(evas, _("Idle time to exceed"));
e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
e_widget_framelist_object_append(of, ob);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
else
e_config->desklock_login_box_zone = LOGINBOX_SHOW_ALL_SCREENS;
- e_config->desklock_autolock = cfdata->autolock;
- e_config->desklock_use_timeout = cfdata->use_timeout;
- e_config->desklock_timeout = cfdata->timeout * 60;
+ e_config->desklock_autolock_screensaver = cfdata->autolock_screensaver;
+ e_config->desklock_autolock_idle = cfdata->autolock;
+ e_config->desklock_autolock_idle_timeout = cfdata->timeout * 60;
#ifdef HAVE_PAM
e_config->desklock_auth_method = cfdata->auth_method;
#endif
- if (e_config->desklock_use_timeout)
- ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
-
- e_config->desklock_use_custom_screensaver = cfdata->use_custom_screensaver;
- if (cfdata->custom_screensaver_cmd)
+ e_config->desklock_use_custom_desklock = cfdata->use_custom_desklock;
+ if (cfdata->custom_desklock_cmd)
{
- if (e_config->desklock_custom_screensaver_cmd)
- evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
- e_config->desklock_custom_screensaver_cmd = evas_stringshare_add(cfdata->custom_screensaver_cmd);
+ if (e_config->desklock_custom_desklock_cmd)
+ evas_stringshare_del(e_config->desklock_custom_desklock_cmd);
+ e_config->desklock_custom_desklock_cmd = evas_stringshare_add(cfdata->custom_desklock_cmd);
}
- ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
- ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
e_config_save_queue();
return 1;
}
*/
of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
-
- e_widget_disabled_set(of, !ecore_x_screensaver_event_available_get());
-
- ob = e_widget_check_add(evas, _("Enable X screensaver"), &(cfdata->use_timeout));
+
+ ob = e_widget_check_add(evas, _("Lock when X screensaver activates"),
+ &(cfdata->autolock_screensaver));
e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
e_widget_framelist_object_append(of, ob);
-
- ob = e_widget_check_add(evas, _("Lock when the screensaver starts"), &(cfdata->autolock));
- e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
+
+ ob = e_widget_check_add(evas, _("Lock when idle time exceeded"), &(cfdata->autolock));
e_widget_framelist_object_append(of, ob);
- ob = e_widget_label_add(evas, _("Time until screensaver starts"));
- e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
+ ob = e_widget_label_add(evas, _("Idle time to exceed"));
e_widget_framelist_object_append(of, ob);
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
1.0, 90.0,
#endif
/*
- * Allow Custom Screen Saver
+ * Allow Custom Desklock
* Useful, for example, for those of us who prefer
* to use things like xscreensaver, kscreesaver, etc...
+ * and force them to lock with a custom command.
*/
- of = e_widget_framelist_add(evas, _("Custom Screensaver"), 0);
- ob = e_widget_check_add(evas, _("Use custom screensaver/desklock"),
- &(cfdata->use_custom_screensaver));
+ of = e_widget_framelist_add(evas, _("Custom Desklock"), 0);
+ ob = e_widget_check_add(evas, _("Use custom desklock"),
+ &(cfdata->use_custom_desklock));
e_widget_framelist_object_append(of, ob);
- ob = e_widget_entry_add(evas, &(cfdata->custom_screensaver_cmd));
+ ob = e_widget_entry_add(evas, &(cfdata->custom_desklock_cmd));
e_widget_framelist_object_append(of, ob);
#ifdef HAVE_PAM
e_widget_table_object_append(ot, of, 0, 4, 2, 1, 1, 1, 1, 1);
--- /dev/null
+#include "e.h"
+
+static void *_create_data(E_Config_Dialog *cfd);
+static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas,
+ E_Config_Dialog_Data *cfdata);
+static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas,
+ E_Config_Dialog_Data *cfdata);
+static void _cb_standby_slider_change(void *data, Evas_Object *obj);
+static void _cb_suspend_slider_change(void *data, Evas_Object *obj);
+static void _cb_off_slider_change(void *data, Evas_Object *obj);
+
+struct _E_Config_Dialog_Data
+{
+ E_Config_Dialog *cfd;
+
+ Evas_Object *standby_slider;
+ Evas_Object *suspend_slider;
+ Evas_Object *off_slider;
+
+ int enable_dpms;
+ int enable_standby;
+ int enable_suspend;
+ int enable_off;
+
+ /*
+ * The following timeouts are represented as minutes
+ * while the underlying e_config variables are in seconds
+ */
+ double standby_timeout;
+ double suspend_timeout;
+ double off_timeout;
+};
+
+static E_Dialog *dpms_dialog = NULL;
+
+static void
+_cb_dpms_dialog_ok(void *data, E_Dialog *dia)
+{
+ e_object_del(E_OBJECT(dpms_dialog));
+ dpms_dialog = NULL;
+}
+
+static int
+_e_int_config_dpms_capable()
+{
+ if (ecore_x_dpms_capable()) return 1;
+
+ if (dpms_dialog) e_object_del(E_OBJECT(dpms_dialog));
+ dpms_dialog = e_dialog_new(e_container_current_get(e_manager_current_get()), "E", "_dpms_dialog");
+ if (!dpms_dialog) return 0;
+
+ e_dialog_title_set(dpms_dialog, _("Display Power Management Signaling"));
+ e_dialog_text_set(dpms_dialog, _("The current display server does not <br>"
+ "have the DPMS extension."));
+ e_dialog_icon_set(dpms_dialog, "enlightenment/dpms", 64);
+ e_dialog_button_add(dpms_dialog, _("Ok"), NULL, _cb_dpms_dialog_ok, NULL);
+ e_dialog_button_focus_num(dpms_dialog, 1);
+ e_win_centered_set(dpms_dialog->win, 1);
+ e_dialog_show(dpms_dialog);
+ return 0;
+}
+
+EAPI E_Config_Dialog *
+e_int_config_dpms(E_Container *con)
+{
+ E_Config_Dialog *cfd;
+ E_Config_Dialog_View *v;
+
+ if ((e_config_dialog_find("E", "_config_dpms_dialog")) ||
+ (!_e_int_config_dpms_capable()))
+ return NULL;
+
+ v = E_NEW(E_Config_Dialog_View, 1);
+
+ v->create_cfdata = _create_data;
+ v->free_cfdata = _free_data;
+ v->basic.apply_cfdata = _advanced_apply_data;
+ v->basic.create_widgets = _advanced_create_widgets;
+ v->override_auto_apply = 1;
+
+ cfd = e_config_dialog_new(con, _("DPMS Settings"), "E",
+ "_config_dpms_dialog", "enlightenment/dpms",
+ 0, v, NULL);
+ return cfd;
+}
+
+static void
+_fill_data(E_Config_Dialog_Data *cfdata)
+{
+ cfdata->enable_dpms = e_config->dpms_enable;
+ cfdata->enable_standby = e_config->dpms_standby_enable;
+ cfdata->standby_timeout = e_config->dpms_standby_timeout / 60;
+ cfdata->enable_suspend = e_config->dpms_suspend_enable;
+ cfdata->suspend_timeout = e_config->dpms_suspend_timeout / 60;
+ cfdata->enable_off = e_config->dpms_off_enable;
+ cfdata->off_timeout = e_config->dpms_off_timeout / 60;
+}
+
+static void *
+_create_data(E_Config_Dialog *cfd)
+{
+ E_Config_Dialog_Data *cfdata;
+
+ cfdata = E_NEW(E_Config_Dialog_Data, 1);
+ cfdata->cfd = cfd;
+
+ cfdata->standby_slider = NULL;
+ cfdata->suspend_slider = NULL;
+ cfdata->off_slider = NULL;
+
+ _fill_data(cfdata);
+ return cfdata;
+}
+
+static void
+_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ if (!cfdata) return;
+
+ cfdata->standby_slider=NULL;
+ cfdata->suspend_slider=NULL;
+ cfdata->off_slider=NULL;
+
+ E_FREE(cfdata);
+}
+
+static int
+_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ e_config->dpms_enable = cfdata->enable_dpms;
+ e_config->dpms_standby_enable = cfdata->enable_standby;
+ e_config->dpms_suspend_enable = cfdata->enable_suspend;
+ e_config->dpms_off_enable = cfdata->enable_off;
+
+ e_config->dpms_standby_timeout = cfdata->standby_timeout * 60;
+ e_config->dpms_suspend_timeout = cfdata->suspend_timeout * 60;
+ e_config->dpms_off_timeout = cfdata->off_timeout * 60;
+
+ e_dpms_init();
+
+ e_config_save_queue();
+}
+
+static int
+_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ /*
+ * NOTE: Since the BASIC interface does not allow you to manipulate
+ * the suspend and off features, I have decided to have them disabled
+ * when applying changes from this dialog.
+ *
+ * I do this because the timeouts must always satisfy the following:
+ * standby <= suspend <= off
+ * and if you use the basic dialog, and increase the standby timeout
+ * you might very well unknowingly push it right up to the off timout.
+ * at which point, you monitor will turn off, instead of going into
+ * standby. Which could be annoying.
+ */
+ cfdata->enable_suspend = 0;
+ cfdata->enable_off = 0;
+
+ _apply_data(cfd, cfdata);
+ return 1;
+}
+
+static Evas_Object *
+_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
+{
+ Evas_Object *o, *of, *ob;
+ o = e_widget_list_add(evas, 0, 0);
+
+ ob = e_widget_check_add(evas, _("Enable DPMS"), &(cfdata->enable_dpms));
+ e_widget_list_object_append(o, ob, 1, 1 ,0);
+
+ of = e_widget_framelist_add(evas, _("DPMS Timer(s)"), 0);
+
+ ob = e_widget_check_add(evas, _("Standby"), &(cfdata->enable_standby));
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
+ 1.0, 90.0, 1.0, 0, &(cfdata->standby_timeout),
+ NULL, 200);
+ e_widget_on_change_hook_set(ob, _cb_standby_slider_change, cfdata);
+ cfdata->standby_slider = ob;
+ e_widget_framelist_object_append(of, ob);
+
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+ e_dialog_resizable_set(cfd->dia, 0);
+ return o;
+}
+
+/* advanced window */
+static int
+_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ _apply_data(cfd, cfdata);
+ return 1;
+}
+
+static Evas_Object *
+_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
+{
+ Evas_Object *o, *of, *ob;
+ E_Radio_Group *rg;
+ o = e_widget_list_add(evas, 0, 0);
+
+ ob = e_widget_check_add(evas, _("Enable DPMS"), &(cfdata->enable_dpms));
+ e_widget_list_object_append(o, ob, 1, 1, 0);
+
+ of = e_widget_framelist_add(evas, _("DPMS Timer(s)"), 0);
+
+ ob = e_widget_check_add(evas, _("Standby"), &(cfdata->enable_standby));
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"), 1.0, 90.0, 1.0, 0,
+ &(cfdata->standby_timeout), NULL, 200);
+ e_widget_on_change_hook_set(ob, _cb_standby_slider_change, cfdata);
+ cfdata->standby_slider = ob;
+ e_widget_framelist_object_append(of, ob);
+
+ ob = e_widget_check_add(evas, _("Suspend"), &(cfdata->enable_suspend));
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"), 1.0, 90.0, 1.0, 0,
+ &(cfdata->suspend_timeout), NULL, 200);
+ e_widget_on_change_hook_set(ob, _cb_suspend_slider_change, cfdata);
+ cfdata->suspend_slider = ob;
+ e_widget_framelist_object_append(of, ob);
+
+ ob = e_widget_check_add(evas, _("Off"), &(cfdata->enable_off));
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"), 1.0, 90.0, 1.0, 0,
+ &(cfdata->off_timeout), NULL, 200);
+ e_widget_on_change_hook_set(ob, _cb_off_slider_change, cfdata);
+ cfdata->off_slider = ob;
+ e_widget_framelist_object_append(of, ob);
+
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ e_dialog_resizable_set(cfd->dia, 0);
+ return o;
+}
+
+/* general functionality/callbacks */
+static void
+_cb_standby_slider_change(void *data, Evas_Object *obj)
+{
+ E_Config_Dialog_Data *cfdata = data;
+
+ /* standby-slider */
+ if (cfdata->standby_timeout > cfdata->suspend_timeout)
+ {
+ cfdata->suspend_timeout = cfdata->standby_timeout;
+ if (cfdata->suspend_slider)
+ e_widget_slider_value_double_set(cfdata->suspend_slider, cfdata->suspend_timeout);
+
+ if (cfdata->suspend_timeout > cfdata->off_timeout)
+ {
+ cfdata->off_timeout = cfdata->suspend_timeout;
+ if (cfdata->off_slider)
+ e_widget_slider_value_double_set(cfdata->off_slider, cfdata->off_timeout);
+ }
+ }
+}
+
+static void
+_cb_suspend_slider_change(void *data, Evas_Object *obj)
+{
+ E_Config_Dialog_Data *cfdata = data;
+
+ /* suspend-slider */
+ if (cfdata->suspend_timeout > cfdata->off_timeout)
+ {
+ cfdata->off_timeout = cfdata->suspend_timeout;
+ if (cfdata->off_slider)
+ e_widget_slider_value_double_set(cfdata->off_slider, cfdata->off_timeout);
+ }
+ if (cfdata->suspend_timeout < cfdata->standby_timeout)
+ {
+ cfdata->standby_timeout = cfdata->suspend_timeout;
+ if (cfdata->standby_slider)
+ e_widget_slider_value_double_set(cfdata->standby_slider, cfdata->standby_timeout);
+ }
+}
+
+static void
+_cb_off_slider_change(void *data, Evas_Object *obj)
+{
+ E_Config_Dialog_Data *cfdata = data;
+
+ /* off-slider */
+ if (cfdata->off_timeout < cfdata->suspend_timeout)
+ {
+ cfdata->suspend_timeout = cfdata->off_timeout;
+ if (cfdata->suspend_slider)
+ e_widget_slider_value_double_set(cfdata->suspend_slider, cfdata->suspend_timeout);
+
+ if (cfdata->suspend_timeout < cfdata->standby_timeout)
+ {
+ cfdata->standby_timeout = cfdata->suspend_timeout;
+ if (cfdata->standby_slider)
+ e_widget_slider_value_double_set(cfdata->standby_slider, cfdata->standby_timeout);
+ }
+ }
+}
--- /dev/null
+#ifdef E_TYPEDEFS
+#else
+#ifndef E_INT_CONFIG_DPMS_H
+#define E_INT_CONFIG_DPMS_H
+
+EAPI E_Config_Dialog *e_int_config_dpms(E_Container *con);
+
+#endif
+#endif
--- /dev/null
+#include "e.h"
+
+#define E_CONFIG_BLANKING_DEFAULT 2
+#define E_CONFIG_BLANKING_PREFERRED 1
+#define E_CONFIG_BLANKING_NOT_PREFERRED 0
+
+#define E_CONFIG_EXPOSURES_DEFAULT 2
+#define E_CONFIG_EXPOSURES_ALLOWED 1
+#define E_CONFIG_EXPOSURES_NOT_ALLOWED 0
+
+static void *_create_data(E_Config_Dialog *cfd);
+static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas,
+ E_Config_Dialog_Data *cfdata);
+static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas,
+ E_Config_Dialog_Data *cfdata);
+
+struct _E_Config_Dialog_Data
+{
+ E_Config_Dialog *cfd;
+
+ int enable_screensaver;
+ double timeout;
+ double interval;
+ int blanking;
+ int exposures;
+};
+
+EAPI E_Config_Dialog *
+e_int_config_screensaver(E_Container *con)
+{
+ E_Config_Dialog *cfd;
+ E_Config_Dialog_View *v;
+
+ //e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
+ if (e_config_dialog_find("E", "_config_screensaver_dialog")) return NULL;
+ v = E_NEW(E_Config_Dialog_View, 1);
+
+ v->create_cfdata = _create_data;
+ v->free_cfdata = _free_data;
+ v->basic.apply_cfdata = _basic_apply_data;
+ v->basic.create_widgets = _basic_create_widgets;
+ v->advanced.apply_cfdata = _advanced_apply_data;
+ v->advanced.create_widgets = _advanced_create_widgets;
+
+ v->override_auto_apply = 1;
+
+ cfd = e_config_dialog_new(con,_("Screen Saver Settings"),
+ "E", "_config_screensaver_dialog",
+ "enlightenment/screensaver", 0, v, NULL);
+ return cfd;
+}
+
+static void
+_fill_data(E_Config_Dialog_Data *cfdata)
+{
+ cfdata->enable_screensaver = e_config->screensaver_enable;
+ cfdata->timeout = e_config->screensaver_timeout / 60;
+ cfdata->interval = e_config->screensaver_interval;
+ cfdata->blanking = e_config->screensaver_blanking;
+ cfdata->exposures = e_config->screensaver_expose;
+}
+
+static void *
+_create_data(E_Config_Dialog *cfd)
+{
+ E_Config_Dialog_Data *cfdata;
+
+ cfdata = E_NEW(E_Config_Dialog_Data, 1);
+ cfdata->cfd = cfd;
+ _fill_data(cfdata);
+ return cfdata;
+}
+
+static void
+_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ if (!cfdata) return;
+ E_FREE(cfdata);
+}
+
+static int
+_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ e_config->screensaver_enable = cfdata->enable_screensaver;
+ e_config->screensaver_timeout = cfdata->timeout * 60;
+ e_config->screensaver_interval = cfdata->interval;
+ e_config->screensaver_blanking = cfdata->blanking;
+ e_config->screensaver_expose = cfdata->exposures;
+
+ /* Apply settings */
+ e_screensaver_init();
+}
+
+static int
+_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ _apply_data(cfd, cfdata);
+
+ e_config_save_queue();
+ return 1;
+}
+
+static Evas_Object *
+_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
+{
+ Evas_Object *o, *of, *ob;
+ o = e_widget_list_add(evas, 0, 0);
+
+ ob = e_widget_check_add(evas, _("Enable X screensaver"), &(cfdata->enable_screensaver));
+ e_widget_list_object_append(o, ob, 1, 1, 0);
+
+ of = e_widget_framelist_add(evas, _("Screensaver Timer(s)"), 0);
+
+ ob = e_widget_label_add(evas, _("Time until X screensaver starts"));
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"), 1.0, 90.0, 1.0, 0,
+ &(cfdata->timeout), NULL, 200);
+ e_widget_framelist_object_append(of, ob);
+
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+ e_dialog_resizable_set(cfd->dia, 0);
+
+ return o;
+}
+
+/* advanced window */
+static int
+_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ if (!cfdata) return 0;
+ _apply_data(cfd, cfdata);
+ e_config_save_queue();
+ return 1;
+}
+
+static Evas_Object *
+_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
+{
+ Evas_Object *o, *of, *ob;
+ E_Radio_Group *rg;
+ o = e_widget_list_add(evas, 0, 0);
+
+ ob = e_widget_check_add(evas, _("Enable X screensaver"), &(cfdata->enable_screensaver));
+ e_widget_list_object_append(o, ob, 1, 1, 0);
+
+ of = e_widget_framelist_add(evas, _("Screensaver Timer(s)"), 0);
+
+ ob = e_widget_label_add(evas, _("Time until X screensaver starts"));
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
+ 1.0, 90.0, 1.0, 0, &(cfdata->timeout), NULL, 200);
+ e_widget_framelist_object_append(of, ob);
+
+ ob = e_widget_label_add(evas, _("Time until X screensaver alternates"));
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"),
+ 1.0, 300.0, 1.0, 0, &(cfdata->interval), NULL, 200);
+ e_widget_framelist_object_append(of, ob);
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ of = e_widget_framelist_add(evas, _("Blanking"), 0);
+ rg = e_widget_radio_group_new(&(cfdata->blanking));
+ ob = e_widget_radio_add(evas, _("Default"), E_CONFIG_BLANKING_DEFAULT, rg);
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_radio_add(evas, _("Preferred"), E_CONFIG_BLANKING_PREFERRED, rg);
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_radio_add(evas, _("Not Preferred"), E_CONFIG_BLANKING_NOT_PREFERRED, rg);
+ e_widget_framelist_object_append(of, ob);
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ of = e_widget_framelist_add(evas, _("Exposure Events"), 0);
+ rg = e_widget_radio_group_new(&(cfdata->exposures));
+ ob = e_widget_radio_add(evas, _("Default"), E_CONFIG_EXPOSURES_DEFAULT, rg);
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_radio_add(evas, _("Allow"), E_CONFIG_EXPOSURES_ALLOWED, rg);
+ e_widget_framelist_object_append(of, ob);
+ ob = e_widget_radio_add(evas, _("Don't Allow"), E_CONFIG_EXPOSURES_NOT_ALLOWED, rg);
+ e_widget_framelist_object_append(of, ob);
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ e_dialog_resizable_set(cfd->dia, 0);
+ return o;
+}
--- /dev/null
+#ifdef E_TYPEDEFS
+#else
+#ifndef E_INT_CONFIG_SCREENSAVER_H
+#define E_INT_CONFIG_SCREENSAVER_H
+
+EAPI E_Config_Dialog *e_int_config_screensaver(E_Container *con);
+
+#endif
+#endif
#undef HDL
/****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_SET
+#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_SET
#if (TYPE == E_REMOTE_OPTIONS)
- OP("-desklock-use-custom-screensaver-set", 1, "Set whether a custom screensaver will be utilized", 0, HDL)
+ OP("-desklock-use-custom-desklock-set", 1, "Set whether a custom desklock will be utilized", 0, HDL)
#elif (TYPE == E_REMOTE_OUT)
REQ_INT(atoi(params[0]), HDL);
#elif (TYPE == E_WM_IN)
START_INT(policy, HDL);
- e_config->desklock_use_custom_screensaver = policy;
- E_CONFIG_LIMIT(e_config->desklock_use_custom_screensaver, 0, 1);
+ e_config->desklock_use_custom_desklock = policy;
+ E_CONFIG_LIMIT(e_config->desklock_use_custom_desklock, 0, 1);
SAVE;
END_INT;
#elif (TYPE == E_REMOTE_IN)
#undef HDL
/****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET
+#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET
#if (TYPE == E_REMOTE_OPTIONS)
- OP("-desklock-use-custom-screensaver-get", 0, "Get whether a custom screen saver is being used", 1, HDL)
+ OP("-desklock-use-custom-desklock-get", 0, "Get whether a custom desklock is being used", 1, HDL)
#elif (TYPE == E_REMOTE_OUT)
REQ_NULL(HDL);
#elif (TYPE == E_WM_IN)
- SEND_INT(e_config->desklock_use_custom_screensaver, E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY, HDL);
+ SEND_INT(e_config->desklock_use_custom_desklock, E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET_REPLY, HDL);
#elif (TYPE == E_REMOTE_IN)
#endif
#undef HDL
/****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY
+#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET_REPLY
#if (TYPE == E_REMOTE_OPTIONS)
#elif (TYPE == E_REMOTE_OUT)
#elif (TYPE == E_WM_IN)
#undef HDL
/****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_SET
+#define HDL E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_SET
#if (TYPE == E_REMOTE_OPTIONS)
- OP("-desklock-custom-screensaver-cmd-set", 1, "Set the current custom screensaver command to OPT1", 0, HDL)
+ OP("-desklock-custom-desklock-cmd-set", 1, "Set the current custom desklock command to OPT1", 0, HDL)
#elif (TYPE == E_REMOTE_OUT)
REQ_STRING(params[0], HDL);
#elif (TYPE == E_WM_IN)
STRING(s, HDL);
- if (e_config->desklock_custom_screensaver_cmd)
- evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
- e_config->desklock_custom_screensaver_cmd = evas_stringshare_add(s);
+ if (e_config->desklock_custom_desklock_cmd)
+ evas_stringshare_del(e_config->desklock_custom_desklock_cmd);
+ e_config->desklock_custom_desklock_cmd = evas_stringshare_add(s);
END_STRING(s);
#elif (TYPE == E_REMOTE_IN)
#endif
#undef HDL
/****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET
+#define HDL E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET
#if (TYPE == E_REMOTE_OPTIONS)
- OP("-desklock-custom-screensaver-cmd-get", 0, "Get the current custom screensaver command", 1, HDL)
+ OP("-desklock-custom-desklock-cmd-get", 0, "Get the current custom desklock command", 1, HDL)
#elif (TYPE == E_REMOTE_OUT)
REQ_NULL(HDL);
#elif (TYPE == E_WM_IN)
- SEND_STRING(e_config->desklock_custom_screensaver_cmd, E_IPC_OP_PROFILE_GET_REPLY, HDL);
+ SEND_STRING(e_config->desklock_custom_desklock_cmd, E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET_REPLY, HDL);
#elif (TYPE == E_REMOTE_IN)
#endif
#undef HDL
/****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET_REPLY
+#define HDL E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET_REPLY
#if (TYPE == E_REMOTE_OPTIONS)
#elif (TYPE == E_REMOTE_OUT)
#elif (TYPE == E_WM_IN)
#define E_IPC_OP_REBOOT 377
#define E_IPC_OP_SUSPEND 378
-#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_SET 379
-#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET 380
-#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY 381
-#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_SET 382
-#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET 383
-#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET_REPLY 384
-
+#define E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_SET 379
+#define E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET 380
+#define E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET_REPLY 381
+#define E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_SET 382
+#define E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET 383
+#define E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET_REPLY 384
}
_e_main_shutdown_push(e_exebuf_shutdown);
+ TS("dpms");
+ /* setup dpms */
+ if (!e_dpms_init())
+ {
+ e_error_message_show(_("Enlightenment cannot configure the DPMS settings."));
+ _e_main_shutdown(-1);
+ }
+
+ TS("screensaver");
+ /* setup screensaver */
+ if (!e_screensaver_init())
+ {
+ e_error_message_show(_("Enlightenment cannot configure the X screensaver."));
+ _e_main_shutdown(-1);
+ }
+
TS("desklock");
/* setup desklock */
if (!e_desklock_init())
if (e->on)
{
- if ((e_config->desklock_autolock) || (e_config->desklock_use_custom_screensaver))
+ if (e_config->desklock_autolock_screensaver)
e_desklock_show();
}
return 1;
--- /dev/null
+/*
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
+ */
+#include "e.h"
+
+EAPI int
+e_screensaver_init(void)
+{
+ int timeout=0, interval=0, blanking=0, expose=0;
+
+ if (e_config->screensaver_enable)
+ timeout = e_config->screensaver_timeout;
+
+ interval = e_config->screensaver_interval;
+ blanking = e_config->screensaver_blanking;
+ expose = e_config->screensaver_expose;
+
+ ecore_x_screensaver_set(timeout, interval, blanking, expose);
+ return 1;
+}
--- /dev/null
+#ifdef E_TYPEDEFS
+#else
+#ifndef E_SCREENSAVER_H
+#define E_SCREENSAVER_H
+
+EAPI int e_screensaver_init(void);
+
+#endif
+#endif