diff --git a/wxPython/demo/CustomTreeCtrl.py b/wxPython/demo/CustomTreeCtrl.py index 25214d52fa..d9faaaee0f 100644 --- a/wxPython/demo/CustomTreeCtrl.py +++ b/wxPython/demo/CustomTreeCtrl.py @@ -764,7 +764,8 @@ class CustomTreeCtrlDemo(wx.Panel): splitter = wx.SplitterWindow(self, -1, style=wx.CLIP_CHILDREN | wx.SP_LIVE_UPDATE | wx.SP_3D) # Create the CustomTreeCtrl, using a derived class defined below - self.tree = CustomTreeCtrl(splitter, -1, log=self.log, style=wx.SUNKEN_BORDER) + self.tree = CustomTreeCtrl(splitter, -1, log=self.log, + style= wx.SUNKEN_BORDER| CT.TR_HAS_BUTTONS | CT.TR_HAS_VARIABLE_ROW_HEIGHT) self.leftpanel = wx.ScrolledWindow(splitter, -1, style=wx.SUNKEN_BORDER) self.leftpanel.SetScrollRate(20,20) @@ -1239,11 +1240,10 @@ class CustomTreeCtrl(CT.CustomTreeCtrl): def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, - style=wx.SUNKEN_BORDER, - ctstyle=CT.TR_HAS_BUTTONS | CT.TR_HAS_VARIABLE_ROW_HEIGHT, + style=wx.SUNKEN_BORDER | CT.TR_HAS_BUTTONS | CT.TR_HAS_VARIABLE_ROW_HEIGHT, log=None): - CT.CustomTreeCtrl.__init__(self, parent, id, pos, size, style, ctstyle) + CT.CustomTreeCtrl.__init__(self, parent, id, pos, size, style) alldata = dir(CT) diff --git a/wxPython/docs/CHANGES.txt b/wxPython/docs/CHANGES.txt index 0c2bf6fec0..da9a5e03c4 100644 --- a/wxPython/docs/CHANGES.txt +++ b/wxPython/docs/CHANGES.txt @@ -40,6 +40,23 @@ have been done. This includes implementations for GetTextExtent, Clip, DrawBitmap, fixing the drawing position of text to be at the upper left corner instead of the baseline, etc. +wx.lib.customtreectrl patches from Andrea: + + 1. ExpandAll has been renamed as ExpandAllChildren, and the new + ExpandAll now takes no input arguments (consistent with + wx.TreeCtrl) + + 2. ctstyle keyword is now defaulted to 0: every style related to + CustomTreeCtrl and the underlying wx.PyScrolledWindow should be + declared using the keyword "style" only. For backward + compatibility, ctstyle continues to work as I merged ctstyle and + style in the __init__ method. + + 3. GetClassDefaultAttributes is now a classmethod. + + 4. UnselectAll bug fixed. + + diff --git a/wxPython/wx/lib/customtreectrl.py b/wxPython/wx/lib/customtreectrl.py index e8dffbe598..842ebe5e24 100644 --- a/wxPython/wx/lib/customtreectrl.py +++ b/wxPython/wx/lib/customtreectrl.py @@ -3,7 +3,7 @@ # Inspired By And Heavily Based On wxGenericTreeCtrl. # # Andrea Gavana, @ 17 May 2006 -# Latest Revision: 26 May 2006, 22.30 CET +# Latest Revision: 02 Mar 2007, 22.30 CET # # # TODO List @@ -134,8 +134,8 @@ CustomTreeCtrl has been tested on the following platforms: * Mac OS (Thanks to John Jackson). -Latest Revision: Andrea Gavana @ 26 May 2006, 22.30 CET -Version 0.8 +Latest Revision: Andrea Gavana @ 02 Mar 2007, 22.30 CET +Version 0.9 """ @@ -1736,7 +1736,7 @@ def EventFlagsToSelType(style, shiftDown=False, ctrlDown=False): class CustomTreeCtrl(wx.PyScrolledWindow): def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, - style=0, ctstyle=TR_DEFAULT_STYLE, validator=wx.DefaultValidator, + style=TR_DEFAULT_STYLE, ctstyle=0, validator=wx.DefaultValidator, name="CustomTreeCtrl"): """ Default class constructor. @@ -1749,9 +1749,8 @@ class CustomTreeCtrl(wx.PyScrolledWindow): size: window size. If the default size (-1, -1) is specified then the window is sized appropriately. - style: the underlying wx.ScrolledWindow style + style: the underlying wx.ScrolledWindow style + CustomTreeCtrl window style. This can be one of: - ctstyle: CustomTreeCtrl window style. This can be one of: TR_NO_BUTTONS TR_HAS_BUTTONS # draw collapsed/expanded btns TR_NO_LINES # don't draw lines at all @@ -1769,10 +1768,14 @@ class CustomTreeCtrl(wx.PyScrolledWindow): TR_AUTO_CHECK_PARENT # only meaningful for checkboxes TR_AUTO_TOGGLE_CHILD # only meaningful for checkboxes + ctstyle: kept for backward compatibility. + validator: window validator. name: window name. """ + + style = style | ctstyle self._current = self._key_current = self._anchor = self._select_me = None self._hasFocus = False @@ -1873,14 +1876,14 @@ class CustomTreeCtrl(wx.PyScrolledWindow): self._itemWithWindow = [] if wx.Platform == "__WXMAC__": - ctstyle &= ~TR_LINES_AT_ROOT - ctstyle |= TR_NO_LINES + style &= ~TR_LINES_AT_ROOT + style |= TR_NO_LINES platform, major, minor = wx.GetOsVersion() if major < 10: - ctstyle |= TR_ROW_LINES + style |= TR_ROW_LINES - self._windowStyle = ctstyle + self._windowStyle = style # Create the default check image list self.SetImageListCheck(13, 13) @@ -3467,8 +3470,8 @@ class CustomTreeCtrl(wx.PyScrolledWindow): self.ProcessEvent(event) - def ExpandAll(self, item): - """Expands all the items.""" + def ExpandAllChildren(self, item): + """Expands all the items children of the input item.""" if not item: raise Exception("\nERROR: Invalid Tree Item. ") @@ -3481,10 +3484,17 @@ class CustomTreeCtrl(wx.PyScrolledWindow): child, cookie = self.GetFirstChild(item) while child: - self.ExpandAll(child) + self.ExpandAllChildren(child) child, cookie = self.GetNextChild(item, cookie) + def ExpandAll(self): + """Expands all CustomTreeCtrl items.""" + + if self._anchor: + self.ExpandAllChildren(self._anchor) + + def Collapse(self, item): """ Collapse an item, sending a EVT_TREE_ITEM_COLLAPSING and @@ -3578,7 +3588,8 @@ class CustomTreeCtrl(wx.PyScrolledWindow): # the tree might not have the root item at all if rootItem: self.UnselectAllChildren(rootItem) - + + self.Unselect() # Recursive function ! # To stop we must have crt_item