]> git.saurik.com Git - wxWidgets.git/commitdiff
wxMSW fixes for tree control
authorRoman Rolinsky <rolinsky@femagsoft.com>
Wed, 10 Aug 2005 14:58:28 +0000 (14:58 +0000)
committerRoman Rolinsky <rolinsky@femagsoft.com>
Wed, 10 Aug 2005 14:58:28 +0000 (14:58 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/wx/tools/XRCed/CHANGES.txt
wxPython/wx/tools/XRCed/globals.py
wxPython/wx/tools/XRCed/tree.py
wxPython/wx/tools/XRCed/undo.py

index cb43de5ba8704c4751202f3413409ada63a1f3b3..963d00880b21d8629c376150a42ab2c482b928a9 100644 (file)
@@ -1,3 +1,9 @@
+0.1.6-2
+-------
+
+wxMSW wxTreeCtrl behaviour is still different from wxGTK for
+wxTR_MULTIPLE, some fixes for this.
+
 0.1.6-1
 -------
 
index cfcbc68dc34d4fbca8315b6254d77230b00e06c6..43963047869b1f10f6c251087b527b9059a52005 100644 (file)
@@ -15,7 +15,7 @@ import sys
 # Global constants
 
 progname = 'XRCed'
-version = '0.1.6-1'
+version = '0.1.6-2'
 # Can be changed to set other default encoding different
 #defaultEncoding = ''
 # you comment above and can uncomment this:
index 4c6817b53590f0684ecec292f2856a18855dfc6b..01867d750fba8832f7228f1e49d789fd4f04171a 100644 (file)
@@ -419,6 +419,7 @@ class XML_Tree(wxTreeCtrl):
         EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemExpandedCollapsed)
 
         self.selection = None
+       self.selectionChanging = False
         self.needUpdate = False
         self.pendingHighLight = None
         self.ctrl = self.shift = False
@@ -486,7 +487,7 @@ class XML_Tree(wxTreeCtrl):
         self.root = self.AddRoot('XML tree', self.rootImage,
                                  data=wxTreeItemData(self.rootObj))
         self.SetItemHasChildren(self.root)
-        self.Unselect()
+        self.UnselectAll()
         self.Expand(self.root)
 
     # Clear old data and set new
@@ -510,7 +511,7 @@ class XML_Tree(wxTreeCtrl):
                 self.mainNode.removeChild(node)
                 node.unlink()
         self.Expand(self.root)
-        self.Unselect()
+        self.UnselectAll()
 
     # Add tree item for given parent item if node is DOM element node with
     # object/object_ref tag. xxxParent is parent xxx object
@@ -641,7 +642,11 @@ class XML_Tree(wxTreeCtrl):
         return child
 
     def OnSelChanged(self, evt):
-        self.ChangeSelection(evt.GetItem())
+        if self.selectionChanging: return
+       self.selectionChanging = True
+        self.UnselectAll()
+        self.SelectItem(evt.GetItem())
+       self.selectionChanging = False
 
     def ChangeSelection(self, item):
         # Apply changes
@@ -965,6 +970,14 @@ class XML_Tree(wxTreeCtrl):
             return False
         return not (self.IsExpanded(item) and self.GetChildrenCount(item, False))
 
+    # Override to use like single-selection tree
+    def GetSelection(self):
+        self.GetSelections(self)[:1]
+    def SelectItem(self, item):
+        self.UnselectAll()
+        self.ChangeSelection(item)
+        wxTreeCtrl.SelectItem(self, item)
+
     # Pull-down
     def OnRightDown(self, evt):
         pullDownMenu = g.pullDownMenu
index 1f01d8d403f30370fe82770bf99cdd53b240c5d2..cc249884ee761288633c55f5e99f1d42ae86b065 100644 (file)
@@ -74,7 +74,7 @@ class UndoCutDelete:
                     g.testWin.highLight.Remove()
                 g.tree.needUpdate = True
         self.elem = g.tree.RemoveLeaf(item)
-        g.tree.Unselect()
+        g.tree.UnselectAll()
         g.panel.Clear()
 
 class UndoPasteCreate: