backport
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@45702 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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)
|
||||
|
@@ -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:
|
||||
# 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()
|
||||
|
||||
|
@@ -46,8 +46,6 @@ sys_path = sys.path
|
||||
# 1 adds CMD command to Help menu
|
||||
debug = 0
|
||||
|
||||
import xxx
|
||||
|
||||
g.helpText = """\
|
||||
<HTML><H2>Welcome to XRC<font color="blue">ed</font></H2><H3><font color="green">DON'T PANIC :)</font></H3>
|
||||
Read this note before clicking on anything!<P>
|
||||
@@ -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,6 +870,7 @@ 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))
|
||||
@@ -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
|
||||
|
Reference in New Issue
Block a user