kuuko pushed a commit to branch master.

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

commit e3509d4dd89fd0d26eb78a1a2db4572591324af4
Author: Kai Huuhko <kai.huu...@gmail.com>
Date:   Sun Sep 22 21:16:31 2013 +0300

    Elementary: Add missing functions/signals
---
 efl/elementary/bubble.pyx         |  21 +++
 efl/elementary/button.pyx         |  29 +++-
 efl/elementary/calendar_elm.pyx   |  22 +++
 efl/elementary/check.pyx          |  21 +++
 efl/elementary/clock.pyx          |  21 +++
 efl/elementary/colorselector.pyx  |  21 +++
 efl/elementary/configuration.pxd  |  15 ++
 efl/elementary/configuration.pyx  |  93 +++++++++++-
 efl/elementary/ctxpopup.pyx       |  35 ++++-
 efl/elementary/datetime_elm.pyx   |  25 +++-
 efl/elementary/dayselector.pxd    |  13 +-
 efl/elementary/dayselector.pyx    |  37 +++++
 efl/elementary/diskselector.pyx   |  33 ++++-
 efl/elementary/entry.pyx          |   7 +
 efl/elementary/fileselector.pyx   |  16 ++-
 efl/elementary/flipselector.pyx   |  21 +++
 efl/elementary/gengrid.pyx        | 291 +++++++++++++++++++++++++++++++++++---
 efl/elementary/genlist.pyx        |  10 ++
 efl/elementary/genlist_widget.pxi |  41 ++++++
 efl/elementary/hover.pyx          |  22 +++
 20 files changed, 746 insertions(+), 48 deletions(-)

diff --git a/efl/elementary/bubble.pyx b/efl/elementary/bubble.pyx
index 99fd856..39a9e19 100644
--- a/efl/elementary/bubble.pyx
+++ b/efl/elementary/bubble.pyx
@@ -49,6 +49,8 @@ This widget emits the following signals, besides the ones 
sent from
 :py:class:`efl.elementary.layout_class.LayoutClass`:
 
 - ``clicked`` - This is called when a user has clicked the bubble.
+- ``focused`` - When the bubble has received focus. (since 1.8)
+- ``unfocused`` - When the bubble has lost focus. (since 1.8)
 
 Default content parts of the bubble that you can use for are:
 
@@ -133,5 +135,24 @@ cdef class Bubble(LayoutClass):
     def callback_clicked_del(self, func):
         self._callback_del("clicked", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the bubble has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the bubble has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_bubble", Bubble)
diff --git a/efl/elementary/button.pyx b/efl/elementary/button.pyx
index a5be8ea..9579494 100644
--- a/efl/elementary/button.pyx
+++ b/efl/elementary/button.pyx
@@ -29,10 +29,12 @@ a simple label and icon object and it also has an 
autorepeat feature.
 This widget emits the following signals, besides the ones sent from
 :py:class:`elementary.layout.Layout`:
 
-- "clicked": the user clicked the button (press/release).
-- "repeated": the user pressed the button without releasing it.
-- "pressed": button was pressed.
-- "unpressed": button was released after being pressed.
+- ``clicked``: the user clicked the button (press/release).
+- ``repeated``: the user pressed the button without releasing it.
+- ``pressed``: button was pressed.
+- ``unpressed``: button was released after being pressed.
+- ``focused`` : When the button has received focus. (since 1.8)
+- ``unfocused`` : When the button has lost focus. (since 1.8)
 
 Also, defined in the default theme, the button has the following styles
 available:
@@ -170,5 +172,24 @@ cdef class Button(LayoutClass):
     def callback_unpressed_del(self, func):
         self._callback_del("unpressed", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the button has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the button has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_button", Button)
diff --git a/efl/elementary/calendar_elm.pyx b/efl/elementary/calendar_elm.pyx
index b26d66f..f8ca34f 100644
--- a/efl/elementary/calendar_elm.pyx
+++ b/efl/elementary/calendar_elm.pyx
@@ -42,6 +42,8 @@ This widget emits the following signals, besides the ones 
sent from
 - ``changed`` - emitted when the date in the calendar is changed.
 - ``display,changed`` - emitted when the current month displayed in the
   calendar is changed.
+- ``focused`` - When the calendar has received focus. (since 1.8)
+- ``unfocused`` - When the calendar has lost focus. (since 1.8)
 
 
 Enumerations
@@ -557,4 +559,24 @@ cdef class Calendar(LayoutClass):
     def callback_changed_del(self, func):
         self._callback_del("display,changed", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the calendar has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the calendar has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
+
 _object_mapping_register("elm_calendar", Calendar)
diff --git a/efl/elementary/check.pyx b/efl/elementary/check.pyx
index a2f6d15..1f773c0 100644
--- a/efl/elementary/check.pyx
+++ b/efl/elementary/check.pyx
@@ -36,6 +36,8 @@ This widget emits the following signals, besides the ones 
sent from
 
 - ``changed`` - This is called whenever the user changes the state of
   the check objects.
+- ``focused`` - When the check has received focus. (since 1.8)
+- ``unfocused`` - When the check has lost focus. (since 1.8)
 
 Default content parts of the check widget that you can use for are:
 
@@ -88,5 +90,24 @@ cdef class Check(LayoutClass):
     def callback_changed_del(self, func):
         self._callback_del("changed", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the check has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the check has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_check", Check)
diff --git a/efl/elementary/clock.pyx b/efl/elementary/clock.pyx
index 0c10603..fe6fae3 100644
--- a/efl/elementary/clock.pyx
+++ b/efl/elementary/clock.pyx
@@ -53,6 +53,8 @@ This widget emits the following signals, besides the ones 
sent from
 :py:class:`elementary.layout.Layout`:
 
 - ``changed`` - the clock's user changed the time
+- ``focused`` - When the clock has received focus. (since 1.8)
+- ``unfocused`` - When the clock has lost focus. (since 1.8)
 
 
 Enumerations
@@ -283,5 +285,24 @@ cdef class Clock(LayoutClass):
     def callback_changed_del(self, func):
         self._callback_del("changed", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the clock has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the clock has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_clock", Clock)
diff --git a/efl/elementary/colorselector.pyx b/efl/elementary/colorselector.pyx
index 8b62bea..757a12c 100644
--- a/efl/elementary/colorselector.pyx
+++ b/efl/elementary/colorselector.pyx
@@ -41,6 +41,8 @@ This widget emits the following signals, besides the ones 
sent from
 - ``"color,item,longpressed"`` - When user long presses on color item.
     The event_info parameter of the callback will be the selected
     color item.
+- ``focused`` - When the colorselector has received focus. (since 1.8)
+- ``unfocused`` - When the colorselector has lost focus. (since 1.8)
 
 
 Enumerations
@@ -234,5 +236,24 @@ cdef class Colorselector(LayoutClass):
         self._callback_del_full("color,item,longpressed",
                                 _cb_object_item_conv, func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the check has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the check has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_colorselector", Colorselector)
diff --git a/efl/elementary/configuration.pxd b/efl/elementary/configuration.pxd
index 0c280d8..e274e09 100644
--- a/efl/elementary/configuration.pxd
+++ b/efl/elementary/configuration.pxd
@@ -33,6 +33,7 @@ cdef extern from "Elementary.h":
     void                    
elm_config_scroll_bring_in_scroll_friction_set(double friction)
     double                  elm_config_scroll_zoom_friction_get()
     void                    elm_config_scroll_zoom_friction_set(double 
friction)
+
     Eina_Bool               elm_config_scroll_thumbscroll_enabled_get()
     void                    
elm_config_scroll_thumbscroll_enabled_set(Eina_Bool enabled)
     unsigned int            elm_config_scroll_thumbscroll_threshold_get()
@@ -41,8 +42,14 @@ cdef extern from "Elementary.h":
     void                    
elm_config_scroll_thumbscroll_hold_threshold_set(unsigned int threshold)
     double                  
elm_config_scroll_thumbscroll_momentum_threshold_get()
     void                    
elm_config_scroll_thumbscroll_momentum_threshold_set(double threshold)
+    unsigned int            
elm_config_scroll_thumbscroll_flick_distance_tolerance_get()
+    void                    
elm_config_scroll_thumbscroll_flick_distance_tolerance_set(unsigned int 
distance)
     double                  elm_config_scroll_thumbscroll_friction_get()
     void                    elm_config_scroll_thumbscroll_friction_set(double 
friction)
+    double                  elm_config_scroll_thumbscroll_min_friction_get()
+    void                    
elm_config_scroll_thumbscroll_min_friction_set(double friction)
+    double                  
elm_config_scroll_thumbscroll_friction_standard_get()
+    void                    
elm_config_scroll_thumbscroll_friction_standard_set(double standard)
     double                  elm_config_scroll_thumbscroll_border_friction_get()
     void                    
elm_config_scroll_thumbscroll_border_friction_set(double friction)
     double                  
elm_config_scroll_thumbscroll_sensitivity_friction_get()
@@ -108,4 +115,12 @@ cdef extern from "Elementary.h":
     Eina_Bool               elm_config_mirrored_get()
     void                    elm_config_mirrored_set(Eina_Bool mirrored)
 
+    Eina_Bool               elm_config_clouseau_enabled_get()
+    void                    elm_config_clouseau_enabled_set(Eina_Bool enabled)
+
     const_char *            elm_config_indicator_service_get(int rotation)
+
+    double                  elm_config_glayer_long_tap_start_timeout_get()
+    void                    
elm_config_glayer_long_tap_start_timeout_set(double long_tap_timeout)
+    double                  elm_config_glayer_double_tap_timeout_get()
+    void                    elm_config_glayer_double_tap_timeout_set(double 
double_tap_timeout)
diff --git a/efl/elementary/configuration.pyx b/efl/elementary/configuration.pyx
index 7e07ab4..83d87de 100644
--- a/efl/elementary/configuration.pyx
+++ b/efl/elementary/configuration.pyx
@@ -317,6 +317,23 @@ cdef class Configuration(object):
         def __set__(self, double threshold):
             elm_config_scroll_thumbscroll_momentum_threshold_set(threshold)
 
+    property scroll_thumbscroll_flick_distance_tolerance:
+        """
+
+        The number of pixels the maximum distance which can be flicked.
+        If it is flicked more than this,
+        the flick distance is same with maximum distance.
+
+        :type: int
+
+        :see: elm_config_thumbscroll_flick_distance_tolerance_get()
+
+        """
+        def __get__(self):
+            return elm_config_scroll_thumbscroll_flick_distance_tolerance_get()
+        def __set__(self, unsigned int distance):
+            
elm_config_scroll_thumbscroll_flick_distance_tolerance_set(distance)
+
     property scroll_thumbscroll_friction:
         """The amount of inertia a scroller will impose at self scrolling
         animations.
@@ -329,6 +346,39 @@ cdef class Configuration(object):
         def __set__(self, double friction):
             elm_config_scroll_thumbscroll_friction_set(friction)
 
+    property scroll_thumbscroll_min_friction:
+        """
+
+        The min amount of inertia a scroller will impose at self scrolling
+        animations.
+
+        :type: float
+
+        :see: elm_config_thumbscroll_min_friction_get()
+
+        """
+        def __get__(self):
+            return elm_config_scroll_thumbscroll_min_friction_get()
+        def __set__(self, double friction):
+            elm_config_scroll_thumbscroll_min_friction_set(friction)
+
+    property scroll_thumbscroll_friction_standard:
+        """
+
+        The standard velocity of the scroller. The scroll animation time is
+        same with thumbscroll friction, if the velocity is same with standard
+        velocity.
+
+        :type: float
+
+        :see: elm_config_thumbscroll_friction_standard_get()
+
+        """
+        def __get__(self):
+            return elm_config_scroll_thumbscroll_friction_standard_get()
+        def __set__(self, double standard):
+            elm_config_scroll_thumbscroll_friction_standard_set(standard)
+
     property scroll_thumbscroll_border_friction:
         """The amount of lag between your actual mouse cursor dragging
         movement and a scroller's view movement itself, while pushing it
@@ -369,7 +419,6 @@ cdef class Configuration(object):
         """
         def __get__(self):
             return elm_config_scroll_thumbscroll_acceleration_threshold_get()
-
         def __set__(self, double threshold):
             elm_config_scroll_thumbscroll_acceleration_threshold_set(threshold)
 
@@ -381,7 +430,6 @@ cdef class Configuration(object):
         """
         def __get__(self):
             return elm_config_scroll_thumbscroll_acceleration_time_limit_get()
-
         def __set__(self, double time_limit):
             
elm_config_scroll_thumbscroll_acceleration_time_limit_set(time_limit)
 
@@ -393,7 +441,6 @@ cdef class Configuration(object):
         """
         def __get__(self):
             return elm_config_scroll_thumbscroll_acceleration_weight_get()
-
         def __set__(self, double weight):
             elm_config_scroll_thumbscroll_acceleration_weight_set(weight)
 
@@ -421,7 +468,6 @@ cdef class Configuration(object):
         """
         def __set__(self, Elm_Softcursor_Mode mode):
             elm_config_softcursor_mode_set(mode)
-
         def __get__(self):
             return elm_config_softcursor_mode_get()
 
@@ -805,6 +851,20 @@ cdef class Configuration(object):
         def __set__(self, bint mirrored):
             elm_config_mirrored_set(mirrored)
 
+    property clouseau_enabled:
+        """
+
+        Clouseau state. True if clouseau was tried to be run.
+
+        :since: 1.8
+        :return: True if clouseau was tried to run, False otherwise
+
+        """
+        def __get__(self):
+            return bool(elm_config_clouseau_enabled_get())
+        def __set__(self, bint enabled):
+            elm_config_clouseau_enabled_set(enabled)
+
     def indicator_service_get(self, int rotation):
         """indicator_service_get(int rotation) -> unicode
 
@@ -817,6 +877,31 @@ cdef class Configuration(object):
         """
         return _ctouni(elm_config_indicator_service_get(rotation))
 
+    property glayer_long_tap_start_timeout:
+        """
+
+        The duration for occurring long tap event of gesture layer.
+
+        :type: float
+
+        """
+        def __get__(self):
+            return elm_config_glayer_long_tap_start_timeout_get()
+        def __set__(self, double long_tap_timeout):
+            elm_config_glayer_long_tap_start_timeout_set(long_tap_timeout)
+
+    property glayer_double_tap_timeout:
+        """
+
+        Get the duration for occurring double tap event of gesture layer.
+
+        :return: Timeout for double tap event of gesture layer.
+
+        """
+        def __get__(self):
+            return elm_config_glayer_double_tap_timeout_get()
+        def __set__(self, double double_tap_timeout):
+            elm_config_glayer_double_tap_timeout_set(double_tap_timeout)
 
 #For compatibility
 def config_finger_size_get():
diff --git a/efl/elementary/ctxpopup.pyx b/efl/elementary/ctxpopup.pyx
index c950da5..08074f3 100644
--- a/efl/elementary/ctxpopup.pyx
+++ b/efl/elementary/ctxpopup.pyx
@@ -33,7 +33,14 @@ a label and/or an icon. It is intended for a small number of 
items
 
 Signals that you can add callbacks for are:
 
-- "dismissed" - the ctxpopup was dismissed
+- ``dismissed`` - This is called when 1. the outside of ctxpopup was clicked
+  or 2. its parent area is changed or 3. the language is changed and also when
+  4. the parent object is resized due to the window rotation. Then ctxpopup is
+  dismissed.
+- ``language,changed`` - This is called when the program's language is
+  changed.
+- ``focused`` - When the ctxpopup has received focus. (since 1.8)
+- ``unfocused`` - When the ctxpopup has lost focus. (since 1.8)
 
 Default content parts of the ctxpopup widget that you can use for are:
 
@@ -275,5 +282,31 @@ cdef class Ctxpopup(LayoutClass):
     def callback_dismissed_del(self, func):
         self._callback_del("dismissed", func)
 
+    def callback_language_changed_add(self, func, *args, **kwargs):
+        """This is called when the program's language is changed."""
+        self._callback_add("language,changed", func, *args, **kwargs)
+
+    def callback_language_changed_del(self, func):
+        self._callback_del("language,changed", func)
+
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the ctxpopup has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the ctxpopup has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_ctxpopup", Ctxpopup)
diff --git a/efl/elementary/datetime_elm.pyx b/efl/elementary/datetime_elm.pyx
index 89e279b..699a3d6 100644
--- a/efl/elementary/datetime_elm.pyx
+++ b/efl/elementary/datetime_elm.pyx
@@ -207,10 +207,12 @@ To enable a module, set the ELM_MODULES environment 
variable as shown:
 This widget emits the following signals, besides the ones sent from
 :py:class:`elementary.layout.Layout`:
 
-- **"changed"** - whenever Datetime field value is changed, this
+- ``changed`` - whenever Datetime field value is changed, this
     signal is sent.
-- **"language,changed"** - whenever system locale changes, this
+- ``language,changed`` - whenever system locale changes, this
     signal is sent.
+- ``focused`` - When the datetime has received focus. (since 1.8)
+- ``unfocused`` - When the datetime has lost focus. (since 1.8)
 
 
 Enumerations
@@ -582,5 +584,24 @@ cdef class Datetime(Object):
     def callback_language_changed_del(self, func):
         self._callback_del("language,changed", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the datetime has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the datetime has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_datetime", Datetime)
diff --git a/efl/elementary/dayselector.pxd b/efl/elementary/dayselector.pxd
index b5403f8..5e32e96 100644
--- a/efl/elementary/dayselector.pxd
+++ b/efl/elementary/dayselector.pxd
@@ -1,13 +1,16 @@
-from efl.evas cimport Eina_Bool, Evas_Object
+from efl.evas cimport Eina_Bool, Evas_Object, const_Evas_Object, Eina_List
 from enums cimport Elm_Dayselector_Day
+from libc.string cimport const_char
 
 cdef extern from "Elementary.h":
     Evas_Object             *elm_dayselector_add(Evas_Object *parent)
     void                     elm_dayselector_day_selected_set(Evas_Object 
*obj, Elm_Dayselector_Day day, Eina_Bool selected)
-    Eina_Bool                elm_dayselector_day_selected_get(Evas_Object 
*obj, Elm_Dayselector_Day day)
+    Eina_Bool                
elm_dayselector_day_selected_get(const_Evas_Object *obj, Elm_Dayselector_Day 
day)
     void                     elm_dayselector_week_start_set(Evas_Object *obj, 
Elm_Dayselector_Day day)
-    Elm_Dayselector_Day      elm_dayselector_week_start_get(Evas_Object *obj)
+    Elm_Dayselector_Day      elm_dayselector_week_start_get(const_Evas_Object 
*obj)
     void                     elm_dayselector_weekend_start_set(Evas_Object 
*obj, Elm_Dayselector_Day day)
-    Elm_Dayselector_Day      elm_dayselector_weekend_start_get(Evas_Object 
*obj)
+    Elm_Dayselector_Day      
elm_dayselector_weekend_start_get(const_Evas_Object *obj)
     void                     elm_dayselector_weekend_length_set(Evas_Object 
*obj, unsigned int length)
-    unsigned int             elm_dayselector_weekend_length_get(Evas_Object 
*obj)
+    unsigned int             
elm_dayselector_weekend_length_get(const_Evas_Object *obj)
+    void                     elm_dayselector_weekdays_names_set(Evas_Object 
*obj, const_char *weekdays[])
+    Eina_List               
*elm_dayselector_weekdays_names_get(const_Evas_Object *obj)
diff --git a/efl/elementary/dayselector.pyx b/efl/elementary/dayselector.pyx
index f634c60..23ffbb1 100644
--- a/efl/elementary/dayselector.pyx
+++ b/efl/elementary/dayselector.pyx
@@ -109,6 +109,8 @@ Dayselector days
 
 include "widget_header.pxi"
 
+from efl.eo cimport convert_python_list_strings_to_array_of_strings, \
+    convert_eina_list_strings_to_python_list
 from layout_class cimport LayoutClass
 
 cimport enums
@@ -188,6 +190,41 @@ cdef class Dayselector(LayoutClass):
         def __set__(self, length):
             elm_dayselector_weekend_length_set(self.obj, length)
 
+    property weekdays_names:
+        """
+
+        Set weekdays names to be displayed by the Dayselector.
+
+        :param weekdays: List of seven strings to be used as weekday names.
+
+        .. warning:: It must have 7 elements, or it will access invalid memory.
+
+        By default or if set to None, weekdays abbreviations get from system 
are displayed:
+        E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
+
+        The first string should be related to Sunday, the second to Monday...
+
+        The usage should be like this::
+
+            dayselector.weekdays_names = ["Sunday", "Monday", "Tuesday",
+                "Wednesday", "Thursday", "Friday", "Saturday"]
+
+        :see: elm_dayselector_weekdays_name_get()
+        :see: elm_dayselector_weekend_start_set()
+
+        :since: 1.8
+
+        """
+        def __set__(self, list weekdays):
+            # TODO: Add checks for list validity (len == 7 etc.)
+            elm_dayselector_weekdays_names_set(self.obj,
+                convert_python_list_strings_to_array_of_strings(weekdays))
+
+        def __get__(self):
+            return convert_eina_list_strings_to_python_list(
+                elm_dayselector_weekdays_names_get(self.obj)
+                )
+
     def callback_dayselector_changed_add(self, func, *args, **kwargs):
         """when the user changes the state of a day."""
         self._callback_add("dayselector,changed", func, *args, **kwargs)
diff --git a/efl/elementary/diskselector.pyx b/efl/elementary/diskselector.pyx
index f892ac6..844846c 100644
--- a/efl/elementary/diskselector.pyx
+++ b/efl/elementary/diskselector.pyx
@@ -31,12 +31,14 @@ reduced for a defined length for side items.
 
 Smart callbacks one can listen to:
 
-- "selected" - when item is selected, i.e. scroller stops.
-- "clicked" - This is called when a user clicks an item
-- "scroll,anim,start" - scrolling animation has started
-- "scroll,anim,stop" - scrolling animation has stopped
-- "scroll,drag,start" - dragging the diskselector has started
-- "scroll,drag,stop" - dragging the diskselector has stopped
+- ``selected`` - when item is selected, i.e. scroller stops.
+- ``clicked`` - This is called when a user clicks an item
+- ``scroll,anim,start`` - scrolling animation has started
+- ``scroll,anim,stop`` - scrolling animation has stopped
+- ``scroll,drag,start`` - dragging the diskselector has started
+- ``scroll,drag,stop`` - dragging the diskselector has stopped
+- ``focused`` - When the diskselector has received focus. (since 1.8)
+- ``unfocused`` - When the diskselector has lost focus. (since 1.8)
 
 Available styles for it:
 
@@ -459,5 +461,24 @@ cdef class Diskselector(Object):
     def callback_scroll_drag_stop_del(self, func):
         self._callback_del("scroll,drag,stop", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the diskselector has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the diskselector has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_diskselector", Diskselector)
diff --git a/efl/elementary/entry.pyx b/efl/elementary/entry.pyx
index 9d15543..312953e 100644
--- a/efl/elementary/entry.pyx
+++ b/efl/elementary/entry.pyx
@@ -235,6 +235,7 @@ This widget emits the following signals:
   parameter for the callback will be an :py:class:`EntryAnchorInfo`.
 - "preedit,changed": The preedit string has changed.
 - "language,changed": Program language changed.
+- "text,set,done": Whole text has been set to the entry.
 
 Default content parts of the entry items that you can use for are:
 
@@ -2153,5 +2154,11 @@ cdef class Entry(Object):
     def callback_language_changed_del(self, func):
         self._callback_del("language,changed", func)
 
+    def callback_text_set_done_add(self, func, *args, **kwargs):
+        """Whole text has been set to the entry."""
+        self._callback_add("text,set,done", func, *args, **kwargs)
+
+    def callback_text_set_done_del(self, func):
+        self._callback_del("text,set,done", func)
 
 _object_mapping_register("elm_entry", Entry)
diff --git a/efl/elementary/fileselector.pyx b/efl/elementary/fileselector.pyx
index 2a875f6..b7a752c 100644
--- a/efl/elementary/fileselector.pyx
+++ b/efl/elementary/fileselector.pyx
@@ -51,11 +51,11 @@ it supports.
 This widget emits the following signals, besides the ones sent from
 :py:class:`elementary.layout.Layout`:
 
-- ``"selected"`` - the user has clicked on a file (when not in
+- ``selected`` - the user has clicked on a file (when not in
     folders-only mode) or directory (when in folders-only mode)
-- ``"directory,open"`` - the list has been populated with new
+- ``directory,open`` - the list has been populated with new
   content (*event_info* is the directory's path)
-- ``"done"`` - the user has clicked on the "ok" or "cancel"
+- ``done`` - the user has clicked on the "ok" or "cancel"
   buttons (*event_info* is the selection's path)
 
 
@@ -316,6 +316,16 @@ cdef class Fileselector(LayoutClass):
     def callback_selected_del(self, func):
         self._callback_del_full("selected", _cb_string_conv, func)
 
+    #
+    # FIXME: This seems to be a thing that the application should handle
+    #
+    #def callback_selected_invalid_add(self, func, *args, **kwargs):
+        #"""The user has tried to access a path which does not exist."""
+        #self._callback_add("selected,invalid", func, *args, **kwargs)
+
+    #def callback_selected_invalid_del(self, func):
+        #self._callback_del("selected,invalid", func)
+
     def callback_directory_open_add(self, func, *args, **kwargs):
         """The list has been populated with new content (*event_info* is
         the directory's path)."""
diff --git a/efl/elementary/flipselector.pyx b/efl/elementary/flipselector.pyx
index 8a428f4..d13dc9f 100644
--- a/efl/elementary/flipselector.pyx
+++ b/efl/elementary/flipselector.pyx
@@ -46,6 +46,8 @@ This widget emits the following signals, besides the ones 
sent from
   from the first item in its list to the last
 - ``"underflowed"`` - when the widget's current selection is changed
   from the last item in its list to the first
+- ``focused`` - When the flipselector has received focus. (since 1.8)
+- ``unfocused`` - When the flipselector has lost focus. (since 1.8)
 
 Available styles for it:
 
@@ -381,5 +383,24 @@ cdef class FlipSelector(Object):
     def callback_underflowed_del(self, func):
         self._callback_del("underflowed", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the flipselector has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the flipselector has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
 
 _object_mapping_register("elm_flipselector", FlipSelector)
diff --git a/efl/elementary/gengrid.pyx b/efl/elementary/gengrid.pyx
index 8ba1505..979aa33 100644
--- a/efl/elementary/gengrid.pyx
+++ b/efl/elementary/gengrid.pyx
@@ -162,60 +162,78 @@ Gengrid smart events
 
 Smart events that you can add callbacks for are:
 
-- ``"activated"`` - The user has double-clicked or pressed
+- ``activated`` - The user has double-clicked or pressed
   (enter|return|spacebar) on an item. The ``event_info`` parameter
   is the gengrid item that was activated.
-- ``"clicked,double"`` - The user has double-clicked an item.
+- ``clicked,double`` - The user has double-clicked an item.
   The ``event_info`` parameter is the gengrid item that was double-clicked.
-- ``"longpressed"`` - This is called when the item is pressed for a certain
+- ``longpressed`` - This is called when the item is pressed for a certain
   amount of time. By default it's 1 second.
-- ``"selected"`` - The user has made an item selected. The
+- ``selected`` - The user has made an item selected. The
   ``event_info`` parameter is the gengrid item that was selected.
-- ``"unselected"`` - The user has made an item unselected. The
+- ``unselected`` - The user has made an item unselected. The
   ``event_info`` parameter is the gengrid item that was unselected.
-- ``"realized"`` - This is called when the item in the gengrid
+- ``realized`` - This is called when the item in the gengrid
   has its implementing Evas object instantiated, de facto.
   ``event_info`` is the gengrid item that was created. The object
   may be deleted at any time, so it is highly advised to the
   caller **not** to use the object pointer returned from
   elm_gengrid_item_object_get(), because it may point to freed
   objects.
-- ``"unrealized"`` - This is called when the implementing Evas
+- ``unrealized`` - This is called when the implementing Evas
   object for this item is deleted. ``event_info`` is the gengrid
   item that was deleted.
-- ``"changed"`` - Called when an item is added, removed, resized
+- ``changed`` - Called when an item is added, removed, resized
   or moved and when the gengrid is resized or gets "horizontal"
   property changes.
-- ``"scroll,anim,start"`` - This is called when scrolling animation has
+- ``scroll,anim,start`` - This is called when scrolling animation has
   started.
-- ``"scroll,anim,stop"`` - This is called when scrolling animation has
+- ``scroll,anim,stop`` - This is called when scrolling animation has
   stopped.
-- ``"drag,start,up"`` - Called when the item in the gengrid has
+- ``drag,start,up`` - Called when the item in the gengrid has
   been dragged (not scrolled) up.
-- ``"drag,start,down"`` - Called when the item in the gengrid has
+- ``drag,start,down`` - Called when the item in the gengrid has
   been dragged (not scrolled) down.
-- ``"drag,start,left"`` - Called when the item in the gengrid has
+- ``drag,start,left`` - Called when the item in the gengrid has
   been dragged (not scrolled) left.
-- ``"drag,start,right"`` - Called when the item in the gengrid has
+- ``drag,start,right`` - Called when the item in the gengrid has
   been dragged (not scrolled) right.
-- ``"drag,stop"`` - Called when the item in the gengrid has
+- ``drag,stop`` - Called when the item in the gengrid has
   stopped being dragged.
-- ``"drag"`` - Called when the item in the gengrid is being
+- ``drag`` - Called when the item in the gengrid is being
   dragged.
-- ``"scroll"`` - called when the content has been scrolled
+- ``scroll`` - called when the content has been scrolled
   (moved).
-- ``"scroll,drag,start"`` - called when dragging the content has
+- ``scroll,drag,start`` - called when dragging the content has
   started.
-- ``"scroll,drag,stop"`` - called when dragging the content has
+- ``scroll,drag,stop`` - called when dragging the content has
   stopped.
-- ``"edge,top"`` - This is called when the gengrid is scrolled until
+- ``edge,top`` - This is called when the gengrid is scrolled until
   the top edge.
-- ``"edge,bottom"`` - This is called when the gengrid is scrolled
+- ``edge,bottom`` - This is called when the gengrid is scrolled
   until the bottom edge.
-- ``"edge,left"`` - This is called when the gengrid is scrolled
+- ``edge,left`` - This is called when the gengrid is scrolled
   until the left edge.
-- ``"edge,right"`` - This is called when the gengrid is scrolled
+- ``edge,right`` - This is called when the gengrid is scrolled
   until the right edge.
+- ``moved`` - This is called when a gengrid item is moved by a user
+  interaction in a reorder mode. The %c event_info parameter is the item that
+  was moved.
+- ``index,update`` - This is called when a gengrid item index is changed.
+  Note that this callback is called while each item is being realized.
+- ``highlighted`` - an item in the list is highlighted. This is called when
+  the user presses an item or keyboard selection is done so the item is
+  physically highlighted. The %c event_info parameter is the item that was
+  highlighted.
+- ``unhighlighted`` - an item in the list is unhighlighted. This is called
+  when the user releases an item or keyboard selection is moved so the item
+  is physically unhighlighted. The %c event_info parameter is the item that
+  was unhighlighted.
+- ``language,changed`` - This is called when the program's language is
+  changed. Call the elm_gengrid_realized_items_update() if items text should
+  be translated.
+- ``focused`` - When the gengrid has received focus. (since 1.8)
+- ``unfocused`` - When the gengrid has lost focus. (since 1.8)
 
 
 Enumerations
@@ -1650,6 +1668,14 @@ cdef class Gengrid(Object):
     def highlight_mode_get(self, fill):
         return bool(elm_gengrid_highlight_mode_get(self.obj))
 
+
+    def callback_activated_add(self, func, *args, **kwargs):
+        self._callback_add_full("activated", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_activated_del(self, func):
+        self._callback_del_full("activated", _cb_object_item_conv, func)
+
     def callback_clicked_double_add(self, func, *args, **kwargs):
         self._callback_add_full("clicked,double", _cb_object_item_conv,
                                 func, *args, **kwargs)
@@ -1678,5 +1704,224 @@ cdef class Gengrid(Object):
     def callback_unselected_del(self, func):
         self._callback_del_full("unselected", _cb_object_item_conv, func)
 
+    def callback_realized_add(self, func, *args, **kwargs):
+        """This is called when the item in the gengrid
+        has its implementing Evas object instantiated, de facto.
+        ``event_info`` is the gengrid item that was created. The object
+        may be deleted at any time, so it is highly advised to the
+        caller **not** to use the object pointer returned from
+        elm_gengrid_item_object_get(), because it may point to freed
+        objects."""
+        self._callback_add_full("realized", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_realized_del(self, func):
+        self._callback_del_full("realized", _cb_object_item_conv, func)
+
+    def callback_unrealized_add(self, func, *args, **kwargs):
+        """This is called when the implementing Evas
+        object for this item is deleted. ``event_info`` is the gengrid
+        item that was deleted."""
+        self._callback_add_full("unrealized", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_unrealized_del(self, func):
+        self._callback_del_full("unrealized", _cb_object_item_conv, func)
+
+    def callback_changed_add(self, func, *args, **kwargs):
+        """Called when an item is added, removed, resized
+        or moved and when the gengrid is resized or gets "horizontal"
+        property changes."""
+        self._callback_add("changed", func, *args, **kwargs)
+
+    def callback_changed_del(self, func):
+        self._callback_del("changed", func)
+
+    def callback_scroll_anim_start_add(self, func, *args, **kwargs):
+        """This is called when scrolling animation has
+        started."""
+        self._callback_add("scroll,anim,start", func, *args, **kwargs)
+
+    def callback_scroll_anim_start_del(self, func):
+        self._callback_del("scroll,anim,start", func)
+
+    def callback_scroll_anim_stop_add(self, func, *args, **kwargs):
+        """This is called when scrolling animation has
+        stopped."""
+        self._callback_add("scroll,anim,stop", func, *args, **kwargs)
+
+    def callback_scroll_anim_stop_del(self, func):
+        self._callback_del("scroll,anim,stop", func)
+
+    def callback_drag_start_up_add(self, func, *args, **kwargs):
+        """Called when the item in the gengrid has
+        been dragged (not scrolled) up."""
+        self._callback_add("drag,start,up", func, *args, **kwargs)
+
+    def callback_drag_start_up_del(self, func):
+        self._callback_del("drag,start,up", func)
+
+    def callback_drag_start_down_add(self, func, *args, **kwargs):
+        """Called when the item in the gengrid has
+        been dragged (not scrolled) down."""
+        self._callback_add("drag,start,down", func, *args, **kwargs)
+
+    def callback_drag_start_down_del(self, func):
+        self._callback_del("drag,start,down", func)
+
+    def callback_drag_start_left_add(self, func, *args, **kwargs):
+        """Called when the item in the gengrid has
+        been dragged (not scrolled) left."""
+        self._callback_add("drag,start,left", func, *args, **kwargs)
+
+    def callback_drag_start_left_del(self, func):
+        self._callback_del("drag,start,left", func)
+
+    def callback_drag_start_right_add(self, func, *args, **kwargs):
+        """Called when the item in the gengrid has
+        been dragged (not scrolled) right."""
+        self._callback_add("drag,start,right", func, *args, **kwargs)
+
+    def callback_drag_start_right_del(self, func):
+        self._callback_del("drag,start,right", func)
+
+    def callback_drag_stop_add(self, func, *args, **kwargs):
+        """Called when the item in the gengrid has
+        stopped being dragged."""
+        self._callback_add("drag,stop", func, *args, **kwargs)
+
+    def callback_drag_stop_del(self, func):
+        self._callback_del("drag,stop", func)
+
+    def callback_drag_add(self, func, *args, **kwargs):
+        """Called when the item in the gengrid is being
+        dragged."""
+        self._callback_add("drag", func, *args, **kwargs)
+
+    def callback_drag_del(self, func):
+        self._callback_del("drag", func)
+
+    def callback_scroll_add(self, func, *args, **kwargs):
+        """called when the content has been scrolled
+        (moved)."""
+        self._callback_add("scroll", func, *args, **kwargs)
+
+    def callback_scroll_del(self, func):
+        self._callback_del("scroll", func)
+
+    def callback_scroll_drag_start_add(self, func, *args, **kwargs):
+        """called when dragging the content has
+        started."""
+        self._callback_add("scroll,drag,start", func, *args, **kwargs)
+
+    def callback_scroll_drag_start_del(self, func):
+        self._callback_del("scroll,drag,start", func)
+
+    def callback_scroll_drag_stop_add(self, func, *args, **kwargs):
+        """called when dragging the content has
+        stopped."""
+        self._callback_add("scroll,drag,stop", func, *args, **kwargs)
+
+    def callback_scroll_drag_stop_del(self, func):
+        self._callback_del("scroll,drag,stop", func)
+
+    def callback_edge_top_add(self, func, *args, **kwargs):
+        """This is called when the gengrid is scrolled until
+        the top edge."""
+        self._callback_add("edge,top", func, *args, **kwargs)
+
+    def callback_edge_top_del(self, func):
+        self._callback_del("edge,top", func)
+
+    def callback_edge_bottom_add(self, func, *args, **kwargs):
+        """This is called when the gengrid is scrolled
+        until the bottom edge."""
+        self._callback_add("edge,bottom", func, *args, **kwargs)
+
+    def callback_edge_bottom_del(self, func):
+        self._callback_del("edge,bottom", func)
+
+    def callback_edge_left_add(self, func, *args, **kwargs):
+        """This is called when the gengrid is scrolled
+        until the left edge."""
+        self._callback_add("edge,left", func, *args, **kwargs)
+
+    def callback_edge_left_del(self, func):
+        self._callback_del("edge,left", func)
+
+    def callback_edge_right_add(self, func, *args, **kwargs):
+        """This is called when the gengrid is scrolled
+        until the right edge."""
+        self._callback_add("edge,right", func, *args, **kwargs)
+
+    def callback_edge_right_del(self, func):
+        self._callback_del("edge,right", func)
+
+    def callback_moved_add(self, func, *args, **kwargs):
+        """This is called when a gengrid item is moved by a user
+        interaction in a reorder mode. The %c event_info parameter is the item 
that
+        was moved."""
+        self._callback_add_full("moved", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_moved_del(self, func):
+        self._callback_del_full("moved", _cb_object_item_conv, func)
+
+    def callback_index_update_add(self, func, *args, **kwargs):
+        """This is called when a gengrid item index is changed.
+        Note that this callback is called while each item is being realized."""
+        self._callback_add("index,update", func, *args, **kwargs)
+
+    def callback_index_update_del(self, func):
+        self._callback_del("index,update", func)
+
+    def callback_highlighted_add(self, func, *args, **kwargs):
+        """an item in the list is highlighted. This is called when
+        the user presses an item or keyboard selection is done so the item is
+        physically highlighted. The %c event_info parameter is the item that 
was
+        highlighted."""
+        self._callback_add_full("highlighted", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_highlighted_del(self, func):
+        self._callback_del_full("highlighted", _cb_object_item_conv, func)
+
+    def callback_unhighlighted_add(self, func, *args, **kwargs):
+        """an item in the list is unhighlighted. This is called
+        when the user releases an item or keyboard selection is moved so the 
item
+        is physically unhighlighted. The %c event_info parameter is the item 
that
+        was unhighlighted."""
+        self._callback_add_full("unhighlighted", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_unhighlighted_del(self, func):
+        self._callback_del_full("unhighlighted", _cb_object_item_conv, func)
+
+    def callback_language_changed_add(self, func, *args, **kwargs):
+        """This is called when the program's language is
+        changed. Call the elm_gengrid_realized_items_update() if items text 
should
+        be translated."""
+        self.callback_add("language,changed", func, *args, **kwargs)
+
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the gengrid has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the gengrid has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
+
 
 _object_mapping_register("elm_gengrid", Gengrid)
diff --git a/efl/elementary/genlist.pyx b/efl/elementary/genlist.pyx
index cecad29..81069a7 100644
--- a/efl/elementary/genlist.pyx
+++ b/efl/elementary/genlist.pyx
@@ -347,6 +347,16 @@ Signals that you can add callbacks for are:
   changed.
 - ``"tree,effect,finished"`` - This is called when a genlist tree effect
   is finished.
+- ``highlighted`` - an item in the list is highlighted. This is called when
+  the user presses an item or keyboard selection is done so the item is
+  physically highlighted. The %c event_info parameter is the item that was
+  highlighted.
+- ``unhighlighted`` - an item in the list is unhighlighted. This is called
+  when the user releases an item or keyboard selection is moved so the item
+  is physically unhighlighted. The %c event_info parameter is the item that
+  was unhighlighted.
+- ``focused`` - When the genlist has received focus. (since 1.8)
+- ``unfocused`` - When the genlist has lost focus. (since 1.8)
 
 
 Enumerations
diff --git a/efl/elementary/genlist_widget.pxi 
b/efl/elementary/genlist_widget.pxi
index 9264af1..2e2b9d6 100644
--- a/efl/elementary/genlist_widget.pxi
+++ b/efl/elementary/genlist_widget.pxi
@@ -819,3 +819,44 @@ cdef class GenlistWidget(Object):
     def callback_tree_effect_finished_del(self, func):
         self._callback_del("tree,effect,finished", func)
 
+    def callback_highlighted_add(self, func, *args, **kwargs):
+        """an item in the list is highlighted. This is called when
+        the user presses an item or keyboard selection is done so the item is
+        physically highlighted. The %c event_info parameter is the item that 
was
+        highlighted."""
+        self._callback_add_full("highlighted", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_highlighted_del(self, func):
+        self._callback_del_full("highlighted", _cb_object_item_conv, func)
+
+    def callback_unhighlighted_add(self, func, *args, **kwargs):
+        """an item in the list is unhighlighted. This is called
+        when the user releases an item or keyboard selection is moved so the 
item
+        is physically unhighlighted. The %c event_info parameter is the item 
that
+        was unhighlighted."""
+        self._callback_add_full("unhighlighted", _cb_object_item_conv,
+                                func, *args, **kwargs)
+
+    def callback_unhighlighted_del(self, func):
+        self._callback_del_full("unhighlighted", _cb_object_item_conv, func)
+
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the genlist has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the genlist has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
diff --git a/efl/elementary/hover.pyx b/efl/elementary/hover.pyx
index cfe9662..6f62888 100644
--- a/efl/elementary/hover.pyx
+++ b/efl/elementary/hover.pyx
@@ -49,6 +49,8 @@ This widget emits the following signals, besides the ones 
sent from
     dismiss
 - ``"smart,changed"`` - a content object placed under the "smart"
     policy was replaced to a new slot direction.
+- ``focused`` - When the hover has received focus. (since 1.8)
+- ``unfocused`` - When the hover has lost focus. (since 1.8)
 
 Default content parts of the hover widget that you can use for are:
 
@@ -223,5 +225,25 @@ cdef class Hover(LayoutClass):
     def callback_smart_changed_del(self, func):
         self._callback_del("smart,changed", func)
 
+    def callback_focused_add(self, func, *args, **kwargs):
+        """When the hover has received focus.
+
+        :since: 1.8
+        """
+        self._callback_add("focused", func, *args, **kwargs)
+
+    def callback_focused_del(self, func):
+        self._callback_del("focused", func)
+
+    def callback_unfocused_add(self, func, *args, **kwargs):
+        """When the hover has lost focus.
+
+        :since: 1.8
+        """
+        self._callback_add("unfocused", func, *args, **kwargs)
+
+    def callback_unfocused_del(self, func):
+        self._callback_del("unfocused", func)
+
 
 _object_mapping_register("elm_hover", Hover)

-- 


Reply via email to