]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/Main.py
accept files in wxHtmlEasyPrinting::{Print,Preview}File, not only URLs
[wxWidgets.git] / wxPython / demo / Main.py
index 634d5513460e6c4f8c6df84e985aa18fc3b77952..3a48f251be17e90964f3e399b477c02fedfda561 100644 (file)
@@ -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()
 
 #---------------------------------------------------------------------------