Enlightenment CVS committal Author : cmarcelo Project : e17 Module : proto/python-efl
Dir : e17/proto/python-efl/python-evas/evas Modified Files: decorators.py evas.c_evas_object.pxi evas.c_evas_object_callbacks.pxi evas.c_evas_object_events.pxi Log Message: Python-Evas: adding support for new EVAS_CALLBACK_HOLD. =================================================================== RCS file: /cvs/e/e17/proto/python-efl/python-evas/evas/decorators.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- decorators.py 3 Oct 2007 04:44:24 -0000 1.2 +++ decorators.py 1 Apr 2008 21:05:53 -0000 1.3 @@ -73,3 +73,7 @@ def del_callback(func): func.evas_event_callback = evas.EVAS_CALLBACK_DEL return staticmethod(func) + +def hold_callback(func): + func.evas_event_callback = evas.EVAS_CALLBACK_HOLD + return staticmethod(func) =================================================================== RCS file: /cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object.pxi,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- evas.c_evas_object.pxi 26 Mar 2008 04:41:15 -0000 1.24 +++ evas.c_evas_object.pxi 1 Apr 2008 21:05:53 -0000 1.25 @@ -196,7 +196,7 @@ on_mouse_move_del, on_mouse_out_add, on_mouse_out_del, on_mouse_up_add, on_mouse_up_del, on_mouse_wheel_add, on_mouse_wheel_del, on_move_add, on_move_del, on_resize_add, on_resize_del, on_restack_add, - on_restack_del, on_show_add, on_show_del + on_restack_del, on_show_add, on_show_del, on_hold_add, on_hold_del @group Often unused: render_op_set, render_op_get, render_op, color_interpolation_set, color_interpolation_get, color_interpolation, anti_alias_set, anti_alias_get, anti_alias, pointer_mode_set, @@ -1098,6 +1098,14 @@ def on_del_del(self, func): "Same as event_callback_del(EVAS_CALLBACK_DEL, ...)" self.event_callback_del(EVAS_CALLBACK_FREE, func) + + def on_hold_add(self, func, *a, **k): + "Same as event_callback_add(EVAS_CALLBACK_HOLD, ...)" + self.event_callback_add(EVAS_CALLBACK_HOLD, func, *a, **k) + + def on_hold_del(self, func): + "Same as event_callback_del(EVAS_CALLBACK_HOLD, ...)" + self.event_callback_del(EVAS_CALLBACK_HOLD, func) def pass_events_get(self): "@rtype: bool" =================================================================== RCS file: /cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_callbacks.pxi,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- evas.c_evas_object_callbacks.pxi 26 Mar 2008 04:41:15 -0000 1.7 +++ evas.c_evas_object_callbacks.pxi 1 Apr 2008 21:05:53 -0000 1.8 @@ -138,9 +138,18 @@ cb_dispatcher2(<Object>data, EVAS_CALLBACK_DEL) +cdef void cb_hold(void *data, Evas *e, + Evas_Object *obj, void *e_inf) with gil: + cdef EventHold event + event = EventHold() + event._set_obj(e_inf) + cb_dispatcher(<Object>data, event, EVAS_CALLBACK_HOLD) + event._unset_obj() + + cdef int evas_event_callbacks_len -cdef evas_event_callback_t evas_event_callbacks[17] -evas_event_callbacks_len = 17 +cdef evas_event_callback_t evas_event_callbacks[18] +evas_event_callbacks_len = 18 evas_event_callbacks[<int>EVAS_CALLBACK_MOUSE_IN] = cb_mouse_in evas_event_callbacks[<int>EVAS_CALLBACK_MOUSE_OUT] = cb_mouse_out evas_event_callbacks[<int>EVAS_CALLBACK_MOUSE_DOWN] = cb_mouse_down @@ -158,3 +167,4 @@ evas_event_callbacks[<int>EVAS_CALLBACK_RESIZE] = cb_resize evas_event_callbacks[<int>EVAS_CALLBACK_RESTACK] = cb_restack evas_event_callbacks[<int>EVAS_CALLBACK_DEL] = cb_del +evas_event_callbacks[<int>EVAS_CALLBACK_HOLD] = cb_hold =================================================================== RCS file: /cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object_events.pxi,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- evas.c_evas_object_events.pxi 26 Mar 2008 04:43:26 -0000 1.6 +++ evas.c_evas_object_events.pxi 1 Apr 2008 21:05:53 -0000 1.7 @@ -463,3 +463,40 @@ def __set__(self, flags): self._check_validity() self.obj.event_flags = flags + + +cdef class EventHold: + cdef void _set_obj(self, void *ptr): + self.obj = <Evas_Event_Hold*>ptr + + cdef void _unset_obj(self): + self.obj = NULL + + cdef void _check_validity(self) except *: + if self.obj == NULL: + raise ValueError("EventHold object is invalid.") + + def __str__(self): + self._check_validity() + return ("%s(hold=%d, timestamp=%d, event_flags=%#x)") % \ + (self.__class__.__name__, self.hold, + self.obj.timestamp, self.event_flags) + + property hold: + def __get__(self): + self._check_validity() + return self.obj.hold + + property timestamp: + def __get__(self): + self._check_validity() + return self.obj.timestamp + + property event_flags: + def __get__(self): + self._check_validity() + return <int>self.obj.event_flags + + def __set__(self, flags): + self._check_validity() + self.obj.event_flags = flags ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs