Good news to me :)
Thank you for checking in!

BR,
Eunmi Lee
------- Original Message -------
Sender : Carsten Haitzler<[email protected]>
Date : 2011-10-25 14:03 (GMT+09:00)
Title : Re: [E-devel] [Patch] [Evas] Patch to provide information of touched 
points

On Thu, 20 Oct 2011 07:39:30 +0000 (GMT) EunMi Lee 
said:

now that smells good to me. :) svn -> in!

> Hello,
> I made a new patch to get information of current touched point instead of
> Touch Event.
> 
> I added touch_points (Eina_List) to the Evas structure and it maintains
> touched points on the evas. New touched point is added to the touch_points
> when we get Mouse_Down and Multi_Down, touched point is updated when we get
> Mouse_Move and Mult_Move, and touched point is removed when we get Mouse_Up
> and Multi_Up.
> 
> The each touch point has coordinate, id and state information as follows:
> id - identifier. 0 for Mouse Event and device id for Multi Event.
> coordinate - (x, y) coordinate of point.
> state - state of point. type is Evas_Touch_Point_State enum.
> (EVAS_TOUCH_POINT_DOWN, EVAS_TOUCH_POINT_UP, EVAS_TOUCH_POINT_MOVE,
> EVAS_TOUCH_POINT_STILL, EVAS_TOUCH_POINT_CANCEL)
> 
> There are 4 new APIs to get touch point's information as follows:
> unsigned int evas_touch_point_list_count(Evas *e);
> void evas_touch_point_list_nth_xy_get(Evas *e, unsigned int n, Evas_Coord *x,
> Evas_Coord *y); int evas_touch_point_list_nth_id_get(Evas *e, unsigned int n);
> Evas_Touch_Point_State evas_touch_point_list_nth_state_get(Evas *e, unsigned
> int n);
> 
> I added APIs to get each information instead of exposing whole structure to
> make it easy to expand in the future as you mentioned in the below e-mail :)
> 
> Best Regards,
> Eunmi Lee
> ------- Original Message -------
> Sender : Carsten Haitzler
> Date : 2011-10-17 16:59 (GMT+09:00)
> Title : Re: [E-devel] [Patch] Evas touch event patch.
> 
> On Mon, 17 Oct 2011 07:31:20 +0000 (GMT) EunMi Lee 
> said:
> 
> > I think providing api is good solution to solve event_flags problem.
> > I already sent patch to solve that problem, but you can ignore that because
> > providing api is better than that patch :) Additionally, the state of each
> > finger is also needed as I added to the code as Evas_Touch_Point_State. So,
> > how about provide only one API as follows? Eina_List
> > *evas_event_touch_points_get(Evas *e); returing Eina_List is list of
> > Evas_Coord_Touch_Point that has all information of all fingers: coordinate,
> > id and state. If you like, I can make new patch for that :)
> 
> sure. well that was kind of the point - evas tracks state of each press point
> (and some device id for each) and you can query each event and find out what
> the current state is - it was just an example api. you could expose a whole
> struct you can query but that makes it a bit harder to expand in the future.
> that's all. the list works too - it just means its the struct method. this can
> work as well. :)
> 
> > ------- Original Message -------
> > Sender : Carsten Haitzler
> > Date : 2011-10-17 13:37 (GMT+09:00)
> > Title : Re: [E-devel] [Patch] Evas touch event patch.
> > 
> > On Thu, 06 Oct 2011 10:20:57 +0200 Tom Hacohen
> > said:
> > 
> > > On 06/10/11 10:15, EunMi Lee wrote:
> > > > Dear Tom,
> > > >
> > > >> What do you think about removing this from upstream and moving it to
> > > >> your code?
> > > > =>  My answer is I really need touch event in the evas.
> > > >      Yes, it just unifies mouse/multi event and it was in my code
> > > > before. However, I think it is better to move that code to the evas,
> > > > because it is useful to process event on the touch device(which
> > > > supports multi fingers), and other application developers can use that
> > > > if it is supported by evas. Other plaform (gtk, iphone, android)
> > > > already have their own touch event and they don't have to unify mouse
> > > > events. So, I want that evas supports touch event like other platform,
> > > > and I made a patch for that.
> > > >
> > > 
> > > Ok, I get your point. If that's the case, then we need to fix it as you 
> > > suggested in your previous email, sounds like the best way to do it.
> > 
> > actually... the more i think about this... the more that maybe we shouldn't
> > have the touch events at all. they do duplicate events. they do make it very
> > hard to use the current flags infra. the whole point of them is so you dont
> > have to do your own tracking of multiple presses. maybe we should just have
> > evas track all current pressed points (mouse + multi) and when you get a
> > mouse or multi move, a mouse or multi down or a mouse or multi up, you can
> > query the current "tracking state". just add a few calls to query like:
> > 
> > // return number of pressed points (mouse+fingers)
> > EAPI int
> > evas_event_pressed_count_get(Evas *e);
> > 
> > // return the device id of pressed point 0, 1, 2etc. up to n - 1 where n is
> > the // pressed count
> > EAPI int
> > evas_event_pressed_device_get(Evas *e, int press_num);
> > 
> > // get the x,y location for a specific press point
> > EAPI void
> > evas_event_pressed_canvas_coord_get(Evas *e, int press_num, Evas_Coord *x,
> > Evas_Coord *y);
> > 
> > // etc.
> > 
> > so... this becomes very easy. you hook up the SAMe callback to both mouse
> > and multi down, the same cb to mouse and multi up, and same cb to mouse and
> > multi move. in all cb's you just get the current pressed state of all press
> > points as you desire - evas is tracking for you. this achieve what eunmi
> > wants - simpler tracking code, but just uses the current events directly to
> > do so - we just have 2 kinds of down/move/up events (mouse and multi) where
> > mouse is the core pointer or first touch and multi is all the extras (that
> > as anon-touch app you don't need to look at).
> > 
> > how about this? it simple removes the callbacks.events and provides the
> > ability to track via querying in api calls not in event structs. :)
> > 
> > -- 
> > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > The Rasterman (Carsten Haitzler)    [email protected]
> 
> -- 
> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> The Rasterman (Carsten Haitzler)    [email protected]

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]
------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to