]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/Main.py
simpler fix for rendering bug fixed in previous revision
[wxWidgets.git] / wxPython / demo / Main.py
index f723cb0874a9c42f907e057ca6b55039e7139370..82736b72fe896df64a2fc7217c99d066317feb3a 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', [
@@ -94,6 +30,13 @@ _treeList = [
         'wxFileHistory',
         'wxGenericDirCtrl',
         'wxImageFromStream',
+        'wxArtProvider',
+        'ScrolledPanel',
+        'wxMenu',
+        'wxIEHtmlWin',
+        'wxKeyEvents',
+        'wxWizard',
+        'wxXmlResourceHandler',
         ]),
 
     # managed windows == things with a caption you can close
@@ -102,6 +45,7 @@ _treeList = [
         'wxFrame',
         'wxMDIWindows',
         'wxMiniFrame',
+        'wxWizard',
         ]),
 
     # the common dialogs
@@ -119,7 +63,7 @@ _treeList = [
         'wxTextEntryDialog',
         ]),
 
-    # dialogs form libraries
+    # dialogs from libraries
     ('More Dialogs', [
         'ErrorDialogs',
         'ImageBrowser',
@@ -129,7 +73,6 @@ _treeList = [
 
     # core controls
     ('Core Windows/Controls', [
-        'VirtualListCtrl',
         'wxButton',
         'wxCheckBox',
         'wxCheckListBox',
@@ -140,6 +83,8 @@ _treeList = [
         'wxGrid',
         'wxListBox',
         'wxListCtrl',
+        'wxListCtrl_virtual',
+        'wxMenu',
         'wxNotebook',
         'wxPopupWindow',
         'wxRadioBox',
@@ -153,7 +98,6 @@ _treeList = [
         'wxStaticBitmap',
         'wxStatusBar',
         'wxTextCtrl',
-        'wxTimer',
         'wxToggleButton',
         'wxToolBar',
         'wxTreeCtrl',
@@ -176,14 +120,15 @@ _treeList = [
         'wxDynamicSashWindow',
         'wxEditableListBox',
         'wxEditor',
-        'wxFloatBar',
+        #'wxFloatBar',          deprecated
         'wxHtmlWindow',
+        'wxIEHtmlWin',
         'wxLEDNumberCtrl',
         'wxMimeTypesManager',
-        'wxMVCTree',
+        #'wxMVCTree',           deprecated
+        'wxRightTextCtrl',
         'wxStyledTextCtrl_1',
         'wxStyledTextCtrl_2',
-        'wxRightTextCtrl',
         ]),
 
     # How to lay out the controls in a frame/dialog
@@ -191,9 +136,11 @@ _treeList = [
         'LayoutAnchors',
         'Layoutf',
         'RowColSizer',
+        'ScrolledPanel',
         'Sizers',
         'wxLayoutConstraints',
-        'XML_Resource',
+        'wxXmlResource',
+        'wxXmlResourceHandler',
         ]),
 
     # ditto
@@ -204,6 +151,7 @@ _treeList = [
         'Threads',
         'wxProcess',
         'wxTimer',
+        'wxKeyEvents',
         ]),
 
     # Clipboard and DnD
@@ -219,6 +167,7 @@ _treeList = [
         'wxImage',
         'wxImageFromStream',
         'wxMask',
+        'wxArtProvider',
         ]),
 
     # Other stuff
@@ -241,10 +190,9 @@ _treeList = [
         'ActiveXWrapper_IE',
         'wxGLCanvas',
         'wxPlotCanvas',
-        'wxVTKRenderWindow',
         ]),
 
-    # pyTree, hangman, ... in the samples dir
+
     ('Check out the samples dir too', [
         ]),
 
@@ -267,6 +215,10 @@ class MyLog(wxPyLog):
         self.tc.AppendText(message + '\n')
 
 
+class MyTP(wxPyTipProvider):
+    def GetTip(self):
+        return "This is my tip"
+
 #---------------------------------------------------------------------------
 
 def opj(path):
@@ -358,8 +310,8 @@ class wxPythonDemo(wxFrame):
         self.treeMap = {}
         self.tree = wxTreeCtrl(splitter, tID,
                                style=wxTR_HAS_BUTTONS |
-                               wxTR_EDIT_LABELS |
-                               wxTR_HAS_VARIABLE_ROW_HEIGHT)
+                               wxTR_HAS_VARIABLE_ROW_HEIGHT
+                               )
 
         #self.tree.SetBackgroundColour(wxNamedColour("Pink"))
         root = self.tree.AddRoot("wxPython Overview")
@@ -382,8 +334,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)
 
@@ -404,10 +372,13 @@ class wxPythonDemo(wxFrame):
         # But instead of the above we want to show how to use our own wxLog class
         wxLog_SetActiveTarget(MyLog(self.log))
 
-
+        # for serious debugging
+        #wxLog_SetActiveTarget(wxLogStderr())
+        #wxLog_SetTraceMask(wxTraceMessages)
 
         self.Show(true)
 
+
         # add the windows to the splitter and split it.
         splitter2.SplitHorizontally(self.nb, self.log)
         splitter.SplitVertically(self.tree, splitter2)
@@ -500,16 +471,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("")
@@ -583,6 +555,7 @@ class wxPythonDemo(wxFrame):
             showTip, index = (1, 0)
         if showTip:
             tp = wxCreateFileTipProvider(opj("data/tips.txt"), index)
+            ##tp = MyTP(0)
             showTip = wxShowTip(self, tp)
             index = tp.GetCurrentTip()
             open(opj("data/showTips"), "w").write(str( (showTip, index) ))
@@ -649,7 +622,8 @@ class MySplashScreen(wxSplashScreen):
         bmp = wxImage(opj("bitmaps/splash.gif")).ConvertToBitmap()
         wxSplashScreen.__init__(self, bmp,
                                 wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT,
-                                4000, None, -1)
+                                4000, None, -1,
+                                style = wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP)
         EVT_CLOSE(self, self.OnClose)
 
     def OnClose(self, evt):
@@ -679,7 +653,7 @@ def main():
         os.chdir(demoPath)
     except:
         pass
-    app = MyApp(0)
+    app = MyApp(wxPlatform == "__WXMAC__")
     app.MainLoop()