X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/79f1bf32d72bc23348f6b787bb4b6c8a9c682b1b..312cca179a996f6d056bb71dab241356f4207d1c:/wxPython/demo/ErrorDialogs.py?ds=inline diff --git a/wxPython/demo/ErrorDialogs.py b/wxPython/demo/ErrorDialogs.py index c205c6bf91..f264f8f92f 100644 --- a/wxPython/demo/ErrorDialogs.py +++ b/wxPython/demo/ErrorDialogs.py @@ -2,79 +2,128 @@ # usual wxWindows license stuff here. # by Chris Fama, with thanks to Robin Dunn, and others on the wxPython-users # mailing list. +# +# 11/22/2003 - Jeff Grimmett (grimmtooth@softhome.net) +# +# o Updated for wx namespace +# +# 11/25/2003 - Jeff Grimmett (grimmtooth@softhome.net) +# +# o Looks like we have issues until the library is updated. +# - Had to rename back to wx* naming conventions +# - Getting unusual failures in the library itself when that is done. +# + +import sys + +import wx +import wx.lib.ErrorDialogs as edlg -from wxPython.wx import * -from wxPython.lib.ErrorDialogs import * _debug = 0 -ID_BUTTON_wxPyFatalErrorDialog = 10001 -ID_BUTTON_wxPyNonFatalErrorDialog = 10002 -ID_BUTTON_wxPyFatalErrorDialogWithTraceback = 10003 -ID_BUTTON_wxPyNonFatalErrorDialogWithTraceback = 10004 -def ErrorDialogsDemoPanelFunc( parent, call_fit = true, set_sizer = true ): - item0 = wxBoxSizer( wxVERTICAL ) +ID_TEXT = 10000 +ID_BUTTON_wxPyNonFatalError = 10001 +ID_BUTTON_wxPyFatalError = 10002 +ID_BUTTON_wxPyFatalErrorDialog = 10003 +ID_BUTTON_wxPyNonFatalErrorDialog = 10004 +ID_BUTTON_wxPyFatalErrorDialogWithTraceback = 10005 +ID_BUTTON_wxPyNonFatalErrorDialogWithTraceback = 10006 - item1 = wxStaticText( parent, -1, "Please select one of the buttons below...", wxDefaultPosition, wxDefaultSize, 0 ) - item0.AddWindow( item1, 0, wxALIGN_CENTRE|wxALL, 5 ) +def ErrorDialogsDemoPanelFunc( parent, call_fit = True, set_sizer = True ): + item0 = wx.BoxSizer( wx.VERTICAL ) - item2 = wxFlexGridSizer( 0, 2, 0, 0 ) + item1 = wx.StaticText( + parent, ID_TEXT, + "Please select one of the buttons below for an example using explicit errors..." + ) + + item0.AddWindow( item1, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) - item6 = wxButton( parent, ID_BUTTON_wxPyNonFatalErrorDialogWithTraceback, "wxPyNonFatalErrorDialogWithTraceback", wxDefaultPosition, wxDefaultSize, 0 ) - item6.SetDefault() - item2.AddWindow( item6, 0, wxALIGN_CENTRE|wxALL, 5 ) + item2 = wx.FlexGridSizer( 0, 2, 0, 0 ) - item3 = wxButton( parent, ID_BUTTON_wxPyFatalErrorDialog, "wxPyFatalErrorDialog", wxDefaultPosition, wxDefaultSize, 0 ) - item2.AddWindow( item3, 0, wxALIGN_CENTRE|wxALL, 5 ) + item3 = wx.Button( parent, ID_BUTTON_wxPyNonFatalError, "wxPyNonFatalError") + item2.AddWindow( item3, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) - item4 = wxButton( parent, ID_BUTTON_wxPyNonFatalErrorDialog, "wxPyNonFatalErrorDialog", wxDefaultPosition, wxDefaultSize, 0 ) - item2.AddWindow( item4, 0, wxALIGN_CENTRE|wxALL, 5 ) + item4 = wx.Button( parent, ID_BUTTON_wxPyFatalError, "wxPyFatalError") + item2.AddWindow( item4, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) - item5 = wxButton( parent, ID_BUTTON_wxPyFatalErrorDialogWithTraceback, "wxPyFatalErrorDialogWithTraceback", wxDefaultPosition, wxDefaultSize, 0 ) - item2.AddWindow( item5, 0, wxALIGN_CENTRE|wxALL, 5 ) + item0.AddSizer( item2, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) - item0.AddSizer( item2, 0, wxALIGN_CENTRE|wxALL, 5 ) + item5 = wx.StaticText( parent, ID_TEXT, "Please select one of the buttons below for interpreter errors...") + item0.AddWindow( item5, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) - if set_sizer == true: - parent.SetAutoLayout( true ) + item6 = wx.FlexGridSizer( 0, 2, 0, 0 ) + + item7 = wx.Button( parent, ID_BUTTON_wxPyFatalErrorDialog, "wxPyFatalErrorDialog") + item6.AddWindow( item7, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) + + item8 = wx.Button( parent, ID_BUTTON_wxPyNonFatalErrorDialog, "wxPyNonFatalErrorDialog") + item6.AddWindow( item8, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) + + item9 = wx.Button( + parent, ID_BUTTON_wxPyFatalErrorDialogWithTraceback, + "wxPyFatalErrorDialogWithTraceback" + ) + item6.AddWindow( item9, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) + + item10 = wx.Button( + parent, ID_BUTTON_wxPyNonFatalErrorDialogWithTraceback, + "wxPyNonFatalErrorDialogWithTraceback" + ) + item10.SetDefault() + item6.AddWindow( item10, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) + + item0.AddSizer( item6, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) + + item11 = wx.FlexGridSizer( 0, 2, 0, 0 ) + + item0.AddSizer( item11, 0, wx.ALIGN_CENTRE|wx.ALL, 5 ) + + if set_sizer == True: + parent.SetAutoLayout( True ) parent.SetSizer( item0 ) - if call_fit == true: + if call_fit == True: item0.Fit( parent ) item0.SetSizeHints( parent ) return item0 -# End of generated bit +# Menu bar functions + +# Bitmap functions -class MyPanel(wxPanel): + +# End of generated file + +class MyPanel(wx.Panel): def __init__(self,parent=None): - wxPanel.__init__(self,parent,-1) + wx.Panel.__init__(self,parent,-1) + args = (None, -1) kwargs = { 'programname': "sumthing", 'mailto': "me@sumwear", - 'whendismissed': "from wxPython.wx import * ; wxBell()"} + 'whendismissed': "from wxPython.wx import * ; wxBell()" + } + self.dialogs = map(apply, - [wxPyNonFatalErrorDialogWithTraceback, - wxPyNonFatalErrorDialog,#WithTraceback - wxPyFatalErrorDialogWithTraceback, - wxPyFatalErrorDialog],#WithTraceback + [edlg.wxPyNonFatalErrorDialogWithTraceback, + edlg.wxPyNonFatalErrorDialog,#WithTraceback + edlg.wxPyFatalErrorDialogWithTraceback, + edlg.wxPyFatalErrorDialog #WithTraceback + ], (args,) * 4, - (kwargs,) * 4) + (kwargs,) * 4 + ) + ErrorDialogsDemoPanelFunc(self) - EVT_BUTTON(self, - ID_BUTTON_wxPyFatalErrorDialog, - self.DoDialog) - EVT_BUTTON(self, - ID_BUTTON_wxPyFatalErrorDialogWithTraceback, - self.DoDialog) - EVT_BUTTON(self, - ID_BUTTON_wxPyNonFatalErrorDialog, - self.DoDialog) - EVT_BUTTON(self, - ID_BUTTON_wxPyNonFatalErrorDialogWithTraceback, - self.DoDialog) - EVT_CLOSE(self,self.OnClose) + self.Bind(wx.EVT_BUTTON, self.DoDialog, id=ID_BUTTON_wxPyFatalErrorDialog) + self.Bind(wx.EVT_BUTTON, self.DoDialog, id=ID_BUTTON_wxPyNonFatalError) + self.Bind(wx.EVT_BUTTON, self.DoDialog, id=ID_BUTTON_wxPyFatalError) + self.Bind(wx.EVT_BUTTON, self.DoDialog, id=ID_BUTTON_wxPyFatalErrorDialogWithTraceback) + self.Bind(wx.EVT_BUTTON, self.DoDialog, id=ID_BUTTON_wxPyNonFatalErrorDialog) + self.Bind(wx.EVT_BUTTON, self.DoDialog, id=ID_BUTTON_wxPyNonFatalErrorDialogWithTraceback) IndexFromID = { ID_BUTTON_wxPyFatalErrorDialog: 3, @@ -84,45 +133,65 @@ class MyPanel(wxPanel): } def DoDialog(self,event): - sys.stderr = self.dialogs[self.IndexFromID[event.GetId()]] - print "%s.DoDialog(): testing %s..." % (self,sys.stderr) - this_will_generate_a_NameError_exception - - def OnClose(self,evt): + id = event.GetId() + + if id in [ID_BUTTON_wxPyFatalError,ID_BUTTON_wxPyNonFatalError]: + if id == ID_BUTTON_wxPyFatalError: + print "%s.DoDialog(): testing explicit wxPyFatalError..."\ + % self + edlg.wxPyFatalError(self,"Test Non-fatal error.

" + "Nearly arbitrary HTML (i.e., that which is" + " understood by wxHtmlWindow)." + "

" + "
Thisis
atable

") + else: + print "%s.DoDialog(): testing explicit wxPyNonFatalError..."\ + % self + edlg.wxPyNonFatalError(self,"Test Non-fatal error.

" + "Nearly arbitrary HTML (i.e., that which is" + " understood by wxHtmlWindow)." + "

" + "
Thisis
atable

") + else: + sys.stderr = self.dialogs[self.IndexFromID[id]] + print "%s.DoDialog(): testing %s..." % (self,sys.stderr) + this_will_generate_a_NameError_exception + + def ShutdownDemo(self): for d in self.dialogs: - d.Destroy () - self.Destroy () + d.Destroy() + + -class MyFrame(wxFrame): +class MyFrame(wx.Frame): def __init__(self,parent=None): - wxFrame.__init__(self,parent,-1, + wx.Frame.__init__(self,parent,-1, "Please make a selection...", ) - self. panel = MyPanel(self) - EVT_CLOSE (self,self.OnCloseWindow) + self.panel = MyPanel(self) + self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) def OnCloseWindow(self,event): self.panel.Close() self.Destroy() -class MyApp(wxApp): +class MyApp(wx.App): def OnInit(self): frame = MyFrame() - frame.Show(true) + frame.Show(True) self.SetTopWindow(frame) - return true + return True def runTest(pframe, nb, log): panel = MyPanel(nb) return panel -from wxPython.lib import ErrorDialogs -ErrorDialogs._debug = 1 +edlg._debug = 1 if __name__ == "__main__": - sys.stderr = wxPyNonWindowingErrorHandler() + sys.stderr = edlg.wxPyNonWindowingErrorHandler() app = MyApp(0) app.MainLoop() sys.exit() else: - overview = ErrorDialogs.__doc__ + overview = edlg.__doc__