('Miscellaneous Windows', ['wxGrid', 'wxSashWindow',
'wxScrolledWindow', 'wxSplitterWindow',
- 'wxStatusBar', 'wxToolBar', 'wxNotebook']),
+ 'wxStatusBar', 'wxToolBar', 'wxNotebook',
+ 'wxHtmlWindow']),
('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog',
'wxSingleChoiceDialog', 'wxTextEntryDialog',
'wxFontDialog', 'wxPageSetupDialog', 'wxPrintDialog',
- 'wxMessageDialog']),
+ 'wxMessageDialog', 'wxProgressDialog']),
('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice',
'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'wxTextCtrl',
'wxTreeCtrl', 'wxSpinButton', 'wxStaticText', 'wxStaticBitmap',
'wxRadioBox', 'wxSlider']),
- ('Window Layout', ['wxLayoutConstraints']),
+ ('Window Layout', ['wxLayoutConstraints', 'Sizers']),
- ('Micellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage']),
+ ('Miscellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage',
+ 'PrintFramework', 'wxOGL']),
- ('wxPython Library', ['Layoutf', 'wxScrolledMessageDialog',
+ ('wxPython Library', ['Sizers', 'Layoutf', 'wxScrolledMessageDialog',
'wxMultipleChoiceDialog', 'wxPlotCanvas']),
- ('Cool Contribs', ['pyTree', 'hangman', 'SlashDot']),
+ ('Cool Contribs', ['pyTree', 'hangman', 'SlashDot', 'XMLtreeview']),
]
# Make a File menu
self.mainmenu = wxMenuBar()
menu = wxMenu()
- mID = NewId()
+ mID = wxNewId()
menu.Append(mID, 'E&xit', 'Get the heck outta here!')
EVT_MENU(self, mID, self.OnFileExit)
self.mainmenu.Append(menu, '&File')
+ # Make a Demo menu
+ menu = wxMenu()
+ for item in _treeList:
+ submenu = wxMenu()
+ for childItem in item[1]:
+ mID = wxNewId()
+ submenu.Append(mID, childItem)
+ EVT_MENU(self, mID, self.OnDemoMenu)
+ menu.AppendMenu(wxNewId(), item[0], submenu)
+ self.mainmenu.Append(menu, '&Demo')
+
+
# Make a Help menu
- mID = NewId()
+ mID = wxNewId()
menu = wxMenu()
menu.Append(mID, '&About', 'wxPython RULES!!!')
EVT_MENU(self, mID, self.OnHelpAbout)
self.mainmenu.Append(menu, '&Help')
self.SetMenuBar(self.mainmenu)
+
# Create a TreeCtrl
- tID = NewId()
+ tID = wxNewId()
+ self.treeMap = {}
self.tree = wxTreeCtrl(splitter, tID)
root = self.tree.AddRoot("Overview")
for item in _treeList:
child = self.tree.AppendItem(root, item[0])
for childItem in item[1]:
- self.tree.AppendItem(child, childItem)
+ theDemo = self.tree.AppendItem(child, childItem)
+ self.treeMap[childItem] = theDemo
+
self.tree.Expand(root)
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)
-
# Create a Notebook
self.nb = wxNotebook(splitter2, -1)
# Set up a TextCtrl on the Overview Notebook page
- self.ovr = wxTextCtrl(self.nb, -1, '', wxDefaultPosition, wxDefaultSize,
- wxTE_MULTILINE|wxTE_READONLY)
+ self.ovr = wxTextCtrl(self.nb, -1, style = wxTE_MULTILINE|wxTE_READONLY)
self.nb.AddPage(self.ovr, "Overview")
# Set up a TextCtrl on the Demo Code Notebook page
- self.txt = wxTextCtrl(self.nb, -1, '', wxDefaultPosition, wxDefaultSize,
- wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
+ self.txt = wxTextCtrl(self.nb, -1,
+ style = wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
+ self.txt.SetFont(wxFont(9, wxMODERN, wxNORMAL, wxNORMAL, false))
self.nb.AddPage(self.txt, "Demo Code")
- # select initial items
- self.nb.SetSelection(0)
- self.tree.SelectItem(root)
-
# Set up a log on the View Log Notebook page
- self.log = wxTextCtrl(splitter2, -1, '', wxDefaultPosition, wxDefaultSize,
- wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
+ self.log = wxTextCtrl(splitter2, -1,
+ style = wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
(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.
splitter2.SetMinimumPaneSize(20)
# make our log window be stdout
- sys.stdout = self
+ #sys.stdout = self
+
+ # select initial items
+ self.nb.SetSelection(0)
+ self.tree.SelectItem(root)
+
+ if len(sys.argv) == 2:
+ try:
+ selectedDemo = self.treeMap[sys.argv[1]]
+ except:
+ selectedDemo = None
+ if selectedDemo:
+ self.tree.SelectItem(selectedDemo)
+ self.tree.EnsureVisible(selectedDemo)
+
#---------------------------------------------
def WriteText(self, text):
w, h = self.log.GetClientSizeTuple()
numLines = h/self.charHeight
x, y = self.log.PositionToXY(self.log.GetLastPosition())
- self.log.ShowPosition(self.log.XYToPosition(x, y-numLines+1))
+ if y > numLines:
+ self.log.ShowPosition(self.log.XYToPosition(x, y-numLines))
+ ##self.log.ShowPosition(self.log.GetLastPosition())
+ self.log.SetInsertionPointEnd()
def write(self, txt):
self.WriteText(txt)
#self.nb.ResizeChildren();
self.nb.Refresh();
#wxYield()
+ self.window = None
else:
if os.path.exists(itemText + '.py'):
self.nb.Refresh();
wxYield()
- window = module.runTest(self, self.nb, self)
- if window:
- self.nb.AddPage(window, 'Demo')
+ self.window = module.runTest(self, self.nb, self)
+ if self.window:
+ self.nb.AddPage(self.window, 'Demo')
self.nb.SetSelection(2)
self.nb.ResizeChildren();
else:
self.ovr.Clear()
self.txt.Clear()
+ self.window = None
#---------------------------------------------
# Get the Demo files
def GetDemoFile(self, filename):
self.txt.Clear()
- if not self.txt.LoadFile(filename):
+ #if not self.txt.LoadFile(filename):
+ # self.txt.WriteText("Cannot open %s file." % filename)
+ try:
+ self.txt.SetValue(open(filename).read())
+ except IOError:
self.txt.WriteText("Cannot open %s file." % filename)
+
self.txt.SetInsertionPoint(0)
self.txt.ShowPosition(0)
def OnHelpAbout(self, event):
- about = wxMessageDialog(self,
- "wxPython is a Python extension module that\n"
- "encapsulates the wxWindows GUI classes.\n\n"
- "This demo shows off some of the capabilities\n"
- "of wxPython.\n\n"
- " Developed by Robin Dunn",
- "About wxPython", wxOK)
+ #about = wxMessageDialog(self,
+ # "wxPython is a Python extension module that\n"
+ # "encapsulates the wxWindows GUI classes.\n\n"
+ # "This demo shows off some of the capabilities\n"
+ # "of wxPython.\n\n"
+ # " Developed by Robin Dunn",
+ # "About wxPython", wxOK)
+ from About import MyAboutBox
+ about = MyAboutBox(self)
about.ShowModal()
about.Destroy()
#---------------------------------------------
def OnCloseWindow(self, event):
self.dying = true
+ self.window = None
+ self.mainmenu = None
self.Destroy()
#---------------------------------------------
def OnIdle(self, event):
if self.otherWin:
self.otherWin.Raise()
+ self.window = self.otherWin
self.otherWin = None
+ #---------------------------------------------
+ def OnDemoMenu(self, event):
+ print event.GetId(), self.mainmenu.GetLabel(event.GetId())
+ try:
+ selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())]
+ except:
+ selectedDemo = None
+ if selectedDemo:
+ self.tree.SelectItem(selectedDemo)
+ self.tree.EnsureVisible(selectedDemo)
+
+
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------