diff --git a/wxPython/wx/tools/XRCed/tools.py b/wxPython/wx/tools/XRCed/tools.py index f2db30528c..3471d256bb 100644 --- a/wxPython/wx/tools/XRCed/tools.py +++ b/wxPython/wx/tools/XRCed/tools.py @@ -165,11 +165,12 @@ class Tools(wx.Panel): do = MyDataObject() do.SetData(str(evt.GetId())) bm = evt.GetEventObject().GetBitmapLabel() - if wx.Platform != '__WXMAC__': + # wxGTK requires wxIcon cursor, wxWIN and wxMAC require wxCursor + if wx.Platform == '__WXGTK__': icon = wx.EmptyIcon() icon.CopyFromBitmap(bm) dragSource = wx.DropSource(self, icon) - else: # on Mac DragSource requires cursor (but does not work anyway) + else: curs = wx.CursorFromImage(wx.ImageFromBitmap(bm)) dragSource = wx.DropSource(self, curs) dragSource.SetData(do) diff --git a/wxPython/wx/tools/XRCed/tree.py b/wxPython/wx/tools/XRCed/tree.py index d287a1d33a..becfcc423a 100644 --- a/wxPython/wx/tools/XRCed/tree.py +++ b/wxPython/wx/tools/XRCed/tree.py @@ -15,7 +15,7 @@ COLOUR_COMMENT = 'Blue' COLOUR_REF = 'DarkGreen' COLOUR_HIDDEN = 'Grey' COLOUR_HL = 'Red' -COLOUR_DT = 'Green' +COLOUR_DT = 'DarkGreen' # Icons import images @@ -1121,6 +1121,7 @@ class XML_Tree(wx.TreeCtrl): # Override to use like single-selection tree def GetSelection(self): return self.selection + def SelectItem(self, item): self.UnselectAll() self.ChangeSelection(item) @@ -1341,10 +1342,13 @@ class DropTarget(wx.PyDropTarget): if d != wx.DragNone: obj,parent,parentItem,item = other pos, size = g.tree.FindNodePos(parentItem, obj), obj.GetSize() - # Change tree item colour hl = g.testWin.highLightDT - if hl and hl.item and hl.item != parentItem: - g.tree.SetItemTextColour(hl.item, g.tree.itemColour) + # Set color of highlighted item back to normal + if hl and hl.item: + if hl.item != parentItem: + g.tree.SetItemTextColour(hl.item, g.tree.itemColour) + # Highlight future parent + g.tree.itemColour = g.tree.GetItemTextColour(parentItem) # save current g.testWin.highLightDT = updateHL(hl, HighLightDTBox, pos, size) g.testWin.highLightDT.item = parentItem g.tree.SetItemTextColour(parentItem, COLOUR_DT) @@ -1361,6 +1365,7 @@ class DropTarget(wx.PyDropTarget): def RemoveHL(self): hl = g.testWin.highLightDT if hl: - if hl.item: g.tree.SetItemTextColour(hl.item, g.tree.itemColour) + if hl.item: + g.tree.SetItemTextColour(hl.item, g.tree.itemColour) hl.Remove() diff --git a/wxPython/wx/tools/XRCed/xrced.py b/wxPython/wx/tools/XRCed/xrced.py index 888062ff13..67966b9c28 100644 --- a/wxPython/wx/tools/XRCed/xrced.py +++ b/wxPython/wx/tools/XRCed/xrced.py @@ -46,8 +46,6 @@ sys_path = sys.path # 1 adds CMD command to Help menu debug = 0 -import xxx - g.helpText = """\

Welcome to XRCed

DON'T PANIC :)

Read this note before clicking on anything!

@@ -688,12 +686,18 @@ class Frame(wx.Frame): index = tree.ItemIndex(selected) if index == 0: return # No previous sibling found + # Remove highlight, update testWin + if g.testWin and g.testWin.highLight: + g.testWin.highLight.Remove() + tree.needUpdate = True + # Undo info self.lastOp = 'MOVEUP' status = 'Moved before previous sibling' # Prepare undo data panel.Apply() + tree.UnselectAll() parent = tree.GetItemParent(selected) elem = tree.RemoveLeaf(selected) @@ -718,12 +722,18 @@ class Frame(wx.Frame): next = tree.GetNextSibling(selected) if not next: return + # Remove highlight, update testWin + if g.testWin and g.testWin.highLight: + g.testWin.highLight.Remove() + tree.needUpdate = True + # Undo info self.lastOp = 'MOVEDOWN' status = 'Moved after next sibling' # Prepare undo data panel.Apply() + tree.UnselectAll() parent = tree.GetItemParent(selected) elem = tree.RemoveLeaf(selected) @@ -752,6 +762,11 @@ class Frame(wx.Frame): # Check compatibility if not self.ItemsAreCompatible(tree.GetPyData(pparent).treeObject(), tree.GetPyData(selected).treeObject()): return + # Remove highlight, update testWin + if g.testWin and g.testWin.highLight: + g.testWin.highLight.Remove() + tree.needUpdate = True + # Undo info self.lastOp = 'MOVELEFT' status = 'Made next sibling of parent' @@ -791,6 +806,7 @@ class Frame(wx.Frame): selected = tree.InsertNode(pparent, tree.GetPyData(pparent).treeObject(), elem, nextItem) newIndex = tree.ItemIndex(selected) + tree.oldItem = None tree.SelectItem(selected) undoMan.RegisterUndo(UndoMove(oldParent, oldIndex, pparent, newIndex)) @@ -813,6 +829,11 @@ class Frame(wx.Frame): # Check compatibility if not self.ItemsAreCompatible(parent, tree.GetPyData(selected).treeObject()): return + # Remove highlight, update testWin + if g.testWin and g.testWin.highLight: + g.testWin.highLight.Remove() + tree.needUpdate = True + # Undo info self.lastOp = 'MOVERIGHT' status = 'Made last child of previous sibling' @@ -849,10 +870,11 @@ class Frame(wx.Frame): selected = tree.InsertNode(newParent, tree.GetPyData(newParent).treeObject(), elem, wx.TreeItemId()) newIndex = tree.ItemIndex(selected) + tree.oldItem = None tree.SelectItem(selected) undoMan.RegisterUndo(UndoMove(oldParent, oldIndex, newParent, newIndex)) - + self.modified = True self.SetStatusText(status) @@ -1336,7 +1358,7 @@ Homepage: http://xrced.sourceforge.net\ tree.HighLight(tree.pendingHighLight) except: # Remove highlight if any problem - if g.testWin.highLight: + if g.testWin and g.testWin.highLight: g.testWin.highLight.Remove() tree.pendingHighLight = None raise