('Miscellaneous Windows', ['wxGrid', 'wxSashWindow',
'wxScrolledWindow', 'wxSplitterWindow',
- 'wxStatusBar', 'wxToolBar', 'wxNotebook']),
+ 'wxStatusBar', 'wxToolBar', 'wxNotebook',
+ 'wxHtmlWindow']),
('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog',
'wxSingleChoiceDialog', 'wxTextEntryDialog',
'wxTreeCtrl', 'wxSpinButton', 'wxStaticText', 'wxStaticBitmap',
'wxRadioBox', 'wxSlider']),
- ('Window Layout', ['wxLayoutConstraints', 'Sizers']),
+ ('Window Layout', ['wxLayoutConstraints', 'Sizers', 'OldSizers']),
- ('Miscellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage',
- 'PrintFramework', 'wxOGL']),
+ ('Miscellaneous', ['wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
+ 'wxImage', 'PrintFramework', 'wxOGL']),
- ('wxPython Library', ['Sizers', 'Layoutf', 'wxScrolledMessageDialog',
- 'wxMultipleChoiceDialog', 'wxPlotCanvas']),
+ ('wxPython Library', ['OldSizers', 'Layoutf', 'wxScrolledMessageDialog',
+ 'wxMultipleChoiceDialog', 'wxPlotCanvas', 'wxFloatBar',
+ 'PyShell']),
('Cool Contribs', ['pyTree', 'hangman', 'SlashDot', 'XMLtreeview']),
class wxPythonDemo(wxFrame):
def __init__(self, parent, id, title):
- wxFrame.__init__(self, parent, -1, title,
- wxDefaultPosition, wxSize(700, 550))
+ wxFrame.__init__(self, parent, -1, title, size = (725, 550))
+
if wxPlatform == '__WXMSW__':
self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO)
self.SetIcon(self.icon)
# Make a File menu
self.mainmenu = wxMenuBar()
menu = wxMenu()
- mID = NewId()
- menu.Append(mID, 'E&xit', 'Get the heck outta here!')
- EVT_MENU(self, mID, self.OnFileExit)
+ exitID = wxNewId()
+ menu.Append(exitID, 'E&xit\tAlt-X', 'Get the heck outta here!')
+ EVT_MENU(self, exitID, 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()
+ helpID = wxNewId()
menu = wxMenu()
- menu.Append(mID, '&About', 'wxPython RULES!!!')
- EVT_MENU(self, mID, self.OnHelpAbout)
+ menu.Append(helpID, '&About\tCtrl-H', 'wxPython RULES!!!')
+ EVT_MENU(self, helpID, self.OnHelpAbout)
self.mainmenu.Append(menu, '&Help')
self.SetMenuBar(self.mainmenu)
- selectedDemo = None
- selectedDemoName = "Nada"
- if len(sys.argv) == 2:
- selectedDemoName = sys.argv[1]
+ # set the menu accellerator table...
+ aTable = wxAcceleratorTable([(wxACCEL_ALT, ord('X'), exitID),
+ (wxACCEL_CTRL, ord('H'), helpID)])
+ self.SetAcceleratorTable(aTable)
+
# 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]:
theDemo = self.tree.AppendItem(child, childItem)
- if childItem == selectedDemoName:
- selectedDemo = theDemo
+ self.treeMap[childItem] = theDemo
self.tree.Expand(root)
EVT_TREE_ITEM_EXPANDED (self.tree, tID, self.OnItemExpanded)
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.
# select initial items
self.nb.SetSelection(0)
self.tree.SelectItem(root)
- if selectedDemo:
- self.tree.SelectItem(selectedDemo)
- self.tree.EnsureVisible(selectedDemo)
+
+ 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))
- ##self.log.ShowPosition(self.log.GetLastPosition())
+ 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):
if itemText == 'Overview':
self.GetDemoFile('Main.py')
self.SetOverview('Overview', overview)
- #self.nb.ResizeChildren();
self.nb.Refresh();
- #wxYield()
self.window = None
else:
self.window = module.runTest(self, self.nb, self)
if self.window:
self.nb.AddPage(self.window, 'Demo')
+ self.nb.ResizeChildren()
self.nb.SetSelection(2)
- self.nb.ResizeChildren();
else:
self.ovr.Clear()
self.window = None
+
#---------------------------------------------
# Get the Demo files
def GetDemoFile(self, filename):
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()
#---------------------------------------------
self.window = self.otherWin
self.otherWin = None
+ #---------------------------------------------
+ def OnDemoMenu(self, event):
+ try:
+ selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())]
+ except:
+ selectedDemo = None
+ if selectedDemo:
+ self.tree.SelectItem(selectedDemo)
+ self.tree.EnsureVisible(selectedDemo)
+
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------