Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_actions.c e_actions.h e_bindings.c e_bindings.h e_border.c e_border.h e_config.c e_config.h e_main.c Log Message: bindings + action system gets its first test run with button bindings. seems to work well. grabs buttons. responds to input events and context. calls appropriate action callbacks. you can add actions fairly easily. the cool bit is that actions can be added on the fly... like ooh - lets say from... MODULES :) ie module could load and enable then add lots of custom actions. these could be custom in c code in the module.. OR... they could even be bits of embryo loaded ... or perl... or python... or... anyway - you can figure it out. it's justa bi-product of doing the action system this way. (btw - the actions can be overridden too by modules so a module could change a default action or even just augment it...) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_actions.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_actions.c 26 Apr 2005 15:06:05 -0000 1.1 +++ e_actions.c 29 Apr 2005 16:04:42 -0000 1.2 @@ -3,28 +3,175 @@ */ #include "e.h" +#define INITS +#define ACT_GO(name) \ + { \ + act = e_action_set(#name); \ + if (act) act->func.go = _e_actions_act_##name##_go; \ + } +#define ACT_FN_GO(act) \ + static void _e_actions_act_##act##_go(E_Object *obj, char *params) +#define ACT_GO_MOUSE(name) \ + { \ + act = e_action_set(#name); \ + if (act) act->func.go_mouse = _e_actions_act_##name##_go_mouse; \ + } +#define ACT_FN_GO_MOUSE(act) \ + static void _e_actions_act_##act##_go_mouse(E_Object *obj, char *params, Ecore_X_Event_Mouse_Button_Down *ev) +#define ACT_END(name) \ + { \ + act = e_action_set(#name); \ + if (act) act->func.end = _e_actions_act_##name##_end; \ + } +#define ACT_FN_END(act) \ + static void _e_actions_act_##act##_end(E_Object *obj, char *params) +#define ACT_END_MOUSE(name) \ + { \ + act = e_action_set(#name); \ + if (act) act->func.end_mouse = _e_actions_act_##name##_end_mouse; \ + } +#define ACT_FN_END_MOUSE(act) \ + static void _e_actions_act_##act##_end_mouse(E_Object *obj, char *params, Ecore_X_Event_Mouse_Button_Up *ev) + /* local subsystem functions */ +/* to save writing this in N places - the sctions are defined here */ +/***************************************************************************/ +ACT_FN_GO(window_move) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_move_begin((E_Border *)obj, NULL); +} +ACT_FN_GO_MOUSE(window_move) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_move_begin((E_Border *)obj, ev); +} +ACT_FN_END(window_move) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_move_end((E_Border *)obj, NULL); +} +ACT_FN_END_MOUSE(window_move) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_move_end((E_Border *)obj, ev); +} + +/***************************************************************************/ +ACT_FN_GO(window_resize) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_resize_begin((E_Border *)obj, NULL); +} +ACT_FN_GO_MOUSE(window_resize) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_resize_begin((E_Border *)obj, ev); +} +ACT_FN_END(window_resize) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_resize_end((E_Border *)obj, NULL); +} +ACT_FN_END_MOUSE(window_resize) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_resize_end((E_Border *)obj, ev); +} + +/***************************************************************************/ +ACT_FN_GO(window_menu) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_menu_begin((E_Border *)obj, NULL); +} +ACT_FN_GO_MOUSE(window_menu) +{ + if (!obj) obj = E_OBJECT(e_border_focused_get()); + if (obj->type != E_BORDER_TYPE) return; + e_border_act_menu_begin((E_Border *)obj, ev); +} + /* local subsystem globals */ +static Evas_Hash *actions = NULL; /* externally accessible functions */ int e_actions_init(void) { + E_Action *act; + + ACT_GO(window_move); + ACT_GO_MOUSE(window_move); + ACT_END(window_move); + ACT_END_MOUSE(window_move); + + ACT_GO(window_resize); + ACT_GO_MOUSE(window_resize); + ACT_END(window_resize); + ACT_END_MOUSE(window_resize); + + ACT_GO(window_menu); + ACT_GO_MOUSE(window_menu); + return 1; } int e_actions_shutdown(void) { + /* FIXME: free actions */ return 1; } E_Action * e_action_find(char *name) { - return NULL; + E_Action *act; + + act = evas_hash_find(actions, name); + return act; +} + +E_Action * +e_action_set(char *name) +{ + E_Action *act; + + act = e_action_find(name); + if (!act) + { + act = calloc(1, sizeof(E_Action)); + if (!act) return NULL; + act->name = strdup(name); + actions = evas_hash_add(actions, name, act); + } + return act; +} + +void +e_action_del(char *name) +{ + E_Action *act; + + act = e_action_find(name); + if (act) + { + actions = evas_hash_del(actions, name, act); + IF_FREE(act->name); + free(act); + } } /* local subsystem functions */ =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_actions.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_actions.h 26 Apr 2005 15:06:05 -0000 1.1 +++ e_actions.h 29 Apr 2005 16:04:42 -0000 1.2 @@ -11,6 +11,8 @@ struct { void (*go) (E_Object *obj, char *params); void (*go_mouse) (E_Object *obj, char *params, Ecore_X_Event_Mouse_Button_Down *ev); + void (*end) (E_Object *obj, char *params); + void (*end_mouse) (E_Object *obj, char *params, Ecore_X_Event_Mouse_Button_Up *ev); } func; }; @@ -22,6 +24,8 @@ EAPI int e_actions_shutdown(void); EAPI E_Action *e_action_find(char *name); - +EAPI E_Action *e_action_set(char *name); +EAPI void e_action_del(char *name); + #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_bindings.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_bindings.c 26 Apr 2005 15:06:05 -0000 1.4 +++ e_bindings.c 29 Apr 2005 16:04:42 -0000 1.5 @@ -51,6 +51,15 @@ int e_bindings_init(void) { + e_bindings_mouse_add(E_BINDING_CONTEXT_BORDER, + 1, E_BINDING_MODIFIER_ALT, 0, + "window_move", ""); + e_bindings_mouse_add(E_BINDING_CONTEXT_BORDER, + 2, E_BINDING_MODIFIER_ALT, 0, + "window_resize", ""); + e_bindings_mouse_add(E_BINDING_CONTEXT_BORDER, + 3, E_BINDING_MODIFIER_ALT, 0, + "window_menu", ""); return 1; } @@ -65,7 +74,6 @@ { E_Binding_Mouse *bind; - if (!params) params = ""; bind = calloc(1, sizeof(E_Binding_Mouse)); bind->ctxt = ctxt; bind->button = button; @@ -81,7 +89,6 @@ { Evas_List *l; - if (!params) params = ""; for (l = mouse_bindings; l; l = l->next) { E_Binding_Mouse *bind; @@ -105,7 +112,7 @@ e_bindings_mouse_grab(E_Binding_Context ctxt, Ecore_X_Window win) { Evas_List *l; - + for (l = mouse_bindings; l; l = l->next) { E_Binding_Mouse *bind; @@ -121,7 +128,7 @@ if (bind->mod & E_BINDING_MODIFIER_ALT) mod |= ECORE_X_MODIFIER_ALT; if (bind->mod & E_BINDING_MODIFIER_WIN) mod |= ECORE_X_MODIFIER_WIN; ecore_x_window_button_grab(win, bind->button, - ECORE_X_EVENT_MASK_KEY_DOWN | + ECORE_X_EVENT_MASK_MOUSE_DOWN | ECORE_X_EVENT_MASK_MOUSE_UP | ECORE_X_EVENT_MASK_MOUSE_MOVE, mod, bind->any_mod); @@ -192,6 +199,44 @@ return 0; } +int +e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_X_Event_Mouse_Button_Up *ev) +{ + E_Binding_Modifier mod = 0; + Evas_List *l; + + if (ev->modifiers & ECORE_X_MODIFIER_SHIFT) mod |= E_BINDING_MODIFIER_SHIFT; + if (ev->modifiers & ECORE_X_MODIFIER_CTRL) mod |= E_BINDING_MODIFIER_CTRL; + if (ev->modifiers & ECORE_X_MODIFIER_ALT) mod |= E_BINDING_MODIFIER_ALT; + if (ev->modifiers & ECORE_X_MODIFIER_WIN) mod |= E_BINDING_MODIFIER_WIN; + for (l = mouse_bindings; l; l = l->next) + { + E_Binding_Mouse *bind; + + bind = l->data; + if ((bind->button == ev->button) && + ((bind->any_mod) || (bind->mod == mod))) + { + if (_e_bindings_context_match(bind->ctxt, ctxt)) + { + E_Action *act; + + act = e_action_find(bind->action); + if (act) + { + if (act->func.end_mouse) + act->func.end_mouse(obj, bind->params, ev); + else if (act->func.end) + act->func.end(obj, bind->params); + return 1; + } + return 0; + } + } + } + return 0; +} + /* FIXME: finish off key bindings */ int e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_X_Event_Key_Down *ev) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_bindings.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_bindings.h 26 Apr 2005 15:06:05 -0000 1.4 +++ e_bindings.h 29 Apr 2005 16:04:42 -0000 1.5 @@ -31,9 +31,16 @@ EAPI int e_bindings_init(void); EAPI int e_bindings_shutdown(void); +EAPI void e_bindings_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, char *action, char *params); +EAPI void e_bindings_mouse_del(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, char *action, char *params); +EAPI void e_bindings_mouse_grab(E_Binding_Context ctxt, Ecore_X_Window win); +EAPI void e_bindings_mouse_ungrab(E_Binding_Context ctxt, Ecore_X_Window win); EAPI int e_bindings_mouse_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_X_Event_Mouse_Button_Down *ev); +EAPI int e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_X_Event_Mouse_Button_Up *ev); + EAPI int e_bindings_key_down_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_X_Event_Key_Down *ev); -EAPI int e_bindings_signale_handle(E_Binding_Context ctxt, E_Object *obj, char *sig, char *src); + +EAPI int e_bindings_signal_handle(E_Binding_Context ctxt, E_Object *obj, char *sig, char *src); #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.167 retrieving revision 1.168 diff -u -3 -r1.167 -r1.168 --- e_border.c 29 Apr 2005 10:03:11 -0000 1.167 +++ e_border.c 29 Apr 2005 16:04:42 -0000 1.168 @@ -200,7 +200,6 @@ E_Border *bd; Ecore_X_Window_Attributes *att; Evas_List *list; - E_Config_Binding *eb; unsigned int managed, desk[2]; int deskx, desky; @@ -214,16 +213,7 @@ bd->h = 1; bd->win = ecore_x_window_override_new(bd->container->win, 0, 0, bd->w, bd->h); ecore_x_window_shape_events_select(bd->win, 1); - /* Bindings */ - for (list = e_config->bindings; list; list = list->next) - { - eb = list->data; - ecore_x_window_button_grab(bd->win, - eb->button, - eb->mask, - eb->modifiers, - 0); - } + e_bindings_mouse_grab(E_BINDING_CONTEXT_BORDER, bd->win); bd->bg_ecore_evas = ecore_evas_software_x11_new(NULL, bd->win, 0, 0, bd->w, bd->h); ecore_evas_software_x11_direct_resize_set(bd->bg_ecore_evas, 1); e_canvas_add(bd->bg_ecore_evas); @@ -1188,12 +1178,109 @@ return borders; } +void +e_border_act_move_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev) +{ + if (!bd->moving) + { + bd->moving = 1; + if (ev) + { + char source[256]; + + snprintf(source, sizeof(source) - 1, "mouse,%i", ev->button); + _e_border_moveinfo_gather(bd, source); + } + e_border_raise(bd); + _e_border_move_begin(bd); + } +} + +void +e_border_act_move_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev) +{ + if (bd->moving) + { + bd->moving = 0; + _e_border_move_end(bd); + e_zone_flip_coords_handle(bd->zone, -1, -1); + } +} + +void +e_border_act_resize_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev) +{ + if (bd->resize_mode == RESIZE_NONE) + { + if (bd->mouse.current.mx < (bd->x + bd-> w / 2)) + { + if (bd->mouse.current.my < (bd->y + bd->h / 2)) + { + bd->resize_mode = RESIZE_TL; + GRAV_SET(bd, ECORE_X_GRAVITY_SE); + } + else + { + bd->resize_mode = RESIZE_BL; + GRAV_SET(bd, ECORE_X_GRAVITY_NE); + } + } + else + { + if (bd->mouse.current.my < (bd->y + bd->h / 2)) + { + bd->resize_mode = RESIZE_TR; + GRAV_SET(bd, ECORE_X_GRAVITY_SW); + } + else + { + bd->resize_mode = RESIZE_BR; + GRAV_SET(bd, ECORE_X_GRAVITY_NW); + } + } + if (ev) + { + char source[256]; + + snprintf(source, sizeof(source) - 1, "mouse,%i", ev->button); + _e_border_moveinfo_gather(bd, source); + } + e_border_raise(bd); + _e_border_resize_begin(bd); + } +} + +void +e_border_act_resize_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev) +{ + if (bd->resize_mode != RESIZE_NONE) + { + bd->resize_mode = RESIZE_NONE; + _e_border_resize_end(bd); + } +} + +void +e_border_act_menu_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev) +{ + if (ev) + { + _e_border_menu_show(bd, bd->x + ev->x, bd->y + ev->y); + } + else + { + int x, y; + + ecore_x_pointer_last_xy_get(&x, &y); + _e_border_menu_show(bd, x, y); + } +} + /* local subsystem functions */ static void _e_border_free(E_Border *bd) { Evas_List *list; - E_Config_Binding *eb; if (resize == bd) _e_border_resize_end(bd); @@ -1233,15 +1320,6 @@ e_canvas_del(bd->bg_ecore_evas); ecore_evas_free(bd->bg_ecore_evas); ecore_x_window_del(bd->client.shell_win); - /* Bindings */ - for (list = e_config->bindings; list; list = list->next) - { - eb = list->data; - ecore_x_window_button_ungrab(bd->win, - eb->button, - eb->modifiers, - 0); - } ecore_x_window_del(bd->win); bd->container->clients = evas_list_remove(bd->container->clients, bd); @@ -2235,15 +2313,9 @@ { Ecore_X_Event_Mouse_Button_Down *ev; E_Border *bd; - Evas_List *list; - E_Config_Binding *eb; - int x, y, w, h; - char source[16]; - int modifiers; ev = event; bd = data; - modifiers = ev->modifiers; if (ev->event_win == bd->win) { if ((ev->button >= 1) && (ev->button <= 3)) @@ -2257,67 +2329,8 @@ } bd->mouse.current.mx = ev->root.x; bd->mouse.current.my = ev->root.y; - /* Bindings */ - /* Remove LOCK keys */ - modifiers &= ~(ECORE_X_LOCK_SCROLL|ECORE_X_LOCK_NUM|ECORE_X_LOCK_CAPS); - for (list = e_config->bindings; list; list = list->next) + if (e_bindings_mouse_down_event_handle(E_BINDING_CONTEXT_BORDER, E_OBJECT(bd), ev)) { - eb = list->data; - if ((ev->button == eb->button) && (modifiers == eb->modifiers)) - { - snprintf(source, sizeof(source) - 1, "mouse,%d", eb->button); - switch (eb->action) - { - case E_BINDING_ACTION_MENU: - _e_border_menu_show(bd, bd->x + ev->x, bd->y + ev->y); - break; - case E_BINDING_ACTION_MOVE: - if (!bd->moving) - { - bd->moving = 1; - _e_border_moveinfo_gather(bd, source); - e_border_raise(bd); - _e_border_move_begin(bd); - } - break; - case E_BINDING_ACTION_RESIZE: - if (bd->resize_mode == RESIZE_NONE) - { - ecore_x_window_geometry_get(bd->win, &x, &y, &w, &h); - if (bd->mouse.current.mx < (x + w/2)) - { - if (bd->mouse.current.my < (y + h/2)) - { - bd->resize_mode = RESIZE_TL; - GRAV_SET(bd, ECORE_X_GRAVITY_SE); - } - else - { - bd->resize_mode = RESIZE_BL; - GRAV_SET(bd, ECORE_X_GRAVITY_NE); - } - } - else - { - if (bd->mouse.current.my < (y + h/2)) - { - bd->resize_mode = RESIZE_TR; - GRAV_SET(bd, ECORE_X_GRAVITY_SW); - } - else - { - bd->resize_mode = RESIZE_BR; - GRAV_SET(bd, ECORE_X_GRAVITY_NW); - } - } - _e_border_moveinfo_gather(bd, source); - e_border_raise(bd); - _e_border_resize_begin(bd); - } - } - /* We only want one action */ - break; - } } } if (ev->win != bd->event_win) return 1; @@ -2355,8 +2368,6 @@ { Ecore_X_Event_Mouse_Button_Up *ev; E_Border *bd; - Evas_List *list; - E_Config_Binding *eb; ev = event; bd = data; @@ -2371,33 +2382,8 @@ } bd->mouse.current.mx = ev->root.x; bd->mouse.current.my = ev->root.y; - /* Bindings */ - for (list = e_config->bindings; list; list = list->next) + if (e_bindings_mouse_up_event_handle(E_BINDING_CONTEXT_BORDER, E_OBJECT(bd), ev)) { - eb = list->data; - if (ev->button == eb->button) - { - switch (eb->action) - { - case E_BINDING_ACTION_MOVE: - if (bd->moving) - { - bd->moving = 0; - _e_border_move_end(bd); - e_zone_flip_coords_handle(bd->zone, -1, -1); - } - break; - case E_BINDING_ACTION_RESIZE: - if (bd->resize_mode != RESIZE_NONE) - { - bd->resize_mode = RESIZE_NONE; - _e_border_resize_end(bd); - } - break; - default: - break; - } - } } } if (ev->win != bd->event_win) return 1; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- e_border.h 29 Apr 2005 08:02:29 -0000 1.37 +++ e_border.h 29 Apr 2005 16:04:42 -0000 1.38 @@ -347,6 +347,12 @@ EAPI Evas_List *e_border_clients_get(); +EAPI void e_border_act_move_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev); +EAPI void e_border_act_move_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev); +EAPI void e_border_act_resize_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev); +EAPI void e_border_act_resize_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev); +EAPI void e_border_act_menu_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev); + extern EAPI int E_EVENT_BORDER_RESIZE; extern EAPI int E_EVENT_BORDER_MOVE; extern EAPI int E_EVENT_BORDER_ADD; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- e_config.c 28 Apr 2005 06:27:25 -0000 1.30 +++ e_config.c 29 Apr 2005 16:04:42 -0000 1.31 @@ -24,7 +24,6 @@ static E_Config_DD *_e_config_edd = NULL; static E_Config_DD *_e_config_module_edd = NULL; -static E_Config_DD *_e_config_binding_edd = NULL; static E_Config_DD *_e_config_font_fallback_edd = NULL; static E_Config_DD *_e_config_font_default_edd = NULL; @@ -40,16 +39,6 @@ E_CONFIG_VAL(D, T, name, STR); E_CONFIG_VAL(D, T, enabled, UCHAR); - _e_config_binding_edd = E_CONFIG_DD_NEW("E_Config_Binding", E_Config_Binding); -#undef T -#undef D -#define T E_Config_Binding -#define D _e_config_binding_edd - E_CONFIG_VAL(D, T, button, INT); - E_CONFIG_VAL(D, T, mask, INT); - E_CONFIG_VAL(D, T, modifiers, INT); - E_CONFIG_VAL(D, T, action, INT); - _e_config_font_default_edd = E_CONFIG_DD_NEW("E_Font_Default", E_Font_Default); #undef T @@ -86,7 +75,6 @@ E_CONFIG_VAL(D, T, zone_desks_x_count, INT); E_CONFIG_VAL(D, T, zone_desks_y_count, INT); E_CONFIG_LIST(D, T, modules, _e_config_module_edd); - E_CONFIG_LIST(D, T, bindings, _e_config_binding_edd); E_CONFIG_LIST(D, T, font_fallbacks, _e_config_font_fallback_edd); E_CONFIG_LIST(D, T, font_defaults, _e_config_font_default_edd); @@ -141,34 +129,6 @@ e_config->modules = evas_list_append(e_config->modules, em); } { - E_Config_Binding *eb; - - eb = E_NEW(E_Config_Binding, 1); - eb->button = 1; - eb->mask = ECORE_X_EVENT_MASK_MOUSE_DOWN | - ECORE_X_EVENT_MASK_MOUSE_UP | - ECORE_X_EVENT_MASK_MOUSE_MOVE; - eb->modifiers = ECORE_X_MODIFIER_ALT; - eb->action = E_BINDING_ACTION_MOVE; - e_config->bindings = evas_list_append(e_config->bindings, eb); - - eb = E_NEW(E_Config_Binding, 1); - eb->button = 2; - eb->mask = ECORE_X_EVENT_MASK_MOUSE_DOWN | - ECORE_X_EVENT_MASK_MOUSE_UP | - ECORE_X_EVENT_MASK_MOUSE_MOVE; - eb->modifiers = ECORE_X_MODIFIER_ALT; - eb->action = E_BINDING_ACTION_RESIZE; - e_config->bindings = evas_list_append(e_config->bindings, eb); - - eb = E_NEW(E_Config_Binding, 1); - eb->button = 3; - eb->mask = ECORE_X_EVENT_MASK_MOUSE_DOWN; - eb->modifiers = ECORE_X_MODIFIER_ALT; - eb->action = E_BINDING_ACTION_MENU; - e_config->bindings = evas_list_append(e_config->bindings, eb); - } - { E_Font_Fallback* eff; eff = E_NEW(E_Font_Fallback, 1); @@ -232,14 +192,6 @@ E_FREE(em->name); E_FREE(em); } - while (e_config->bindings) - { - E_Config_Binding *eb; - - eb = e_config->bindings->data; - e_config->bindings = evas_list_remove_list(e_config->bindings, e_config->bindings); - E_FREE(eb); - } while (e_config->font_fallbacks) { E_Font_Fallback *eff; @@ -265,7 +217,6 @@ } E_CONFIG_DD_FREE(_e_config_edd); E_CONFIG_DD_FREE(_e_config_module_edd); - E_CONFIG_DD_FREE(_e_config_binding_edd); E_CONFIG_DD_FREE(_e_config_font_default_edd); E_CONFIG_DD_FREE(_e_config_font_fallback_edd); return 1; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_config.h 2 Apr 2005 16:40:30 -0000 1.12 +++ e_config.h 29 Apr 2005 16:04:42 -0000 1.13 @@ -33,16 +33,8 @@ typedef struct _E_Config E_Config; typedef struct _E_Config_Module E_Config_Module; -typedef struct _E_Config_Binding E_Config_Binding; typedef Eet_Data_Descriptor E_Config_DD; -typedef enum _E_Binding_Action -{ - E_BINDING_ACTION_MOVE, - E_BINDING_ACTION_RESIZE, - E_BINDING_ACTION_MENU -} E_Binding_Action; - #else #ifndef E_CONFIG_H #define E_CONFIG_H @@ -63,7 +55,6 @@ int zone_desks_y_count; int use_virtual_roots; Evas_List *modules; - Evas_List *bindings; Evas_List *font_fallbacks; Evas_List *font_defaults; }; @@ -74,15 +65,6 @@ unsigned char enabled; }; -struct _E_Config_Binding -{ - int button; - Ecore_X_Event_Mask mask; - int modifiers; - E_Binding_Action action; - -}; - EAPI int e_config_init(void); EAPI int e_config_shutdown(void); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v retrieving revision 1.69 retrieving revision 1.70 diff -u -3 -r1.69 -r1.70 --- e_main.c 26 Apr 2005 15:06:06 -0000 1.69 +++ e_main.c 29 Apr 2005 16:04:43 -0000 1.70 @@ -258,6 +258,20 @@ _e_main_shutdown(-1); } _e_main_shutdown_push(e_config_shutdown); + /* init actions system */ + if (!e_actions_init()) + { + e_error_message_show(_("Enlightenment cannot set up its actions system.")); + _e_main_shutdown(-1); + } + _e_main_shutdown_push(e_actions_shutdown); + /* init bindings system */ + if (!e_bindings_init()) + { + e_error_message_show(_("Enlightenment cannot set up its bindings system.")); + _e_main_shutdown(-1); + } + _e_main_shutdown_push(e_bindings_shutdown); /* setup edje to animate @ e_config->framerate frames per sec. */ edje_frametime_set(1.0 / e_config->framerate); @@ -307,20 +321,6 @@ /* tell the error system that it can use gui dialogs now */ e_error_gui_set(1); - /* init actions system */ - if (!e_actions_init()) - { - e_error_message_show(_("Enlightenment cannot set up its actions system.")); - _e_main_shutdown(-1); - } - _e_main_shutdown_push(e_actions_shutdown); - /* init bindings system */ - if (!e_bindings_init()) - { - e_error_message_show(_("Enlightenment cannot set up its bindings system.")); - _e_main_shutdown(-1); - } - _e_main_shutdown_push(e_bindings_shutdown); /* setup e ipc service */ if (!_e_main_ipc_init()) { ------------------------------------------------------- SF.Net email is sponsored by: Tell us your software development plans! Take this survey and enter to win a one-year sub to SourceForge.net Plus IDC's 2005 look-ahead and a copy of this survey Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs