Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_config.c e_config.h e_desklock.c e_int_config_desklock.c 
        e_manager.c 


Log Message:


desklock lets you auto-lock if the screensaver kicks in and set the timeout
for the screensaver (optionally).
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -3 -r1.150 -r1.151
--- e_config.c  3 Mar 2006 00:02:32 -0000       1.150
+++ e_config.c  3 Mar 2006 06:00:17 -0000       1.151
@@ -462,6 +462,10 @@
    E_CONFIG_VAL(D, T, desklock_personal_passwd, STR);
    E_CONFIG_VAL(D, T, desklock_background, STR);
    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 = e_config_domain_load("e", _e_config_edd);
    if (e_config)
@@ -618,6 +622,10 @@
        e_config->desklock_personal_passwd = NULL;
        e_config->desklock_background = NULL;
        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;
        
        /* FIXME: fill up default gadcons! */
          {
@@ -1680,6 +1688,10 @@
    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, 600.0);
+   E_CONFIG_LIMIT(e_config->desklock_disable_screensaver, 0, 1);
    
    return 1;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -3 -r1.87 -r1.88
--- e_config.h  3 Mar 2006 00:02:32 -0000       1.87
+++ e_config.h  3 Mar 2006 06:00:17 -0000       1.88
@@ -214,7 +214,11 @@
 
    char              *desklock_personal_passwd; // GUI
    char              *desklock_background; // GUI
-   int       desklock_login_box_zone; //GUI
+   int       desklock_login_box_zone; // GUI
+   int        desklock_autolock; // GUI
+   int        desklock_use_timeout; // GUI
+   double     desklock_timeout; // GUI
+   int        desklock_disable_screensaver;
 };
 
 struct _E_Config_Module
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_desklock.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_desklock.c        3 Mar 2006 00:02:32 -0000       1.6
+++ e_desklock.c        3 Mar 2006 06:00:17 -0000       1.7
@@ -49,6 +49,8 @@
    int                   zone_counter;
    int                   total_zone_num;
 
+   if (edd) return 0;
+   
    if (!e_config->desklock_personal_passwd)
      {
        E_Zone  *zone;
@@ -114,8 +116,8 @@
                       evas_event_freeze(edp->popup_wnd->evas);
                       edp->bg_object = edje_object_add(edp->popup_wnd->evas);
 
-                      if (!e_config->desklock_background ||
-                          !strcmp(e_config->desklock_background, 
"theme_desklock_background"))
+                      if ((!e_config->desklock_background) ||
+                          (!strcmp(e_config->desklock_background, 
"theme_desklock_background")))
                         {
                           e_theme_edje_object_set(edp->bg_object,
                                                   "base/theme/desklock",
@@ -123,9 +125,9 @@
                         }
                       else if (!strcmp(e_config->desklock_background, 
"theme_background"))
                         {
-                          e_theme_edje_object_set(edp->bg_object,
-                                                  "base/theme/backgrounds",
-                                                  "desktop/background");
+                           e_theme_edje_object_set(edp->bg_object,
+                                                   "base/theme/backgrounds",
+                                                   "desktop/background");
                         }
                       else
                         {
@@ -152,13 +154,12 @@
                       evas_object_move(edp->bg_object, 0, 0);
                       evas_object_resize(edp->bg_object, zone->w, zone->h);
                       evas_object_show(edp->bg_object);
-                      /*edje_object_part_text_set(edp->bg_object, "title", 
-                                                _("Please enter your unlock 
password"));*/
-
-                      /**/
                       edp->login_box = edje_object_add(edp->popup_wnd->evas);
                       e_theme_edje_object_set(edp->login_box,
-                                              "base/theme/desklock", 
"desklock/login_box");
+                                              "base/theme/desklock",
+                                              "desklock/login_box");
+                      edje_object_part_text_set(edp->login_box, "title", 
+                                                _("Please enter your unlock 
password"));
                       edje_object_part_swallow(edp->bg_object, "login_box", 
edp->login_box);
                       edje_object_size_min_calc(edp->login_box, &mw, &mh);
                       evas_object_move(edp->login_box, (int)((zone->w - mw)/2),
@@ -362,16 +363,13 @@
 EAPI int
 e_desklock_init(void)
 {
-//  desklock_edd = E_CONFIG_DD_NEW("E_Desklock", E_Decklock);
-//#undef T
-//#undef D
-//#define T E_Desklock
-//#define D desklock_edd
-  //E_CONFIG_VAL(D, T, path, STR);
-
-//#undef T
-//#undef D
-
+   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);
+     }
    return 1;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_config_desklock.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_int_config_desklock.c     3 Mar 2006 00:02:32 -0000       1.2
+++ e_int_config_desklock.c     3 Mar 2006 06:00:17 -0000       1.3
@@ -46,35 +46,35 @@
 
 struct _E_Config_Dialog_Data
 {
-  char *desklock_passwd;
-  char *desklock_passwd_cp;
-  int show_password; // local
-
-  int login_box_zone; // in e_config;
-  int specific_lb_zone; // local variable
-  int specific_lb_zone_backup; // used to have smart iface
-
-  int zone_count; // local variable;
-
-  char *cur_bg; // local variable;
-  Evas *evas; // local variable
-  Evas_Object *preview_image; // local variable
-
-  /*double  vertical_lb_align;
-  double  horizontal_lb_align;*/
-
-
-  struct {
-    Evas_Object        *passwd_field;
-    Evas_Object *bg_list;
-
-    struct {
-      Evas_Object *show_all_screens;
-      Evas_Object *show_current_screen;
-      Evas_Object *show_specific_screen;
-      Evas_Object *screen_slider;
-    } loginbox_obj;
-  } gui;
+   char *desklock_passwd;
+   char *desklock_passwd_cp;
+   int show_password; // local
+   
+   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 zone_count; // local variable;
+   
+   char *cur_bg; // local variable;
+   Evas *evas; // local variable
+   Evas_Object *preview_image; // local variable
+   
+   struct {
+      Evas_Object      *passwd_field;
+      Evas_Object *bg_list;
+      
+      struct {
+        Evas_Object *show_all_screens;
+        Evas_Object *show_current_screen;
+        Evas_Object *show_specific_screen;
+        Evas_Object *screen_slider;
+      } loginbox_obj;
+   } gui;
 };
 
 typedef struct _E_Widget_Entry_Data   E_Widget_Entry_Data;
@@ -135,43 +135,47 @@
 static void
 _fill_desklock_data(E_Config_Dialog_Data *cfdata)
 {
-  // we have to read it from e_config->...
-  if (e_config->desklock_personal_passwd)
-    {
-      cfdata->desklock_passwd = strdup(e_config->desklock_personal_passwd);
-      cfdata->desklock_passwd_cp = strdup(e_config->desklock_personal_passwd);
-    }
-  else
-    {
-      cfdata->desklock_passwd = strdup("");
-      cfdata->desklock_passwd_cp = strdup("");
-    }
-      
-  /* should be taken from e_config */
-  //cfdata->login_box_on_zone = -1;
-
-  if (e_config->desklock_login_box_zone >= 0)
-    {
-      cfdata->login_box_zone = LOGINBOX_SHOW_SPECIFIC_SCREEN;
-      cfdata->specific_lb_zone_backup = cfdata->specific_lb_zone =
-       e_config->desklock_login_box_zone;
-    }
-  else
-    {
-      cfdata->login_box_zone = e_config->desklock_login_box_zone;
-      cfdata->specific_lb_zone_backup = cfdata->specific_lb_zone = 0;
-    }
-
-  cfdata->zone_count = _e_desklock_zone_num_get();
-
-  cfdata->show_password = 0;
-
-  if (!e_config->desklock_background)
-    cfdata->cur_bg = strdup(DEF_DESKLOCK_BACKGROUND);
-  else
-    cfdata->cur_bg = strdup(e_config->desklock_background);
-
-    //vertical_lb_align = e_config->desklock_login
+   // we have to read it from e_config->...
+   if (e_config->desklock_personal_passwd)
+     {
+       cfdata->desklock_passwd = strdup(e_config->desklock_personal_passwd);
+       cfdata->desklock_passwd_cp = strdup(e_config->desklock_personal_passwd);
+     }
+   else
+     {
+       cfdata->desklock_passwd = strdup("");
+       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;
+   
+   /* should be taken from e_config */
+   //cfdata->login_box_on_zone = -1;
+   
+   if (e_config->desklock_login_box_zone >= 0)
+     {
+       cfdata->login_box_zone = LOGINBOX_SHOW_SPECIFIC_SCREEN;
+       cfdata->specific_lb_zone_backup = cfdata->specific_lb_zone =
+         e_config->desklock_login_box_zone;
+     }
+   else
+     {
+       cfdata->login_box_zone = e_config->desklock_login_box_zone;
+       cfdata->specific_lb_zone_backup = cfdata->specific_lb_zone = 0;
+     }
+   
+   cfdata->zone_count = _e_desklock_zone_num_get();
+   
+   cfdata->show_password = 0;
+   
+   if (!e_config->desklock_background)
+     cfdata->cur_bg = strdup(DEF_DESKLOCK_BACKGROUND);
+   else
+     cfdata->cur_bg = strdup(e_config->desklock_background);
+   
+   //vertical_lb_align = e_config->desklock_login
 }
 
 static void *
@@ -202,50 +206,71 @@
 static int
 _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
-  if (cfdata->desklock_passwd_cp)
-    {
-      if (e_config->desklock_personal_passwd)
-       {
-         if (strcmp(e_config->desklock_personal_passwd, 
cfdata->desklock_passwd_cp) == 0)
-           return 1;
+   if (cfdata->desklock_passwd_cp)
+     {
+       if (e_config->desklock_personal_passwd)
          evas_stringshare_del(e_config->desklock_personal_passwd);
-       }
-      e_config->desklock_personal_passwd = (char 
*)evas_stringshare_add(cfdata->desklock_passwd_cp);
-      e_config_save_queue();
-    }
+     }
+   e_config->desklock_personal_passwd = (char 
*)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;
+   if (e_config->desklock_use_timeout)
+     {
+       ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
+       printf("%3.3f\n", e_config->desklock_timeout);
+     }
+   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;
-  E_Widget_Check_Data *wd;
-
-  //_fill_desklock_data(cfdata);
-
-  o = e_widget_list_add(evas, 0, 0);
-
-  of = e_widget_framelist_add(evas, _("Personalized Password:"), 0);
-
-  cfdata->gui.passwd_field = ob = e_widget_entry_add(evas, 
&(cfdata->desklock_passwd));
-  _e_desklock_passwd_cb_change(cfdata, ob);
-  e_widget_entry_on_change_callback_set(ob, _e_desklock_passwd_cb_change, 
cfdata);
-  e_widget_min_size_set(ob, 200, 25);
-  e_widget_framelist_object_append(of, ob);
-
-  ob = e_widget_check_add(evas, _("Show Password"), &(cfdata->show_password));
-  wd = (E_Widget_Check_Data*)e_widget_data_get(ob);
-
-  edje_object_signal_callback_add(wd->o_check,"toggle_on", "", 
_e_desklock_cb_show_passwd, cfdata);
-  edje_object_signal_callback_add(wd->o_check,"toggle_off", "", 
_e_desklock_cb_show_passwd, cfdata);
-
-  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;
+   Evas_Object *o, *of, *ob;
+   E_Widget_Check_Data *wd;
+   
+   //_fill_desklock_data(cfdata);
+   
+   o = e_widget_list_add(evas, 0, 0);
+   
+   of = e_widget_framelist_add(evas, _("Personalized Password:"), 0);
+   
+   cfdata->gui.passwd_field = ob = e_widget_entry_add(evas, 
&(cfdata->desklock_passwd));
+   _e_desklock_passwd_cb_change(cfdata, ob);
+   e_widget_entry_on_change_callback_set(ob, _e_desklock_passwd_cb_change, 
cfdata);
+   e_widget_min_size_set(ob, 200, 25);
+   e_widget_framelist_object_append(of, ob);
+   
+   ob = e_widget_check_add(evas, _("Show Password"), &(cfdata->show_password));
+   e_widget_framelist_object_append(of, ob);
+   
+   wd = (E_Widget_Check_Data*)e_widget_data_get(ob);
+   edje_object_signal_callback_add(wd->o_check,"toggle_on", "", 
_e_desklock_cb_show_passwd, cfdata);
+   edje_object_signal_callback_add(wd->o_check,"toggle_off", "", 
_e_desklock_cb_show_passwd, cfdata);
+   e_widget_list_object_append(o, of, 1, 1, 0.5);
+   
+   of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
+   
+   ob = e_widget_check_add(evas, _("Lock when the Screensaver starts"), 
&(cfdata->autolock));
+   e_widget_framelist_object_append(of, ob);
+
+   ob = e_widget_check_add(evas, _("Set the screensaver timeout"), 
&(cfdata->use_timeout));
+   e_widget_framelist_object_append(of, ob);
+   
+   ob = e_widget_label_add(evas, _("Time until screensaver starts"));
+   e_widget_framelist_object_append(of, ob);
+   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"),
+                           1.0, 600.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 */
@@ -253,27 +278,31 @@
 static int
 _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
-  if (!cfdata) return 0;
-
-  if (cfdata->cur_bg)
-    {
-      if (e_config->desklock_background)
-       evas_stringshare_del(e_config->desklock_background);
-      e_config->desklock_background = (char 
*)evas_stringshare_add(cfdata->cur_bg);
-    }
-
-  if (_e_desklock_zone_num_get() > 1)
-    {
-      if (cfdata->login_box_zone >= 0)
-       e_config->desklock_login_box_zone = cfdata->specific_lb_zone;
-      else
-       e_config->desklock_login_box_zone = cfdata->login_box_zone;
-    }
-  else
-    e_config->desklock_login_box_zone = LOGINBOX_SHOW_ALL_SCREENS;
-
-  e_config_save_queue();
-  return 1;
+   if (!cfdata) return 0;
+   
+   if (cfdata->cur_bg)
+     {
+       if (e_config->desklock_background)
+         evas_stringshare_del(e_config->desklock_background);
+       e_config->desklock_background = (char 
*)evas_stringshare_add(cfdata->cur_bg);
+     }
+   
+   if (_e_desklock_zone_num_get() > 1)
+     {
+       if (cfdata->login_box_zone >= 0)
+         e_config->desklock_login_box_zone = cfdata->specific_lb_zone;
+       else
+         e_config->desklock_login_box_zone = cfdata->login_box_zone;
+     }
+   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;
+   
+   e_config_save_queue();
+   return 1;
 }
 
 static Evas_Object *
@@ -282,6 +311,7 @@
   Evas_Object *o, *of, *of1, *ob;
   E_Widget_Radio_Data *wd;
 
+   /* FIXME: this dialog is broken. advanced options should ALSO INCLUDE basic 
options */
   E_Radio_Group *rg, *rg_bkg;
   Evas_Object *ot;
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -3 -r1.49 -r1.50
--- e_manager.c 1 Feb 2006 13:07:21 -0000       1.49
+++ e_manager.c 3 Mar 2006 06:00:17 -0000       1.50
@@ -12,6 +12,7 @@
 static int _e_manager_cb_key_down(void *data, int ev_type, void *ev);
 static int _e_manager_cb_frame_extents_request(void *data, int ev_type, void 
*ev);
 static int _e_manager_cb_ping(void *data, int ev_type, void *ev);
+static int _e_manager_cb_screensaver_notify(void *data, int ev_type, void *ev);
 
 static Evas_Bool _e_manager_frame_extents_free_cb(Evas_Hash *hash __UNUSED__,
                                                  const char *key __UNUSED__,
@@ -47,6 +48,7 @@
 EAPI int
 e_manager_init(void)
 {
+   ecore_x_screensaver_event_listen_set(1);
    return 1;
 }
 
@@ -110,6 +112,7 @@
      {
        man->win = man->root;
      }
+   
    h = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHOW_REQUEST, 
_e_manager_cb_window_show_request, man);
    if (h) man->handlers = evas_list_append(man->handlers, h);
    h = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CONFIGURE, 
_e_manager_cb_window_configure, man);
@@ -119,8 +122,11 @@
    h = ecore_event_handler_add(ECORE_X_EVENT_KEY_UP, _e_manager_cb_key_up, 
man);
    if (h) man->handlers = evas_list_append(man->handlers, h);
    h = ecore_event_handler_add(ECORE_X_EVENT_FRAME_EXTENTS_REQUEST, 
_e_manager_cb_frame_extents_request, man);
+   if (h) man->handlers = evas_list_append(man->handlers, h);
    h = ecore_event_handler_add(ECORE_X_EVENT_PING, _e_manager_cb_ping, man);
    if (h) man->handlers = evas_list_append(man->handlers, h);
+   h = ecore_event_handler_add(ECORE_X_EVENT_SCREENSAVER_NOTIFY, 
_e_manager_cb_screensaver_notify, man);
+   if (h) man->handlers = evas_list_append(man->handlers, h);
 
    man->pointer = e_pointer_window_new(man->root);
 
@@ -716,6 +722,22 @@
    return 1;
 }
 
+static int
+_e_manager_cb_screensaver_notify(void *data, int ev_type __UNUSED__, void *ev)
+{
+   E_Manager *man;
+   Ecore_X_Event_Screensaver_Notify *e;
+   
+   man = data;
+   e = ev;
+   
+   if (e->on)
+     {
+       if (e_config->desklock_autolock) e_desklock_show();
+     }
+   return 1;
+}
+
 static Evas_Bool
 _e_manager_frame_extents_free_cb(Evas_Hash *hash __UNUSED__, const char *key 
__UNUSED__,
                                 void *data, void *fdata __UNUSED__)




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to