_treeList = [
# new stuff
('Recent Additions/Updates', [
- 'AnalogClock',
- 'AUI_DockingWindowMgr',
- 'AUI_Notebook',
- 'CheckListCtrlMixin',
- 'ComboTreeBox',
- 'Pickers',
- 'PseudoDC',
- 'RichTextCtrl',
- 'Treebook',
- 'Toolbook',
- 'BitmapFromBuffer',
- 'RawBitmapAccess',
- 'DragScroller',
- 'DelayedResult',
- 'ExpandoTextCtrl',
- 'ButtonPanel',
- 'FlatNotebook',
- 'CustomTreeCtrl',
- 'AboutBox',
- 'AnimateCtrl',
- 'AlphaDrawing',
- 'GraphicsContext',
- 'CollapsiblePane',
- 'ComboCtrl',
- 'OwnerDrawnComboBox',
- 'BitmapComboBox',
]),
# managed windows == things with a (optional) caption you can close
('Frames and Dialogs', [
'AUI_DockingWindowMgr',
+ 'AUI_MDI',
'Dialog',
'Frame',
'MDIWindows',
'RadioButton',
'SashWindow',
'ScrolledWindow',
+ 'SearchCtrl',
'Slider',
'SpinButton',
'SpinCtrl',
'Throbber',
'Ticker',
'TimeCtrl',
+ 'TreeMixin',
'VListBox',
]),
'Layoutf',
'RowColSizer',
'ScrolledPanel',
+ 'SizedControls',
'Sizers',
'XmlResource',
'XmlResourceHandler',
'Image',
'ImageAlpha',
'ImageFromStream',
+ 'Img2PyArtProvider',
'Mask',
'RawBitmapAccess',
'Throbber',
'FontEnumerator',
'GraphicsContext',
'GLCanvas',
+ 'I18N',
'Joystick',
'MimeTypesManager',
'MouseGestures',
boxInfoGrid = wx.FlexGridSizer(0, 2, 0, 0)
textFlags = wx.ALIGN_RIGHT | wx.LEFT | wx.RIGHT | wx.TOP
boxInfoGrid.Add(wx.StaticText(self, -1, "Type: "), 0, textFlags, 5 )
- boxInfoGrid.Add(wx.StaticText(self, -1, demoError.exception_type) , 0, textFlags, 5 )
+ boxInfoGrid.Add(wx.StaticText(self, -1, str(demoError.exception_type)) , 0, textFlags, 5 )
boxInfoGrid.Add(wx.StaticText(self, -1, "Details: ") , 0, textFlags, 5 )
boxInfoGrid.Add(wx.StaticText(self, -1, demoError.exception_details) , 0, textFlags, 5 )
boxInfoSizer.Add(boxInfoGrid, 0, wx.ALIGN_CENTRE | wx.ALL, 5 )
wx.ITEM_CHECK)
self.Bind(wx.EVT_MENU, self.OnToggleRedirect, item)
- item = menu.Append(-1, 'E&xit\tAlt-X', 'Get the heck outta here!')
- self.Bind(wx.EVT_MENU, self.OnFileExit, item)
- wx.App.SetMacExitMenuItemId(item.GetId())
+ exitItem = menu.Append(-1, 'E&xit\tCtrl-Q', 'Get the heck outta here!')
+ self.Bind(wx.EVT_MENU, self.OnFileExit, exitItem)
+ wx.App.SetMacExitMenuItemId(exitItem.GetId())
self.mainmenu.Append(menu, '&File')
# Make a Demo menu
menu = wx.Menu()
- for item in _treeList:
+ for item in _treeList[:-1]:
submenu = wx.Menu()
for childItem in item[1]:
mi = submenu.Append(-1, childItem)
shellItem = menu.Append(-1, 'Open Py&Shell Window\tF5',
'An interactive interpreter window with the demo app and frame objects in the namesapce')
+ inspToolItem = menu.Append(-1, 'Open &Widget Inspector\tF6',
+ 'A tool that lets you browse the live widgets and sizers in an application')
menu.AppendSeparator()
helpItem = menu.Append(-1, '&About wxPython Demo', 'wxPython RULES!!!')
wx.App.SetMacAboutMenuItemId(helpItem.GetId())
self.Bind(wx.EVT_MENU, self.OnOpenShellWindow, shellItem)
+ self.Bind(wx.EVT_MENU, self.OnOpenWidgetInspector, inspToolItem)
self.Bind(wx.EVT_MENU, self.OnHelpAbout, helpItem)
self.Bind(wx.EVT_MENU, self.OnHelpFind, findItem)
self.Bind(wx.EVT_MENU, self.OnFindNext, findnextItem)
self.finddata = wx.FindReplaceData()
self.finddata.SetFlags(wx.FR_DOWN)
- if 0:
+ if False:
# This is another way to set Accelerators, in addition to
# using the '\t<key>' syntax in the menu items.
- aTable = wx.AcceleratorTable([(wx.ACCEL_ALT, ord('X'), exitID),
- (wx.ACCEL_CTRL, ord('H'), helpID),
- (wx.ACCEL_CTRL, ord('F'), findID),
- (wx.ACCEL_NORMAL, WXK_F3, findnextID)
+ aTable = wx.AcceleratorTable([(wx.ACCEL_ALT, ord('X'), exitItem.GetId()),
+ (wx.ACCEL_CTRL, ord('H'), helpItem.GetId()),
+ (wx.ACCEL_CTRL, ord('F'), findItem.GetId()),
+ (wx.ACCEL_NORMAL, wx.WXK_F3, findnextItem.GetId()),
+ (wx.ACCEL_NORMAL, wx.WXK_F9, shellItem.GetId()),
])
self.SetAcceleratorTable(aTable)
tID = wx.NewId()
leftPanel = wx.Panel(splitter)
- self.filter = wx.TextCtrl(leftPanel)
+ self.filter = wx.SearchCtrl(leftPanel)
+ self.filter.ShowCancelButton(True)
self.filter.Bind(wx.EVT_TEXT, self.RecreateTree)
+ self.filter.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN,
+ lambda e: self.filter.SetValue(''))
self.treeMap = {}
self.tree = wx.TreeCtrl(leftPanel, tID, style =
# Set up a log window
self.log = wx.TextCtrl(splitter2, -1,
style = wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL)
+ if wx.Platform == "__WXMAC__":
+ self.log.MacCheckSpelling(False)
# Set the wxWindows log target to be this textctrl
#wx.Log_SetActiveTarget(wx.LogTextCtrl(self.log))
#---------------------------------------------
def RecreateTree(self, evt=None):
+ self.tree.Freeze()
self.tree.DeleteAllItems()
self.root = self.tree.AddRoot("wxPython Overview")
firstChild = None
self.tree.Expand(self.root)
if firstChild:
self.tree.Expand(firstChild)
-
+ if filter:
+ self.tree.ExpandAll()
+ self.tree.Thaw()
def WriteText(self, text):
if text[-1:] == '\n':
evt.Skip()
self.Bind(wx.EVT_CLOSE, CloseShell)
+
+ def OnOpenWidgetInspector(self, evt):
+ # Activate the widget inspection tool
+ from wx.lib.inspection import InspectionTool
+ if not InspectionTool().initialized:
+ InspectionTool().Init()
+
+ # Find a widget to be selected in the tree. Use either the
+ # one under the cursor, if any, or this frame.
+ wnd = wx.FindWindowAtPointer()
+ if not wnd:
+ wnd = self
+ InspectionTool().Show(wnd, True)
+
#---------------------------------------------
def OnCloseWindow(self, event):
frame.Show()
if self.fc.IsRunning():
self.Raise()
-
+
class MyApp(wx.App):
def OnInit(self):
"""