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.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@44601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-03-02 21:04:52 +00:00
parent ba35daf089
commit caee23d55d
3 changed files with 48 additions and 18 deletions

View File

@@ -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)

View File

@@ -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.

View File

@@ -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,11 +1768,15 @@ 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
self._dirty = 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
@@ -3579,6 +3589,7 @@ class CustomTreeCtrl(wx.PyScrolledWindow):
if rootItem:
self.UnselectAllChildren(rootItem)
self.Unselect()
# Recursive function !
# To stop we must have crt_item<last_item
@@ -5734,4 +5745,6 @@ class CustomTreeCtrl(wx.PyScrolledWindow):
attr.font = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT)
return attr
GetClassDefaultAttributes = classmethod(GetClassDefaultAttributes)