Languages

Menu
Sites
Language
image callback event 관련 문의

안녕하세요...

 

Evas_Object *object= elm_image_add(ad->layout);

위와 같이 image 를 하나 만든 후에

 evas_object_event_callback_add(object, EVAS_CALLBACK_MOUSE_UP, _up_click_cb, ad);

를 등록하여 up event 발생 시 callback 함수를 호출하도록 하였습니다.

여기서 궁금한게...

up event 발생 시 현재 focus가 image 위인지 아닌지 알 수 있는 방법이 있나요?  evas_object_focus_get()  이 함수로는 알 수 없는건가요?

(예로 인터넷 창에 있는 x 아이콘에 마우스를 down 한 후 x icon 밖으로 마우스를 move 후 up을 하면 인터넷 창이 꺼지지 않습니다. 이와 비슷하게

mouse up일 경우 down 했을때의 image 영역이 아닌지 구별 할 수 있는 함수가 있나요? )

 

감사합니다.

 

Responses

3 Replies
na

 evas_object_event_callback_add(object, EVAS_CALLBACK_MOUSE_UP,
   _up_click_cb, ad);
 evas_object_event_callback_add(object, EVAS_CALLBACK_MOUSE_OUT,
   _out_out_cb, ad);

두개의 callback을 등록시, focus가 벗어날 경우 out event가 발생하지만, up event 다음에 호출되는 것 같습니다.

저는 up event의 경우 현 focus가 down 했을때의 영역인지 알 수 있는 방법이 있는지 궁금합니다.

 

Chanwook Jung

투명한 button을 만들어서 대신 event를 받게하면 button clicked callback을 활용해서 원하는 동작을 만들어낼 수 있습니다.

Hermet Park

up event 후 커서 위치가 이미지 오브젝트 위치인지 판단하는 방법도 있습니다.

void up_cb(void *d, Evas *e, Evas_Objec t*o, void *ev)

{

   //Mouse Cursor

    Evas_Event_Mouse_Down *event = ev;

    event->canvas.x;

    event->canvas.y;

 

  //Object Geometry

   Evas_Coord x, y, w, h;

  evas_object_geometry_get(o, &x, &y, &w, &h);

 

   // Check the cursor position with geomtry information.

   if (event->canvas.x > x && event->canvas.x < x + w && event->canvas.y > y && event->canvas.y < y + h)

   {

 

   }

 else

  {

  }

}