Hi everyone,
I have added some widgets support to the python-etk module:
- Dialog
- StockEnums under etk.c_etk
- Example on how to use FilechooserWidget and Dialog
Please find the patch in attachment!
--
Karel Malbroukou
Sr. Linux Admin
PowerE2E
# Add the Dialog widget
# Add class StockEnums in etk.c_etk (still need to put it in etk)
# Add example on how to use Dialog and FilechooserWidget
Index: etk/core.py
===================================================================
--- etk/core.py (revision 36140)
+++ etk/core.py (working copy)
@@ -190,3 +190,8 @@ class CheckButton(c_etk.CheckButton):
class Spinner(c_etk.Spinner):
__metaclass__ = EtkMeta
_etk_type = "Etk_Spinner"
+
+
+class Dialog(c_etk.Dialog, c_etk.DialogEnums):
+ __metaclass__ = EtkMeta
+ _etk_type = "Etk_Dialog"
Index: etk/etk.c_etk.pyx
===================================================================
--- etk/etk.c_etk.pyx (revision 36140)
+++ etk/etk.c_etk.pyx (working copy)
@@ -159,3 +159,5 @@ include "core/separator.pxi"
include "core/filechooser_widget.pxi"
include "core/check_button.pxi"
include "core/spinner.pxi"
+include "core/dialog.pxi"
+include "core/stock.pxi"
Index: etk/core/stock.pxi
===================================================================
--- etk/core/stock.pxi (revision 0)
+++ etk/core/stock.pxi (revision 0)
@@ -0,0 +1,219 @@
+class StockEnums:
+ NO_STOCK = ETK_STOCK_NO_STOCK
+ ADDRESS_BOOK_NEW = ETK_STOCK_ADDRESS_BOOK_NEW
+ APPOINTMENT_NEW = ETK_STOCK_APPOINTMENT_NEW
+ BOOKMARK_NEW = ETK_STOCK_BOOKMARK_NEW
+ CONTACT_NEW = ETK_STOCK_CONTACT_NEW
+ DIALOG_APPLY = ETK_STOCK_DIALOG_APPLY
+ DIALOG_OK = ETK_STOCK_DIALOG_OK
+ DIALOG_CANCEL = ETK_STOCK_DIALOG_CANCEL
+ DIALOG_YES = ETK_STOCK_DIALOG_YES
+ DIALOG_NO = ETK_STOCK_DIALOG_NO
+ DIALOG_CLOSE = ETK_STOCK_DIALOG_CLOSE
+ DOCUMENT_NEW = ETK_STOCK_DOCUMENT_NEW
+ DOCUMENT_OPEN = ETK_STOCK_DOCUMENT_OPEN
+ DOCUMENT_PRINT = ETK_STOCK_DOCUMENT_PRINT
+ DOCUMENT_PRINT_PREVIEW = ETK_STOCK_DOCUMENT_PRINT_PREVIEW
+ DOCUMENT_PROPERTIES = ETK_STOCK_DOCUMENT_PROPERTIES
+ DOCUMENT_SAVE_AS = ETK_STOCK_DOCUMENT_SAVE_AS
+ DOCUMENT_SAVE = ETK_STOCK_DOCUMENT_SAVE
+ EDIT_CLEAR = ETK_STOCK_EDIT_CLEAR
+ EDIT_COPY = ETK_STOCK_EDIT_COPY
+ EDIT_CUT = ETK_STOCK_EDIT_CUT
+ EDIT_FIND = ETK_STOCK_EDIT_FIND
+ EDIT_PASTE = ETK_STOCK_EDIT_PASTE
+ EDIT_REDO = ETK_STOCK_EDIT_REDO
+ EDIT_UNDO = ETK_STOCK_EDIT_UNDO
+ EDIT_DELETE = ETK_STOCK_EDIT_DELETE
+ EDIT_FIND_REPLACE = ETK_STOCK_EDIT_FIND_REPLACE
+ FOLDER_NEW = ETK_STOCK_FOLDER_NEW
+ FORMAT_INDENT_LESS = ETK_STOCK_FORMAT_INDENT_LESS
+ FORMAT_INDENT_MORE = ETK_STOCK_FORMAT_INDENT_MORE
+ FORMAT_JUSTIFY_CENTER = ETK_STOCK_FORMAT_JUSTIFY_CENTER
+ FORMAT_JUSTIFY_FILL = ETK_STOCK_FORMAT_JUSTIFY_FILL
+ FORMAT_JUSTIFY_LEFT = ETK_STOCK_FORMAT_JUSTIFY_LEFT
+ FORMAT_JUSTIFY_RIGHT = ETK_STOCK_FORMAT_JUSTIFY_RIGHT
+ FORMAT_TEXT_BOLD = ETK_STOCK_FORMAT_TEXT_BOLD
+ FORMAT_TEXT_ITALIC = ETK_STOCK_FORMAT_TEXT_ITALIC
+ FORMAT_TEXT_STRIKETHROUGH = ETK_STOCK_FORMAT_TEXT_STRIKETHROUGH
+ FORMAT_TEXT_UNDERLINE = ETK_STOCK_FORMAT_TEXT_UNDERLINE
+ GO_BOTTOM = ETK_STOCK_GO_BOTTOM
+ GO_DOWN = ETK_STOCK_GO_DOWN
+ GO_FIRST = ETK_STOCK_GO_FIRST
+ GO_HOME = ETK_STOCK_GO_HOME
+ GO_JUMP = ETK_STOCK_GO_JUMP
+ GO_LAST = ETK_STOCK_GO_LAST
+ GO_NEXT = ETK_STOCK_GO_NEXT
+ GO_PREVIOUS = ETK_STOCK_GO_PREVIOUS
+ GO_TOP = ETK_STOCK_GO_TOP
+ GO_UP = ETK_STOCK_GO_UP
+ LIST_ADD = ETK_STOCK_LIST_ADD
+ LIST_REMOVE = ETK_STOCK_LIST_REMOVE
+ MAIL_MESSAGE_NEW = ETK_STOCK_MAIL_MESSAGE_NEW
+ MAIL_FORWARD = ETK_STOCK_MAIL_FORWARD
+ MAIL_MARK_JUNK = ETK_STOCK_MAIL_MARK_JUNK
+ MAIL_REPLY_ALL = ETK_STOCK_MAIL_REPLY_ALL
+ MAIL_REPLY_SENDER = ETK_STOCK_MAIL_REPLY_SENDER
+ MAIL_SEND_RECEIVE = ETK_STOCK_MAIL_SEND_RECEIVE
+ MEDIA_EJECT = ETK_STOCK_MEDIA_EJECT
+ MEDIA_PLAYBACK_PAUSE = ETK_STOCK_MEDIA_PLAYBACK_PAUSE
+ MEDIA_PLAYBACK_START = ETK_STOCK_MEDIA_PLAYBACK_START
+ MEDIA_PLAYBACK_STOP = ETK_STOCK_MEDIA_PLAYBACK_STOP
+ MEDIA_RECORD = ETK_STOCK_MEDIA_RECORD
+ MEDIA_SEEK_BACKWARD = ETK_STOCK_MEDIA_SEEK_BACKWARD
+ MEDIA_SEEK_FORWARD = ETK_STOCK_MEDIA_SEEK_FORWARD
+ MEDIA_SKIP_BACKWARD = ETK_STOCK_MEDIA_SKIP_BACKWARD
+ MEDIA_SKIP_FORWARD = ETK_STOCK_MEDIA_SKIP_FORWARD
+ PROCESS_STOP = ETK_STOCK_PROCESS_STOP
+ SYSTEM_LOCK_SCREEN = ETK_STOCK_SYSTEM_LOCK_SCREEN
+ SYSTEM_LOG_OUT = ETK_STOCK_SYSTEM_LOG_OUT
+ SYSTEM_SEARCH = ETK_STOCK_SYSTEM_SEARCH
+ SYSTEM_SHUTDOWN = ETK_STOCK_SYSTEM_SHUTDOWN
+ TAB_NEW = ETK_STOCK_TAB_NEW
+ VIEW_REFRESH = ETK_STOCK_VIEW_REFRESH
+ WINDOW_NEW = ETK_STOCK_WINDOW_NEW
+ ACCESSORIES_CALCULATOR = ETK_STOCK_ACCESSORIES_CALCULATOR
+ ACCESSORIES_CHARACTER_MAP = ETK_STOCK_ACCESSORIES_CHARACTER_MAP
+ ACCESSORIES_TEXT_EDITOR = ETK_STOCK_ACCESSORIES_TEXT_EDITOR
+ HELP_BROWSER = ETK_STOCK_HELP_BROWSER
+ INTERNET_GROUP_CHAT = ETK_STOCK_INTERNET_GROUP_CHAT
+ INTERNET_MAIL = ETK_STOCK_INTERNET_MAIL
+ INTERNET_NEWS_READER = ETK_STOCK_INTERNET_NEWS_READER
+ INTERNET_WEB_BROWSER = ETK_STOCK_INTERNET_WEB_BROWSER
+ MULTIMEDIA_VOLUME_CONTROL = ETK_STOCK_MULTIMEDIA_VOLUME_CONTROL
+ OFFICE_CALENDAR = ETK_STOCK_OFFICE_CALENDAR
+ PREFERENCES_DESKTOP_ACCESSIBILITY = ETK_STOCK_PREFERENCES_DESKTOP_ACCESSIBILITY
+ PREFERENCES_DESKTOP_ASSISTIVE_TECHNOLOGY = ETK_STOCK_PREFERENCES_DESKTOP_ASSISTIVE_TECHNOLOGY
+ PREFERENCES_DESKTOP_FONT = ETK_STOCK_PREFERENCES_DESKTOP_FONT
+ PREFERENCES_DESKTOP_KEYBOARD_SHORTCUTS = ETK_STOCK_PREFERENCES_DESKTOP_KEYBOARD_SHORTCUTS
+ PREFERENCES_DESKTOP_LOCALE = ETK_STOCK_PREFERENCES_DESKTOP_LOCALE
+ PREFERENCES_DESKTOP_REMOTE_DESKTOP = ETK_STOCK_PREFERENCES_DESKTOP_REMOTE_DESKTOP
+ PREFERENCES_DESKTOP_SOUND = ETK_STOCK_PREFERENCES_DESKTOP_SOUND
+ PREFERENCES_DESKTOP_SCREENSAVER = ETK_STOCK_PREFERENCES_DESKTOP_SCREENSAVER
+ PREFERENCES_DESKTOP_THEME = ETK_STOCK_PREFERENCES_DESKTOP_THEME
+ PREFERENCES_DESKTOP_WALLPAPER = ETK_STOCK_PREFERENCES_DESKTOP_WALLPAPER
+ PREFERENCES_SYSTEM_NETWORK_PROXY = ETK_STOCK_PREFERENCES_SYSTEM_NETWORK_PROXY
+ PREFERENCES_SYSTEM_SESSION = ETK_STOCK_PREFERENCES_SYSTEM_SESSION
+ PREFERENCES_SYSTEM_WINDOWS = ETK_STOCK_PREFERENCES_SYSTEM_WINDOWS
+ SYSTEM_FILE_MANAGER = ETK_STOCK_SYSTEM_FILE_MANAGER
+ SYSTEM_INSTALLER = ETK_STOCK_SYSTEM_INSTALLER
+ SYSTEM_SOFTWARE_UPDATE = ETK_STOCK_SYSTEM_SOFTWARE_UPDATE
+ SYSTEM_USERS = ETK_STOCK_SYSTEM_USERS
+ UTILITIES_SYSTEM_MONITOR = ETK_STOCK_UTILITIES_SYSTEM_MONITOR
+ UTILITIES_TERMINAL = ETK_STOCK_UTILITIES_TERMINAL
+ APPLICATIONS_ACCESSORIES = ETK_STOCK_APPLICATIONS_ACCESSORIES
+ APPLICATIONS_DEVELOPMENT = ETK_STOCK_APPLICATIONS_DEVELOPMENT
+ APPLICATIONS_GAMES = ETK_STOCK_APPLICATIONS_GAMES
+ APPLICATIONS_GRAPHICS = ETK_STOCK_APPLICATIONS_GRAPHICS
+ APPLICATIONS_INTERNET = ETK_STOCK_APPLICATIONS_INTERNET
+ APPLICATIONS_MULTIMEDIA = ETK_STOCK_APPLICATIONS_MULTIMEDIA
+ APPLICATIONS_OFFICE = ETK_STOCK_APPLICATIONS_OFFICE
+ APPLICATIONS_OTHER = ETK_STOCK_APPLICATIONS_OTHER
+ APPLICATIONS_SYSTEM = ETK_STOCK_APPLICATIONS_SYSTEM
+ PREFERENCES_DESKTOP_PERIPHERALS = ETK_STOCK_PREFERENCES_DESKTOP_PERIPHERALS
+ PREFERENCES_DESKTOP = ETK_STOCK_PREFERENCES_DESKTOP
+ PREFERENCES_SYSTEM = ETK_STOCK_PREFERENCES_SYSTEM
+ AUDIO_CARD = ETK_STOCK_AUDIO_CARD
+ AUDIO_INPUT_MICROPHONE = ETK_STOCK_AUDIO_INPUT_MICROPHONE
+ BATTERY = ETK_STOCK_BATTERY
+ CAMERA_PHOTO = ETK_STOCK_CAMERA_PHOTO
+ CAMERA_VIDEO = ETK_STOCK_CAMERA_VIDEO
+ COMPUTER = ETK_STOCK_COMPUTER
+ DRIVE_CDROM = ETK_STOCK_DRIVE_CDROM
+ DRIVE_HARDDISK = ETK_STOCK_DRIVE_HARDDISK
+ DRIVE_REMOVABLE_MEDIA = ETK_STOCK_DRIVE_REMOVABLE_MEDIA
+ INPUT_GAMING = ETK_STOCK_INPUT_GAMING
+ INPUT_KEYBOARD = ETK_STOCK_INPUT_KEYBOARD
+ INPUT_MOUSE = ETK_STOCK_INPUT_MOUSE
+ MEDIA_CDROM = ETK_STOCK_MEDIA_CDROM
+ MEDIA_FLOPPY = ETK_STOCK_MEDIA_FLOPPY
+ MULTIMEDIA_PLAYER = ETK_STOCK_MULTIMEDIA_PLAYER
+ NETWORK = ETK_STOCK_NETWORK
+ NETWORK_WIRELESS = ETK_STOCK_NETWORK_WIRELESS
+ NETWORK_WIRED = ETK_STOCK_NETWORK_WIRED
+ PRINTER = ETK_STOCK_PRINTER
+ PRINTER_REMOTE = ETK_STOCK_PRINTER_REMOTE
+ VIDEO_DISPLAY = ETK_STOCK_VIDEO_DISPLAY
+ EMBLEM_FAVORITE = ETK_STOCK_EMBLEM_FAVORITE
+ EMBLEM_IMPORTANT = ETK_STOCK_EMBLEM_IMPORTANT
+ EMBLEM_PHOTOS = ETK_STOCK_EMBLEM_PHOTOS
+ EMBLEM_READONLY = ETK_STOCK_EMBLEM_READONLY
+ EMBLEM_SYMBOLIC_LINK = ETK_STOCK_EMBLEM_SYMBOLIC_LINK
+ EMBLEM_SYSTEM = ETK_STOCK_EMBLEM_SYSTEM
+ EMBLEM_UNREADABLE = ETK_STOCK_EMBLEM_UNREADABLE
+ FACE_ANGEL = ETK_STOCK_FACE_ANGEL
+ FACE_CRYING = ETK_STOCK_FACE_CRYING
+ FACE_DEVIL_GRIN = ETK_STOCK_FACE_DEVIL_GRIN
+ FACE_GLASSES = ETK_STOCK_FACE_GLASSES
+ FACE_GRIN = ETK_STOCK_FACE_GRIN
+ FACE_KISS = ETK_STOCK_FACE_KISS
+ FACE_PLAIN = ETK_STOCK_FACE_PLAIN
+ FACE_SAD = ETK_STOCK_FACE_SAD
+ FACE_SMILE_BIG = ETK_STOCK_FACE_SMILE_BIG
+ FACE_SMILE = ETK_STOCK_FACE_SMILE
+ FACE_SURPRISE = ETK_STOCK_FACE_SURPRISE
+ FACE_WINK = ETK_STOCK_FACE_WINK
+ APPLICATION_CERTIFICATE = ETK_STOCK_APPLICATION_CERTIFICATE
+ APPLICATION_X_EXECUTABLE = ETK_STOCK_APPLICATION_X_EXECUTABLE
+ AUDIO_X_GENERIC = ETK_STOCK_AUDIO_X_GENERIC
+ FONT_X_GENERIC = ETK_STOCK_FONT_X_GENERIC
+ IMAGE_X_GENERIC = ETK_STOCK_IMAGE_X_GENERIC
+ PACKAGE_X_GENERIC = ETK_STOCK_PACKAGE_X_GENERIC
+ TEXT_HTML = ETK_STOCK_TEXT_HTML
+ TEXT_X_GENERIC = ETK_STOCK_TEXT_X_GENERIC
+ TEXT_X_GENERIC_TEMPLATE = ETK_STOCK_TEXT_X_GENERIC_TEMPLATE
+ TEXT_X_SCRIPT = ETK_STOCK_TEXT_X_SCRIPT
+ VIDEO_X_GENERIC = ETK_STOCK_VIDEO_X_GENERIC
+ X_DIRECTORY_DESKTOP = ETK_STOCK_X_DIRECTORY_DESKTOP
+ X_DIRECTORY_NORMAL_DRAG_ACCEPT = ETK_STOCK_X_DIRECTORY_NORMAL_DRAG_ACCEPT
+ X_DIRECTORY_NORMAL_HOME = ETK_STOCK_X_DIRECTORY_NORMAL_HOME
+ X_DIRECTORY_NORMAL_OPEN = ETK_STOCK_X_DIRECTORY_NORMAL_OPEN
+ X_DIRECTORY_NORMAL = ETK_STOCK_X_DIRECTORY_NORMAL
+ X_DIRECTORY_NORMAL_VISITING = ETK_STOCK_X_DIRECTORY_NORMAL_VISITING
+ X_DIRECTORY_REMOTE = ETK_STOCK_X_DIRECTORY_REMOTE
+ X_DIRECTORY_REMOTE_SERVER = ETK_STOCK_X_DIRECTORY_REMOTE_SERVER
+ X_DIRECTORY_REMOTE_WORKGROUP = ETK_STOCK_X_DIRECTORY_REMOTE_WORKGROUP
+ X_DIRECTORY_TRASH_FULL = ETK_STOCK_X_DIRECTORY_TRASH_FULL
+ X_DIRECTORY_TRASH = ETK_STOCK_X_DIRECTORY_TRASH
+ X_OFFICE_ADDRESS_BOOK = ETK_STOCK_X_OFFICE_ADDRESS_BOOK
+ X_OFFICE_CALENDAR = ETK_STOCK_X_OFFICE_CALENDAR
+ X_OFFICE_DOCUMENT = ETK_STOCK_X_OFFICE_DOCUMENT
+ X_OFFICE_PRESENTATION = ETK_STOCK_X_OFFICE_PRESENTATION
+ X_OFFICE_SPREADSHEET = ETK_STOCK_X_OFFICE_SPREADSHEET
+ PLACES_FOLDER = ETK_STOCK_PLACES_FOLDER
+ PLACES_FOLDER_REMOTE = ETK_STOCK_PLACES_FOLDER_REMOTE
+ PLACES_FOLDER_SAVED_SEARCH = ETK_STOCK_PLACES_FOLDER_SAVED_SEARCH
+ PLACES_NETWORK_SERVER = ETK_STOCK_PLACES_NETWORK_SERVER
+ PLACES_NETWORK_WORKGROUP = ETK_STOCK_PLACES_NETWORK_WORKGROUP
+ PLACES_START_HERE = ETK_STOCK_PLACES_START_HERE
+ PLACES_USER_DESKTOP = ETK_STOCK_PLACES_USER_DESKTOP
+ PLACES_USER_HOME = ETK_STOCK_PLACES_USER_HOME
+ PLACES_USER_TRASH = ETK_STOCK_PLACES_USER_TRASH
+ AUDIO_VOLUME_HIGH = ETK_STOCK_AUDIO_VOLUME_HIGH
+ AUDIO_VOLUME_LOW = ETK_STOCK_AUDIO_VOLUME_LOW
+ AUDIO_VOLUME_MEDIUM = ETK_STOCK_AUDIO_VOLUME_MEDIUM
+ AUDIO_VOLUME_MUTED = ETK_STOCK_AUDIO_VOLUME_MUTED
+ BATTERY_CAUTION = ETK_STOCK_BATTERY_CAUTION
+ DIALOG_ERROR = ETK_STOCK_DIALOG_ERROR
+ DIALOG_INFORMATION = ETK_STOCK_DIALOG_INFORMATION
+ DIALOG_WARNING = ETK_STOCK_DIALOG_WARNING
+ DIALOG_QUESTION = ETK_STOCK_DIALOG_QUESTION
+ FOLDER_DRAG_ACCEPT = ETK_STOCK_FOLDER_DRAG_ACCEPT
+ FOLDER_OPEN = ETK_STOCK_FOLDER_OPEN
+ FOLDER_VISITING = ETK_STOCK_FOLDER_VISITING
+ IMAGE_LOADING = ETK_STOCK_IMAGE_LOADING
+ IMAGE_MISSING = ETK_STOCK_IMAGE_MISSING
+ MAIL_ATTACHMENT = ETK_STOCK_MAIL_ATTACHMENT
+ NETWORK_ERROR = ETK_STOCK_NETWORK_ERROR
+ NETWORK_IDLE = ETK_STOCK_NETWORK_IDLE
+ NETWORK_OFFLINE = ETK_STOCK_NETWORK_OFFLINE
+ NETWORK_ONLINE = ETK_STOCK_NETWORK_ONLINE
+ NETWORK_RECEIVE = ETK_STOCK_NETWORK_RECEIVE
+ NETWORK_TRANSMIT = ETK_STOCK_NETWORK_TRANSMIT
+ NETWORK_TRANSMIT_RECEIVE = ETK_STOCK_NETWORK_TRANSMIT_RECEIVE
+ NETWORK_WIRELESS_ENCRYPTED = ETK_STOCK_NETWORK_WIRELESS_ENCRYPTED
+ PRINTER_ERROR = ETK_STOCK_PRINTER_ERROR
+ USER_TRASH_FULL = ETK_STOCK_USER_TRASH_FULL
+ SMALL = ETK_STOCK_SMALL
+ MEDIUM = ETK_STOCK_MEDIUM
+ BIG = ETK_STOCK_BIG
Index: etk/core/dialog.pxi
===================================================================
--- etk/core/dialog.pxi (revision 0)
+++ etk/core/dialog.pxi (revision 0)
@@ -0,0 +1,115 @@
+cdef public class Dialog(Window) [object PyEtk_Dialog, type PyEtk_Dialog_Type]:
+ def __init__(self, **kargs):
+ if self.obj == NULL:
+ self._set_obj(<Etk_Object*>etk_dialog_new())
+ self._set_common_params(**kargs)
+
+ def action_area_alignment_get(self):
+ __ret = etk_dialog_action_area_alignment_get(<Etk_Dialog*>self.obj)
+ return (__ret)
+
+ def action_area_alignment_set(self, float align):
+ etk_dialog_action_area_alignment_set(<Etk_Dialog*>self.obj, align)
+
+ def action_area_hbox_get(self):
+ __ret = Object_from_instance(<Etk_Object*>etk_dialog_action_area_hbox_get(<Etk_Dialog*>self.obj))
+ return (__ret)
+
+ def action_area_homogeneous_get(self):
+ __ret = bool(<int> etk_dialog_action_area_homogeneous_get(<Etk_Dialog*>self.obj))
+ return (__ret)
+
+ def action_area_homogeneous_set(self, int homogeneous):
+ etk_dialog_action_area_homogeneous_set(<Etk_Dialog*>self.obj, <Etk_Bool>homogeneous)
+
+ def button_add(self, char* label, int response_id):
+ __ret = Object_from_instance(<Etk_Object*>etk_dialog_button_add(<Etk_Dialog*>self.obj, label, response_id))
+ return (__ret)
+
+ def button_add_from_stock(self, int stock_id, int response_id):
+ __ret = Object_from_instance(<Etk_Object*>etk_dialog_button_add_from_stock(<Etk_Dialog*>self.obj, stock_id, response_id))
+ return (__ret)
+
+ def button_response_id_set(self, Button button, int response_id):
+ etk_dialog_button_response_id_set(<Etk_Dialog*>self.obj, <Etk_Button*>button.obj, response_id)
+
+ def has_separator_get(self):
+ __ret = bool(<int> etk_dialog_has_separator_get(<Etk_Dialog*>self.obj))
+ return (__ret)
+
+ def has_separator_set(self, int has_separator):
+ etk_dialog_has_separator_set(<Etk_Dialog*>self.obj, <Etk_Bool>has_separator)
+
+ def main_area_vbox_get(self):
+ __ret = Object_from_instance(<Etk_Object*>etk_dialog_main_area_vbox_get(<Etk_Dialog*>self.obj))
+ return (__ret)
+
+ def pack_button_in_action_area(self, Button button, int response_id, int group, int fill_policy, int padding):
+ etk_dialog_pack_button_in_action_area(<Etk_Dialog*>self.obj, <Etk_Button*>button.obj, response_id, <Etk_Box_Group>group, <Etk_Box_Fill_Policy>fill_policy, padding)
+
+ def pack_in_main_area(self, Widget widget, int group, int fill_policy, int padding):
+ etk_dialog_pack_in_main_area(<Etk_Dialog*>self.obj, <Etk_Widget*>widget.obj, <Etk_Box_Group>group, <Etk_Box_Fill_Policy>fill_policy, padding)
+
+ def pack_widget_in_action_area(self, Widget widget, int group, int fill_policy, int padding):
+ etk_dialog_pack_widget_in_action_area(<Etk_Dialog*>self.obj, <Etk_Widget*>widget.obj, <Etk_Box_Group>group, <Etk_Box_Fill_Policy>fill_policy, padding)
+
+ property action_area_alignment:
+ def __get__(self):
+ return self.action_area_alignment_get()
+
+ def __set__(self, action_area_alignment):
+ self.action_area_alignment_set(action_area_alignment)
+
+ property action_area_hbox:
+ def __get__(self):
+ return self.action_area_hbox_get()
+
+ property action_area_homogeneous:
+ def __get__(self):
+ return self.action_area_homogeneous_get()
+
+ def __set__(self, action_area_homogeneous):
+ self.action_area_homogeneous_set(action_area_homogeneous)
+
+ property has_separator:
+ def __get__(self):
+ return self.has_separator_get()
+
+ def __set__(self, has_separator):
+ self.has_separator_set(has_separator)
+
+ property main_area_vbox:
+ def __get__(self):
+ return self.main_area_vbox_get()
+
+ def _set_common_params(self, action_area_alignment=None, action_area_homogeneous=None, has_separator=None, **kargs):
+ if action_area_alignment is not None:
+ self.action_area_alignment_set(action_area_alignment)
+ if action_area_homogeneous is not None:
+ self.action_area_homogeneous_set(action_area_homogeneous)
+ if has_separator is not None:
+ self.has_separator_set(has_separator)
+
+ if kargs:
+ Window._set_common_params(self, **kargs)
+
+ property RESPONSE_SIGNAL:
+ def __get__(self):
+ return ETK_DIALOG_RESPONSE_SIGNAL
+
+ def on_response(self, func, *a, **ka):
+ self.connect(self.RESPONSE_SIGNAL, func, *a, **ka)
+
+
+class DialogEnums:
+ NONE = ETK_RESPONSE_NONE
+ REJECT = ETK_RESPONSE_REJECT
+ ACCEPT = ETK_RESPONSE_ACCEPT
+ DELETE_EVENT = ETK_RESPONSE_DELETE_EVENT
+ OK = ETK_RESPONSE_OK
+ CANCEL = ETK_RESPONSE_CANCEL
+ CLOSE = ETK_RESPONSE_CLOSE
+ YES = ETK_RESPONSE_YES
+ NO = ETK_RESPONSE_NO
+ APPLY = ETK_RESPONSE_APPLY
+ HELP = ETK_RESPONSE_HELP
Index: include/etk/c_etk.pxd
===================================================================
--- include/etk/c_etk.pxd (revision 36140)
+++ include/etk/c_etk.pxd (working copy)
@@ -138,3 +138,4 @@ include "separator.pxd"
include "filechooser_widget.pxd"
include "check_button.pxd"
include "spinner.pxd"
+include "dialog.pxd"
Index: include/etk/dialog.pxd
===================================================================
--- include/etk/dialog.pxd (revision 0)
+++ include/etk/dialog.pxd (revision 0)
@@ -0,0 +1,48 @@
+cdef extern from "etk_dialog.h":
+ ####################################################################
+ # Signals
+ int ETK_DIALOG_RESPONSE_SIGNAL
+
+ ####################################################################
+ # Enumerations
+ ctypedef enum Etk_Dialog_Response_ID:
+ ETK_RESPONSE_NONE
+ ETK_RESPONSE_REJECT
+ ETK_RESPONSE_ACCEPT
+ ETK_RESPONSE_DELETE_EVENT
+ ETK_RESPONSE_OK
+ ETK_RESPONSE_CANCEL
+ ETK_RESPONSE_CLOSE
+ ETK_RESPONSE_YES
+ ETK_RESPONSE_NO
+ ETK_RESPONSE_APPLY
+ ETK_RESPONSE_HELP
+
+ ####################################################################
+ # Structures
+ ctypedef struct Etk_Dialog
+
+ ####################################################################
+ # Functions
+ int etk_dialog_button_response_id_get(Etk_Button* button)
+ Etk_Type* etk_dialog_type_get()
+ Etk_Widget* etk_dialog_new()
+ float etk_dialog_action_area_alignment_get(Etk_Dialog* __self)
+ void etk_dialog_action_area_alignment_set(Etk_Dialog* __self, float align)
+ Etk_Widget* etk_dialog_action_area_hbox_get(Etk_Dialog* __self)
+ int etk_dialog_action_area_homogeneous_get(Etk_Dialog* __self)
+ void etk_dialog_action_area_homogeneous_set(Etk_Dialog* __self, int homogeneous)
+ Etk_Widget* etk_dialog_button_add(Etk_Dialog* __self, char* label, int response_id)
+ Etk_Widget* etk_dialog_button_add_from_stock(Etk_Dialog* __self, int stock_id, int response_id)
+ void etk_dialog_button_response_id_set(Etk_Dialog* __self, Etk_Button* button, int response_id)
+ int etk_dialog_has_separator_get(Etk_Dialog* __self)
+ void etk_dialog_has_separator_set(Etk_Dialog* __self, int has_separator)
+ Etk_Widget* etk_dialog_main_area_vbox_get(Etk_Dialog* __self)
+ void etk_dialog_pack_button_in_action_area(Etk_Dialog* __self, Etk_Button* button, int response_id, int group, int fill_policy, int padding)
+ void etk_dialog_pack_in_main_area(Etk_Dialog* __self, Etk_Widget* widget, int group, int fill_policy, int padding)
+ void etk_dialog_pack_widget_in_action_area(Etk_Dialog* __self, Etk_Widget* widget, int group, int fill_policy, int padding)
+
+#########################################################################
+# Objects
+cdef public class Dialog(Window) [object PyEtk_Dialog, type PyEtk_Dialog_Type]:
+ pass
Index: examples/17-filechooser_widget.py
===================================================================
--- examples/17-filechooser_widget.py (revision 0)
+++ examples/17-filechooser_widget.py (revision 0)
@@ -0,0 +1,53 @@
+#!/usr/bin/python
+
+import etk
+
+# Functions called on events
+def print_selected(obj):
+ ''' Prints out selected files '''
+ if filechooser.selected_files_get() is not None:
+ print "Selected Files: %s" % " ".join([file for file in filechooser.selected_files_get()])
+ else:
+ print "No file selected."
+
+# Used when check buttons toggled
+def chk_btns(obj, data):
+ ''' Activate / Disactivate multiple selection
+ and Show / Hide hidden files '''
+ if data == "multiple":
+ filechooser.select_multiple_set(obj.active_get())
+ if data == "hidden":
+ filechooser.show_hidden_set(obj.active_get())
+ if data == "save":
+ filechooser.is_save_set(obj.active_get())
+
+# File chooser
+filechooser = etk.FilechooserWidget()
+
+# Dialog
+dialog = etk.Dialog(title="FilechooserWidget Test Python-Etk")
+
+# Check boxes
+select_multiple = etk.CheckButton (label="Select Multiple")
+show_hidden = etk.CheckButton (label="Show hidden")
+is_save = etk.CheckButton (label="Is save")
+
+# Place the elements into the dialog
+dialog.pack_in_main_area (filechooser, etk.VBox.START, etk.VBox.EXPAND_FILL, 0)
+dialog.pack_widget_in_action_area(select_multiple, etk.VBox.START, etk.VBox.NONE, 0)
+dialog.pack_widget_in_action_area(show_hidden, etk.VBox.START, etk.VBox.NONE, 0)
+dialog.pack_widget_in_action_area(is_save, etk.VBox.START, etk.VBox.NONE, 0)
+open = dialog.button_add_from_stock(etk.c_etk.StockEnums.DOCUMENT_OPEN, 1)
+close = dialog.button_add_from_stock(etk.c_etk.StockEnums.DIALOG_CLOSE, 2)
+
+# Events catchers
+select_multiple.connect("toggled", chk_btns, "multiple")
+show_hidden.connect("toggled", chk_btns, "hidden")
+is_save.connect("toggled", chk_btns, "save")
+open.connect("clicked", print_selected)
+close.connect("clicked", lambda x: etk.main_quit())
+
+dialog.on_destroyed(lambda x: etk.main_quit())
+dialog.show_all()
+
+etk.main()
-------------------------------------------------------------------------
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