diff options
Diffstat (limited to 'pynxc/waxy/application.py')
-rw-r--r-- | pynxc/waxy/application.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/pynxc/waxy/application.py b/pynxc/waxy/application.py new file mode 100644 index 0000000..c6c01fd --- /dev/null +++ b/pynxc/waxy/application.py @@ -0,0 +1,32 @@ +# application.py + +import wx +import sys +#from waxconfig import WaxConfig +#import font + +class Application(wx.App): + def __init__(self, frameklass, *args, **kwargs): + # takes a frame *class* plus arbitrary options. these options will + # be passed to the frame constructor. + self.frameklass = frameklass + self.args = args + self.kwargs = kwargs + + # when set, the app uses the stdout/stderr window; off by default + use_stdout_window = 0 + if kwargs.has_key('use_stdout_window'): + use_stdout_window = kwargs['use_stdout_window'] + del kwargs['use_stdout_window'] + wx.App.__init__(self, use_stdout_window) + + def OnInit(self): + self.mainframe = self.frameklass(*self.args, **self.kwargs) + if hasattr(self.mainframe.__class__, "__ExceptHook__"): + sys.excepthook = self.mainframe.__ExceptHook__ + self.mainframe.Show(True) + self.SetTopWindow(self.mainframe) + return True + + def Run(self): + self.MainLoop() |