import sys, os
from wxPython.wx import *
-
+from wxPython.lib.splashscreen import SplashScreen
#---------------------------------------------------------------------------
_useNestedSplitter = true
_treeList = [
+ ('New since last release', ['wxMVCTree', 'wxVTKRenderWindow',
+ 'FileBrowseButton', 'GenericButtons',
+ 'wxMask', 'wxEditor']),
+
('Managed Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame']),
- ('Miscellaneous Windows', ['wxGrid', 'wxSashWindow',
+ ('Non-Managed Windows', ['wxGrid', 'wxSashWindow',
'wxScrolledWindow', 'wxSplitterWindow',
- 'wxStatusBar', 'wxToolBar', 'wxNotebook',
+ 'wxStatusBar', 'wxNotebook',
'wxHtmlWindow']),
('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog',
('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice',
'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'wxTextCtrl',
'wxTreeCtrl', 'wxSpinButton', 'wxStaticText', 'wxStaticBitmap',
- 'wxRadioBox', 'wxSlider']),
+ 'wxRadioBox', 'wxSlider', 'wxToolBar', #'wxToggleButton'
+ ]),
('Window Layout', ['wxLayoutConstraints', 'Sizers', 'OldSizers']),
- ('Miscellaneous', ['wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
- 'wxImage', 'PrintFramework', 'wxOGL']),
+ ('Miscellaneous', [ 'DragAndDrop', 'CustomDragAndDrop', 'FontEnumerator',
+ 'wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
+ 'wxImage', 'wxMask', 'PrintFramework', 'wxOGL',
+ 'PythonEvents', 'Threads']),
- ('wxPython Library', ['OldSizers', 'Layoutf', 'wxScrolledMessageDialog',
+ ('wxPython Library', ['Layoutf', 'wxScrolledMessageDialog',
'wxMultipleChoiceDialog', 'wxPlotCanvas', 'wxFloatBar',
- 'PyShell']),
+ 'PyShell', 'wxCalendar', 'wxMVCTree', 'wxVTKRenderWindow',
+ 'FileBrowseButton', 'GenericButtons', 'wxEditor']),
('Cool Contribs', ['pyTree', 'hangman', 'SlashDot', 'XMLtreeview']),
def __init__(self, parent, id, title):
wxFrame.__init__(self, parent, -1, title, size = (725, 550))
+ self.cwd = os.getcwd()
+
if wxPlatform == '__WXMSW__':
self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO)
self.SetIcon(self.icon)
self.treeMap = {}
self.tree = wxTreeCtrl(splitter, tID)
root = self.tree.AddRoot("Overview")
+ firstChild = None
for item in _treeList:
child = self.tree.AppendItem(root, item[0])
+ if not firstChild: firstChild = child
for childItem in item[1]:
theDemo = self.tree.AppendItem(child, childItem)
self.treeMap[childItem] = theDemo
self.tree.Expand(root)
+ self.tree.Expand(firstChild)
EVT_TREE_ITEM_EXPANDED (self.tree, tID, self.OnItemExpanded)
EVT_TREE_ITEM_COLLAPSED (self.tree, tID, self.OnItemCollapsed)
EVT_TREE_SEL_CHANGED (self.tree, tID, self.OnSelChanged)
(w, self.charHeight) = self.log.GetTextExtent('X')
self.WriteText('wxPython Demo Log:\n')
+ self.Show(true)
# add the windows to the splitter and split it.
if _useSplitter:
self.tree.EnsureVisible(selectedDemo)
+ self.WriteText('window handle: %s\n' % self.GetHandle())
+
+
#---------------------------------------------
def WriteText(self, text):
self.log.WriteText(text)
#---------------------------------------------
def RunDemo(self, itemText):
+ os.chdir(self.cwd)
if self.nb.GetPageCount() == 3:
if self.nb.GetSelection() == 2:
self.nb.SetSelection(0)
else:
if os.path.exists(itemText + '.py'):
+ wxBeginBusyCursor()
self.GetDemoFile(itemText + '.py')
module = __import__(itemText, globals())
self.SetOverview(itemText, module.overview)
+ wxEndBusyCursor()
# in case runTest is modal, make sure things look right...
self.nb.Refresh();
self.nb.AddPage(self.window, 'Demo')
#self.nb.ResizeChildren()
self.nb.SetSelection(2)
- self.nb.ResizeChildren()
+ #self.nb.ResizeChildren()
#if self.window.GetAutoLayout():
# self.window.Layout()
wxImage_AddHandler(wxJPEGHandler())
wxImage_AddHandler(wxPNGHandler())
wxImage_AddHandler(wxGIFHandler())
- frame = wxPythonDemo(NULL, -1, "wxPython: (A Demonstration)")
+
+ self.splash = SplashScreen(None, bitmapfile='bitmaps/splash.gif',
+ duration=4000, callback=self.AfterSplash)
+ self.splash.Show(true)
+ wxYield()
+ return true
+
+ def AfterSplash(self):
+ self.splash.Close(true)
+ frame = wxPythonDemo(None, -1, "wxPython: (A Demonstration)")
frame.Show(true)
self.SetTopWindow(frame)
return true