X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/84bc0d49e411fd74ddac8b13318fc2edfba9258a..f18eaf2687ab42c97ccf469a2617306cadc0c6ef:/wxPython/demo/Main.py diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index 856b88c575..f86088a1d2 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -47,35 +47,12 @@ import images _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', ]), # managed windows == things with a (optional) caption you can close ('Frames and Dialogs', [ 'AUI_DockingWindowMgr', + 'AUI_MDI', 'Dialog', 'Frame', 'MDIWindows', @@ -114,7 +91,6 @@ _treeList = [ 'CheckListBox', 'Choice', 'ComboBox', - 'ComboCtrl', 'Gauge', 'Grid', 'Grid_MegaExample', @@ -129,6 +105,7 @@ _treeList = [ 'RadioButton', 'SashWindow', 'ScrolledWindow', + 'SearchCtrl', 'Slider', 'SpinButton', 'SpinCtrl', @@ -176,7 +153,7 @@ _treeList = [ 'ActiveX_FlashWindow', 'ActiveX_IEHtmlWindow', 'ActiveX_PDFWindow', - #'RightTextCtrl', deprecated as we have wxTE_RIGHT now. + 'BitmapComboBox', 'Calendar', 'CalendarCtrl', 'CheckListCtrlMixin', @@ -200,6 +177,7 @@ _treeList = [ 'MaskedNumCtrl', 'MediaCtrl', 'MultiSplitterWindow', + 'OwnerDrawnComboBox', 'Pickers', 'PyCrust', 'PyPlot', @@ -213,6 +191,7 @@ _treeList = [ 'Throbber', 'Ticker', 'TimeCtrl', + 'TreeMixin', 'VListBox', ]), @@ -224,6 +203,7 @@ _treeList = [ 'Layoutf', 'RowColSizer', 'ScrolledPanel', + 'SizedControls', 'Sizers', 'XmlResource', 'XmlResourceHandler', @@ -260,6 +240,7 @@ _treeList = [ 'Image', 'ImageAlpha', 'ImageFromStream', + 'Img2PyArtProvider', 'Mask', 'RawBitmapAccess', 'Throbber', @@ -276,6 +257,7 @@ _treeList = [ 'FontEnumerator', 'GraphicsContext', 'GLCanvas', + 'I18N', 'Joystick', 'MimeTypesManager', 'MouseGestures', @@ -995,7 +977,7 @@ class DemoErrorPanel(wx.Panel): 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 ) @@ -1204,14 +1186,14 @@ class wxPythonDemo(wx.Frame): 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) @@ -1228,11 +1210,14 @@ class wxPythonDemo(wx.Frame): 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) @@ -1247,13 +1232,14 @@ class wxPythonDemo(wx.Frame): 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' 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) @@ -1262,8 +1248,11 @@ class wxPythonDemo(wx.Frame): 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 = @@ -1303,6 +1292,8 @@ class wxPythonDemo(wx.Frame): # 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)) @@ -1361,13 +1352,14 @@ class wxPythonDemo(wx.Frame): #--------------------------------------------- def RecreateTree(self, evt=None): + self.tree.Freeze() self.tree.DeleteAllItems() self.root = self.tree.AddRoot("wxPython Overview") firstChild = None filter = self.filter.GetValue() for category, items in _treeList: if filter: - items = [item for item in items if filter in item.lower()] + items = [item for item in items if filter.lower() in item.lower()] if items: child = self.tree.AppendItem(self.root, category) if not firstChild: firstChild = child @@ -1378,7 +1370,9 @@ class wxPythonDemo(wx.Frame): 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': @@ -1669,6 +1663,20 @@ class wxPythonDemo(wx.Frame): 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): @@ -1767,8 +1775,8 @@ class MySplashScreen(wx.SplashScreen): frame.Show() if self.fc.IsRunning(): self.Raise() - + class MyApp(wx.App): def OnInit(self): """