X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/887a1bd93e986556d3118913cf1ca020a4077f74..72b1ad5c2e42a19e24460c196b47ea54e34d8c2c:/wxPython/demo/Main.py diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index 634d551346..3a48f251be 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -52,7 +52,7 @@ _treeList = [ ]), # managed windows == things with a (optional) caption you can close - ('Base Frames and Dialogs', [ + ('Frames and Dialogs', [ 'Dialog', 'Frame', 'MDIWindows', @@ -65,7 +65,6 @@ _treeList = [ 'ColourDialog', 'DirDialog', 'FileDialog', - 'FileDialog_Save', 'FindReplaceDialog', 'FontDialog', 'MessageDialog', @@ -189,7 +188,7 @@ _treeList = [ 'PythonEvents', 'Threads', 'Timer', - 'infoframe', + ##'infoframe', # needs better explaination and some fixing ]), # Clipboard and DnD @@ -214,7 +213,7 @@ _treeList = [ # Other stuff ('Miscellaneous', [ 'ColourDB', - 'DialogUnits', + ##'DialogUnits', # needs more explainations 'DrawXXXList', 'FileHistory', 'FontEnumerator', @@ -709,6 +708,7 @@ class DemoModules: # load original module self.LoadFromFile(modOriginal, GetOriginalFilename(name)) + self.SetActive(modOriginal) # load modified module (if one exists) if DoesModifiedExist(name): @@ -809,35 +809,6 @@ class DemoModules: self.modules[modID][2] = "" -#--------------------------------------------------------------------------- -class ReloadDemoPanel(wx.Panel): - """ - Panel put into the demo tab when the demo just shows some - top-level window. Enables the demo to be reloaded after being - closed. - """ - - infoText = "This demo runs outside the main window" - - def __init__(self, parent, codePanel, log): - wx.Panel.__init__(self, parent, -1) - self.codePanel = codePanel - self.log = log - - self.label = wx.StaticText(self, -1, self.infoText) - self.btnReload = wx.Button(self, -1, "Reload Demo") - self.btnReload.Bind(wx.EVT_BUTTON, self.OnReload) - - self.box = wx.BoxSizer(wx.VERTICAL) - self.box.Add(self.label, 0, wx.ALIGN_CENTER | wx.ALL, 10) - self.box.Add(self.btnReload, 0, wx.ALIGN_CENTER | wx.ALL, 10) - - self.box.Fit(self) - self.SetSizer(self.box) - - def OnReload(self, event): - self.codePanel.ReloadDemo() - #--------------------------------------------------------------------------- class DemoError: @@ -976,7 +947,7 @@ class wxPythonDemo(wx.Frame): overviewText = "wxPython Overview" def __init__(self, parent, title): - wx.Frame.__init__(self, parent, -1, title, size = (950, 750), + wx.Frame.__init__(self, parent, -1, title, size = (950, 720), style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE) self.loaded = False @@ -984,8 +955,8 @@ class wxPythonDemo(wx.Frame): self.curOverview = "" self.demoPage = None self.codePage = None - self.useModified = False self.shell = None + self.firstTime = True icon = images.getMondrianIcon() self.SetIcon(icon) @@ -1280,7 +1251,6 @@ class wxPythonDemo(wx.Frame): module = self.demoModules.GetActive() self.ShutdownDemoModule() overviewText = "" - prevSelect = -1 # o If the demo returns a window it is placed in a tab. # o Otherwise, a placeholder tab is created, informing the user that the @@ -1292,23 +1262,28 @@ class wxPythonDemo(wx.Frame): if hasattr(module, "overview"): overviewText = module.overview - # in case runTest is modal, make sure things look right - # before it starts... - prevSelect = self.UpdateNotebook() - wx.YieldIfNeeded() - try: self.demoPage = module.runTest(self, self.nb, self) - if self.demoPage is None: - self.demoPage = ReloadDemoPanel(self.nb, self.codePage, self) except: - self.demoPage = DemoErrorPanel(self.nb, self.codePage, DemoError(sys.exc_info()), self) + self.demoPage = DemoErrorPanel(self.nb, self.codePage, + DemoError(sys.exc_info()), self) + + assert self.demoPage is not None, "runTest must return a window!" + else: # There was a previous error in compiling or exec-ing - self.demoPage = DemoErrorPanel(self.nb, self.codePage, self.demoModules.GetErrorInfo(), self) + self.demoPage = DemoErrorPanel(self.nb, self.codePage, + self.demoModules.GetErrorInfo(), self) self.SetOverview(self.demoModules.name + " Overview", overviewText) - self.UpdateNotebook(prevSelect) + + if self.firstTime: + # cahnge to the demo page the first time a module is run + self.UpdateNotebook(2) + self.firstTime = False + else: + # otherwise just stay on the same tab in case the user has changed to another one + self.UpdateNotebook() #--------------------------------------------- def ShutdownDemoModule(self): @@ -1336,23 +1311,12 @@ class wxPythonDemo(wx.Frame): if page: if not pageExists: # Add a new page - - # panel = wx.Panel(nb, -1) - # page.Reparent(panel) - # panel.page = page - # nb.AddPage(panel, pageText) nb.AddPage(page, pageText) if debug: wx.LogMessage("DBG: ADDED %s" % pageText) else: - # if nb.GetPage(pagePos).page != page: if nb.GetPage(pagePos) != page: # Reload an existing page nb.Freeze() - - # panel = nb.GetPage(pagePos) - # panel.page = page - # page.Reparent(panel) - nb.DeletePage(pagePos) nb.InsertPage(pagePos, page, pageText) nb.Thaw() @@ -1376,8 +1340,6 @@ class wxPythonDemo(wx.Frame): if select >= 0 and select < nb.GetPageCount(): nb.SetSelection(select) - return select - #--------------------------------------------- def SetOverview(self, name, text): self.curOverview = text @@ -1617,7 +1579,7 @@ def main(): os.chdir(demoPath) except: pass - app = MyApp(0) ##wx.Platform == "__WXMAC__") + app = MyApp(False) app.MainLoop() #---------------------------------------------------------------------------