New 1.15 API: EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE, with test

Also fixed EVAS_CALLBACK_AXIS_UPDATE that was half implemented
This commit is contained in:
Davide Andreoli 2015-08-03 14:09:36 +02:00
parent 5e138dcdf2
commit 97dadf30da
5 changed files with 33 additions and 4 deletions

View File

@ -257,6 +257,10 @@ Evas_Callback_Type
Input device changed value on some axis. (since 1.13)
.. data:: EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE
Canvas viewport resized. (since 1.15)
.. data:: EVAS_CALLBACK_LAST
kept as last element/sentinel not really an event.

View File

@ -158,10 +158,16 @@ cdef void cb_canvas_render_post(void *data, Evas *e, void *e_inf) with gil:
#cb_canvas_dispatcher(<Canvas>data, o, EVAS_CALLBACK_RENDER_POST)
cb_canvas_dispatcher2(<Canvas>data, EVAS_CALLBACK_RENDER_POST)
cdef void cb_canvas_axis_update(void *data, Evas *e, void *e_inf) with gil:
cb_canvas_dispatcher2(<Canvas>data, EVAS_CALLBACK_AXIS_UPDATE)
cdef void cb_canvas_viewport_resize(void *data, Evas *e, void *e_inf) with gil:
cb_canvas_dispatcher2(<Canvas>data, EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE)
cdef int evas_canvas_event_callbacks_len
cdef Evas_Event_Cb evas_canvas_event_callbacks[34]
evas_canvas_event_callbacks_len = 34
cdef Evas_Event_Cb evas_canvas_event_callbacks[36]
evas_canvas_event_callbacks_len = 36
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_MOUSE_IN] = cb_canvas_mouse_in
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_MOUSE_OUT] = cb_canvas_mouse_out
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_MOUSE_DOWN] = cb_canvas_mouse_down
@ -196,3 +202,5 @@ evas_canvas_event_callbacks[<int>EVAS_CALLBACK_RENDER_PRE] = cb_canvas_render_pr
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_RENDER_POST] = cb_canvas_render_post
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_IMAGE_RESIZE] = cb_canvas_image_resize
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_DEVICE_CHANGED] = cb_canvas_device_changed
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_AXIS_UPDATE] = cb_canvas_axis_update
evas_canvas_event_callbacks[<int>EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE] = cb_canvas_viewport_resize

View File

@ -246,9 +246,18 @@ cdef void cb_object_canvas_render_post(void *data, Evas *e,
Evas_Object *obj, void *e_inf) with gil:
print("EVAS_CALLBACK_RENDER_POST is not supported by object.")
cdef void cb_object_axis_update(void *data, Evas *e,
Evas_Object *obj, void *e_inf) with gil:
print("EVAS_CALLBACK_AXIS_UPDATE is not supported by object.")
cdef void cb_object_viewport_resize(void *data, Evas *e,
Evas_Object *obj, void *e_inf) with gil:
print("EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE is not supported by object.")
cdef int evas_object_event_callbacks_len
cdef Evas_Object_Event_Cb evas_object_event_callbacks[34]
evas_object_event_callbacks_len = 34
cdef Evas_Object_Event_Cb evas_object_event_callbacks[36]
evas_object_event_callbacks_len = 36
evas_object_event_callbacks[<int>EVAS_CALLBACK_MOUSE_IN] = cb_object_mouse_in
evas_object_event_callbacks[<int>EVAS_CALLBACK_MOUSE_OUT] = cb_object_mouse_out
evas_object_event_callbacks[<int>EVAS_CALLBACK_MOUSE_DOWN] = cb_object_mouse_down
@ -283,3 +292,5 @@ evas_object_event_callbacks[<int>EVAS_CALLBACK_RENDER_PRE] = cb_object_canvas_re
evas_object_event_callbacks[<int>EVAS_CALLBACK_RENDER_POST] = cb_object_canvas_render_post
evas_object_event_callbacks[<int>EVAS_CALLBACK_IMAGE_RESIZE] = cb_object_image_resize
evas_object_event_callbacks[<int>EVAS_CALLBACK_DEVICE_CHANGED] = cb_object_device_changed
evas_object_event_callbacks[<int>EVAS_CALLBACK_AXIS_UPDATE] = cb_object_axis_update
evas_object_event_callbacks[<int>EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE] = cb_object_viewport_resize

View File

@ -7,6 +7,7 @@ from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL, EXPAND_BOTH, FILL_BOTH, \
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, \
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, \
EVAS_CALLBACK_RENDER_FLUSH_PRE, EVAS_CALLBACK_RENDER_FLUSH_POST, \
EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE, \
Text, Rectangle
# edje is imported because the canvas callbacks point to an edje obj,
@ -30,6 +31,7 @@ def btn_del_cbs_cb(button):
canvas.event_callback_del(EVAS_CALLBACK_RENDER_FLUSH_POST, events_cb1)
canvas.event_callback_del(EVAS_CALLBACK_RENDER_PRE, events_cb1)
canvas.event_callback_del(EVAS_CALLBACK_RENDER_POST, events_cb1)
canvas.event_callback_del(EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE, events_cb1)
def events_cb1(rect, event_name):
@ -70,6 +72,9 @@ def core_evas_canvas_callbacks_clicked(obj, item=None):
canvas.event_callback_add(EVAS_CALLBACK_RENDER_POST,
events_cb1, "EVAS_CALLBACK_RENDER_POST")
canvas.event_callback_add(EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE,
events_cb1, "EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE")
r2 = Rectangle(win.evas, size=(120,70), color=(0,100,0,100), pos=(70,70))
r2.show()

View File

@ -100,6 +100,7 @@ cdef extern from "Evas.h":
EVAS_CALLBACK_IMAGE_RESIZE
EVAS_CALLBACK_DEVICE_CHANGED
EVAS_CALLBACK_AXIS_UPDATE
EVAS_CALLBACK_CANVAS_VIEWPORT_RESIZE
EVAS_CALLBACK_LAST
ctypedef enum Evas_Callback_Type:
pass