From ca288de5155e430068f9303a3ebb336d480b45b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Cort=C3=A9z?= Date: Mon, 29 Dec 2014 14:35:08 -0600 Subject: [PATCH] next-gen: updated widgetUtils --- .gitignore | 2 +- src/widgetUtils/__init__.py | 9 ++++++--- src/widgetUtils/baseDialog.py | 16 +++++++++++++++ src/widgetUtils/gtkUtils.py | 38 +++++++++++++++++++++++++++++++++++ src/widgetUtils/wxUtils.py | 12 ++++++++--- 5 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 src/widgetUtils/baseDialog.py create mode 100644 src/widgetUtils/gtkUtils.py diff --git a/.gitignore b/.gitignore index 57076356..4019ec0e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ *.pyc *~ -windows-dependencies/* +windows-dependencies/ src/build/ src/dist/ src/config/ diff --git a/src/widgetUtils/__init__.py b/src/widgetUtils/__init__.py index f9b60c8f..28902ae3 100644 --- a/src/widgetUtils/__init__.py +++ b/src/widgetUtils/__init__.py @@ -1,3 +1,6 @@ -import platform -if platform.system() == "Windows": - from wxUtils import * +#import platform +#if platform.system() == "Windows": +from wxUtils import * +from baseDialog import * +#elif platform.system() == "Linux": +# from gtkUtils import * diff --git a/src/widgetUtils/baseDialog.py b/src/widgetUtils/baseDialog.py new file mode 100644 index 00000000..e20b805b --- /dev/null +++ b/src/widgetUtils/baseDialog.py @@ -0,0 +1,16 @@ +import wx + +class BaseWXDialog(wx.Dialog): + def __init__(self, *args, **kwargs): + super(BaseWXDialog, self).__init__(*args, **kwargs) + + def get_response(self): + return self.ShowModal() + + def get(self, control): + if hasattr(self, control): + control = getattr(self, control) + if hasattr(control, "GetValue"): return getattr(control, "GetValue")() + elif hasattr(control, "GetLabel"): return getattr(control, "GetLabel")() + else: return -1 + else: return 0 \ No newline at end of file diff --git a/src/widgetUtils/gtkUtils.py b/src/widgetUtils/gtkUtils.py new file mode 100644 index 00000000..1e812357 --- /dev/null +++ b/src/widgetUtils/gtkUtils.py @@ -0,0 +1,38 @@ +from gi.repository import Gtk, Gdk + +# Code responses for GTK +3 dialogs. +# this is when an user presses OK on a dialogue. +OK = Gtk.ResponseType.OK +# This is when an user presses cancel on a dialogue. +CANCEL = Gtk.ResponseType.CANCEL +# This is when an user closes the dialogue or an id to create the close button. +CLOSE = Gtk.ResponseType.CLOSE +# The response for a "yes" Button pressed on a dialogue. +YES = Gtk.ResponseType.YES +# This is when the user presses No on a default dialogue. +NO = Gtk.ResponseType.NO + +#events +# This is raised when the application must be closed. +CLOSE_EVENT = "delete-event" +# This is activated when a button is pressed. +BUTTON_PRESSED = "clicked" +# This is activated when an user enter text on an edit box. +#ENTERED_TEXT = wx.EVT_TEXT +MENU = "activate" + +#KEYPRESS = wx.EVT_CHAR_HOOK +#NOTEBOOK_PAGE_CHANGED = wx.EVT_NOTEBOOK_PAGE_CHANGED +def exit_application(): + """ Closes the current window cleanly. """ + Gtk.main_quit() + +def connect_event(parent, event, func, menuitem=None, *args, **kwargs): + """ Connects an event to a function. + parent Gtk.widget: The widget that will listen for the event. + event widgetUtils.event: The event that will be listened for the parent. The event should be one of the widgetUtils events. + function func: The function that will be connected to the event.""" + if menuitem == None: + return getattr(parent, "connect")(event, func, *args, **kwargs) + else: + return getattr(menuitem, "connect")(event, func, *args, **kwargs) diff --git a/src/widgetUtils/wxUtils.py b/src/widgetUtils/wxUtils.py index 7a3438d9..8ee968d4 100644 --- a/src/widgetUtils/wxUtils.py +++ b/src/widgetUtils/wxUtils.py @@ -19,14 +19,20 @@ CLOSE_EVENT = wx.EVT_CLOSE BUTTON_PRESSED = wx.EVT_BUTTON # This is activated when an user enter text on an edit box. ENTERED_TEXT = wx.EVT_TEXT - +MENU = wx.EVT_MENU +KEYPRESS = wx.EVT_CHAR_HOOK +KEYUP = wx.EVT_KEY_UP +NOTEBOOK_PAGE_CHANGED = wx.EVT_NOTEBOOK_PAGE_CHANGED def exit_application(): """ Closes the current window cleanly. """ wx.GetApp().ExitMainLoop() -def connect_event(parent, event, func): +def connect_event(parent, event, func, menuitem=None, *args, **kwargs): """ Connects an event to a function. parent wx.window: The widget that will listen for the event. event widgetUtils.event: The event that will be listened for the parent. The event should be one of the widgetUtils events. function func: The function that will be connected to the event.""" - return getattr(parent, "Bind")(event, func) \ No newline at end of file + if menuitem == None: + return getattr(parent, "Bind")(event, func, *args, **kwargs) + else: + return getattr(parent, "Bind")(event, func, menuitem, *args, **kwargs)