X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c81f58f7e5e9c4c2fec3da203c21e5dd1f83e875..a8988cb339baf4fb5e8ebc8065e0324a9e96c208:/wxPython/demo/Main.py diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index 37ea20b5fa..f86088a1d2 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -47,33 +47,12 @@ import images _treeList = [ # new stuff ('Recent Additions/Updates', [ - 'RichTextCtrl', - 'Treebook', - 'Toolbook', - 'BitmapFromBuffer', - 'RawBitmapAccess', - 'DragScroller', - 'DelayedResult', - 'ExpandoTextCtrl', - 'ButtonPanel', - 'FlatNotebook', - 'CustomTreeCtrl', - 'AboutBox', - 'AlphaDrawing', - 'GraphicsContext', - 'CollapsiblePane', - 'ComboCtrl', - 'OwnerDrawnComboBox', - 'BitmapComboBox', - 'I18N', - 'Img2PyArtProvider', - 'SearchCtrl', - 'SizedControls', ]), # managed windows == things with a (optional) caption you can close ('Frames and Dialogs', [ 'AUI_DockingWindowMgr', + 'AUI_MDI', 'Dialog', 'Frame', 'MDIWindows', @@ -212,6 +191,7 @@ _treeList = [ 'Throbber', 'Ticker', 'TimeCtrl', + 'TreeMixin', 'VListBox', ]), @@ -1206,9 +1186,9 @@ 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 @@ -1230,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) @@ -1249,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) @@ -1264,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 = @@ -1365,6 +1352,7 @@ class wxPythonDemo(wx.Frame): #--------------------------------------------- def RecreateTree(self, evt=None): + self.tree.Freeze() self.tree.DeleteAllItems() self.root = self.tree.AddRoot("wxPython Overview") firstChild = None @@ -1382,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': @@ -1673,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): @@ -1771,10 +1775,9 @@ class MySplashScreen(wx.SplashScreen): frame.Show() if self.fc.IsRunning(): self.Raise() - -import wx.lib.mixins.inspect -class MyApp(wx.App, wx.lib.mixins.inspect.InspectionMixin): + +class MyApp(wx.App): def OnInit(self): """ Create and show the splash screen. It will then create and show @@ -1795,9 +1798,6 @@ class MyApp(wx.App, wx.lib.mixins.inspect.InspectionMixin): splash = MySplashScreen() splash.Show() - # Setup the InspectionMixin - self.Init() - return True