Enabled to be run without splitters to track down possible bugs

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
1999-10-16 06:08:16 +00:00
parent 1bb27b0cc6
commit 5a7823f599

View File

@@ -17,6 +17,8 @@ from wxPython.wx import *
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
_useSplitter = true
_useNestedSplitter = true
_treeList = [ _treeList = [
('Managed Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame']), ('Managed Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame']),
@@ -64,8 +66,24 @@ class wxPythonDemo(wxFrame):
self.Centre(wxBOTH) self.Centre(wxBOTH)
self.CreateStatusBar(1, wxST_SIZEGRIP) self.CreateStatusBar(1, wxST_SIZEGRIP)
if _useSplitter:
splitter = wxSplitterWindow(self, -1) splitter = wxSplitterWindow(self, -1)
if _useNestedSplitter:
splitter2 = wxSplitterWindow(splitter, -1) splitter2 = wxSplitterWindow(splitter, -1)
logParent = nbParent = splitter2
else:
nbParent = splitter
logParent = wxFrame(self, -1, "wxPython Demo: log window",
(0,0), (500, 150))
logParent.Show(true)
else:
nbParent = self
logParent = wxFrame(self, -1, "wxPython Demo: log window",
(0,0), (500, 150))
logParent.Show(true)
# Prevent TreeCtrl from displaying all items after destruction # Prevent TreeCtrl from displaying all items after destruction
self.dying = false self.dying = false
@@ -105,6 +123,7 @@ class wxPythonDemo(wxFrame):
# Create a TreeCtrl # Create a TreeCtrl
if _useSplitter:
tID = wxNewId() tID = wxNewId()
self.treeMap = {} self.treeMap = {}
self.tree = wxTreeCtrl(splitter, tID) self.tree = wxTreeCtrl(splitter, tID)
@@ -121,7 +140,7 @@ class wxPythonDemo(wxFrame):
EVT_TREE_SEL_CHANGED (self.tree, tID, self.OnSelChanged) EVT_TREE_SEL_CHANGED (self.tree, tID, self.OnSelChanged)
# Create a Notebook # Create a Notebook
self.nb = wxNotebook(splitter2, -1) self.nb = wxNotebook(nbParent, -1)
# Set up a TextCtrl on the Overview Notebook page # Set up a TextCtrl on the Overview Notebook page
self.ovr = wxTextCtrl(self.nb, -1, style = wxTE_MULTILINE|wxTE_READONLY) self.ovr = wxTextCtrl(self.nb, -1, style = wxTE_MULTILINE|wxTE_READONLY)
@@ -136,26 +155,33 @@ class wxPythonDemo(wxFrame):
# Set up a log on the View Log Notebook page # Set up a log on the View Log Notebook page
self.log = wxTextCtrl(splitter2, -1, self.log = wxTextCtrl(logParent, -1,
style = wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL) style = wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
(w, self.charHeight) = self.log.GetTextExtent('X') (w, self.charHeight) = self.log.GetTextExtent('X')
self.WriteText('wxPython Demo Log:\n') self.WriteText('wxPython Demo Log:\n')
# add the windows to the splitter and split it. # add the windows to the splitter and split it.
splitter.SplitVertically(self.tree, splitter2) if _useSplitter:
splitter.SetSashPosition(180, true) if _useNestedSplitter:
splitter.SetMinimumPaneSize(20)
splitter2.SplitHorizontally(self.nb, self.log) splitter2.SplitHorizontally(self.nb, self.log)
splitter2.SetSashPosition(360, true) splitter2.SetSashPosition(360, true)
splitter2.SetMinimumPaneSize(20) splitter2.SetMinimumPaneSize(20)
splitter.SplitVertically(self.tree, splitter2)
else:
splitter.SplitVertically(self.tree, self.nb)
splitter.SetSashPosition(180, true)
splitter.SetMinimumPaneSize(20)
# make our log window be stdout # make our log window be stdout
#sys.stdout = self #sys.stdout = self
# select initial items # select initial items
self.nb.SetSelection(0) self.nb.SetSelection(0)
if _useSplitter:
self.tree.SelectItem(root) self.tree.SelectItem(root)
if len(sys.argv) == 2: if len(sys.argv) == 2:
@@ -163,7 +189,7 @@ class wxPythonDemo(wxFrame):
selectedDemo = self.treeMap[sys.argv[1]] selectedDemo = self.treeMap[sys.argv[1]]
except: except:
selectedDemo = None selectedDemo = None
if selectedDemo: if selectedDemo and _useSplitter:
self.tree.SelectItem(selectedDemo) self.tree.SelectItem(selectedDemo)
self.tree.EnsureVisible(selectedDemo) self.tree.EnsureVisible(selectedDemo)
@@ -197,14 +223,18 @@ class wxPythonDemo(wxFrame):
if self.dying: if self.dying:
return return
item = event.GetItem()
itemText = self.tree.GetItemText(item)
self.RunDemo(itemText)
#---------------------------------------------
def RunDemo(self, itemText):
if self.nb.GetPageCount() == 3: if self.nb.GetPageCount() == 3:
if self.nb.GetSelection() == 2: if self.nb.GetSelection() == 2:
self.nb.SetSelection(0) self.nb.SetSelection(0)
self.nb.DeletePage(2) self.nb.DeletePage(2)
item = event.GetItem()
itemText = self.tree.GetItemText(item)
if itemText == 'Overview': if itemText == 'Overview':
self.GetDemoFile('Main.py') self.GetDemoFile('Main.py')
self.SetOverview('Overview', overview) self.SetOverview('Overview', overview)
@@ -224,8 +254,11 @@ class wxPythonDemo(wxFrame):
self.window = module.runTest(self, self.nb, self) self.window = module.runTest(self, self.nb, self)
if self.window: if self.window:
self.nb.AddPage(self.window, 'Demo') self.nb.AddPage(self.window, 'Demo')
self.nb.ResizeChildren() #self.nb.ResizeChildren()
self.nb.SetSelection(2) self.nb.SetSelection(2)
self.nb.ResizeChildren()
#if self.window.GetAutoLayout():
# self.window.Layout()
else: else:
self.ovr.Clear() self.ovr.Clear()
@@ -293,6 +326,7 @@ class wxPythonDemo(wxFrame):
#--------------------------------------------- #---------------------------------------------
def OnDemoMenu(self, event): def OnDemoMenu(self, event):
if _useSplitter:
try: try:
selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())] selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())]
except: except:
@@ -300,7 +334,8 @@ class wxPythonDemo(wxFrame):
if selectedDemo: if selectedDemo:
self.tree.SelectItem(selectedDemo) self.tree.SelectItem(selectedDemo)
self.tree.EnsureVisible(selectedDemo) self.tree.EnsureVisible(selectedDemo)
else:
self.RunDemo(self.mainmenu.GetLabel(event.GetId()))
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------