]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/Main.py
added a check which should prevent the crash of bug 555111
[wxWidgets.git] / wxPython / demo / Main.py
index f723cb0874a9c42f907e057ca6b55039e7139370..15b039e16057de8b51adc4441a29eaeb63c1e228 100644 (file)
@@ -15,77 +15,13 @@ import sys, os, time, string
 from   wxPython.wx import *
 from   wxPython.html import wxHtmlWindow
 
+##from wxPython.stc import *
+
 import images
 
 #---------------------------------------------------------------------------
 
 
-## _treeList = [
-##     ('New since last release', ['wxGenericDirCtrl',
-##                                 'wxImageFromStream',
-##                                 'RowColSizer',
-##                                 'Unicode',
-##                                 'wxFileHistory',
-##                                 ]),
-
-##     ('Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame',
-##                  'wxGrid', 'wxSashWindow',
-##                  'wxScrolledWindow', 'wxSplitterWindow',
-##                  'wxStatusBar', 'wxNotebook',
-##                  'wxHtmlWindow',
-##                  'wxStyledTextCtrl_1', 'wxStyledTextCtrl_2',
-##                  'wxPopupWindow',
-##                  'wxDynamicSashWindow',
-##                  ]),
-
-##     ('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog',
-##                         'wxSingleChoiceDialog', 'wxTextEntryDialog',
-##                         'wxFontDialog', 'wxPageSetupDialog', 'wxPrintDialog',
-##                         'wxMessageDialog', 'wxProgressDialog', 'wxFindReplaceDialog',
-##                         ]),
-
-##     ('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice',
-##                   'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'VirtualListCtrl',
-##                   'wxTextCtrl',
-##                   'wxTreeCtrl', 'wxSpinButton', 'wxSpinCtrl', 'wxStaticText',
-##                   'wxStaticBitmap', 'wxRadioBox', 'wxSlider', 'wxToolBar',
-##                   'wxCalendarCtrl', 'wxToggleButton',
-##                   'wxEditableListBox', 'wxLEDNumberCtrl',
-##                   ]),
-
-##     ('Window Layout', ['wxLayoutConstraints', 'LayoutAnchors', 'Sizers', 'XML_Resource',
-##                        'RowColSizer',
-##                        ]),
-
-##     ('Miscellaneous', [ 'DragAndDrop', 'CustomDragAndDrop', 'URLDragAndDrop',
-##                         'FontEnumerator',
-##                         'wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
-##                         'wxImage', 'wxMask', 'PrintFramework', 'wxOGL',
-##                         'PythonEvents', 'Threads',
-##                         'ActiveXWrapper_Acrobat', 'ActiveXWrapper_IE',
-##                         'wxDragImage', "wxProcess", "FancyText", "OOR", "wxWave",
-##                         'wxJoystick', 'DrawXXXList', 'ErrorDialogs', 'wxMimeTypesManager',
-##                         'ContextHelp', 'SplitTree', 'Unicode', 'wxFileHistory',
-##                         ]),
-
-##     ('wxPython Library', ['Layoutf', 'wxScrolledMessageDialog',
-##                           'wxMultipleChoiceDialog', 'wxPlotCanvas', 'wxFloatBar',
-##                           'wxCalendar', 'wxMVCTree', 'wxVTKRenderWindow',
-##                           'FileBrowseButton', 'GenericButtons', 'wxEditor',
-##                           'ColourSelect', 'ImageBrowser',
-##                           'infoframe', 'ColourDB', 'PyCrust', 'PyCrustWithFilling',
-##                           'TablePrint',
-##                           'wxRightTextCtrl',
-##                           ]),
-
-##     ('Cool Contribs', ['pyTree', 'hangman',
-##                        #'SlashDot',
-##                        'XMLtreeview'
-##                        ]),
-
-##     ]
-
-
 _treeList = [
     # new stuff
     ('New since last release', [
@@ -153,7 +89,6 @@ _treeList = [
         'wxStaticBitmap',
         'wxStatusBar',
         'wxTextCtrl',
-        'wxTimer',
         'wxToggleButton',
         'wxToolBar',
         'wxTreeCtrl',
@@ -241,7 +176,6 @@ _treeList = [
         'ActiveXWrapper_IE',
         'wxGLCanvas',
         'wxPlotCanvas',
-        'wxVTKRenderWindow',
         ]),
 
     # pyTree, hangman, ... in the samples dir
@@ -382,8 +316,24 @@ class wxPythonDemo(wxFrame):
         self.nb = wxNotebook(splitter2, -1, style=wxCLIP_CHILDREN)
 
         # Set up a wxHtmlWindow on the Overview Notebook page
-        self.ovr = wxHtmlWindow(self.nb, -1, size=(400, 400))
-        self.nb.AddPage(self.ovr, self.overviewText)
+        # we put it in a panel first because there seems to be a
+        # refresh bug of some sort (wxGTK) when it is directly in
+        # the notebook...
+        if 0:  # the old way
+            self.ovr = wxHtmlWindow(self.nb, -1, size=(400, 400))
+            self.nb.AddPage(self.ovr, self.overviewText)
+
+        else:  # hopefully I can remove this hacky code soon, see bug #216861
+            panel = wxPanel(self.nb, -1, style=wxCLIP_CHILDREN)
+            self.ovr = wxHtmlWindow(panel, -1, size=(400, 400))
+            self.nb.AddPage(panel, self.overviewText)
+
+            def OnOvrSize(evt, ovr=self.ovr):
+                ovr.SetSize(evt.GetSize())
+
+            EVT_SIZE(panel, OnOvrSize)
+            EVT_ERASE_BACKGROUND(panel, EmptyHandler)
+
 
         self.SetOverview(self.overviewText, overview)
 
@@ -500,16 +450,17 @@ class wxPythonDemo(wxFrame):
                     self.SetOverview(itemText + " Overview", module.overview)
                 finally:
                     wxEndBusyCursor()
+                self.tree.Refresh()
 
                 # in case runTest is modal, make sure things look right...
                 self.nb.Refresh();
-                wxYield()
+                wxSafeYield()
 
                 self.window = module.runTest(self, self.nb, self) ###
                 if self.window:
                     self.nb.AddPage(self.window, 'Demo')
-                    wxYield()
                     self.nb.SetSelection(2)
+                    self.nb.Refresh()  # without this wxMac has troubles showing the just added page
 
             else:
                 self.ovr.SetPage("")
@@ -679,7 +630,7 @@ def main():
         os.chdir(demoPath)
     except:
         pass
-    app = MyApp(0)
+    app = MyApp(wxPlatform == "__WXMAC__")
     app.MainLoop()