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