kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=3f5a1a7d79785c95c874937948b422aeba3c61ea
commit 3f5a1a7d79785c95c874937948b422aeba3c61ea Author: Kai Huuhko <[email protected]> Date: Wed May 28 02:13:47 2014 +0300 Elementary.gengrid: Add missing API --- efl/elementary/enums.pxd | 5 +++ efl/elementary/gengrid.pxd | 11 +++++- efl/elementary/gengrid.pyx | 28 +++++++++++++++ efl/elementary/gengrid_widget.pxi | 74 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 1 deletion(-) diff --git a/efl/elementary/enums.pxd b/efl/elementary/enums.pxd index 410e55b..343767c 100644 --- a/efl/elementary/enums.pxd +++ b/efl/elementary/enums.pxd @@ -353,6 +353,11 @@ cdef extern from "Elementary.h": ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY ELM_OBJECT_SELECT_MODE_MAX + ctypedef enum Elm_Object_Multi_Select_Mode: + ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT # default multiple select mode + ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL # disallow mutiple selection when clicked without control key pressed + ELM_OBJECT_MULTI_SELECT_MODE_MAX + ctypedef enum Elm_Panel_Orient: ELM_PANEL_ORIENT_TOP ELM_PANEL_ORIENT_BOTTOM diff --git a/efl/elementary/gengrid.pxd b/efl/elementary/gengrid.pxd index 4706945..cc705c6 100644 --- a/efl/elementary/gengrid.pxd +++ b/efl/elementary/gengrid.pxd @@ -1,8 +1,10 @@ from efl.evas cimport Eina_Bool, Eina_List, Evas_Object, Evas_Smart_Cb, \ Evas_Coord, Eina_Compare_Cb +from efl.c_eo cimport Eo from object_item cimport Elm_Object_Item from general cimport Elm_Tooltip_Item_Content_Cb -from enums cimport Elm_Genlist_Item_Scrollto_Type, Elm_Object_Select_Mode +from enums cimport Elm_Genlist_Item_Scrollto_Type, Elm_Object_Select_Mode, \ + Elm_Object_Multi_Select_Mode from efl.ecore.enums cimport Ecore_Pos_Map cdef extern from "Elementary.h": @@ -25,8 +27,11 @@ cdef extern from "Elementary.h": void elm_gengrid_clear(Evas_Object *obj) void elm_gengrid_multi_select_set(Evas_Object *obj, Eina_Bool multi) Eina_Bool elm_gengrid_multi_select_get(const Evas_Object *obj) + void elm_gengrid_multi_select_mode_set(Eo *obj, Elm_Object_Multi_Select_Mode mode) + Elm_Object_Multi_Select_Mode elm_gengrid_multi_select_mode_get(const Eo *obj) void elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool setting) Eina_Bool elm_gengrid_horizontal_get(const Evas_Object *obj) + void elm_gengrid_page_size_set(Eo *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) Elm_Object_Item * elm_gengrid_item_append(Evas_Object *obj, Elm_Gengrid_Item_Class *itc, const void *data, Evas_Smart_Cb func, const void *func_data) Elm_Object_Item * elm_gengrid_item_prepend(Evas_Object *obj, Elm_Gengrid_Item_Class *itc, const void *data, Evas_Smart_Cb func, const void *func_data) Elm_Object_Item * elm_gengrid_item_insert_before(Evas_Object *obj, Elm_Gengrid_Item_Class *itc, const void *data, Elm_Object_Item *before, Evas_Smart_Cb func, const void *func_data) @@ -38,6 +43,8 @@ cdef extern from "Elementary.h": void elm_gengrid_realized_items_update(Evas_Object *obj) Elm_Object_Item * elm_gengrid_first_item_get(const Evas_Object *obj) Elm_Object_Item * elm_gengrid_last_item_get(const Evas_Object *obj) + void elm_gengrid_wheel_disabled_set(Eo *obj, Eina_Bool disabled) + Eina_Bool elm_gengrid_wheel_disabled_get(const Eo *obj) unsigned int elm_gengrid_items_count(Evas_Object *obj) void elm_gengrid_item_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) void elm_gengrid_item_size_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) @@ -52,6 +59,8 @@ cdef extern from "Elementary.h": void elm_gengrid_page_show(Evas_Object *obj, int h_pagenum, int v_pagenum) void elm_gengrid_filled_set(Evas_Object *obj, Eina_Bool fill) Eina_Bool elm_gengrid_filled_get(const Evas_Object *obj) + void elm_gengrid_page_relative_set(Eo *obj, double h_pagerel, double v_pagerel) + void elm_gengrid_page_relative_get(const Eo *obj, double *h_pagerel, double *v_pagerel) void elm_gengrid_select_mode_set(Evas_Object *obj, Elm_Object_Select_Mode mode) Elm_Object_Select_Mode elm_gengrid_select_mode_get(const Evas_Object *obj) void elm_gengrid_highlight_mode_set(Evas_Object *obj, Eina_Bool highlight) diff --git a/efl/elementary/gengrid.pyx b/efl/elementary/gengrid.pyx index 70284cc..42c36e6 100644 --- a/efl/elementary/gengrid.pyx +++ b/efl/elementary/gengrid.pyx @@ -280,6 +280,30 @@ Items' scroll to types Scroll to the middle of viewport + +.. _Elm_Gengrid_Object_Multi_Select_Mode: + +Multi-select mode +================= + +.. data:: ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT + + Default multiple select mode + + .. versionadded:: 1.10 + +.. data:: ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL + + Disallow mutiple selection when clicked without control key pressed + + .. versionadded:: 1.10 + +.. data:: ELM_OBJECT_MULTI_SELECT_MODE_MAX + + Value unknown + + .. versionadded:: 1.10 + """ include "tooltips.pxi" @@ -309,6 +333,10 @@ ELM_GENLIST_ITEM_SCROLLTO_IN = enums.ELM_GENLIST_ITEM_SCROLLTO_IN ELM_GENLIST_ITEM_SCROLLTO_TOP = enums.ELM_GENLIST_ITEM_SCROLLTO_TOP ELM_GENLIST_ITEM_SCROLLTO_MIDDLE = enums.ELM_GENLIST_ITEM_SCROLLTO_MIDDLE +ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT = enums.ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT +ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL = enums.ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL +ELM_OBJECT_MULTI_SELECT_MODE_MAX = enums.ELM_OBJECT_MULTI_SELECT_MODE_MAX + def _cb_object_item_conv(uintptr_t addr): cdef Elm_Object_Item *it = <Elm_Object_Item *>addr return _object_item_to_python(it) diff --git a/efl/elementary/gengrid_widget.pxi b/efl/elementary/gengrid_widget.pxi index 9c7c6a2..b0a8900 100644 --- a/efl/elementary/gengrid_widget.pxi +++ b/efl/elementary/gengrid_widget.pxi @@ -36,6 +36,31 @@ cdef class Gengrid(Object): def multi_select_get(self): return bool(elm_gengrid_multi_select_get(self.obj)) + + property multi_select_mode: + """Gengrid multi select mode. + + - ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever each + item is clicked. + - ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only one item will be selected + although multi-selection is enabled, if clicked without pressing control + key. This mode is only available with multi-selection. + + (If getting mode is failed, it returns ELM_OBJECT_MULTI_SELECT_MODE_MAX) + + :see: :py:attr:`multi_select` + + :type: :ref:`Elm_Gengrid_Object_Multi_Select_Mode` + + .. versionadded:: 1.10 + + """ + def __set__(self, Elm_Object_Multi_Select_Mode mode): + elm_gengrid_multi_select_mode_set(self.obj, mode) + + def __get__(self): + return elm_gengrid_multi_select_mode_get(self.obj) + property horizontal: """When in "horizontal mode" (``True),`` items will be placed in **columns**, from top to bottom and, when the space for a @@ -59,6 +84,19 @@ cdef class Gengrid(Object): def horizontal_get(self): return bool(elm_gengrid_horizontal_get(self.obj)) + property page_size: + """Set a given gengrid widget's scrolling page size + + :type: (int h_pagesize, int v_pagesize) + + .. versionadded:: 1.10 + + """ + def __set__(self, value): + cdef Evas_Coord h_pagesize, v_pagesize + h_pagesize, v_pagesize = value + elm_gengrid_page_size_set(self.obj, h_pagesize, v_pagesize) + def item_append(self, GengridItemClass item_class not None, item_data, func=None): """Append a new item (add as last item) to this gengrid. @@ -244,6 +282,24 @@ cdef class Gengrid(Object): def last_item_get(self): return _object_item_to_python(elm_gengrid_last_item_get(self.obj)) + property wheel_disabled: + """Enable or disable mouse wheel to be used to scroll the gengrid. + + Mouse wheel can be used for the user to scroll up and down the gengrid. + + It's enabled by default. + + :type: bool + + .. versionadded:: 1.10 + + """ + def __set__(self, bint disabled): + elm_gengrid_wheel_disabled_set(self.obj, disabled) + + def __get__(self): + return bool(elm_gengrid_wheel_disabled_get(self.obj)) + property items_count: """Return how many items are currently in a list. @@ -395,6 +451,24 @@ cdef class Gengrid(Object): def filled_get(self, fill): return bool(elm_gengrid_filled_get(self.obj)) + property page_relative: + """Gengrid widget's scrolling page size, relative to its viewport size. + + :type: (float h_pagerel, float v_pagerel) + + .. versionadded:: 1.10 + + """ + def __set__(self, value): + cdef double h_pagerel, v_pagerel + h_pagerel, v_pagerel = value + elm_gengrid_page_relative_set(self.obj, h_pagerel, v_pagerel) + + def __get__(self): + cdef double h_pagerel, v_pagerel + elm_gengrid_page_relative_get(self.obj, &h_pagerel, &v_pagerel) + return h_pagerel, v_pagerel + property select_mode: """Item select mode in the gengrid widget. Possible values are: --
