|
From: <enl...@li...> - 2006-02-22 14:35:19
|
Enlightenment CVS committal
Author : sndev
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
Makefile.am e_config.c e_config.h e_configure.c e_desklock.c
e_includes.h e_int_config_keybindings.c
Added Files:
e_int_config_desklock.c e_int_config_desklock.h
Log Message:
More work on Desktop Locking:
* the config dialog is created. Now every one can set his/her personal password to
unlock the desktop. Pam support is comming soon also.
* a little bit redesined look and feel.
* the config version is increased, since the new item is introduced.
Some bug fixes in Keybinding config dialog.
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/Makefile.am,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -3 -r1.110 -r1.111
--- Makefile.am 19 Feb 2006 23:53:35 -0000 1.110
+++ Makefile.am 22 Feb 2006 14:35:04 -0000 1.111
@@ -132,6 +132,7 @@
e_int_config_performance.h \
e_int_config_winlist.h \
e_int_config_display.h \
+e_int_config_desklock.h \
e_int_config_exebuf.h \
e_int_config_cfgdialogs.h \
e_deskpreview.h \
@@ -258,6 +259,7 @@
e_int_config_performance.c \
e_int_config_winlist.c \
e_int_config_display.c \
+e_int_config_desklock.c \
e_int_config_exebuf.c \
e_int_config_cfgdialogs.c \
e_deskpreview.c \
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -3 -r1.146 -r1.147
--- e_config.c 19 Feb 2006 23:53:35 -0000 1.146
+++ e_config.c 22 Feb 2006 14:35:04 -0000 1.147
@@ -457,6 +457,7 @@
E_CONFIG_VAL(D, T, cfgdlg_default_mode, INT); /**/
E_CONFIG_LIST(D, T, gadcons, _e_config_gadcon_edd);
E_CONFIG_LIST(D, T, shelves, _e_config_shelf_edd);
+ E_CONFIG_VAL(D, T, desklock_personal_passwd, STR);
e_config = e_config_domain_load("e", _e_config_edd);
if (e_config)
@@ -608,6 +609,7 @@
e_config->cfgdlg_auto_apply = 0;
e_config->cfgdlg_default_mode = 0;
e_config->gadcons = NULL;
+ e_config->desklock_personal_passwd = NULL;
/* FIXME: fill up default gadcons! */
{
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -3 -r1.83 -r1.84
--- e_config.h 17 Feb 2006 10:25:23 -0000 1.83
+++ e_config.h 22 Feb 2006 14:35:04 -0000 1.84
@@ -49,7 +49,7 @@
* versioning feature. the value of this is really irrelevant - just as
* long as it increases every time we change something
*/
-#define E_CONFIG_FILE_VERSION 138
+#define E_CONFIG_FILE_VERSION 139
#define E_EVAS_ENGINE_DEFAULT 0
#define E_EVAS_ENGINE_SOFTWARE_X11 1
@@ -110,7 +110,7 @@
Evas_List *font_defaults;
Evas_List *themes;
Evas_List *mouse_bindings;
- Evas_List *key_bindings;
+ Evas_List *key_bindings; // GUI
Evas_List *signal_bindings;
Evas_List *wheel_bindings;
Evas_List *path_append_data;
@@ -210,6 +210,7 @@
int cfgdlg_default_mode; // GUI
Evas_List *gadcons;
Evas_List *shelves;
+ char *desklock_personal_passwd; // GUI
};
struct _E_Config_Module
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_configure.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- e_configure.c 15 Feb 2006 20:28:55 -0000 1.36
+++ e_configure.c 22 Feb 2006 14:35:04 -0000 1.37
@@ -70,6 +70,7 @@
e_configure_standard_item_add(eco, "enlightenment/mouse", _("Cursor Settings"), e_int_config_cursor);
e_configure_standard_item_add(eco, "enlightenment/desktops", _("Desktop Settings"), e_int_config_desks);
e_configure_standard_item_add(eco, "enlightenment/desktops", _("Display Settings"), e_int_config_display);
+ e_configure_standard_item_add(eco, "enlightenment/desktops", _("Desktop Lock Settings"), e_int_config_desklock);
e_configure_standard_item_add(eco, "enlightenment/e", _("Focus Settings"), e_int_config_focus);
e_configure_standard_item_add(eco, "enlightenment/e", _("Key Binding Settings"), e_int_config_keybindings);
e_configure_standard_item_add(eco, "enlightenment/favorites", _("Menu Settings"), e_int_config_menus);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_desklock.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_desklock.c 21 Feb 2006 00:19:56 -0000 1.2
+++ e_desklock.c 22 Feb 2006 14:35:04 -0000 1.3
@@ -5,15 +5,27 @@
#define PASSWD_LEN 256
+
+/**************************** private data ******************************/
static Ecore_X_Window elock_wnd = 0;
static Evas_List *handlers = NULL;
-static E_Popup *elock_wnd_popup = NULL;
+static E_Popup *elock_wnd_popup = NULL;
static Evas_Object *bg_object = NULL;
-static Evas_Object *passwd_entry = NULL;
+
+struct _E_Desklock_Data
+{
+ Ecore_X_Window elock_wnd;
+ Evas_List *handlers;
+ Evas_List *popus_wnd;
+ Evas_Object *bg_object;
+};
+//static Evas_Object *passwd_entry = NULL;
static char passwd[PASSWD_LEN]="";
+/***********************************************************************/
+
static int _e_desklock_cb_key_down(void *data, int type, void *event);
static int _e_desklock_cb_mouse_down(void *data, int type, void *event);
static int _e_desklock_cb_mouse_up(void *data, int type, void *event);
@@ -29,8 +41,6 @@
{
//Evas_List *managers, *l, *l2, *l3;
Evas_Object *eo;
- int x, y, w, h;
- //Evas_List *elock_wnd_list = NULL;
E_Zone *zone = NULL;
@@ -45,12 +55,7 @@
ecore_x_window_show(elock_wnd);
e_grabinput_get(elock_wnd, 0, elock_wnd);
- x = zone->x;
- y = zone->y;
- w = zone->w;
- h = zone->h;
-
- elock_wnd_popup = e_popup_new(zone, x, y, w, h);
+ elock_wnd_popup = e_popup_new(zone, zone->x, zone->y, zone->w, zone->h);
evas_event_feed_mouse_move(elock_wnd_popup->evas, -1000000, -1000000,
ecore_x_current_time_get(), NULL);
@@ -72,9 +77,9 @@
e_theme_edje_object_set(bg_object, "base/theme/desklock", "widgets/desklock/main");
- e_popup_move_resize(elock_wnd_popup, x, y, w, h);
+ e_popup_move_resize(elock_wnd_popup, zone->x, zone->y, zone->w, zone->h);
evas_object_move(bg_object, 0, 0);
- evas_object_resize(bg_object, w, h);
+ evas_object_resize(bg_object, zone->w, zone->h);
evas_object_show(bg_object);
e_popup_edje_bg_object_set(elock_wnd_popup, bg_object);
@@ -101,8 +106,6 @@
}
/*
- // TODO: I think that creation of the elock_wnd can be moved into the e_main.c.
- // Actually this lock wnd can be created just once. And then used.
managers = e_manager_list();
for (l = managers; l; l = l->next)
@@ -223,8 +226,8 @@
else if (!strcmp(ev->keysymbol, "KP_Enter"))
{
// here we have to go to auth
- if (1 || strcmp(passwd, "password") == 0)
- e_desklock_hide(); // Actually, escape MUST be ignored.
+ if (strcmp(passwd, e_config->desklock_personal_passwd) == 0)
+ e_desklock_hide();
else
; // report about invalid password
memset(passwd, 0, sizeof(char) * PASSWD_LEN);
@@ -233,8 +236,8 @@
else if (!strcmp(ev->keysymbol, "Return"))
{
// here we have to go to auth
- if (1 || strcmp(passwd, "password") == 0)
- e_desklock_hide(); // Actually, escape MUST be ignored.
+ if (strcmp(passwd, e_config->desklock_personal_passwd) == 0)
+ e_desklock_hide();
else
; // report about invalid password
memset(passwd, 0, sizeof(char) * PASSWD_LEN);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_includes.h,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -3 -r1.91 -r1.92
--- e_includes.h 19 Feb 2006 23:53:35 -0000 1.91
+++ e_includes.h 22 Feb 2006 14:35:04 -0000 1.92
@@ -111,6 +111,7 @@
#include "e_int_config_performance.h"
#include "e_int_config_winlist.h"
#include "e_int_config_display.h"
+#include "e_int_config_desklock.h"
#include "e_int_config_exebuf.h"
#include "e_int_config_cfgdialogs.h"
#include "e_deskpreview.h"
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_config_keybindings.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_int_config_keybindings.c 19 Feb 2006 16:34:22 -0000 1.2
+++ e_int_config_keybindings.c 22 Feb 2006 14:35:04 -0000 1.3
@@ -8,6 +8,15 @@
#define ILIST_ICON_WITH_KEYBIND "enlightenment/e"
#define ILIST_ICON_WITHOUT_KEYBIND ""
+#define _DEFAULT_ACTION 0
+#define _NONDEFAULT_ACTION 1
+
+#define EDIT_RESTRICT_NONE (0 << 0)
+#define EDIT_RESTRICT_ACTION (1 << 0)
+#define EDIT_RESTRICT_PARAMS (1 << 1)
+
+#define E_BINDING_CONTEXT_NUMBER 10
+
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);
@@ -38,143 +47,12 @@
typedef struct _E_Smart_Item E_Smart_Item;
typedef struct _E_Smart_Data E_Smart_Data;
-struct _E_Smart_Data
-{
- Evas_Coord x, y, w, h;
-
- Evas_Object *smart_obj;
- Evas_Object *box_obj;
- Evas_List *items;
- int selected;
- Evas_Coord icon_w, icon_h;
- unsigned char selector : 1;
-};
-
-struct _E_Smart_Item
-{
- E_Smart_Data *sd;
- Evas_Object *base_obj;
- Evas_Object *icon_obj;
- void (*func) (void *data, void *data2);
- void (*func_hilight) (void *data, void *data2);
- void *data;
- void *data2;
-};
-
-struct _E_Widget_IList_Data
-{
- Evas_Object *o_widget, *o_scrollframe, *o_ilist;
- Evas_List *callbacks;
- char **value;
-};
-
-struct _E_Widget_Radio_Data
-{
- E_Radio_Group *group;
- Evas_Object *o_radio;
- int valnum;
-};
-
-struct _E_Widget_Checkbox_Data
-{
- Evas_Object *o_check;
- int *valptr;
-};
-
-struct _E_Widget_Button_Data
-{
- Evas_Object *o_button;
- Evas_Object *o_icon;
- void (*func) (void *data, void *data2);
- void *data;
- void *data2;
-};
-
-struct _E_Widget_Entry_Data
-{
- Evas_Object *o_entry;
- Evas_Object *obj;
- char **valptr;
- void (*on_change_func) (void *data, Evas_Object *obj);
- void *on_change_data;
-};
-#define E_BINDING_CONTEXT_NUMBER 10
-
-struct _E_Config_KeyBind
-{
- int acn;
- Evas_List *bk_list;
-};
-
-struct _E_Config_Dialog_Data
-{
- Evas_List *key_bindings;
-
- int cur_eckb_kb_sel;
- E_Config_KeyBind *cur_eckb;
- Evas *evas;
-
- int binding_context;
- struct
- {
- int shift;
- int ctrl;
- int alt;
- int win;
- } bind_mod;
- char *key_bind;
- char *key_action;
- char *key_params;
-
- struct
- {
- Evas_Object *ilist;
- /*Evas_Object *btn_add;
- Evas_Object *btn_del;*/
-
- Evas_Object *btn_prev_keybind;
- Evas_Object *btn_next_keybind;
- Evas_Object *btn_add_keybind;
- Evas_Object *btn_del_keybind;
-
- Evas_Object *bind_context[E_BINDING_CONTEXT_NUMBER];
- struct
- {
- Evas_Object *shift;
- Evas_Object *ctrl;
- Evas_Object *alt;
- Evas_Object *win;
- } bind_mod_obj;
- Evas_Object *key_bind;
- Evas_Object *key_action;
- Evas_Object *key_params;
- } gui;
-};
-
-EAPI E_Config_Dialog *
-e_int_config_keybindings(E_Container *con)
-{
- E_Config_Dialog *cfd;
- E_Config_Dialog_View *v;
-
- 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;
-
- cfd = e_config_dialog_new(con, _("Key Binding Settings"), NULL, 0, v, NULL);
- return cfd;
-}
-
-typedef struct
+/*typedef struct
{
char *key;
int modifiers;
int context;
-}KEY_ACTION_BINDING;
-
+}KEY_ACTION_BINDING;*/
typedef struct
{
@@ -185,13 +63,6 @@
int restrictions;
}ACTION;
-#define _DEFAULT_ACTION 0
-#define _NONDEFAULT_ACTION 1
-
-#define EDIT_RESTRICT_NONE (0 << 0)
-#define EDIT_RESTRICT_ACTION (1 << 0)
-#define EDIT_RESTRICT_PARAMS (1 << 1)
-
const ACTION actions_predefined_names[ ] = {
{"Flip Desktop Left", "desk_flip_by", "-1 0", _DEFAULT_ACTION,
EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS },
@@ -335,6 +206,136 @@
{NULL, NULL, NULL, _NONDEFAULT_ACTION, EDIT_RESTRICT_NONE }
};
+struct _E_Smart_Data
+{
+ Evas_Coord x, y, w, h;
+
+ Evas_Object *smart_obj;
+ Evas_Object *box_obj;
+ Evas_List *items;
+ int selected;
+ Evas_Coord icon_w, icon_h;
+ unsigned char selector : 1;
+};
+
+struct _E_Smart_Item
+{
+ E_Smart_Data *sd;
+ Evas_Object *base_obj;
+ Evas_Object *icon_obj;
+ void (*func) (void *data, void *data2);
+ void (*func_hilight) (void *data, void *data2);
+ void *data;
+ void *data2;
+};
+
+struct _E_Widget_IList_Data
+{
+ Evas_Object *o_widget, *o_scrollframe, *o_ilist;
+ Evas_List *callbacks;
+ char **value;
+};
+
+struct _E_Widget_Radio_Data
+{
+ E_Radio_Group *group;
+ Evas_Object *o_radio;
+ int valnum;
+};
+
+struct _E_Widget_Checkbox_Data
+{
+ Evas_Object *o_check;
+ int *valptr;
+};
+
+struct _E_Widget_Button_Data
+{
+ Evas_Object *o_button;
+ Evas_Object *o_icon;
+ void (*func) (void *data, void *data2);
+ void *data;
+ void *data2;
+};
+
+struct _E_Widget_Entry_Data
+{
+ Evas_Object *o_entry;
+ Evas_Object *obj;
+ char **valptr;
+ void (*on_change_func) (void *data, Evas_Object *obj);
+ void *on_change_data;
+};
+
+struct _E_Config_KeyBind
+{
+ int acn;
+ Evas_List *bk_list;
+};
+
+struct _E_Config_Dialog_Data
+{
+ Evas_List *key_bindings;
+
+ int cur_eckb_kb_sel;
+ E_Config_KeyBind *cur_eckb;
+ Evas *evas;
+
+ int binding_context;
+ struct
+ {
+ int shift;
+ int ctrl;
+ int alt;
+ int win;
+ } bind_mod;
+ char *key_bind;
+ char *key_action;
+ char *key_params;
+
+ struct
+ {
+ Evas_Object *ilist;
+ /*Evas_Object *btn_add;
+ Evas_Object *btn_del;*/
+
+ Evas_Object *btn_prev_keybind;
+ Evas_Object *btn_next_keybind;
+ Evas_Object *btn_add_keybind;
+ Evas_Object *btn_del_keybind;
+
+ Evas_Object *bind_context[E_BINDING_CONTEXT_NUMBER];
+ struct
+ {
+ Evas_Object *shift;
+ Evas_Object *ctrl;
+ Evas_Object *alt;
+ Evas_Object *win;
+ } bind_mod_obj;
+ Evas_Object *key_bind;
+ Evas_Object *key_action;
+ Evas_Object *key_params;
+ } gui;
+};
+
+
+EAPI E_Config_Dialog *
+e_int_config_keybindings(E_Container *con)
+{
+ E_Config_Dialog *cfd;
+ E_Config_Dialog_View *v;
+
+ 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;
+
+ cfd = e_config_dialog_new(con, _("Key Binding Settings"), NULL, 0, v, NULL);
+ return cfd;
+}
+
static void
_fill_keybindings_data(E_Config_Dialog_Data *cfdata)
{
@@ -446,9 +447,9 @@
cfdata = E_NEW(E_Config_Dialog_Data, 1);
cfdata->binding_context = E_BINDING_CONTEXT_ANY;
- cfdata->key_bind = NULL;
- cfdata->key_action = NULL;
- cfdata->key_params = NULL;
+ cfdata->key_bind = strdup("");
+ cfdata->key_action = strdup("");
+ cfdata->key_params = strdup("");
return cfdata;
}
@@ -461,12 +462,9 @@
E_Config_Binding_Key *bk;
- if (cfdata->key_bind)
- E_FREE(cfdata->key_bind);
- if (cfdata->key_action)
- E_FREE(cfdata->key_action);
- if (cfdata->key_params)
- E_FREE(cfdata->key_params);
+ E_FREE(cfdata->key_bind);
+ E_FREE(cfdata->key_action);
+ E_FREE(cfdata->key_params);
size = evas_list_count(cfdata->key_bindings);
for (i = 0; i < size; i++)
@@ -480,10 +478,9 @@
bk = evas_list_nth(eckb->bk_list, j);
if (bk)
{
- if (bk->key) E_FREE(bk->key);
- if (bk->action) E_FREE(bk->action);
- if (bk->params) E_FREE(bk->params);
-
+ E_FREE(bk->key);
+ E_FREE(bk->action);
+ E_FREE(bk->params);
E_FREE(bk);
}
}
@@ -558,7 +555,7 @@
}
}
}
-
+ e_config_save_queue();
return 1;
}
@@ -781,7 +778,7 @@
e_widget_table_object_append(oft, of2, 1, 0, 1, 1, 1, 1, 1, 1);
}
e_widget_list_object_append(o, oft, 1, 1, 0.5);
- e_dialog_resizable_set(cfd->dia, 1);
+ e_dialog_resizable_set(cfd->dia, 0);
return o;
}
|