On Fri, 1 May 2009 11:02:59 +0400 Sergey Semernin <[email protected]>
said:
request. can you attach your patch, not inline it? line wrapping destroys it.
> Hello, All.
>
> This patch adding keyboard shortcuts to efm_nav module.
> When efm_nav placed on efm2 window toolbar, next shortcuts are activated:
> Alt+Left -- backward in chdir's history,
> Alt+Right -- forward in chdir's history,
> Alt+Up -- go to parent dir,
> Control+r -- refresh view of current dir.
>
> e_mod_main.c | 39 +++++++++++++++++++++++++++++++++++++--
> 1 file changed, 37 insertions(+), 2 deletions(-)
>
> Index: E-MODULES-EXTRA/efm_nav/src/e_mod_main.c
> ===================================================================
> --- E-MODULES-EXTRA/efm_nav/src/e_mod_main.c (revision 40471)
> +++ E-MODULES-EXTRA/efm_nav/src/e_mod_main.c (working copy)
> @@ -23,6 +23,8 @@
> static const char *_gc_id_new (E_Gadcon_Client_Class
> *client_class);
> static void _cb_mouse_down (void *data, Evas *e,
> Evas_Object *obj, void
> *event_info); +static void _cb_key_down (void *data, Evas *e,
> + Evas_Object *obj, void
> *event_info);
> static void _cb_back_click (void *data, Evas_Object *obj,
> const char *emission,
> const char *source);
> @@ -58,6 +60,7 @@
> _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style)
> {
> Instance *inst = NULL;
> + Evas_Object *o_fm;
> char buf[4096];
>
> inst = E_NEW(Instance, 1);
> @@ -135,6 +138,10 @@
>
> evas_object_event_callback_add(inst->o_base, EVAS_CALLBACK_MOUSE_DOWN,
> _cb_mouse_down, inst);
> + o_fm = e_toolbar_fm2_get(inst->tbar);
> + if (o_fm)
> + evas_object_event_callback_add(o_fm, EVAS_CALLBACK_KEY_DOWN,
> + _cb_key_down, inst);
>
> edje_object_signal_emit(inst->o_back, "e,state,disabled", "e");
> edje_object_message_signal_process(inst->o_back);
> @@ -149,10 +156,14 @@
> _gc_shutdown(E_Gadcon_Client *gcc)
> {
> Instance *inst = NULL;
> + Evas_Object *o_fm;
>
> inst = gcc->data;
> if (!inst) return;
> instances = eina_list_remove(instances, inst);
> + o_fm = e_toolbar_fm2_get(inst->tbar);
> + if (o_fm)
> + evas_object_event_callback_del(o_fm, EVAS_CALLBACK_KEY_DOWN,
> _cb_key_down);
> if (inst->history) ecore_list_destroy(inst->history);
> if (inst->o_favorites) evas_object_del(inst->o_favorites);
> if (inst->o_back) evas_object_del(inst->o_back);
> @@ -175,11 +186,11 @@
> {
> case E_GADCON_ORIENT_TOP:
> case E_GADCON_ORIENT_BOTTOM:
> - e_gadcon_client_aspect_set(gcc, 16 * 3, 16);
> + e_gadcon_client_aspect_set(gcc, 16 * 4, 16);
> break;
> case E_GADCON_ORIENT_LEFT:
> case E_GADCON_ORIENT_RIGHT:
> - e_gadcon_client_aspect_set(gcc, 16, 16 * 3);
> + e_gadcon_client_aspect_set(gcc, 16, 16 * 4);
> break;
> default:
> break;
> @@ -250,6 +261,30 @@
> }
>
> /* local functions */
> +static void
> +_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
> +{
> + Instance *inst;
> + Evas_Event_Key_Down *ev;
> +
> + inst = data;
> + ev = event_info;
> + if (evas_key_modifier_is_set(ev->modifiers, "Alt"))
> + {
> + if (!strcmp(ev->key, "Left"))
> + _cb_back_click(inst, obj, "e,action,click", "e");
> + else if (!strcmp(ev->key, "Right"))
> + _cb_forward_click(inst, obj, "e,action,click", "e");
> + else if (!strcmp(ev->key, "Up"))
> + _cb_up_click(inst, obj, "e,action,click", "e");
> + }
> + else if (evas_key_modifier_is_set(ev->modifiers, "Control"))
> + {
> + if (!strcmp(ev->key, "r"))
> + _cb_refresh_click(inst, obj, "e,action,click", "e");
> + }
> +}
> +
> static void
> _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
> {
>
>
> Sincerely yours, Sergey.
>
> --
> Jabber/XMPP: [email protected]
> Cellular: +7-909-206-5992
>
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) [email protected]
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables
unlimited royalty-free distribution of the report engine
for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel