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

-- 


Reply via email to