]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/Main.py
fix Union(empty rect) bug
[wxWidgets.git] / wxPython / demo / Main.py
index a741bc01ffa0c5272f500908fb784a409ae3164b..82736b72fe896df64a2fc7217c99d066317feb3a 100644 (file)
@@ -15,75 +15,190 @@ 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'
-                       ]),
-
-    ]
+    # new stuff
+    ('New since last release', [
+        'RowColSizer',
+        'Unicode',
+        'wxFileHistory',
+        'wxGenericDirCtrl',
+        'wxImageFromStream',
+        'wxArtProvider',
+        'ScrolledPanel',
+        'wxMenu',
+        'wxIEHtmlWin',
+        'wxKeyEvents',
+        'wxWizard',
+        'wxXmlResourceHandler',
+        ]),
+
+    # managed windows == things with a caption you can close
+    ('Base Frames and Dialogs', [
+        'wxDialog',
+        'wxFrame',
+        'wxMDIWindows',
+        'wxMiniFrame',
+        'wxWizard',
+        ]),
+
+    # the common dialogs
+    ('Common Dialogs', [
+        'wxColourDialog',
+        'wxDirDialog',
+        'wxFileDialog',
+        'wxFindReplaceDialog',
+        'wxFontDialog',
+        'wxMessageDialog',
+        'wxPageSetupDialog',
+        'wxPrintDialog',
+        'wxProgressDialog',
+        'wxSingleChoiceDialog',
+        'wxTextEntryDialog',
+        ]),
+
+    # dialogs from libraries
+    ('More Dialogs', [
+        'ErrorDialogs',
+        'ImageBrowser',
+        'wxMultipleChoiceDialog',
+        'wxScrolledMessageDialog',
+        ]),
+
+    # core controls
+    ('Core Windows/Controls', [
+        'wxButton',
+        'wxCheckBox',
+        'wxCheckListBox',
+        'wxChoice',
+        'wxComboBox',
+        'wxGauge',
+        'wxGenericDirCtrl',
+        'wxGrid',
+        'wxListBox',
+        'wxListCtrl',
+        'wxListCtrl_virtual',
+        'wxMenu',
+        'wxNotebook',
+        'wxPopupWindow',
+        'wxRadioBox',
+        'wxSashWindow',
+        'wxSlider',
+        'wxScrolledWindow',
+        'wxSplitterWindow',
+        'wxSpinButton',
+        'wxSpinCtrl',
+        'wxStaticText',
+        'wxStaticBitmap',
+        'wxStatusBar',
+        'wxTextCtrl',
+        'wxToggleButton',
+        'wxToolBar',
+        'wxTreeCtrl',
+        'wxValidator',
+        ]),
+
+    # controls coming from other librairies
+    ('More Windows/Controls', [
+        'ColourSelect',
+        'ContextHelp',
+        'FancyText',
+        'FileBrowseButton',
+        'GenericButtons',
+        'PyCrust',
+        'PyCrustWithFilling',
+        'SplitTree',
+        'TablePrint',
+        'wxCalendar',
+        'wxCalendarCtrl',
+        'wxDynamicSashWindow',
+        'wxEditableListBox',
+        'wxEditor',
+        #'wxFloatBar',          deprecated
+        'wxHtmlWindow',
+        'wxIEHtmlWin',
+        'wxLEDNumberCtrl',
+        'wxMimeTypesManager',
+        #'wxMVCTree',           deprecated
+        'wxRightTextCtrl',
+        'wxStyledTextCtrl_1',
+        'wxStyledTextCtrl_2',
+        ]),
+
+    # How to lay out the controls in a frame/dialog
+    ('Window Layout', [
+        'LayoutAnchors',
+        'Layoutf',
+        'RowColSizer',
+        'ScrolledPanel',
+        'Sizers',
+        'wxLayoutConstraints',
+        'wxXmlResource',
+        'wxXmlResourceHandler',
+        ]),
+
+    # ditto
+    ('Process and Events', [
+        'infoframe',
+        'OOR',
+        'PythonEvents',
+        'Threads',
+        'wxProcess',
+        'wxTimer',
+        'wxKeyEvents',
+        ]),
+
+    # Clipboard and DnD
+    ('Clipboard and DnD', [
+        'CustomDragAndDrop',
+        'DragAndDrop',
+        'URLDragAndDrop',
+        ]),
+
+    # Images
+    ('Images', [
+        'wxDragImage',
+        'wxImage',
+        'wxImageFromStream',
+        'wxMask',
+        'wxArtProvider',
+        ]),
+
+    # Other stuff
+    ('Miscellaneous', [
+        'ColourDB',
+        'DialogUnits',
+        'DrawXXXList',
+        'FontEnumerator',
+        'PrintFramework',
+        'Unicode',
+        'wxFileHistory',
+        'wxJoystick',
+        'wxOGL',
+        'wxWave',
+        ]),
+
+    # need libs not coming with the demo
+    ('Objects using an external library', [
+        'ActiveXWrapper_Acrobat',
+        'ActiveXWrapper_IE',
+        'wxGLCanvas',
+        'wxPlotCanvas',
+        ]),
+
+
+    ('Check out the samples dir too', [
+        ]),
+
+]
+
+
 
 #---------------------------------------------------------------------------
 
@@ -100,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):
@@ -191,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")
@@ -253,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)
@@ -312,7 +434,7 @@ class wxPythonDemo(wxFrame):
         pt = event.GetPosition();
         item, flags = self.tree.HitTest(pt)
         if item == self.tree.GetSelection():
-            self.SetOverview(self.tree.GetItemText(item), self.curOverview)
+            self.SetOverview(self.tree.GetItemText(item)+" Overview", self.curOverview)
         event.Skip()
 
     #---------------------------------------------
@@ -349,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("")
@@ -432,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) ))
@@ -498,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):
@@ -528,7 +653,7 @@ def main():
         os.chdir(demoPath)
     except:
         pass
-    app = MyApp(0)
+    app = MyApp(wxPlatform == "__WXMAC__")
     app.MainLoop()