Hi everyone,

I have added some widgets support to the python-etk module:
 - FilechooserWidget
 - Spinner
 - CheckButton.

Please find the patch in attachment!
# This patch adds the following widgets to python-etk
# CheckButton, Spinner and FilechooserWidget

Index: etk/core.py
===================================================================
--- etk/core.py	(revision 35984)
+++ etk/core.py	(working copy)
@@ -175,3 +175,18 @@ class VSeparator(c_etk.VSeparator):
 class HSeparator(c_etk.HSeparator):
     __metaclass__ = EtkMeta
     _etk_type = "Etk_HSeparator"
+
+
+class FilechooserWidget(c_etk.FilechooserWidget):
+    __metaclass__ = EtkMeta
+    _etk_type = "Etk_Filechooser_Widget"
+
+
+class CheckButton(c_etk.CheckButton):
+    __metaclass__ = EtkMeta
+    _etk_type = "Etk_Check_Button"
+
+
+class Spinner(c_etk.Spinner):
+    __metaclass__ = EtkMeta
+    _etk_type = "Etk_Spinner"
Index: etk/etk.c_etk.pyx
===================================================================
--- etk/etk.c_etk.pyx	(revision 35984)
+++ etk/etk.c_etk.pyx	(working copy)
@@ -156,3 +156,6 @@ include "core/scrolled_view.pxi"
 include "core/alignment.pxi"
 include "core/scrollbar.pxi"
 include "core/separator.pxi"
+include "core/filechooser_widget.pxi"
+include "core/check_button.pxi"
+include "core/spinner.pxi"
Index: etk/core/filechooser_widget.pxi
===================================================================
--- etk/core/filechooser_widget.pxi	(revision 0)
+++ etk/core/filechooser_widget.pxi	(revision 0)
@@ -0,0 +1,115 @@
+cdef public class FilechooserWidget(Widget) [object PyEtk_Filechooser_Widget, type PyEtk_Filechooser_Widget_Type]:
+    def __init__(self, **kargs):
+        if self.obj == NULL:
+            self._set_obj(<Etk_Object*>etk_filechooser_widget_new())
+        self._set_common_params(**kargs)
+
+    def current_folder_get(self):
+        cdef char *__char_ret
+        __ret = None
+        __char_ret = etk_filechooser_widget_current_folder_get(<Etk_Filechooser_Widget*>self.obj)
+        if __char_ret != NULL:
+            __ret = __char_ret
+        return (__ret)
+
+    def current_folder_set(self, char* folder):
+        etk_filechooser_widget_current_folder_set(<Etk_Filechooser_Widget*>self.obj, folder)
+
+    def is_save_get(self):
+        __ret = bool(<int> etk_filechooser_widget_is_save_get(<Etk_Filechooser_Widget*>self.obj))
+        return (__ret)
+
+    def is_save_set(self, int is_save):
+        etk_filechooser_widget_is_save_set(<Etk_Filechooser_Widget*>self.obj, <Etk_Bool>is_save)
+
+    def select_multiple_get(self):
+        __ret = bool(<int> etk_filechooser_widget_select_multiple_get(<Etk_Filechooser_Widget*>self.obj))
+        return (__ret)
+
+    def select_multiple_set(self, int select_multiple):
+        etk_filechooser_widget_select_multiple_set(<Etk_Filechooser_Widget*>self.obj, <Etk_Bool>select_multiple)
+
+    def selected_file_get(self):
+        cdef char *__char_ret
+        __ret = None
+        __char_ret = etk_filechooser_widget_selected_file_get(<Etk_Filechooser_Widget*>self.obj)
+        if __char_ret != NULL:
+            __ret = __char_ret
+        return (__ret)
+
+    def selected_file_set(self, char* filename):
+        __ret = bool(<int> etk_filechooser_widget_selected_file_set(<Etk_Filechooser_Widget*>self.obj, filename))
+        return (__ret)
+
+    def selected_files_get(self):
+        cdef Evas_List* __lst
+        __ret = []
+
+        __lst = etk_filechooser_widget_selected_files_get(<Etk_Filechooser_Widget*>self.obj)
+        while __lst != NULL:
+            __ret.append(<char*> __lst.data)
+            __lst = __lst.next
+
+        evas.c_evas.evas_list_free(__lst)
+        return (__ret)
+
+    def show_hidden_get(self):
+        __ret = bool(<int> etk_filechooser_widget_show_hidden_get(<Etk_Filechooser_Widget*>self.obj))
+        return (__ret)
+
+    def show_hidden_set(self, int show_hidden):
+        etk_filechooser_widget_show_hidden_set(<Etk_Filechooser_Widget*>self.obj, <Etk_Bool>show_hidden)
+
+    property current_folder:
+        def __get__(self):
+            return self.current_folder_get()
+
+        def __set__(self, current_folder):
+            self.current_folder_set(current_folder)
+
+    property is_save:
+        def __get__(self):
+            return self.is_save_get()
+
+        def __set__(self, is_save):
+            self.is_save_set(is_save)
+
+    property select_multiple:
+        def __get__(self):
+            return self.select_multiple_get()
+
+        def __set__(self, select_multiple):
+            self.select_multiple_set(select_multiple)
+
+    property selected_file:
+        def __get__(self):
+            return self.selected_file_get()
+
+        def __set__(self, selected_file):
+            self.selected_file_set(selected_file)
+
+    property selected_files:
+        def __get__(self):
+            return self.selected_files_get()
+
+    property show_hidden:
+        def __get__(self):
+            return self.show_hidden_get()
+
+        def __set__(self, show_hidden):
+            self.show_hidden_set(show_hidden)
+
+    def _set_common_params(self, current_folder=None, is_save=None, select_multiple=None, selected_file=None, show_hidden=None, **kargs):
+        if current_folder is not None:
+            self.current_folder_set(current_folder)
+        if is_save is not None:
+            self.is_save_set(is_save)
+        if select_multiple is not None:
+            self.select_multiple_set(select_multiple)
+        if selected_file is not None:
+            self.selected_file_set(selected_file)
+        if show_hidden is not None:
+            self.show_hidden_set(show_hidden)
+
+        if kargs:
+            Widget._set_common_params(self, **kargs)
Index: etk/core/spinner.pxi
===================================================================
--- etk/core/spinner.pxi	(revision 0)
+++ etk/core/spinner.pxi	(revision 0)
@@ -0,0 +1,58 @@
+cdef public class Spinner(Range) [object PyEtk_Spinner, type PyEtk_Spinner_Type]:
+    def __init__(self, lower=0.0, upper=10.0, value=0.0, step_increment=1.0, page_increment=5.0, **kargs):
+        if self.obj == NULL:
+            self._set_obj(<Etk_Object*>etk_spinner_new(lower, upper, value, step_increment, page_increment))
+        self._set_common_params(**kargs)
+
+    def digits_get(self):
+        __ret = etk_spinner_digits_get(<Etk_Spinner*>self.obj)
+        return (__ret)
+
+    def digits_set(self, int digits):
+        etk_spinner_digits_set(<Etk_Spinner*>self.obj, digits)
+
+    def snap_to_ticks_get(self):
+        __ret = bool(<int> etk_spinner_snap_to_ticks_get(<Etk_Spinner*>self.obj))
+        return (__ret)
+
+    def snap_to_ticks_set(self, int snap_to_ticks):
+        etk_spinner_snap_to_ticks_set(<Etk_Spinner*>self.obj, <Etk_Bool>snap_to_ticks)
+
+    def wrap_get(self):
+        __ret = bool(<int> etk_spinner_wrap_get(<Etk_Spinner*>self.obj))
+        return (__ret)
+
+    def wrap_set(self, int wrap):
+        etk_spinner_wrap_set(<Etk_Spinner*>self.obj, <Etk_Bool>wrap)
+
+    property digits:
+        def __get__(self):
+            return self.digits_get()
+
+        def __set__(self, digits):
+            self.digits_set(digits)
+
+    property snap_to_ticks:
+        def __get__(self):
+            return self.snap_to_ticks_get()
+
+        def __set__(self, snap_to_ticks):
+            self.snap_to_ticks_set(snap_to_ticks)
+
+    property wrap:
+        def __get__(self):
+            return self.wrap_get()
+
+        def __set__(self, wrap):
+            self.wrap_set(wrap)
+
+    def _set_common_params(self, digits=None, snap_to_ticks=None, wrap=None, **kargs):
+        if digits is not None:
+            self.digits_set(digits)
+        if snap_to_ticks is not None:
+            self.snap_to_ticks_set(snap_to_ticks)
+        if wrap is not None:
+            self.wrap_set(wrap)
+
+        if kargs:
+            Range._set_common_params(self, **kargs)
Index: etk/core/check_button.pxi
===================================================================
--- etk/core/check_button.pxi	(revision 0)
+++ etk/core/check_button.pxi	(revision 0)
@@ -0,0 +1,8 @@
+cdef public class CheckButton(ToggleButton) [object PyEtk_Check_Button, type PyEtk_Check_Button_Type]:
+    def __init__(self, label=None, **kargs):
+        if self.obj == NULL:
+            if label is None:
+                self._set_obj(<Etk_Object*>etk_check_button_new())
+            else:
+                self._set_obj(<Etk_Object*>etk_check_button_new_with_label(label))
+        self._set_common_params(**kargs)
Index: include/etk/filechooser_widget.pxd
===================================================================
--- include/etk/filechooser_widget.pxd	(revision 0)
+++ include/etk/filechooser_widget.pxd	(revision 0)
@@ -0,0 +1,30 @@
+cdef extern from "etk_filechooser_widget.h":
+    ####################################################################
+    # Signals
+
+    ####################################################################
+    # Enumerations
+    ####################################################################
+    # Structures
+    ctypedef struct Etk_Filechooser_Widget
+
+    ####################################################################
+    # Functions
+    Etk_Type* etk_filechooser_widget_type_get()
+    Etk_Widget* etk_filechooser_widget_new()
+    char* etk_filechooser_widget_current_folder_get(Etk_Filechooser_Widget* __self)
+    void etk_filechooser_widget_current_folder_set(Etk_Filechooser_Widget* __self, char* folder)
+    int etk_filechooser_widget_is_save_get(Etk_Filechooser_Widget* __self)
+    void etk_filechooser_widget_is_save_set(Etk_Filechooser_Widget* __self, int is_save)
+    int etk_filechooser_widget_select_multiple_get(Etk_Filechooser_Widget* __self)
+    void etk_filechooser_widget_select_multiple_set(Etk_Filechooser_Widget* __self, int select_multiple)
+    char* etk_filechooser_widget_selected_file_get(Etk_Filechooser_Widget* __self)
+    int etk_filechooser_widget_selected_file_set(Etk_Filechooser_Widget* __self, char* filename)
+    evas.c_evas.Evas_List* etk_filechooser_widget_selected_files_get(Etk_Filechooser_Widget* __self)
+    int etk_filechooser_widget_show_hidden_get(Etk_Filechooser_Widget* __self)
+    void etk_filechooser_widget_show_hidden_set(Etk_Filechooser_Widget* __self, int show_hidden)
+
+#########################################################################
+# Objects
+cdef public class FilechooserWidget(Widget) [object PyEtk_Filechooser_Widget, type PyEtk_Filechooser_Widget_Type]:
+    pass
Index: include/etk/spinner.pxd
===================================================================
--- include/etk/spinner.pxd	(revision 0)
+++ include/etk/spinner.pxd	(revision 0)
@@ -0,0 +1,25 @@
+cdef extern from "etk_spinner.h":
+    ####################################################################
+    # Signals
+
+    ####################################################################
+    # Enumerations
+    ####################################################################
+    # Structures
+    ctypedef struct Etk_Spinner
+
+    ####################################################################
+    # Functions
+    Etk_Type* etk_spinner_type_get()
+    Etk_Widget* etk_spinner_new(double lower, double upper, double value, double step_increment, double page_increment)
+    int etk_spinner_digits_get(Etk_Spinner* __self)
+    void etk_spinner_digits_set(Etk_Spinner* __self, int digits)
+    int etk_spinner_snap_to_ticks_get(Etk_Spinner* __self)
+    void etk_spinner_snap_to_ticks_set(Etk_Spinner* __self, int snap_to_ticks)
+    int etk_spinner_wrap_get(Etk_Spinner* __self)
+    void etk_spinner_wrap_set(Etk_Spinner* __self, int wrap)
+
+#########################################################################
+# Objects
+cdef public class Spinner(Range) [object PyEtk_Spinner, type PyEtk_Spinner_Type]:
+    pass
Index: include/etk/c_etk.pxd
===================================================================
--- include/etk/c_etk.pxd	(revision 35984)
+++ include/etk/c_etk.pxd	(working copy)
@@ -135,3 +135,6 @@ include "scrolled_view.pxd"
 include "alignment.pxd"
 include "scrollbar.pxd"
 include "separator.pxd"
+include "filechooser_widget.pxd"
+include "check_button.pxd"
+include "spinner.pxd"
Index: include/etk/check_button.pxd
===================================================================
--- include/etk/check_button.pxd	(revision 0)
+++ include/etk/check_button.pxd	(revision 0)
@@ -0,0 +1,19 @@
+cdef extern from "etk_check_button.h":
+    ####################################################################
+    # Signals
+    ####################################################################
+    # Enumerations
+    ####################################################################
+    # Structures
+    ctypedef struct Etk_Check_Button
+
+    ####################################################################
+    # Functions
+    Etk_Type* etk_check_button_type_get()
+    Etk_Widget* etk_check_button_new()
+    Etk_Widget* etk_check_button_new_with_label(char *label)
+
+#########################################################################
+# Objects
+cdef public class CheckButton(ToggleButton) [object PyEtk_Check_Button, type PyEtk_Check_Button_Type]:
+    pass
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to