kuuko pushed a commit to branch master.

commit 7759832b6d4ae226f2854be9525508fcf1ac4ca3
Author: Kai Huuhko <[email protected]>
Date:   Sat Apr 13 17:33:09 2013 +0000

    Elementary: Add some bits of missing API to Entry.
---
 efl/elementary/entry.pxd |  54 ++++++--
 efl/elementary/entry.pyx | 341 ++++++++++++++++++++++++++++++++++++++++++++---
 efl/elementary/enums.pxd |   6 +
 3 files changed, 375 insertions(+), 26 deletions(-)

diff --git a/efl/elementary/entry.pxd b/efl/elementary/entry.pxd
index c4ae534..b9988a0 100644
--- a/efl/elementary/entry.pxd
+++ b/efl/elementary/entry.pxd
@@ -1,12 +1,12 @@
-from efl.evas cimport Eina_Bool, Eina_Rectangle, Evas_Object, Evas_Coord
+from efl.evas cimport Eina_Bool, Eina_Rectangle, Evas_Object, \
+    const_Evas_Object, Evas_Coord
 from enums cimport Elm_Wrap_Type, Elm_Text_Format, Elm_Cnp_Mode, \
     Elm_Scroller_Policy, Elm_Input_Panel_Layout, Elm_Input_Panel_Lang, \
-    Elm_Input_Panel_Lang, Elm_Input_Panel_Return_Key_Type
+    Elm_Input_Panel_Lang, Elm_Input_Panel_Return_Key_Type, \
+    Elm_Autocapital_Type
 from libc.string cimport const_char
 
 cdef extern from "Elementary.h":
-
-    #entry
     ctypedef struct Elm_Entry_Anchor_Info:
         char *name
         int   button
@@ -24,8 +24,22 @@ cdef extern from "Elementary.h":
         Eina_Bool hover_top
         Eina_Bool hover_bottom
 
-    # Entry                 (api:TODO  cb:DONE  test:TODO  doc:TODO  py3:DONE)
+
+
+    # Data for the elm_entry_filter_limit_size() entry filter.
+    ctypedef struct Elm_Entry_Filter_Limit_Size:
+        int max_char_count      # The maximum number of characters allowed.
+        int max_byte_count      # The maximum number of bytes allowed.
+
+    # Data for the elm_entry_filter_accept_set() entry filter.
+    ctypedef struct Elm_Entry_Filter_Accept_Set:
+        const_char *accepted      # Set of characters accepted in the entry.
+        const_char *rejected      # Set of characters rejected from the entry.
+
     Evas_Object *           elm_entry_add(Evas_Object *parent)
+    void                    elm_entry_text_style_user_push(Evas_Object *obj, 
const_char *style)
+    void                    elm_entry_text_style_user_pop(Evas_Object *obj)
+    const_char*             elm_entry_text_style_user_peek(const_Evas_Object 
*obj)
     void                    elm_entry_single_line_set(Evas_Object *obj, 
Eina_Bool single_line)
     Eina_Bool               elm_entry_single_line_get(Evas_Object *obj)
     void                    elm_entry_password_set(Evas_Object *obj, Eina_Bool 
password)
@@ -63,6 +77,16 @@ cdef extern from "Elementary.h":
     void                    elm_entry_selection_cut(Evas_Object *obj)
     void                    elm_entry_selection_copy(Evas_Object *obj)
     void                    elm_entry_selection_paste(Evas_Object *obj)
+    void                    elm_entry_context_menu_clear(Evas_Object *obj)
+    # TODO: void               elm_entry_context_menu_item_add(Evas_Object 
*obj, const_char *label, const_char *icon_file, Elm_Icon_Type icon_type, 
Evas_Smart_Cb func, const_void *data)
+    void                    elm_entry_context_menu_disabled_set(Evas_Object 
*obj, Eina_Bool disabled)
+    Eina_Bool               elm_entry_context_menu_disabled_get(Evas_Object 
*obj)
+    # TODO: void               elm_entry_item_provider_append(Evas_Object 
*obj, Elm_Entry_Item_Provider_Cb func, void *data)
+    # TODO: void               elm_entry_item_provider_prepend(Evas_Object 
*obj, Elm_Entry_Item_Provider_Cb func, void *data)
+    # TODO: void               elm_entry_item_provider_remove(Evas_Object 
*obj, Elm_Entry_Item_Provider_Cb func, void *data)
+    # TODO: void               elm_entry_markup_filter_append(Evas_Object 
*obj, Elm_Entry_Filter_Cb func, void *data)
+    # TODO: void               elm_entry_markup_filter_prepend(Evas_Object 
*obj, Elm_Entry_Filter_Cb func, void *data)
+    # TODO: void               elm_entry_markup_filter_remove(Evas_Object 
*obj, Elm_Entry_Filter_Cb func, void *data)
     char *                  elm_entry_markup_to_utf8(const_char *s)
     char *                  elm_entry_utf8_to_markup(const_char *s)
     Eina_Bool               elm_entry_file_set(Evas_Object *obj, const_char 
*file, Elm_Text_Format format)
@@ -73,17 +97,21 @@ cdef extern from "Elementary.h":
     void                    elm_entry_scrollable_set(Evas_Object *obj, 
Eina_Bool scrollable)
     Eina_Bool               elm_entry_scrollable_get(Evas_Object *obj)
     void                    elm_entry_icon_visible_set(Evas_Object *obj, 
Eina_Bool setting)
-    void                    elm_entry_context_menu_clear(Evas_Object *obj)
-    void                    elm_entry_context_menu_disabled_set(Evas_Object 
*obj, Eina_Bool disabled)
-    Eina_Bool               elm_entry_context_menu_disabled_get(Evas_Object 
*obj)
-    void                    elm_entry_input_panel_enabled_set(Evas_Object 
*obj, Eina_Bool enabled)
-    Eina_Bool               elm_entry_input_panel_enabled_get(Evas_Object *obj)
+    void                    elm_entry_end_visible_set(Evas_Object *obj, 
Eina_Bool setting)
     void                    elm_entry_input_panel_layout_set(Evas_Object *obj, 
Elm_Input_Panel_Layout layout)
     Elm_Input_Panel_Layout  elm_entry_input_panel_layout_get(Evas_Object *obj)
+    void                    
elm_entry_input_panel_layout_variation_set(Evas_Object *obj, int variation)
+    int                     
elm_entry_input_panel_layout_variation_get(const_Evas_Object *obj)
+    void                    elm_entry_autocapital_type_set(Evas_Object *obj, 
Elm_Autocapital_Type autocapital_type)
+    Elm_Autocapital_Type    elm_entry_autocapital_type_get(const_Evas_Object 
*obj)
+    void                    elm_entry_input_panel_enabled_set(Evas_Object 
*obj, Eina_Bool enabled)
+    Eina_Bool               elm_entry_input_panel_enabled_get(Evas_Object *obj)
     void                    elm_entry_input_panel_show(Evas_Object *obj)
     void                    elm_entry_input_panel_hide(Evas_Object *obj)
     void                    elm_entry_input_panel_language_set(Evas_Object 
*obj, Elm_Input_Panel_Lang lang)
     Elm_Input_Panel_Lang    elm_entry_input_panel_language_get(Evas_Object 
*obj)
+    # TODO: void                   
elm_entry_input_panel_imdata_set(Evas_Object *obj, const_void *data, int len)
+    # TODO: void                   
elm_entry_input_panel_imdata_get(const_Evas_Object *obj, void *data, int *len)
     void                    
elm_entry_input_panel_return_key_type_set(Evas_Object *obj, 
Elm_Input_Panel_Return_Key_Type return_key_type)
     Elm_Input_Panel_Return_Key_Type 
elm_entry_input_panel_return_key_type_get(Evas_Object *obj)
     void                    
elm_entry_input_panel_return_key_disabled_set(Evas_Object *obj, Eina_Bool 
disabled)
@@ -92,6 +120,9 @@ cdef extern from "Elementary.h":
     void                    elm_entry_imf_context_reset(Evas_Object *obj)
     void                    elm_entry_prediction_allow_set(Evas_Object *obj, 
Eina_Bool allow)
     Eina_Bool               elm_entry_prediction_allow_get(Evas_Object *obj)
+    # TODO: void                    elm_entry_filter_limit_size(void *data, 
Evas_Object *entry, char **text)
+    # TODO: void                    elm_entry_filter_accept_set(void *data, 
Evas_Object *entry, char **text)
+    # TODO: void                  *elm_entry_imf_context_get(Evas_Object *obj)
     void                    elm_entry_cnp_mode_set(Evas_Object *obj, 
Elm_Cnp_Mode cnp_mode)
     Elm_Cnp_Mode            elm_entry_cnp_mode_get(Evas_Object *obj)
     void                    elm_entry_anchor_hover_parent_set(Evas_Object 
*obj, Evas_Object *anchor_hover_parent)
@@ -99,3 +130,6 @@ cdef extern from "Elementary.h":
     void                    elm_entry_anchor_hover_style_set(Evas_Object *obj, 
const_char *anchor_hover_style)
     const_char *            elm_entry_anchor_hover_style_get(Evas_Object *obj)
     void                    elm_entry_anchor_hover_end(Evas_Object *obj)
+
+    # TODO: const_char *            
elm_entry_context_menu_item_label_get(const_Elm_Entry_Context_Menu_Item *item)
+    # TODO: void                    
elm_entry_context_menu_item_icon_get(const_Elm_Entry_Context_Menu_Item *item, 
const_char **icon_file, const_char **icon_group, Elm_Icon_Type *icon_type)
diff --git a/efl/elementary/entry.pyx b/efl/elementary/entry.pyx
index ac6a26b..50fccd4 100644
--- a/efl/elementary/entry.pyx
+++ b/efl/elementary/entry.pyx
@@ -237,6 +237,27 @@ Default text parts of the entry that you can use for are:
 - "default" - text of the entry
 
 
+.. _Elm_Autocapital_Type:
+
+.. rubric:: Autocapitalization types
+
+.. data:: ELM_AUTOCAPITAL_TYPE_NONE
+
+    No auto-capitalization when typing
+
+.. data:: ELM_AUTOCAPITAL_TYPE_WORD
+
+    Autocapitalize each word typed
+
+.. data:: ELM_AUTOCAPITAL_TYPE_SENTENCE
+
+    Autocapitalize the start of each sentence
+
+.. data:: ELM_AUTOCAPITAL_TYPE_ALLCHARACTER
+
+    Autocapitalize all letters
+
+
 .. _Elm_Cnp_Mode:
 
 .. rubric:: Copy & paste modes
@@ -416,6 +437,11 @@ from scroller cimport *
 
 cimport enums
 
+ELM_AUTOCAPITAL_TYPE_NONE = enums.ELM_AUTOCAPITAL_TYPE_NONE
+ELM_AUTOCAPITAL_TYPE_WORD = enums.ELM_AUTOCAPITAL_TYPE_WORD
+ELM_AUTOCAPITAL_TYPE_SENTENCE = enums.ELM_AUTOCAPITAL_TYPE_SENTENCE
+ELM_AUTOCAPITAL_TYPE_ALLCHARACTER = enums.ELM_AUTOCAPITAL_TYPE_ALLCHARACTER
+
 ELM_CNP_MODE_MARKUP = enums.ELM_CNP_MODE_MARKUP
 ELM_CNP_MODE_NO_IMAGE = enums.ELM_CNP_MODE_NO_IMAGE
 ELM_CNP_MODE_PLAINTEXT = enums.ELM_CNP_MODE_PLAINTEXT
@@ -559,6 +585,37 @@ cdef class Entry(Object):
         """
         self._set_obj(elm_entry_add(parent.obj))
 
+    def text_style_user_push(self, style):
+        """Push the style to the top of user style stack.
+        If there is styles in the user style stack, the properties in the top 
style
+        of user style stack will replace the properties in current theme.
+        The input style is specified in format tag='property=value' (i.e. 
DEFAULT='font=Sans font_size=60'hilight=' + font_weight=Bold').
+
+        :param style: The style user to push
+
+        """
+        if isinstance(style, unicode): style = style.encode("UTF-8")
+        elm_entry_text_style_user_push(self.obj,
+            <const_char *>style if style is not None else NULL)
+
+    def text_style_user_pop(self):
+        """Remove the style in the top of user style stack.
+
+        :see: :py:func:`text_style_user_push`
+
+        """
+        elm_entry_text_style_user_pop(self.obj)
+
+    def text_style_user_peek(self):
+        """Retrieve the style on the top of user style stack.
+
+        :return: style on the top of user style stack if exist, otherwise None.
+
+        :see: :py:func:`text_style_user_push`
+
+        """
+        return _ctouni(elm_entry_text_style_user_peek(self.obj))
+
     property single_line:
         """Single line mode.
 
@@ -690,7 +747,7 @@ cdef class Entry(Object):
         done to the textblock returned by this function should be followed by
         a call to :py:func:`calc_force()`.
 
-        The return value is marked as const as an additional warning.
+        The return value is marked as const_as an additional warning.
         One should not use the returned object with any of the generic evas
         functions (geometry_get/resize/move and etc), but only with the 
textblock
         functions; The former will either not work at all, or break the correct
@@ -1010,7 +1067,7 @@ cdef class Entry(Object):
         """
         elm_entry_context_menu_clear(self.obj)
 
-    # TODO XXX
+    # TODO:
     # def context_menu_item_add(self, label, icon_file, icon_type, cb, data):
         """This adds an item to the entry's contextual menu.
 
@@ -1052,17 +1109,93 @@ cdef class Entry(Object):
     def context_menu_disabled_get(self):
         return elm_entry_context_menu_disabled_get(self.obj)
 
-    # elm_entry_item_provider_append() # TODO XXX
+    # TODO:
+    # def item_provide_append(self, func, data):
+    #     """This appends a custom item provider to the list for that entry
+
+    #     This appends the given callback. The list is walked from beginning 
to end
+    #     with each function called given the item href string in the text. If 
the
+    #     function returns an object handle other than NULL (it should create 
an
+    #     object to do this), then this object is used to replace that item. If
+    #     not the next provider is called until one provides an item object, 
or the
+    #     default provider in entry does.
 
-    # elm_entry_item_provider_prepend() # TODO XXX
+    #     :param func: The function called to provide the item object
+    #     :param data: The data passed to @p func
 
-    # elm_entry_item_provider_remove() # TODO XXX
+    #     """
+    #     elm_entry_item_provider_append(self.obj, Elm_Entry_Item_Provider_Cb 
func, void *data)
 
-    # elm_entry_markup_filter_append() # TODO XXX
+    # TODO:
+    # def item_provider_prepend(self, func, data):
+    #     """This prepends a custom item provider to the list for that entry
 
-    # elm_entry_markup_filter_prepend() # TODO XXX
+    #     This prepends the given callback. See 
elm_entry_item_provider_append() for
+    #     more information
 
-    # elm_entry_markup_filter_remove() # TODO XXX
+    #     :param func: The function called to provide the item object
+    #     :param data: The data passed to @p func
+
+    #     """
+    #     elm_entry_item_provider_prepend(self.obj, Elm_Entry_Item_Provider_Cb 
func, void *data)
+
+    # TODO:
+    # def item_provider_remove(self, func, data):
+    #     """This removes a custom item provider to the list for that entry
+
+    #     This removes the given callback. See 
elm_entry_item_provider_append() for
+    #     more information
+
+    #     :param func: The function called to provide the item object
+    #     :param data: The data passed to @p func
+
+    #     """
+    #     elm_entry_item_provider_remove(self.obj, Elm_Entry_Item_Provider_Cb 
func, void *data)
+
+    # TODO:
+    # def markup_filter_append(self, func, data):
+    #     """Append a markup filter function for text inserted in the entry
+
+    #     Append the given callback to the list. This functions will be called
+    #     whenever any text is inserted into the entry, with the text to be 
inserted
+    #     as a parameter. The type of given text is always markup.
+    #     The callback function is free to alter the text in any way it wants, 
but
+    #     it must remember to free the given pointer and update it.
+    #     If the new text is to be discarded, the function can free it and set 
its
+    #     text parameter to NULL. This will also prevent any following filters 
from
+    #     being called.
+
+    #     :param func: The function to use as text filter
+    #     :param data: User data to pass to @p func
+
+    #     """
+    #     elm_entry_markup_filter_append(self.obj, Elm_Entry_Filter_Cb func, 
void *data)
+
+    # TODO:
+    # def markup_filter_prepend(self, func, data):
+    #     """Prepend a markup filter function for text inserted in the entry
+
+    #     Prepend the given callback to the list. See 
elm_entry_markup_filter_append()
+    #     for more information
+
+    #     :param func: The function to use as text filter
+    #     :param data: User data to pass to @p func
+
+    #     """
+    #     elm_entry_markup_filter_prepend(self.obj, Elm_Entry_Filter_Cb func, 
void *data)
+
+    # TODO:
+    # def markup_filter_remove(self, func, data):
+    #     """Remove a markup filter from the list
+
+    #     Removes the given callback from the filter list. See
+    #     elm_entry_markup_filter_append() for more information.
+
+    #     :param func: The filter function to remove
+    #     :param data: The user data passed when adding the function
+
+    #     """
+    #     elm_entry_markup_filter_remove(self.obj, Elm_Entry_Filter_Cb func, 
void *data)
 
     markup_to_utf8 = staticmethod(Entry_markup_to_utf8)
 
@@ -1152,17 +1285,30 @@ cdef class Entry(Object):
 
     property icon_visible:
         """Sets the visibility of the end widget of the entry, set by
-        *Object.part_content_set("end", content)*.
+        ``Entry.part_content_set("icon", content)``.
 
         :type: bool
 
         """
-        def __set__(self, visible):
-            elm_entry_icon_visible_set(self.obj, visible)
+        def __set__(self, value):
+            self.icon_visible_set(value)
 
-    def icon_visible_set(self, visible):
+    cpdef icon_visible_set(self, visible):
         elm_entry_icon_visible_set(self.obj, visible)
 
+    property end_visible:
+        """Sets the visibility of the end widget of the entry, set by
+        ``Entry.part_content_set("end", content)``.
+
+        :type: bool
+
+        """
+        def __set__(self, value):
+            self.end_visible_set(value)
+
+    cpdef end_visible_set(self, setting):
+        elm_entry_end_visible_set(self.obj, setting)
+
     property scrollbar_policy:
         """This sets the entry's scrollbar policy (i.e. enabling/disabling
         them).
@@ -1223,6 +1369,44 @@ cdef class Entry(Object):
     def input_panel_layout_get(self):
         return elm_entry_input_panel_layout_get(self.obj)
 
+    property input_panel_layout_variation:
+        """Input panel layout variation of the entry
+
+        :type: int
+
+        :since: 1.8
+
+        """
+        def __set__(self, value):
+            self.input_panel_layout_variation_set(value)
+
+        def __get__(self):
+            return self.input_panel_layout_variation_get()
+
+    cpdef input_panel_layout_variation_set(self, int variation):
+        elm_entry_input_panel_layout_variation_set(self.obj, variation)
+
+    cpdef input_panel_layout_variation_get(self):
+        return elm_entry_input_panel_layout_variation_get(self.obj)
+
+    property autocapital_type:
+        """Autocapitalization type on the immodule.
+
+        :type: :ref:`Autocapitalization type <Elm_Autocapital_Type>`
+
+        """
+        def __set__(self, value):
+            self.autocapital_type_set(value)
+
+        def __get__(self):
+            return self.autocapital_type_get()
+
+    cpdef autocapital_type_set(self, Elm_Autocapital_Type autocapital_type):
+        elm_entry_autocapital_type_set(self.obj, autocapital_type)
+
+    cpdef autocapital_type_get(self):
+        return elm_entry_autocapital_type_get(self.obj)
+
     property input_panel_enabled:
         """Whether to show the input panel automatically or not.
 
@@ -1286,9 +1470,31 @@ cdef class Entry(Object):
     def input_panel_language_get(self):
         return elm_entry_input_panel_language_get(self.obj)
 
-    # TODO XXX elm_entry_input_panel_imdata_set() ??
+    # TODO:
+    # def input_panel_imdata_set(self, data, length):
+    #     """Set the input panel-specific data to deliver to the input panel.
+
+    #     This API is used by applications to deliver specific data to the 
input panel.
+    #     The data format MUST be negotiated by both application and the input 
panel.
+    #     The size and format of data are defined by the input panel.
+
+    #     :param data: The specific data to be set to the input panel.
+    #     :param len: the length of data, in bytes, to send to the input panel
+
+    #     """
+    #     elm_entry_input_panel_imdata_set(self.obj, const_void *data, int len)
 
-    # TODO XXX elm_entry_input_panel_imdata_get() ??
+    # TODO:
+    # def input_panel_imdata_get(self, data, length):
+    #     """Get the specific data of the current input panel.
+
+    #     See :py:func:`input_panel_imdata_set` for more details.
+
+    #     :param data: The specific data to be got from the input panel
+    #     :param len: The length of data
+
+    #     """
+    #     elm_entry_input_panel_imdata_get(self.obj, void *data, int *len)
 
     property input_panel_return_key_type:
         """The "return" key type. This type is used to set string or icon on
@@ -1374,8 +1580,72 @@ cdef class Entry(Object):
     def prediction_allow_get(self):
         return elm_entry_prediction_allow_get(self.obj)
 
-    # TODO XXX elm_entry_filter_accept_set()
-    # TODO XXX elm_entry_imf_context_get() ??
+    # TODO:
+    # def filter_limit_size(self, data, text):
+    #     """Filter inserted text based on user defined character and byte 
limits
+
+    #     Add this filter to an entry to limit the characters that it will 
accept
+    #     based the contents of the provided #Elm_Entry_Filter_Limit_Size.
+    #     The function works on the UTF-8 representation of the string, 
converting
+    #     it from the set markup, thus not accounting for any format in it.
+
+    #     The user must create an #Elm_Entry_Filter_Limit_Size structure and 
pass
+    #     it as data when setting the filter. In it, it's possible to set 
limits
+    #     by character count or bytes (any of them is disabled if 0), and both 
can
+    #     be set at the same time. In that case, it first checks for 
characters,
+    #     then bytes. The #Elm_Entry_Filter_Limit_Size structure must be alive 
and
+    #     valid for as long as the entry is alive AND the 
elm_entry_filter_limit_size
+    #     filter is set.
+
+    #     The function will cut the inserted text in order to allow only the 
first
+    #     number of characters that are still allowed. The cut is made in
+    #     characters, even when limiting by bytes, in order to always contain
+    #     valid ones and avoid half unicode characters making it in.
+
+    #     This filter, like any others, does not apply when setting the entry 
text
+    #     directly with elm_object_text_set().
+
+    #     """
+    #     elm_entry_filter_limit_size(void *data, Evas_Object *entry, char 
**text)
+
+    # TODO:
+    # def filter_accept_set(self, data, text):
+    #     """Filter inserted text based on accepted or rejected sets of 
characters
+
+    #     Add this filter to an entry to restrict the set of accepted 
characters
+    #     based on the sets in the provided #Elm_Entry_Filter_Accept_Set.
+    #     This structure contains both accepted and rejected sets, but they are
+    #     mutually exclusive. This structure must be available for as long as
+    #     the entry is alive AND the elm_entry_filter_accept_set is being used.
+
+    #     The @c accepted set takes preference, so if it is set, the filter 
will
+    #     only work based on the accepted characters, ignoring anything in the
+    #     @c rejected value. If @c accepted is @c NULL, then @c rejected is 
used.
+
+    #     In both cases, the function filters by matching utf8 characters to 
the
+    #     raw markup text, so it can be used to remove formatting tags.
+
+    #     This filter, like any others, does not apply when setting the entry 
text
+    #     directly with elm_object_text_set()
+
+    #     """
+    #     elm_entry_filter_accept_set(void *data, Evas_Object *entry, char 
**text)
+
+    # TODO:
+    # property imf_context:
+    #     """Input method context of the entry.
+
+    #     IMPORTANT: Many functions may change (i.e delete and create a new 
one)
+    #     the internal input method context. Do NOT cache the returned object.
+
+    #     :return: The input method context (Ecore_IMF_Context *) in entry.
+
+    #     """
+    #     def __get__(self):
+    #         return self.imf_context_get()
+
+    # cpdef imf_context_get(self):
+    #     void *elm_entry_imf_context_get(self.obj)
 
     property cnp_mode:
         """Control pasting of text and images for the widget.
@@ -1464,6 +1734,7 @@ cdef class Entry(Object):
         """
         elm_entry_anchor_hover_end(self.obj)
 
+
     def callback_changed_add(self, func, *args, **kwargs):
         """The text within the entry was changed."""
         self._callback_add("changed", func, *args, **kwargs)
@@ -1667,3 +1938,41 @@ cdef class Entry(Object):
 
 
 _object_mapping_register("elm_entry", Entry)
+
+
+# TODO:
+# def context_menu_item_label_get(menu_item):
+#     """Get the text of the contextual menu item.
+
+#     Gets the text of the contextual menu item of entry.
+
+#     :param item: The item to get the label
+#     :return: The text of contextual menu item
+
+#     :see: :py:func:`Entry.context_menu_item_add`
+
+#     :since: 1.8
+
+#     """
+#     return 
_ctouni(elm_entry_context_menu_item_label_get(const_Elm_Entry_Context_Menu_Item 
*item))
+
+# TODO:
+# def context_menu_item_icon_get(menu_item):
+#     """Get the icon object of the contextual menu item.
+
+#     Gets the icon object packed in the contextual menu item of entry.
+
+#     :param item: The item to get the icon from
+#     :param icon_file: The image file path on disk used for the icon or 
standard
+#         icon name
+#     :param icon_group: The edje group used if @p icon_file is an edje file. 
NULL
+#         if the icon is not an edje file
+#     :param icon_type: The icon type
+
+#     :see: :py:func:`Entry.context_menu_item_add`
+
+#     :since: 1.8
+
+#     """
+#     elm_entry_context_menu_item_icon_get(const_Elm_Entry_Context_Menu_Item 
*item, const_char **icon_file, const_char **icon_group, Elm_Icon_Type 
*icon_type);
+
diff --git a/efl/elementary/enums.pxd b/efl/elementary/enums.pxd
index 4c009cc..be11359 100644
--- a/efl/elementary/enums.pxd
+++ b/efl/elementary/enums.pxd
@@ -18,6 +18,12 @@ cdef extern from "Elementary.h":
         ELM_ACTIONSLIDER_RIGHT
         ELM_ACTIONSLIDER_ALL
 
+    ctypedef enum Elm_Autocapital_Type:
+        ELM_AUTOCAPITAL_TYPE_NONE
+        ELM_AUTOCAPITAL_TYPE_WORD
+        ELM_AUTOCAPITAL_TYPE_SENTENCE
+        ELM_AUTOCAPITAL_TYPE_ALLCHARACTER
+
     ctypedef enum Elm_Bg_Option:
         ELM_BG_OPTION_CENTER
         ELM_BG_OPTION_SCALE

-- 

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter

Reply via email to