kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=3d852863369d20d43d9c2dca311637293966afae
commit 3d852863369d20d43d9c2dca311637293966afae Author: Kai Huuhko <[email protected]> Date: Fri Oct 25 02:03:31 2013 +0300 Add arguments 'version' and 'message' to DEPRECATED decorator. The decorator will automatically add a directive to the docstring and log a message when the function is called. --- efl/elementary/diskselector.pyx | 41 ++++++++++++++++++++++++++++++++++++++ efl/elementary/entry.pyx | 41 ++++++++++++++++++++++++++++++++++++++ efl/elementary/gengrid.pyx | 41 ++++++++++++++++++++++++++++++++++++++ efl/elementary/genlist.pyx | 7 ++++--- efl/elementary/genlist_widget.pxi | 35 ++++++++++++++++++++++++++++++++ efl/elementary/label.pyx | 6 +++--- efl/elementary/list.pyx | 39 ++++++++++++++++++++++++++++++++++++ efl/elementary/map.pyx | 39 ++++++++++++++++++++++++++++++++++++ efl/elementary/naviframe.pyx | 20 +++++-------------- efl/elementary/need.pyx | 8 ++------ efl/elementary/object.pyx | 20 +++++-------------- efl/elementary/photocam.pyx | 39 ++++++++++++++++++++++++++++++++++++ efl/elementary/scroller.pyx | 7 ++----- efl/elementary/toolbar.pyx | 39 ++++++++++++++++++++++++++++++++++++ efl/utils/deprecated.pyx | 42 +++++++++++++++++++++++++++------------ examples/elementary/test.py | 11 ++++++++++ include/efl.utils.deprecated.pxd | 4 ++++ 17 files changed, 379 insertions(+), 60 deletions(-) diff --git a/efl/elementary/diskselector.pyx b/efl/elementary/diskselector.pyx index 9e8761c..de66796 100644 --- a/efl/elementary/diskselector.pyx +++ b/efl/elementary/diskselector.pyx @@ -84,6 +84,10 @@ from object cimport Object from object_item cimport ObjectItem, _object_item_callback, \ _object_item_to_python, _object_item_list_to_python +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy + cdef class DiskselectorItem(ObjectItem): """An item for the Diskselector widget. @@ -458,4 +462,41 @@ cdef class Diskselector(Object): def callback_unfocused_del(self, func): self._callback_del("unfocused", func) + + property scroller_policy: + def __get__(self): + return self.scroller_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scroller_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) + + _object_mapping_register("elm_diskselector", Diskselector) diff --git a/efl/elementary/entry.pyx b/efl/elementary/entry.pyx index e38c295..ed66a9a 100644 --- a/efl/elementary/entry.pyx +++ b/efl/elementary/entry.pyx @@ -492,6 +492,10 @@ from efl.evas cimport Object as evasObject from object cimport Object from hover cimport Hover +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy + cimport enums ELM_AUTOCAPITAL_TYPE_NONE = enums.ELM_AUTOCAPITAL_TYPE_NONE @@ -2139,4 +2143,41 @@ cdef class Entry(Object): def callback_text_set_done_del(self, func): self._callback_del("text,set,done", func) + + property scrollbar_policy: + def __get__(self): + return self.scrollbar_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scrollbar_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scrollbar_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scrollbar_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) + + _object_mapping_register("elm_entry", Entry) diff --git a/efl/elementary/gengrid.pyx b/efl/elementary/gengrid.pyx index c0dd017..9cad723 100644 --- a/efl/elementary/gengrid.pyx +++ b/efl/elementary/gengrid.pyx @@ -293,6 +293,11 @@ cimport enums import traceback +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy + + ELM_GENLIST_ITEM_SCROLLTO_NONE = enums.ELM_GENLIST_ITEM_SCROLLTO_NONE ELM_GENLIST_ITEM_SCROLLTO_IN = enums.ELM_GENLIST_ITEM_SCROLLTO_IN ELM_GENLIST_ITEM_SCROLLTO_TOP = enums.ELM_GENLIST_ITEM_SCROLLTO_TOP @@ -1789,4 +1794,40 @@ cdef class Gengrid(Object): self._callback_del("unfocused", func) + property scroller_policy: + def __get__(self): + return self.scroller_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scroller_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) + + _object_mapping_register("elm_gengrid", Gengrid) diff --git a/efl/elementary/genlist.pyx b/efl/elementary/genlist.pyx index a7ef701..5a4cc56 100644 --- a/efl/elementary/genlist.pyx +++ b/efl/elementary/genlist.pyx @@ -532,13 +532,14 @@ from efl.eo cimport _object_mapping_register, PY_REFCOUNT from efl.utils.conversions cimport _ctouni from efl.evas cimport Object as evasObject -from efl.utils.deprecated import DEPRECATED +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy from object_item cimport ObjectItem, _object_item_to_python, \ elm_object_item_widget_get, _object_item_from_python, \ _object_item_list_to_python, elm_object_item_data_get from general cimport strdup -from scroller cimport * cimport enums import traceback @@ -727,7 +728,7 @@ class GenlistItemsCount(int): def __init__(self, Object obj, int count): self.obj = obj - @DEPRECATED + @DEPRECATED("1.8", "Use items_count instead.") def __call__(self): return self.obj._items_count() diff --git a/efl/elementary/genlist_widget.pxi b/efl/elementary/genlist_widget.pxi index 1530a4f..2348b5c 100644 --- a/efl/elementary/genlist_widget.pxi +++ b/efl/elementary/genlist_widget.pxi @@ -1012,3 +1012,38 @@ cdef class Genlist(Object): def callback_unfocused_del(self, func): self._callback_del("unfocused", func) + + property scroller_policy: + def __get__(self): + return self.scroller_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scroller_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) diff --git a/efl/elementary/label.pyx b/efl/elementary/label.pyx index 7e8ae28..4d8c9bb 100644 --- a/efl/elementary/label.pyx +++ b/efl/elementary/label.pyx @@ -101,7 +101,7 @@ from efl.eo cimport _object_mapping_register from efl.utils.conversions cimport _ctouni from efl.evas cimport Object as evasObject from layout_class cimport LayoutClass -from efl.utils.deprecated import DEPRECATED +from efl.utils.deprecated cimport DEPRECATED cimport enums @@ -198,11 +198,11 @@ cdef class Label(LayoutClass): def __set__(self, slide): self.slide_set(ELM_LABEL_SLIDE_MODE_ALWAYS if slide else ELM_LABEL_SLIDE_MODE_NONE) - @DEPRECATED + @DEPRECATED("1.8", "Use :py:attr:`slide_mode` instead.") def slide_set(self, bint slide): elm_label_slide_mode_set(self.obj, ELM_LABEL_SLIDE_MODE_ALWAYS if slide else ELM_LABEL_SLIDE_MODE_NONE) - @DEPRECATED + @DEPRECATED("1.8", "Use :py:attr:`slide_mode` instead.") def slide_get(self): return bool(elm_label_slide_mode_get(self.obj)) diff --git a/efl/elementary/list.pyx b/efl/elementary/list.pyx index acbed7e..4eda88e 100644 --- a/efl/elementary/list.pyx +++ b/efl/elementary/list.pyx @@ -188,6 +188,10 @@ from object_item cimport _object_item_callback, \ _object_item_to_python, \ _object_item_list_to_python +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy + cimport enums ELM_LIST_COMPRESS = enums.ELM_LIST_COMPRESS @@ -986,4 +990,39 @@ cdef class List(Object): self._callback_del("unfocused", func) + property scroller_policy: + def __get__(self): + return self.scroller_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scroller_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) + _object_mapping_register("elm_list", List) diff --git a/efl/elementary/map.pyx b/efl/elementary/map.pyx index c39e785..210aec9 100644 --- a/efl/elementary/map.pyx +++ b/efl/elementary/map.pyx @@ -202,6 +202,10 @@ from object cimport Object from efl.evas cimport eina_list_free, eina_list_append import traceback +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy + cimport enums ELM_MAP_OVERLAY_TYPE_NONE = enums.ELM_MAP_OVERLAY_TYPE_NONE @@ -1834,4 +1838,39 @@ cdef public class Map(Object)[object PyElementaryMap, type PyElementaryMap_Type] def callback_unfocused_del(self, func): self._callback_del("unfocused", func) + property scroller_policy: + def __get__(self): + return self.scroller_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scroller_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) + _object_mapping_register("elm_map", Map) diff --git a/efl/elementary/naviframe.pyx b/efl/elementary/naviframe.pyx index 17dee07..1cb1f9d 100644 --- a/efl/elementary/naviframe.pyx +++ b/efl/elementary/naviframe.pyx @@ -106,7 +106,7 @@ from layout_class cimport LayoutClass from object_item cimport _object_item_to_python, \ _object_item_list_to_python -from efl.utils.deprecated import DEPRECATED +from efl.utils.deprecated cimport DEPRECATED cdef class NaviframeItem(ObjectItem): @@ -264,14 +264,9 @@ cdef class NaviframeItem(ObjectItem): else: return None - @DEPRECATED + @DEPRECATED("1.8", "Use :py:func:`pop_to` instead.") def item_pop_to(self): - """item_pop_to() - - .. deprecated:: 1.8 - Use :py:func:`pop_to` instead. - - """ + """item_pop_to()""" elm_naviframe_item_pop_to(self.item) def pop_to(self): @@ -282,14 +277,9 @@ cdef class NaviframeItem(ObjectItem): """ elm_naviframe_item_pop_to(self.item) - @DEPRECATED + @DEPRECATED("1.8", "Use :py:func:`promote` instead.") def item_promote(self): - """item_promote() - - .. deprecated:: 1.8 - Use :py:func:`promote` instead. - - """ + """item_promote()""" elm_naviframe_item_promote(self.item) def promote(self): diff --git a/efl/elementary/need.pyx b/efl/elementary/need.pyx index 8f69e09..e17cb0f 100644 --- a/efl/elementary/need.pyx +++ b/efl/elementary/need.pyx @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this Python-EFL. If not, see <http://www.gnu.org/licenses/>. -from efl.utils.deprecated import DEPRECATED +from efl.utils.deprecated cimport DEPRECATED def need_efreet(): """need_efreet() -> bool @@ -62,7 +62,7 @@ def need_sys_notify(): """ return bool(elm_need_sys_notify()) -@DEPRECATED +@DEPRECATED("1.8", "Use :py:func:`need_eldbus` for eldbus (v2) support. Old API is deprecated.") def need_e_dbus(): """need_e_dbus() -> bool @@ -75,10 +75,6 @@ def need_e_dbus(): :return: True if support exists and initialization succeeded. :rtype: bool - .. deprecated:: 1.8 - Use :py:func:`need_eldbus` for eldbus (v2) support. Old API is - deprecated. - """ return bool(elm_need_eldbus()) diff --git a/efl/elementary/object.pyx b/efl/elementary/object.pyx index 5a9a04e..3ac4e53 100644 --- a/efl/elementary/object.pyx +++ b/efl/elementary/object.pyx @@ -196,7 +196,7 @@ include "cnp_callbacks.pxi" include "tooltips.pxi" from efl.utils.conversions cimport eina_list_objects_to_python_list -from efl.utils.deprecated import DEPRECATED +from efl.utils.deprecated cimport DEPRECATED from efl.evas cimport EventKeyDown, EventKeyUp, EventMouseWheel from efl.evas cimport evas_object_smart_callback_add @@ -1399,14 +1399,9 @@ cdef class Object(evasObject): return bool(elm_object_tooltip_window_mode_get(self.obj)) #Translatable text - @DEPRECATED + @DEPRECATED("1.8", "Use :py:func:`domain_translatable_part_text_set` instead.") def domain_translatable_text_part_set(self, part, domain, text): - """domain_translatable_text_part_set(part, domain, text) - - .. deprecated:: 1.8 - Use :py:func:`domain_translatable_part_text_set` instead. - - """ + """domain_translatable_text_part_set(part, domain, text)""" if isinstance(part, unicode): part = PyUnicode_AsUTF8String(part) if isinstance(domain, unicode): domain = PyUnicode_AsUTF8String(domain) if isinstance(text, unicode): text = PyUnicode_AsUTF8String(text) @@ -1460,14 +1455,9 @@ cdef class Object(evasObject): <const_char *>domain if domain is not None else NULL, <const_char *>text if text is not None else NULL) - @DEPRECATED + @DEPRECATED("1.8", "Use :py:func:`translatable_part_text_get` instead.") def translatable_text_part_get(self, part): - """translatable_text_part_get(part) -> unicode - - .. deprecated:: 1.8 - Use :py:func:`translatable_part_text_get` instead. - - """ + """translatable_text_part_get(part) -> unicode""" if isinstance(part, unicode): part = PyUnicode_AsUTF8String(part) return _ctouni(elm_object_translatable_part_text_get(self.obj, <const_char *>part if part is not None else NULL)) diff --git a/efl/elementary/photocam.pyx b/efl/elementary/photocam.pyx index e3302f7..9bf5bdf 100644 --- a/efl/elementary/photocam.pyx +++ b/efl/elementary/photocam.pyx @@ -93,6 +93,10 @@ from object cimport Object from efl.evas cimport Image as evasImage +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy + cimport enums ELM_PHOTOCAM_ZOOM_MODE_MANUAL = enums.ELM_PHOTOCAM_ZOOM_MODE_MANUAL @@ -529,4 +533,39 @@ cdef class Photocam(Object): def callback_unfocused_del(self, func): self._callback_del("unfocused", func) + property scroller_policy: + def __get__(self): + return self.scroller_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scroller_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) + _object_mapping_register("elm_photocam", Photocam) diff --git a/efl/elementary/scroller.pyx b/efl/elementary/scroller.pyx index 876c726..66aacf4 100644 --- a/efl/elementary/scroller.pyx +++ b/efl/elementary/scroller.pyx @@ -149,7 +149,7 @@ from efl.utils.conversions cimport _ctouni, _touni from object cimport Object from layout_class cimport LayoutClass -from efl.utils.deprecated import DEPRECATED +from efl.utils.deprecated cimport DEPRECATED cimport enums @@ -178,13 +178,10 @@ cdef class Scrollable(Object): # TODO: Use the scrollable interface functions? Need to base on # evas.SmartObject? - @DEPRECATED + @DEPRECATED("1.8", "Use :py:attr:`theme<efl.elementary.object.Object.theme>` instead.") def custom_widget_base_theme_set(self, widget, base): """custom_widget_base_theme_set(widget, base) - .. deprecated:: 1.8 - Use :py:attr:`theme<efl.elementary.object.Object.theme>` instead. - """ if isinstance(widget, unicode): widget = PyUnicode_AsUTF8String(widget) if isinstance(base, unicode): base = PyUnicode_AsUTF8String(base) diff --git a/efl/elementary/toolbar.pyx b/efl/elementary/toolbar.pyx index 4e47bf6..e52eaf5 100644 --- a/efl/elementary/toolbar.pyx +++ b/efl/elementary/toolbar.pyx @@ -160,6 +160,10 @@ from object cimport Object from object_item cimport _object_item_callback, _object_item_to_python from menu cimport Menu +from efl.utils.deprecated cimport DEPRECATED +from scroller cimport elm_scroller_policy_get, elm_scroller_policy_set, \ + elm_scroller_bounce_get, elm_scroller_bounce_set, Elm_Scroller_Policy + cimport enums ELM_ICON_LOOKUP_FDO_THEME = enums.ELM_ICON_LOOKUP_FDO_THEME @@ -1098,4 +1102,39 @@ cdef class Toolbar(Object): def callback_unfocused_del(self, func): self._callback_del("unfocused", func) + property scroller_policy: + def __get__(self): + return self.scroller_policy_get() + + def __set__(self, value): + cdef Elm_Scroller_Policy policy_h, policy_v + policy_h, policy_v = value + self.scroller_policy_set(policy_h, policy_v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_set(self, policy_h, policy_v): + elm_scroller_policy_set(self.obj, policy_h, policy_v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def scroller_policy_get(self): + cdef Elm_Scroller_Policy policy_h, policy_v + elm_scroller_policy_get(self.obj, &policy_h, &policy_v) + return (policy_h, policy_v) + + property bounce: + def __get__(self): + return self.bounce_get() + def __set__(self, value): + cdef Eina_Bool h, v + h, v = value + self.bounce_set(h, v) + + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_set(self, h, v): + elm_scroller_bounce_set(self.obj, h, v) + @DEPRECATED("1.8", "You should combine with Scrollable class instead.") + def bounce_get(self): + cdef Eina_Bool h, v + elm_scroller_bounce_get(self.obj, &h, &v) + return (h, v) + _object_mapping_register("elm_toolbar", Toolbar) diff --git a/efl/utils/deprecated.pyx b/efl/utils/deprecated.pyx index 908a682..1a44bb6 100644 --- a/efl/utils/deprecated.pyx +++ b/efl/utils/deprecated.pyx @@ -2,21 +2,34 @@ import traceback import types from functools import update_wrapper +from efl.eina cimport EINA_LOG_DOM_WARN +from efl.utils.logger cimport PY_EFL_LOG_DOMAIN -class DEPRECATED(object): +cdef class DEPRECATED(object): - def __init__(self, object f): - self.f = f + def __init__(self, version=None, message=None): + self.version = version + self.message = message + + def __call__(self, f): + wrapper = WRAPPER(f, self.version, self.message) assignments = ["__name__", "__doc__"] if hasattr(f, "__module__"): assignments.append("__module__") - update_wrapper(self, f, assigned=assignments) + update_wrapper(wrapper, f, assigned=assignments) + + if wrapper.__doc__ is not None: + wrapper.__doc__ += "\n\n.. deprecated:: %s\n %s\n" % (self.version, self.message) + + return wrapper - #if hasattr(f, "__objclass__"): - #print("WARNING: method %s.%s is deprecated" % (f.__objclass__.__name__, f.__name__)) - #else: - #print("WARNING: function %s is deprecated" % (f.__name__)) + +class WRAPPER(object): + def __init__(self, f, version, message): + self.f = f + self.version = version + self.message = message def __get__(self, obj, objtype): return types.MethodType(self, obj, objtype) @@ -32,14 +45,17 @@ class DEPRECATED(object): caller_module, caller_line, caller_name, caller_code = caller if caller_code is not None: if hasattr(self.f, "__objclass__"): - msg = "WARNING: Deprecated method %s of class %s called in %s:%s %s." % \ + msg = "Deprecated method %s of class %s called in %s:%s %s." % \ (self.f.__name__, self.f.__objclass__.__name__, caller_module, caller_line, caller_code) else: - msg = "WARNING: Deprecated function %s called in %s:%s %s." % \ + msg = "Deprecated function %s called in %s:%s %s." % \ (self.f.__name__, caller_module, caller_line, caller_code) else: - msg = "WARNING: Deprecated function %s.%s called in %s:%s." % \ - (self.f.__name__, caller_name, caller_module, caller_line) - print(msg) + msg = "Deprecated function %s called in %s:%s." % \ + (self.f.__name__, caller_module, caller_line) + + msg += " " + self.message + + EINA_LOG_DOM_WARN(PY_EFL_LOG_DOMAIN, msg, NULL) return self.f(*args, **kwargs) diff --git a/examples/elementary/test.py b/examples/elementary/test.py index f5a9b7c..a4f73c3 100755 --- a/examples/elementary/test.py +++ b/examples/elementary/test.py @@ -15,6 +15,17 @@ from efl.elementary.check import Check from efl.elementary.entry import Entry from efl.elementary.scroller import Scroller +import logging +elog = logging.getLogger("efl") +elog.setLevel(logging.DEBUG) + +elog_form = logging.Formatter("[%(name)s] %(levelname)s - %(message)s") +elog_hdlr = logging.StreamHandler() +elog_hdlr.setFormatter(elog_form) + +elog.addHandler(elog_hdlr) + + items = [ ("Core Libs", [ ("Evas Objects", "test_core_evas_objects", "core_evas_objects_clicked"), diff --git a/include/efl.utils.deprecated.pxd b/include/efl.utils.deprecated.pxd new file mode 100644 index 0000000..f1e603b --- /dev/null +++ b/include/efl.utils.deprecated.pxd @@ -0,0 +1,4 @@ +cdef: + class DEPRECATED(object): + cdef: + str version, message --
