]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/Main.py
default values for option and flag (TODO: preferences dialog)
[wxWidgets.git] / wxPython / demo / Main.py
index 6c26412b898b5cebd182cd8d94a0f10a30c62889..c5ec3fa129c569f9baa9f1215c5f1aac92129bfb 100644 (file)
@@ -47,13 +47,6 @@ import images
 _treeList = [
     # new stuff
     ('Recent Additions/Updates', [
-        'AnalogClock',
-        'AUI_DockingWindowMgr',
-        'AUI_Notebook',
-        'CheckListCtrlMixin',
-        'ComboTreeBox',
-        'Pickers',
-        'PseudoDC',
         'RichTextCtrl',
         'Treebook',
         'Toolbook',
@@ -66,17 +59,23 @@ _treeList = [
         'FlatNotebook',
         'CustomTreeCtrl',
         'AboutBox',
-        'AnimateCtrl',
         'AlphaDrawing',
         'GraphicsContext',
         'CollapsiblePane',
         'ComboCtrl',
         'OwnerDrawnComboBox',
+        'BitmapComboBox',
+        'I18N',
+        'Img2PyArtProvider',
+        'SearchCtrl',
+        'SizedControls',
+        'AUI_MDI',
         ]),
 
     # managed windows == things with a (optional) caption you can close
     ('Frames and Dialogs', [
         'AUI_DockingWindowMgr',
+        'AUI_MDI',
         'Dialog',
         'Frame',
         'MDIWindows',
@@ -129,6 +128,7 @@ _treeList = [
         'RadioButton',
         'SashWindow',
         'ScrolledWindow',
+        'SearchCtrl',        
         'Slider',
         'SpinButton',
         'SpinCtrl',
@@ -176,7 +176,7 @@ _treeList = [
         'ActiveX_FlashWindow',
         'ActiveX_IEHtmlWindow',
         'ActiveX_PDFWindow',
-        #'RightTextCtrl',     deprecated as we have wxTE_RIGHT now.
+        'BitmapComboBox',
         'Calendar',
         'CalendarCtrl',
         'CheckListCtrlMixin',
@@ -225,6 +225,7 @@ _treeList = [
         'Layoutf',
         'RowColSizer',
         'ScrolledPanel',
+        'SizedControls',
         'Sizers',
         'XmlResource',
         'XmlResourceHandler',
@@ -261,6 +262,7 @@ _treeList = [
         'Image',
         'ImageAlpha',
         'ImageFromStream',
+        'Img2PyArtProvider',
         'Mask',
         'RawBitmapAccess',
         'Throbber',
@@ -277,6 +279,7 @@ _treeList = [
         'FontEnumerator',
         'GraphicsContext',
         'GLCanvas',
+        'I18N',        
         'Joystick',
         'MimeTypesManager',
         'MouseGestures',
@@ -996,7 +999,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 )
@@ -1205,14 +1208,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)
@@ -1229,11 +1232,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)
@@ -1248,13 +1254,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<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)
 
@@ -1263,8 +1270,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 =
@@ -1304,6 +1314,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))
@@ -1362,13 +1374,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
@@ -1379,7 +1392,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':
@@ -1670,6 +1685,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.inspect 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):
@@ -1768,8 +1797,8 @@ class MySplashScreen(wx.SplashScreen):
         frame.Show()
         if self.fc.IsRunning():
             self.Raise()
-        
 
+        
 class MyApp(wx.App):
     def OnInit(self):
         """