Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_desklock.c e_int_menus.c e_shelf.c 


Log Message:


de-uglify desklock gfx - make it ask for your passowrd if you havent set one
up (config dialog instead of lock) and make it a menu item for obvious access
:)

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_desklock.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_desklock.c        26 Feb 2006 21:42:19 -0000      1.4
+++ e_desklock.c        27 Feb 2006 06:35:56 -0000      1.5
@@ -1,27 +1,24 @@
-
 #include "e.h"
 
 #define ELOCK_POPUP_LAYER 10000
-
 #define PASSWD_LEN 256
 
-
 /**************************** private data ******************************/
 typedef struct _E_Desklock_Data                E_Desklock_Data;
 typedef struct _E_Desklock_Popup_Data  E_Desklock_Popup_Data;
 
 struct _E_Desklock_Popup_Data
 {
-  E_Popup     *popup_wnd;
-  Evas_Object *bg_object;
+   E_Popup     *popup_wnd;
+   Evas_Object *bg_object;
 };
 
 struct _E_Desklock_Data
 {
-  Evas_List      *elock_wnd_list;
-  Ecore_X_Window  elock_wnd;
-  Evas_List      *handlers;
-  char           passwd[PASSWD_LEN];
+   Evas_List     *elock_wnd_list;
+   Ecore_X_Window  elock_wnd;
+   Evas_List     *handlers;
+   char                  passwd[PASSWD_LEN];
 };
 
 static E_Desklock_Data *edd = NULL;
@@ -41,211 +38,228 @@
 EAPI int
 e_desklock_show(void)
 {
-  Evas_List  *managers, *l, *l2, *l3;
-  //E_Zone  *zone = NULL;
-  int m = 0, c = 0, z = 0;
-
-  E_Desklock_Popup_Data        *edp;
-
-  if (!edd)
-    {
-      edd = E_NEW(E_Desklock_Data, 1);
-      if (!edd) return 0;
-      edd->elock_wnd_list = NULL;
-      edd->elock_wnd = 0;
-      edd->handlers = NULL;
-      edd->passwd[0] = 0;
-    }
-
-  managers = e_manager_list();
-  for (l = managers; l; l = l->next)
-    {
-      E_Manager *man;
-      m ++;
-
-      man = l->data;
-      for (l2 = man->containers; l2; l2 = l2->next)
-       {
-         E_Container *con;
-
-         c ++;
-
-         con = l2->data;
-         for (l3 = con->zones; l3; l3 = l3->next)
-           {
-             E_Zone *zone;
-
-             zone = l3->data;
-             if (!edd->elock_wnd)
-               {
-                 edd->elock_wnd = 
ecore_x_window_input_new(zone->container->win, 0, 0, 1, 1);
-                 ecore_x_window_show(edd->elock_wnd);
-                 e_grabinput_get(edd->elock_wnd, 0, edd->elock_wnd);
-               }
-    
-             edp = E_NEW(E_Desklock_Popup_Data, 1);
-             if (edp)
-               {
-                 edp->popup_wnd = e_popup_new(zone, 0, 0, zone->w, zone->h);
-                 evas_event_feed_mouse_move(edp->popup_wnd->evas, -1000000, 
-1000000,
-                                            ecore_x_current_time_get(), NULL);
-
-                 e_popup_layer_set(edp->popup_wnd, ELOCK_POPUP_LAYER);
-
-                 evas_event_freeze(edp->popup_wnd->evas);
-                 edp->bg_object = edje_object_add(edp->popup_wnd->evas);
-                 //FIXME: This should come from config file
-                 e_theme_edje_object_set(edp->bg_object, "base/theme/desklock",
-                                                         
"widgets/desklock/main");
-
-                 evas_object_move(edp->bg_object, 0, 0);
-                 evas_object_resize(edp->bg_object, zone->w, zone->h);
-                 evas_object_show(edp->bg_object);
-                 e_popup_edje_bg_object_set(edp->popup_wnd, edp->bg_object);
-                 evas_event_thaw(edp->popup_wnd->evas);
-
-                 e_popup_show(edp->popup_wnd);
-
-                 edd->elock_wnd_list = evas_list_append(edd->elock_wnd_list, 
edp);
-               }
-           }
-       }
-    }
-
-  /* handlers */
-  edd->handlers = evas_list_append(edd->handlers,
-                             ecore_event_handler_add(ECORE_X_EVENT_KEY_DOWN,
-                                                     _e_desklock_cb_key_down, 
NULL));
-  edd->handlers = evas_list_append(edd->handlers, 
-                             
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_DOWN,
-                                                     
_e_desklock_cb_mouse_down, NULL));
-  edd->handlers = evas_list_append(edd->handlers,
-                             
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_UP,
-                                                     _e_desklock_cb_mouse_up, 
NULL));
-  edd->handlers = evas_list_append(edd->handlers,
-                             ecore_event_handler_add(ECORE_X_EVENT_MOUSE_WHEEL,
-                                                     
_e_desklock_cb_mouse_wheel,
-                                                     NULL));
-  //elock_wnd_idler = ecore_idler_add(_e_desklock_idler, NULL);
-
-  _e_desklock_passwd_update();
-  return 1;
+   Evas_List  *managers, *l, *l2, *l3;
+   int m = 0, c = 0, z = 0;   
+   E_Desklock_Popup_Data       *edp;
+
+   if (!e_config->desklock_personal_passwd)
+     {
+       E_Zone  *zone;
+       
+       zone = e_util_zone_current_get(e_manager_current_get());
+       if (zone)
+         {
+            E_Config_Dialog *cfd;
+            
+            cfd = e_int_config_desklock(zone->container);
+         }
+       return 0;
+     }
+   
+   if (!edd)
+     {
+       edd = E_NEW(E_Desklock_Data, 1);
+       if (!edd) return 0;
+       edd->elock_wnd_list = NULL;
+       edd->elock_wnd = 0;
+       edd->handlers = NULL;
+       edd->passwd[0] = 0;
+     }
+   
+   managers = e_manager_list();
+   for (l = managers; l; l = l->next)
+     {
+       E_Manager *man;
+       
+       m++;
+       man = l->data;
+       for (l2 = man->containers; l2; l2 = l2->next)
+         {
+            E_Container *con;
+            
+            c++;
+            
+            con = l2->data;
+            for (l3 = con->zones; l3; l3 = l3->next)
+              {
+                 E_Zone *zone;
+                 
+                 zone = l3->data;
+                 if (!edd->elock_wnd)
+                   {
+                      edd->elock_wnd = 
ecore_x_window_input_new(zone->container->win, 0, 0, 1, 1);
+                      ecore_x_window_show(edd->elock_wnd);
+                      e_grabinput_get(edd->elock_wnd, 0, edd->elock_wnd);
+                   }
+                 
+                 edp = E_NEW(E_Desklock_Popup_Data, 1);
+                 if (edp)
+                   {
+                      edp->popup_wnd = e_popup_new(zone, 0, 0, zone->w, 
zone->h);
+                      evas_event_feed_mouse_move(edp->popup_wnd->evas, 
-1000000, -1000000,
+                                                 ecore_x_current_time_get(), 
NULL);
+                      
+                      e_popup_layer_set(edp->popup_wnd, ELOCK_POPUP_LAYER);
+                      
+                      evas_event_freeze(edp->popup_wnd->evas);
+                      edp->bg_object = edje_object_add(edp->popup_wnd->evas);
+                      //FIXME: This should come from config file
+                      e_theme_edje_object_set(edp->bg_object,
+                                              "base/theme/desklock",
+                                              "widgets/desklock/main");
+                      
+                      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"));
+                      
+                      e_popup_edje_bg_object_set(edp->popup_wnd, 
edp->bg_object);
+                      evas_event_thaw(edp->popup_wnd->evas);
+                      
+                      e_popup_show(edp->popup_wnd);
+                      
+                      edd->elock_wnd_list = 
evas_list_append(edd->elock_wnd_list, edp);
+                   }
+              }
+         }
+     }
+   
+   /* handlers */
+   edd->handlers = evas_list_append(edd->handlers,
+                                   
ecore_event_handler_add(ECORE_X_EVENT_KEY_DOWN,
+                                                           
_e_desklock_cb_key_down, NULL));
+   edd->handlers = evas_list_append(edd->handlers, 
+                                   
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_DOWN,
+                                                           
_e_desklock_cb_mouse_down, NULL));
+   edd->handlers = evas_list_append(edd->handlers,
+                                   
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_UP,
+                                                           
_e_desklock_cb_mouse_up, NULL));
+   edd->handlers = evas_list_append(edd->handlers,
+                                   
ecore_event_handler_add(ECORE_X_EVENT_MOUSE_WHEEL,
+                                                           
_e_desklock_cb_mouse_wheel,
+                                                           NULL));
+   //elock_wnd_idler = ecore_idler_add(_e_desklock_idler, NULL);
+   
+   _e_desklock_passwd_update();
+   return 1;
 }
 
 EAPI void
 e_desklock_hide(void)
 {
-  E_Desklock_Popup_Data        *edp;
-
-  if (!edd) return;
-
-  while (edd->elock_wnd_list)
-    {
-      edp = edd->elock_wnd_list->data;
-      if (edp)
-       {
-         e_popup_hide(edp->popup_wnd);
-
-         evas_event_freeze(edp->popup_wnd->evas);
-         evas_object_del(edp->bg_object);
-         evas_event_thaw(edp->popup_wnd->evas);
-
-         e_object_del(E_OBJECT(edp->popup_wnd));
-         E_FREE(edp);
-       }
-      edd->elock_wnd_list = evas_list_remove_list(edd->elock_wnd_list, 
edd->elock_wnd_list);
-    }
-
-  while (edd->handlers)
-    {
-      ecore_event_handler_del(edd->handlers->data);
-      edd->handlers = evas_list_remove_list(edd->handlers, edd->handlers);
-    }
-
-  e_grabinput_release(edd->elock_wnd, edd->elock_wnd);
-  ecore_x_window_del(edd->elock_wnd);
-
-  E_FREE(edd);
-  edd = NULL;
+   E_Desklock_Popup_Data       *edp;
+   
+   if (!edd) return;
+   
+   while (edd->elock_wnd_list)
+     {
+       edp = edd->elock_wnd_list->data;
+       if (edp)
+         {
+            e_popup_hide(edp->popup_wnd);
+            
+            evas_event_freeze(edp->popup_wnd->evas);
+            evas_object_del(edp->bg_object);
+            evas_event_thaw(edp->popup_wnd->evas);
+            
+            e_object_del(E_OBJECT(edp->popup_wnd));
+            E_FREE(edp);
+         }
+       edd->elock_wnd_list = evas_list_remove_list(edd->elock_wnd_list, 
edd->elock_wnd_list);
+     }
+   
+   while (edd->handlers)
+     {
+       ecore_event_handler_del(edd->handlers->data);
+       edd->handlers = evas_list_remove_list(edd->handlers, edd->handlers);
+     }
+   
+   e_grabinput_release(edd->elock_wnd, edd->elock_wnd);
+   ecore_x_window_del(edd->elock_wnd);
+   
+   E_FREE(edd);
+   edd = NULL;
 }
 
 static int
 _e_desklock_cb_key_down(void *data, int type, void *event)
 {
-  Ecore_X_Event_Key_Down *ev;
-
-  ev = event;
-  if (ev->win != edd->elock_wnd) return 1;
-
-  if (!strcmp(ev->keysymbol, "Escape"))
+   Ecore_X_Event_Key_Down *ev;
+   
+   ev = event;
+   if (ev->win != edd->elock_wnd) return 1;
+   
+   if (!strcmp(ev->keysymbol, "Escape"))
     ;
-  else if (!strcmp(ev->keysymbol, "KP_Enter"))
-    {
-      // here we have to go to auth
-      if (strcmp(edd->passwd, e_config->desklock_personal_passwd) == 0)
-      {
-       e_desklock_hide();
-       return 1;
-      }
-      else
-       ; // report about invalid password
-
-      memset(edd->passwd, 0, sizeof(char) * PASSWD_LEN);
-      _e_desklock_passwd_update();
-    }
-  else if (!strcmp(ev->keysymbol, "Return"))
-    {
-      // here we have to go to auth
-      if (strcmp(edd->passwd, e_config->desklock_personal_passwd) == 0)
-      {
-       e_desklock_hide();
-       return 1;
-      }
-      else
-       ; // report about invalid password
-
-      memset(edd->passwd, 0, sizeof(char) * PASSWD_LEN);
-      _e_desklock_passwd_update();
-    }
-  else if (!strcmp(ev->keysymbol, "BackSpace"))
-    _e_desklock_backspace();
-  else if (!strcmp(ev->keysymbol, "Delete"))
-    _e_desklock_delete();
-  else
-    {
-      // here we have to grab a password
-      if (ev->key_compose)
-       {
-         if ((strlen(edd->passwd) < (PASSWD_LEN - strlen(ev->key_compose))))
-           {
-             strcat(edd->passwd, ev->key_compose);
-             _e_desklock_passwd_update();
-           }
-       }
-    }
-
-  return 1;
+   else if (!strcmp(ev->keysymbol, "KP_Enter"))
+     {
+       // here we have to go to auth
+       if (!strcmp(edd->passwd, e_config->desklock_personal_passwd))
+         {
+            e_desklock_hide();
+            return 1;
+         }
+       else
+         ; // report about invalid password
+       
+       memset(edd->passwd, 0, sizeof(char) * PASSWD_LEN);
+       _e_desklock_passwd_update();
+     }
+   else if (!strcmp(ev->keysymbol, "Return"))
+     {
+       // here we have to go to auth
+       if ((e_config->desklock_personal_passwd) &&
+           (!strcmp(edd->passwd, e_config->desklock_personal_passwd)))
+         {
+            e_desklock_hide();
+            return 1;
+         }
+       else
+         ; // report about invalid password
+       
+       memset(edd->passwd, 0, sizeof(char) * PASSWD_LEN);
+       _e_desklock_passwd_update();
+     }
+   else if (!strcmp(ev->keysymbol, "BackSpace"))
+     _e_desklock_backspace();
+   else if (!strcmp(ev->keysymbol, "Delete"))
+     _e_desklock_delete();
+   else
+     {
+       // here we have to grab a password
+       if (ev->key_compose)
+         {
+            if ((strlen(edd->passwd) < (PASSWD_LEN - strlen(ev->key_compose))))
+              {
+                 strcat(edd->passwd, ev->key_compose);
+                 _e_desklock_passwd_update();
+              }
+         }
+     }
+   
+   return 1;
 }
 
 static int
 _e_desklock_cb_mouse_down(void *data, int type, void *event)
 {
-  return 1;
+   return 1;
 }
 static int
 _e_desklock_cb_mouse_up(void *data, int type, void *event)
 {
-  return 1;
+   return 1;
 }
 static int
 _e_desklock_cb_mouse_wheel(void *data, int type, void *event)
 {
-  return 1;
+   return 1;
 }
 static int
 _e_desklock_idler(void *data)
 {
-  return 1;
+   return 1;
 }
 
 EAPI int
@@ -261,38 +275,37 @@
 //#undef T
 //#undef D
 
-  return 1;
+   return 1;
 }
 
 EAPI int
 e_desklock_shutdown(void)
 {
-  e_desklock_hide();
-  return 1;
+   e_desklock_hide();
+   return 1;
 }
 
 static void
 _e_desklock_passwd_update()
 {
-  int ii;
-  char passwd_hidden[PASSWD_LEN * 3]="";
-  E_Desklock_Popup_Data        *edp;
-  Evas_List *l;
-
-  if (!edd) return;
-
-  for (ii = 0; ii < strlen(edd->passwd); ii ++)
-    {
-      passwd_hidden[ii] = '*';
-      passwd_hidden[ii+1] = 0;
-    }
-
-  for (l = edd->elock_wnd_list; l; l = l->next)
-  {
-    edp = l->data;
-    edje_object_part_text_set(edp->bg_object, "passwd", passwd_hidden);
-  }
-  return;
+   int ii;
+   char passwd_hidden[PASSWD_LEN * 3]="";
+   E_Desklock_Popup_Data       *edp;
+   Evas_List *l;
+   
+   if (!edd) return;
+   
+   for (ii = 0; ii < strlen(edd->passwd); ii ++)
+     {
+       passwd_hidden[ii] = '*';
+       passwd_hidden[ii+1] = 0;
+     }
+   
+   for (l = edd->elock_wnd_list; l; l = l->next)
+     {
+       edp = l->data;
+       edje_object_part_text_set(edp->bg_object, "passwd", passwd_hidden);
+     }
 }
 
 static void
@@ -301,18 +314,19 @@
   int len, val, pos;
 
   if (!edd) return;
-
-  len = strlen(edd->passwd);
-  if (len > 0)
-    {
-      pos = evas_string_char_prev_get(edd->passwd, len, &val);
-      if ((pos < len) && (pos >= 0))
-       {
-         edd->passwd[pos] = 0;
-         _e_desklock_passwd_update();
-       }
-    }
+   
+   len = strlen(edd->passwd);
+   if (len > 0)
+     {
+       pos = evas_string_char_prev_get(edd->passwd, len, &val);
+       if ((pos < len) && (pos >= 0))
+         {
+            edd->passwd[pos] = 0;
+            _e_desklock_passwd_update();
+         }
+     }
 }
+
 static void
 _e_desklock_delete()
 {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -3 -r1.132 -r1.133
--- e_int_menus.c       10 Feb 2006 08:14:57 -0000      1.132
+++ e_int_menus.c       27 Feb 2006 06:35:56 -0000      1.133
@@ -25,6 +25,8 @@
 static void _e_int_menus_main_about          (void *data, E_Menu *m, 
E_Menu_Item *mi);
 static int  _e_int_menus_main_run_defer_cb   (void *data);
 static void _e_int_menus_main_run            (void *data, E_Menu *m, 
E_Menu_Item*mi);
+static int  _e_int_menus_main_lock_defer_cb  (void *data);
+static void _e_int_menus_main_lock           (void *data, E_Menu *m, 
E_Menu_Item*mi);
 static void _e_int_menus_main_restart        (void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void _e_int_menus_main_exit           (void *data, E_Menu *m, 
E_Menu_Item *mi);
 static void _e_int_menus_apps_scan           (E_Menu *m);
@@ -401,6 +403,22 @@
    ecore_idle_enterer_add(_e_int_menus_main_run_defer_cb, m->zone);
 }
 
+/* FIXME: this is a workaround for menus' haveing a key grab ANd exebuf
+ * wanting one too
+ */
+static int
+_e_int_menus_main_lock_defer_cb(void *data)
+{
+   e_desklock_show();
+   return 0;
+}
+
+static void
+_e_int_menus_main_lock(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   ecore_idle_enterer_add(_e_int_menus_main_lock_defer_cb, m->zone);
+}
+
 static void
 _e_int_menus_main_fm(void *data, E_Menu *m, E_Menu_Item *mi)
 {
@@ -540,6 +558,15 @@
    E_Menu *root;
 
    e_menu_pre_activate_callback_set(m, NULL, NULL);
+
+   mi = e_menu_item_new(m);
+   e_menu_item_label_set(mi, _("Lock Screen"));
+   e_util_menu_item_edje_icon_set(mi, "enlightenment/lock");
+   e_menu_item_callback_set(mi, _e_int_menus_main_lock, NULL);
+   
+   mi = e_menu_item_new(m);
+   e_menu_item_separator_set(mi, 1);
+   
    root = e_menu_root_get(m);
    if ((root) && (root->zone))
      {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_shelf.c   16 Feb 2006 09:27:37 -0000      1.6
+++ e_shelf.c   27 Feb 2006 06:35:56 -0000      1.7
@@ -9,6 +9,13 @@
 static Evas_List *shelves = NULL;
 static int shelf_id = 0;
 
+/* FIXME: shelves need to do this:
+ * 1. allow them to be moved, resized etc. etc.
+ * 2. have a configuration panel per shelf to select if its inline, layer etc.
+ * 3. catch all right clicks not on modules for right click context menu
+ * 4. a global config dialog that lists shelves u have to configure them
+ */
+
 /* externally accessible functions */
 EAPI int
 e_shelf_init(void)
@@ -131,7 +138,8 @@
    snprintf(buf, sizeof(buf), "shelf/%s/base", es->style);
    evas_object_resize(es->o_base, es->w, es->h);
    if (!e_theme_edje_object_set(es->o_base, "base/theme/shelf", buf))
-     e_theme_edje_object_set(es->o_base, "base/theme/shelf", 
"shelf/default/base");
+     e_theme_edje_object_set(es->o_base, "base/theme/shelf",
+                            "shelf/default/base");
    if (es->popup)
      {
        evas_object_show(es->o_base);




-------------------------------------------------------
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