Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On Mon, 16 Jul 2007 11:02:26 -0500 Nathan Ingersoll [EMAIL PROTECTED] babbled: A related but slightly different issue is triggering evas events directly on a specific object. There are times where it would be very helpful to simply dispatch an event directly to a specific object rather than feeding the event into evas and relying on it's picking to select the one you want. Does anyone see a good reason we couldn't extend the evas API to support this? i see no reason why not - it won't break anything, and can be useful. :) - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)[EMAIL PROTECTED] 裸好多 Tokyo, Japan (東京 日本) - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On Thu, 19 Jul 2007 18:45:52 -0300 Gustavo Sverzut Barbieri [EMAIL PROTECTED] babbled: On 7/18/07, Brian Mattern [EMAIL PROTECTED] wrote: On Wed, Jul 18, 2007 at 12:56:17AM -0300, Gustavo Sverzut Barbieri wrote: On 7/18/07, Brian Mattern [EMAIL PROTECTED] wrote: On Tue, Jul 17, 2007 at 06:15:51PM -0300, Gustavo Sverzut Barbieri wrote: Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. I don't like evas_object_mouse_grab_set() very much, it looks like mouse will be immediately grab, which is not the case. But I don't have any better word for that. snip + EAPI void evas_object_mouse_grab_set (Evas_Object *obj, Evas_Bool no_mouse_grab); + EAPI Evas_Bool evas_object_mouse_grab_get (Evas_Object *obj); Maybe evas_object_auto_grab_set(Evas_Object *obj, Evas_Bool auto_grab) ? (or _mouse_auto_grab_) it's not that better... other suggestions? can_grab_mouse? That makes even less sense. Maybe grab isn't a good choice. Really we're picking between two alternate methods of presenting mouse events. So, maybe evas_object_mouse_event_mode_set(obj, EVAS_EVENT_MODE_X) I'm at a loss atm as to what the two names should be though. (Maybe ORIGINAL and RAW... not happy with those...) Whatever we call it, the second parameter should NOT be no_*. It should be TRUE for grab the mouse, and simply default to TRUE. yes, I agree, but how about edje files? Can I rely on people updating their edje files? Remember that edje files will not be recompiled since they have not changed, users may issue make clean to get it updated. For edje files, you either need compatibility code (where the version is checked on load and the value is set properly), OR you can just make the edje option 'negative' (it doesn't have to be the same as the c api). However, with the above suggestion for an API, the 'original' mode would just be equal to 0. Ok, anyone more like it like Brian? I don't. Any other ideas? I'll wait until sunday, but it would be great if it don't last that long, my virtual keyboard demo is almost ready, just some images and this to be in then I can release it! :-) http://barbieri-playground.googlecode.com/svn/efl-tests/vkbd/ I like brian's mode api idea. basically evas adopts a grab policy similar to X11 (and in X it's termed mouse grabbing - in this case implicit grabs). so i would go typedef enum _Evas_Object_Pointer_Mode { EVAS_OBJECT_POINTER_MODE_AUTOGRAB, EVAS_OBJECT_POINTER_MODE_NOGRAB } Evas_Object_Pointer_Mode; EAPI void evas_object_pointer_mode_set(Evas_Object *obj, Evas_Object_Pointer_Mode mode); EAPI Evas_Object_Pointer_Mode evas_object_pointer_mode_get(Evas_Object *obj); if needed we can expand over time. otherwise the internal logic can be as you have written it in your patch gustavo :) as for edje - make it: pointer_mode: AUTOGRAB; pointer_mode: NOGRAB; etc. :) this works well with the default eet return of 0 if not provided. (otherwise according to your question of how to do this if the default should be 1 to on would be to use 1 == on, 2 == off, 0 == unknown in the edje data). -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)[EMAIL PROTECTED] 裸好多 Tokyo, Japan (東京 日本) - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On 7/18/07, Brian Mattern [EMAIL PROTECTED] wrote: On Wed, Jul 18, 2007 at 12:56:17AM -0300, Gustavo Sverzut Barbieri wrote: On 7/18/07, Brian Mattern [EMAIL PROTECTED] wrote: On Tue, Jul 17, 2007 at 06:15:51PM -0300, Gustavo Sverzut Barbieri wrote: Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. I don't like evas_object_mouse_grab_set() very much, it looks like mouse will be immediately grab, which is not the case. But I don't have any better word for that. snip + EAPI void evas_object_mouse_grab_set (Evas_Object *obj, Evas_Bool no_mouse_grab); + EAPI Evas_Bool evas_object_mouse_grab_get (Evas_Object *obj); Maybe evas_object_auto_grab_set(Evas_Object *obj, Evas_Bool auto_grab) ? (or _mouse_auto_grab_) it's not that better... other suggestions? can_grab_mouse? That makes even less sense. Maybe grab isn't a good choice. Really we're picking between two alternate methods of presenting mouse events. So, maybe evas_object_mouse_event_mode_set(obj, EVAS_EVENT_MODE_X) I'm at a loss atm as to what the two names should be though. (Maybe ORIGINAL and RAW... not happy with those...) Whatever we call it, the second parameter should NOT be no_*. It should be TRUE for grab the mouse, and simply default to TRUE. yes, I agree, but how about edje files? Can I rely on people updating their edje files? Remember that edje files will not be recompiled since they have not changed, users may issue make clean to get it updated. For edje files, you either need compatibility code (where the version is checked on load and the value is set properly), OR you can just make the edje option 'negative' (it doesn't have to be the same as the c api). However, with the above suggestion for an API, the 'original' mode would just be equal to 0. Ok, anyone more like it like Brian? I don't. Any other ideas? I'll wait until sunday, but it would be great if it don't last that long, my virtual keyboard demo is almost ready, just some images and this to be in then I can release it! :-) http://barbieri-playground.googlecode.com/svn/efl-tests/vkbd/ -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On 7/14/07, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: On 7/14/07, Lars Munch [EMAIL PROTECTED] wrote: Hi Gustavo On Fri, Jul 13, 2007 at 07:53:58PM -0300, Gustavo Sverzut Barbieri wrote: Ok, reading evas docs it's really the expected behavior, at least it's documented: * EVAS_CALLBACK_MOUSE_OUT: event_info = pointer to Evas_Event_Mouse_Out * * ... Note that no out events will be * reported if the mouse pointer is implicitly grabbed to an object (the * mouse buttons are down at all and any were pressed on that object). An * out event will be reported as soon as the mouse is no longer grabbed (no * mouse buttons are depressed). Out events will be reported once all buttons * are released, if the mouse has left the object. So, how to solve it without brake every existent thing that depends on this? As you can see from this post I had a similar problem some months ago: http://article.gmane.org/gmane.comp.window-managers.enlightenment.devel/12444/match= I was also creating a virtual keyboard for a touchscreen and it was also highly inspirred by the iPhone keyboard. I think the current behaviour are good for some parts like sliders, but for other pars like push buttons I would like to be able to get an out event as soon at the mouse leaves the part (clicked or not). Maybe we could add an ungrab or regrab function? yes, maybe mouse_grab=0|1 and in evas test for this flag being set. BUT, i already tried a quick hack to avoid mouse_grabbed lines and it didn't work, maybe it's not that easy or I did some mistake, again a _quick_ hack :-P Ok, it turned out to be easy to extend this with mouse_grab idea, I'd like some review on these patches, but I've tested them together with an etk application (edje_viewer) and it seems to work fine. Patches are attached as TXT so gmail recognizes them as text/plain and avoid them being stripped by e-devel mail list. Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. I don't like evas_object_mouse_grab_set() very much, it looks like mouse will be immediately grab, which is not the case. But I don't have any better word for that. -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 ? configure.addopts ? configure.addopts-i686 Index: src/lib/Evas.h === RCS file: /var/cvs/e/e17/libs/evas/src/lib/Evas.h,v retrieving revision 1.100 diff -u -p -r1.100 Evas.h --- src/lib/Evas.h 10 Jul 2007 00:13:25 - 1.100 +++ src/lib/Evas.h 17 Jul 2007 21:08:04 - @@ -766,6 +766,9 @@ extern C { EAPI Evas_Bool evas_object_repeat_events_get (Evas_Object *obj); EAPI void evas_object_propagate_events_set (Evas_Object *obj, Evas_Bool prop); EAPI Evas_Bool evas_object_propagate_events_get (Evas_Object *obj); + EAPI void evas_object_mouse_grab_set(Evas_Object *obj, Evas_Bool no_mouse_grab); + EAPI Evas_Bool evas_object_mouse_grab_get(Evas_Object *obj); + EAPI void evas_object_event_callback_add(Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info), const void *data); EAPI void *evas_object_event_callback_del(Evas_Object *obj, Evas_Callback_Type type, void (*func) (void *data, Evas *e, Evas_Object *obj, void *event_info)); Index: src/lib/canvas/evas_callbacks.c === RCS file: /var/cvs/e/e17/libs/evas/src/lib/canvas/evas_callbacks.c,v retrieving revision 1.31 diff -u -p -r1.31 evas_callbacks.c --- src/lib/canvas/evas_callbacks.c 30 Apr 2007 04:22:42 - 1.31 +++ src/lib/canvas/evas_callbacks.c 17 Jul 2007 21:08:04 - @@ -218,12 +218,13 @@ evas_object_event_callback_call(Evas_Obj * EVAS_CALLBACK_MOUSE_DOWN: event_info = pointer to Evas_Event_Mouse_Down * * This event is triggered by a mouse button being depressed while over an - * object. This causes this object to passively grab the mouse until all mouse - * buttons have been released. That means if this mouse button is the first to - * be pressed, all future mouse events will be reported to only this object - * until no buttons are down. That includes mouse move events, in and out - * events, and further button presses. When all buttons are released, event - * propagation occurs as normal. + * object. If mouse_grab is true (default) this causes this object to + * passively grab the mouse until all mouse buttons have been released. + * That means if this mouse button is the first to be pressed, all future + * mouse events will be reported to only this object until no buttons are + * down. That includes mouse move events, in and out events,
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On Tue, Jul 17, 2007 at 06:15:51PM -0300, Gustavo Sverzut Barbieri wrote: Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. I don't like evas_object_mouse_grab_set() very much, it looks like mouse will be immediately grab, which is not the case. But I don't have any better word for that. snip + EAPI void evas_object_mouse_grab_set(Evas_Object *obj, Evas_Bool no_mouse_grab); + EAPI Evas_Bool evas_object_mouse_grab_get(Evas_Object *obj); Maybe evas_object_auto_grab_set(Evas_Object *obj, Evas_Bool auto_grab) ? (or _mouse_auto_grab_) Whatever we call it, the second parameter should NOT be no_*. It should be TRUE for grab the mouse, and simply default to TRUE. Brian - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On 7/18/07, Brian Mattern [EMAIL PROTECTED] wrote: On Tue, Jul 17, 2007 at 06:15:51PM -0300, Gustavo Sverzut Barbieri wrote: Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. I don't like evas_object_mouse_grab_set() very much, it looks like mouse will be immediately grab, which is not the case. But I don't have any better word for that. snip + EAPI void evas_object_mouse_grab_set(Evas_Object *obj, Evas_Bool no_mouse_grab); + EAPI Evas_Bool evas_object_mouse_grab_get(Evas_Object *obj); Maybe evas_object_auto_grab_set(Evas_Object *obj, Evas_Bool auto_grab) ? (or _mouse_auto_grab_) it's not that better... other suggestions? can_grab_mouse? Whatever we call it, the second parameter should NOT be no_*. It should be TRUE for grab the mouse, and simply default to TRUE. yes, I agree, but how about edje files? Can I rely on people updating their edje files? Remember that edje files will not be recompiled since they have not changed, users may issue make clean to get it updated. -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On Tue, Jul 17, 2007 at 06:15:51PM -0300, Gustavo Sverzut Barbieri wrote: On 7/14/07, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: Ok, it turned out to be easy to extend this with mouse_grab idea, I'd like some review on these patches, but I've tested them together with an etk application (edje_viewer) and it seems to work fine. Patches are attached as TXT so gmail recognizes them as text/plain and avoid them being stripped by e-devel mail list. Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. Can't you just call it mouse_grab and default it to 1 to keep compatibility? Regards Lars Munch - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On 7/18/07, Lars Munch [EMAIL PROTECTED] wrote: On Tue, Jul 17, 2007 at 06:15:51PM -0300, Gustavo Sverzut Barbieri wrote: On 7/14/07, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: Ok, it turned out to be easy to extend this with mouse_grab idea, I'd like some review on these patches, but I've tested them together with an etk application (edje_viewer) and it seems to work fine. Patches are attached as TXT so gmail recognizes them as text/plain and avoid them being stripped by e-devel mail list. Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. Can't you just call it mouse_grab and default it to 1 to keep compatibility? except that when it's not present in eet file (.edj) it will return 0. thus you can default it to be 1 if omitted during compile (edje_cc), but not while reading (file_set)... at least this is my understanding, I based my code on mouse_events, which is 1 by default. -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On Wed, Jul 18, 2007 at 12:56:17AM -0300, Gustavo Sverzut Barbieri wrote: On 7/18/07, Brian Mattern [EMAIL PROTECTED] wrote: On Tue, Jul 17, 2007 at 06:15:51PM -0300, Gustavo Sverzut Barbieri wrote: Notice that edje property is no_mouse_grab, because then we can keep compatibility with existent .edj files. I don't like evas_object_mouse_grab_set() very much, it looks like mouse will be immediately grab, which is not the case. But I don't have any better word for that. snip + EAPI void evas_object_mouse_grab_set (Evas_Object *obj, Evas_Bool no_mouse_grab); + EAPI Evas_Bool evas_object_mouse_grab_get (Evas_Object *obj); Maybe evas_object_auto_grab_set(Evas_Object *obj, Evas_Bool auto_grab) ? (or _mouse_auto_grab_) it's not that better... other suggestions? can_grab_mouse? That makes even less sense. Maybe grab isn't a good choice. Really we're picking between two alternate methods of presenting mouse events. So, maybe evas_object_mouse_event_mode_set(obj, EVAS_EVENT_MODE_X) I'm at a loss atm as to what the two names should be though. (Maybe ORIGINAL and RAW... not happy with those...) Whatever we call it, the second parameter should NOT be no_*. It should be TRUE for grab the mouse, and simply default to TRUE. yes, I agree, but how about edje files? Can I rely on people updating their edje files? Remember that edje files will not be recompiled since they have not changed, users may issue make clean to get it updated. For edje files, you either need compatibility code (where the version is checked on load and the value is set properly), OR you can just make the edje option 'negative' (it doesn't have to be the same as the c api). However, with the above suggestion for an API, the 'original' mode would just be equal to 0. Brian - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
A related but slightly different issue is triggering evas events directly on a specific object. There are times where it would be very helpful to simply dispatch an event directly to a specific object rather than feeding the event into evas and relying on it's picking to select the one you want. Does anyone see a good reason we couldn't extend the evas API to support this? - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
Hi Gustavo On Fri, Jul 13, 2007 at 07:53:58PM -0300, Gustavo Sverzut Barbieri wrote: Ok, reading evas docs it's really the expected behavior, at least it's documented: * EVAS_CALLBACK_MOUSE_OUT: event_info = pointer to Evas_Event_Mouse_Out * * ... Note that no out events will be * reported if the mouse pointer is implicitly grabbed to an object (the * mouse buttons are down at all and any were pressed on that object). An * out event will be reported as soon as the mouse is no longer grabbed (no * mouse buttons are depressed). Out events will be reported once all buttons * are released, if the mouse has left the object. So, how to solve it without brake every existent thing that depends on this? As you can see from this post I had a similar problem some months ago: http://article.gmane.org/gmane.comp.window-managers.enlightenment.devel/12444/match= I was also creating a virtual keyboard for a touchscreen and it was also highly inspirred by the iPhone keyboard. I think the current behaviour are good for some parts like sliders, but for other pars like push buttons I would like to be able to get an out event as soon at the mouse leaves the part (clicked or not). Maybe we could add an ungrab or regrab function? Regards Lars Munch - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On 7/14/07, Lars Munch [EMAIL PROTECTED] wrote: Hi Gustavo On Fri, Jul 13, 2007 at 07:53:58PM -0300, Gustavo Sverzut Barbieri wrote: Ok, reading evas docs it's really the expected behavior, at least it's documented: * EVAS_CALLBACK_MOUSE_OUT: event_info = pointer to Evas_Event_Mouse_Out * * ... Note that no out events will be * reported if the mouse pointer is implicitly grabbed to an object (the * mouse buttons are down at all and any were pressed on that object). An * out event will be reported as soon as the mouse is no longer grabbed (no * mouse buttons are depressed). Out events will be reported once all buttons * are released, if the mouse has left the object. So, how to solve it without brake every existent thing that depends on this? As you can see from this post I had a similar problem some months ago: http://article.gmane.org/gmane.comp.window-managers.enlightenment.devel/12444/match= I was also creating a virtual keyboard for a touchscreen and it was also highly inspirred by the iPhone keyboard. I think the current behaviour are good for some parts like sliders, but for other pars like push buttons I would like to be able to get an out event as soon at the mouse leaves the part (clicked or not). Maybe we could add an ungrab or regrab function? yes, maybe mouse_grab=0|1 and in evas test for this flag being set. BUT, i already tried a quick hack to avoid mouse_grabbed lines and it didn't work, maybe it's not that easy or I did some mistake, again a _quick_ hack :-P -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Problem with edje and its way of dispatching mouse, * signals
Guys, I spent the whole afternoon trying to find a non-hackish (or less hackish) way to solve this problem: click on one object and then move to other, this other should also receive events. my current problem actually is: I'm trying to write a virtual keyboard for maemo, I'm basing my work on iPhone keyboard [1]. When you mouse,down,1 some key, you get a feedback of which key was pressed, if you see it was the wrong key, then just move over the right key and release, this new key will emit the signal to application. Problem is: if mouse,down,1 is done on key Q, when you move to key W, you don't get anything with source=W. You can set keys to repeat_events, then you'll get the same event on background, but still nothing on W. 1) I cannot use evas_object_callback_* directly because my goal is to NOT know what keys exist in keyboard, in other words: I don't know the parts of my edje beforehand. 2) I cannot use evas_object_top_at_xy_get() in order to get edje parts. Actually I don't get even the edje itself, I get nothing, nada, zap... Is this correct? [I do get some object created by myself, like a rectangle] This problem will appear a lot for our use with touchscreen devices, many actions are gesture-like and will be hard or impossible to do with current design. Example: we want some buttons to be combobox-like, you click-and-hold and it will slide another edje-group with buttons there, move your finger over it and release: it will execute. I know this is not the usual behavior on desktops and that's because it's like that, but any solutions to this? Where I should look? Nathan (RbdPngn) told me to use ecore's event filter and check there for mouse-down events, intercept them and do it own my own. I think it may work, yes, but it's far from easy to use :-/ I don't expect any ready-to-use edje syntax or so, but at least some option to allow parts to still emit events when the other is clicked. This way I could capture down, set a flag and start to listen for in or out events, on up I'd do the right thing and stop listening these signals. I guess this is a problem with edje, but maybe it's about evas? Hints? Ideas? [1] http://www.apple.com/iphone/usingiphone/keyboard.html -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On 7/13/07, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: Guys, I spent the whole afternoon trying to find a non-hackish (or less hackish) way to solve this problem: click on one object and then move to other, this other should also receive events. my current problem actually is: I'm trying to write a virtual keyboard for maemo, I'm basing my work on iPhone keyboard [1]. When you mouse,down,1 some key, you get a feedback of which key was pressed, if you see it was the wrong key, then just move over the right key and release, this new key will emit the signal to application. Problem is: if mouse,down,1 is done on key Q, when you move to key W, you don't get anything with source=W. You can set keys to repeat_events, then you'll get the same event on background, but still nothing on W. 1) I cannot use evas_object_callback_* directly because my goal is to NOT know what keys exist in keyboard, in other words: I don't know the parts of my edje beforehand. 2) I cannot use evas_object_top_at_xy_get() in order to get edje parts. Actually I don't get even the edje itself, I get nothing, nada, zap... Is this correct? [I do get some object created by myself, like a rectangle] This problem will appear a lot for our use with touchscreen devices, many actions are gesture-like and will be hard or impossible to do with current design. Example: we want some buttons to be combobox-like, you click-and-hold and it will slide another edje-group with buttons there, move your finger over it and release: it will execute. I know this is not the usual behavior on desktops and that's because it's like that, but any solutions to this? Where I should look? Nathan (RbdPngn) told me to use ecore's event filter and check there for mouse-down events, intercept them and do it own my own. I think it may work, yes, but it's far from easy to use :-/ I don't expect any ready-to-use edje syntax or so, but at least some option to allow parts to still emit events when the other is clicked. This way I could capture down, set a flag and start to listen for in or out events, on up I'd do the right thing and stop listening these signals. I guess this is a problem with edje, but maybe it's about evas? Hints? Ideas? [1] http://www.apple.com/iphone/usingiphone/keyboard.html My code is at: http://barbieri-playground.googlecode.com/svn/efl-tests/vkbd/ it's not providing the visual effects, but it works already. Application is in python, bindings at e17/proto/python-efl/ -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals
On 7/13/07, Gustavo Sverzut Barbieri [EMAIL PROTECTED] wrote: Guys, I spent the whole afternoon trying to find a non-hackish (or less hackish) way to solve this problem: click on one object and then move to other, this other should also receive events. my current problem actually is: I'm trying to write a virtual keyboard for maemo, I'm basing my work on iPhone keyboard [1]. When you mouse,down,1 some key, you get a feedback of which key was pressed, if you see it was the wrong key, then just move over the right key and release, this new key will emit the signal to application. Problem is: if mouse,down,1 is done on key Q, when you move to key W, you don't get anything with source=W. You can set keys to repeat_events, then you'll get the same event on background, but still nothing on W. 1) I cannot use evas_object_callback_* directly because my goal is to NOT know what keys exist in keyboard, in other words: I don't know the parts of my edje beforehand. 2) I cannot use evas_object_top_at_xy_get() in order to get edje parts. Actually I don't get even the edje itself, I get nothing, nada, zap... Is this correct? [I do get some object created by myself, like a rectangle] This problem will appear a lot for our use with touchscreen devices, many actions are gesture-like and will be hard or impossible to do with current design. Example: we want some buttons to be combobox-like, you click-and-hold and it will slide another edje-group with buttons there, move your finger over it and release: it will execute. I know this is not the usual behavior on desktops and that's because it's like that, but any solutions to this? Where I should look? Nathan (RbdPngn) told me to use ecore's event filter and check there for mouse-down events, intercept them and do it own my own. I think it may work, yes, but it's far from easy to use :-/ I don't expect any ready-to-use edje syntax or so, but at least some option to allow parts to still emit events when the other is clicked. This way I could capture down, set a flag and start to listen for in or out events, on up I'd do the right thing and stop listening these signals. I guess this is a problem with edje, but maybe it's about evas? Hints? Ideas? Ok, reading evas docs it's really the expected behavior, at least it's documented: * EVAS_CALLBACK_MOUSE_OUT: event_info = pointer to Evas_Event_Mouse_Out * * ... Note that no out events will be * reported if the mouse pointer is implicitly grabbed to an object (the * mouse buttons are down at all and any were pressed on that object). An * out event will be reported as soon as the mouse is no longer grabbed (no * mouse buttons are depressed). Out events will be reported once all buttons * are released, if the mouse has left the object. So, how to solve it without brake every existent thing that depends on this? -- Gustavo Sverzut Barbieri -- Jabber: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ#: 17249123 Skype: gsbarbieri Mobile: +55 (81) 9927 0010 - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel