davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=83656bff3302166d4b1b3a338703bbe10920bc74

commit 83656bff3302166d4b1b3a338703bbe10920bc74
Author: Dave Andreoli <[email protected]>
Date:   Tue Aug 9 10:19:14 2016 +0200

    New 1.18 API: elm.Entry.select_region  (get + property)
    
    with test
---
 efl/elementary/entry.pxi          | 29 +++++++++++++++++++++++++++++
 efl/elementary/entry_cdef.pxi     |  1 +
 examples/elementary/test_entry.py | 24 ++++++++++++++++++++++++
 3 files changed, 54 insertions(+)

diff --git a/efl/elementary/entry.pxi b/efl/elementary/entry.pxi
index 8e82210..628b89c 100644
--- a/efl/elementary/entry.pxi
+++ b/efl/elementary/entry.pxi
@@ -645,6 +645,23 @@ cdef class Entry(LayoutClass):
         """This selects all text within the entry."""
         elm_entry_select_all(self.obj)
 
+    property select_region:
+        """The selected region within the entry.
+
+        :type: 2 ints tuple (start, end)
+
+        .. versionadded: 1.18
+
+        """
+        def __get__(self):
+            cdef int start, end
+            elm_entry_select_region_get(self.obj, &start, &end)
+            return (start, end)
+        def __set__(self, value):
+            cdef int start, end
+            start, end = value
+            elm_entry_select_region_set(self.obj, start, end)
+
     def select_region_set(self, int start, int end):
         """This selects a region of text within the entry.
 
@@ -657,6 +674,18 @@ cdef class Entry(LayoutClass):
 
         """
         elm_entry_select_region_set(self.obj, start, end)
+    def select_region_get(self):
+        """Get the current position of the selection cursors in the entry.
+
+        :return: the 2 ints tuple (start, end)
+        :rtype: tuple
+
+        .. versionadded: 1.18
+
+        """
+        cdef int start, end
+        elm_entry_select_region_get(self.obj, &start, &end)
+        return (start, end)
 
     def cursor_next(self):
         """This moves the cursor one place to the right within the entry.
diff --git a/efl/elementary/entry_cdef.pxi b/efl/elementary/entry_cdef.pxi
index a46dbb8..66d7f38 100644
--- a/efl/elementary/entry_cdef.pxi
+++ b/efl/elementary/entry_cdef.pxi
@@ -173,6 +173,7 @@ cdef extern from "Elementary.h":
     void                    elm_entry_select_none(Evas_Object *obj)
     void                    elm_entry_select_all(Evas_Object *obj)
     void                    elm_entry_select_region_set(Evas_Object *obj, int 
start, int end)
+    void                    elm_entry_select_region_get(Evas_Object *obj, int 
*start, int *end)
     Eina_Bool               elm_entry_cursor_next(Evas_Object *obj)
     Eina_Bool               elm_entry_cursor_prev(Evas_Object *obj)
     Eina_Bool               elm_entry_cursor_up(Evas_Object *obj)
diff --git a/examples/elementary/test_entry.py 
b/examples/elementary/test_entry.py
index b4c43bb..f1693b7 100644
--- a/examples/elementary/test_entry.py
+++ b/examples/elementary/test_entry.py
@@ -52,6 +52,12 @@ def my_entry_bt_5(chk):
 def my_entry_anchor_test(obj, anchor, en, *args, **kwargs):
     en.entry_insert("ANCHOR CLICKED")
 
+def my_entry_bt_6(bt, en):
+    en.select_region = (3, 10)
+
+def my_entry_bt_7(bt, en):
+    print("Sel region: ", en.select_region)
+
 def entry_clicked(obj, item=None):
     win = StandardWindow("entry", "Entry", autodel=True)
 
@@ -108,6 +114,24 @@ def entry_clicked(obj, item=None):
     bx.pack_end(bx2)
     bx2.show()
 
+    bx2 = Box(win, horizontal=True, size_hint_weight=EXPAND_HORIZ,
+              size_hint_align=FILL_BOTH)
+
+    bt = Button(win, text="Sel region set", size_hint_weight=EXPAND_HORIZ,
+                size_hint_align=FILL_BOTH)
+    bt.callback_clicked_add(my_entry_bt_6, en)
+    bx2.pack_end(bt)
+    bt.show()
+
+    bt = Button(win, text="Sel region get", size_hint_weight=EXPAND_HORIZ,
+                size_hint_align=FILL_BOTH)
+    bt.callback_clicked_add(my_entry_bt_7, en)
+    bx2.pack_end(bt)
+    bt.show()
+    
+    bx.pack_end(bx2)
+    bx2.show()
+
     en.focus_set(True)
     win.show()
 

-- 


Reply via email to