Re: [E-devel] Problem with edje and its way of dispatching mouse, * signals

2007-07-20 Thread The Rasterman
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

2007-07-20 Thread The Rasterman
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

2007-07-19 Thread Gustavo Sverzut Barbieri
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

2007-07-17 Thread Gustavo Sverzut Barbieri

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

2007-07-17 Thread Brian Mattern
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

2007-07-17 Thread Gustavo Sverzut Barbieri
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

2007-07-17 Thread Lars Munch
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

2007-07-17 Thread Gustavo Sverzut Barbieri
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

2007-07-17 Thread Brian Mattern
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

2007-07-16 Thread Nathan Ingersoll
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

2007-07-14 Thread Lars Munch
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

2007-07-14 Thread Gustavo Sverzut Barbieri
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

2007-07-13 Thread Gustavo Sverzut Barbieri
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

2007-07-13 Thread Gustavo Sverzut Barbieri
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

2007-07-13 Thread Gustavo Sverzut Barbieri
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