X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/66dae888d1b46d754469d990a2bbc957163f0bad..5912d19ef7db2e64e3b4e130cbaf872a30173d1a:/wxPython/demo/Main.py diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index f45ed72242..856b88c575 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -60,10 +60,17 @@ _treeList = [ 'BitmapFromBuffer', 'RawBitmapAccess', 'DragScroller', -## 'AlphaDrawing', 'DelayedResult', 'ExpandoTextCtrl', 'ButtonPanel', + 'FlatNotebook', + 'CustomTreeCtrl', + 'AboutBox', + 'AnimateCtrl', + 'AlphaDrawing', + 'GraphicsContext', + 'CollapsiblePane', + 'ComboCtrl', ]), # managed windows == things with a (optional) caption you can close @@ -78,6 +85,7 @@ _treeList = [ # the common dialogs ('Common Dialogs', [ + 'AboutBox', 'ColourDialog', 'DirDialog', 'FileDialog', @@ -106,6 +114,7 @@ _treeList = [ 'CheckListBox', 'Choice', 'ComboBox', + 'ComboCtrl', 'Gauge', 'Grid', 'Grid_MegaExample', @@ -150,7 +159,9 @@ _treeList = [ 'ButtonPanel', 'ColourSelect', 'ComboTreeBox', + 'CustomTreeCtrl', 'Editor', + 'FlatNotebook', 'GenericButtons', 'GenericDirCtrl', 'LEDNumberCtrl', @@ -169,6 +180,8 @@ _treeList = [ 'Calendar', 'CalendarCtrl', 'CheckListCtrlMixin', + 'CollapsiblePane', + 'ComboCtrl', 'ContextHelp', 'DatePickerCtrl', 'DynamicSashWindow', @@ -179,7 +192,6 @@ _treeList = [ 'FloatBar', 'FloatCanvas', 'FoldPanelBar', - 'GIFAnimationCtrl', 'HtmlWindow', 'HyperLinkCtrl', 'IntCtrl', @@ -239,12 +251,12 @@ _treeList = [ # Images ('Using Images', [ -## 'AlphaDrawing', + 'AlphaDrawing', + 'AnimateCtrl', 'ArtProvider', 'BitmapFromBuffer', 'Cursor', 'DragImage', - 'GIFAnimationCtrl', 'Image', 'ImageAlpha', 'ImageFromStream', @@ -255,13 +267,14 @@ _treeList = [ # Other stuff ('Miscellaneous', [ -## 'AlphaDrawing', + 'AlphaDrawing', 'ColourDB', ##'DialogUnits', # needs more explanations 'DragScroller', 'DrawXXXList', 'FileHistory', 'FontEnumerator', + 'GraphicsContext', 'GLCanvas', 'Joystick', 'MimeTypesManager', @@ -483,6 +496,11 @@ try: if wx.Platform == '__WXMSW__': self.StyleSetSpec(stc.STC_STYLE_DEFAULT, 'fore:#000000,back:#FFFFFF,face:Courier New,size:9') + elif wx.Platform == '__WXMAC__': + # TODO: if this looks fine on Linux too, remove the Mac-specific case + # and use this whenever OS != MSW. + self.StyleSetSpec(stc.STC_STYLE_DEFAULT, + 'fore:#000000,back:#FFFFFF,face:Courier') else: self.StyleSetSpec(stc.STC_STYLE_DEFAULT, 'fore:#000000,back:#FFFFFF,face:Courier,size:9') @@ -1242,27 +1260,23 @@ class wxPythonDemo(wx.Frame): # Create a TreeCtrl tID = wx.NewId() + leftPanel = wx.Panel(splitter) + + self.filter = wx.TextCtrl(leftPanel) + self.filter.Bind(wx.EVT_TEXT, self.RecreateTree) + self.treeMap = {} - self.tree = wx.TreeCtrl(splitter, tID, style = + self.tree = wx.TreeCtrl(leftPanel, tID, style = wx.TR_DEFAULT_STYLE #| wx.TR_HAS_VARIABLE_ROW_HEIGHT ) - root = self.tree.AddRoot("wxPython Overview") - firstChild = None - for item in _treeList: - child = self.tree.AppendItem(root, item[0]) - if not firstChild: firstChild = child - for childItem in item[1]: - theDemo = self.tree.AppendItem(child, childItem) - self.treeMap[childItem] = theDemo - - self.tree.Expand(root) - self.tree.Expand(firstChild) + self.root = self.tree.AddRoot("wxPython Overview") + self.RecreateTree() self.tree.Bind(wx.EVT_TREE_ITEM_EXPANDED, self.OnItemExpanded, id=tID) self.tree.Bind(wx.EVT_TREE_ITEM_COLLAPSED, self.OnItemCollapsed, id=tID) self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, id=tID) self.tree.Bind(wx.EVT_LEFT_DOWN, self.OnTreeLeftDown) - + # Set up a wx.html.HtmlWindow on the Overview Notebook page # we put it in a panel first because there seems to be a # refresh bug of some sort (wxGTK) when it is directly in @@ -1306,7 +1320,12 @@ class wxPythonDemo(wx.Frame): # add the windows to the splitter and split it. splitter2.SplitHorizontally(self.nb, self.log, -160) - splitter.SplitVertically(self.tree, splitter2, 200) + leftBox = wx.BoxSizer(wx.VERTICAL) + leftBox.Add(self.tree, 1, wx.EXPAND) + leftBox.Add(wx.StaticText(leftPanel, label = "Filter Demos:"), 0, wx.TOP|wx.LEFT, 5) + leftBox.Add(self.filter, 0, wx.EXPAND|wx.ALL, 5) + leftPanel.SetSizer(leftBox) + splitter.SplitVertically(leftPanel, splitter2, 220) splitter.SetMinimumPaneSize(120) splitter2.SetMinimumPaneSize(60) @@ -1322,7 +1341,7 @@ class wxPythonDemo(wx.Frame): # select initial items self.nb.SetSelection(0) - self.tree.SelectItem(root) + self.tree.SelectItem(self.root) # Load 'Main' module self.LoadDemo(self.overviewText) @@ -1340,6 +1359,27 @@ class wxPythonDemo(wx.Frame): #--------------------------------------------- + + def RecreateTree(self, evt=None): + 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()] + if items: + child = self.tree.AppendItem(self.root, category) + if not firstChild: firstChild = child + for childItem in items: + theDemo = self.tree.AppendItem(child, childItem) + self.treeMap[childItem] = theDemo + + self.tree.Expand(self.root) + if firstChild: + self.tree.Expand(firstChild) + + def WriteText(self, text): if text[-1:] == '\n': text = text[:-1]