backport of XRCed changes from today
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@45726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -348,6 +348,7 @@ class PropPage(ParamPage):
|
||||
self.origChecks.append((param, True))
|
||||
self.origControls.append((param, value, True))
|
||||
except KeyError:
|
||||
# Optional param not present in xxx - set empty value
|
||||
self.checks[param].SetValue(False)
|
||||
w.SetValue('')
|
||||
w.Enable(False)
|
||||
|
@@ -397,9 +397,11 @@ class ParamUnit(PPanel):
|
||||
def GetValue(self):
|
||||
return self.text.GetValue()
|
||||
def SetValue(self, value):
|
||||
self.freeze = True
|
||||
if not value: value = '0'
|
||||
self.text.SetValue(value)
|
||||
self.Change(0)
|
||||
self.freeze = False
|
||||
def Change(self, x):
|
||||
self.freeze = True
|
||||
# Check if we are working with dialog units
|
||||
|
@@ -100,6 +100,8 @@ class Tools(wx.Panel):
|
||||
wx.EVT_KEY_DOWN(self, self.OnKeyDown)
|
||||
wx.EVT_KEY_UP(self, self.OnKeyUp)
|
||||
|
||||
self.drag = None
|
||||
|
||||
def AddButton(self, id, image, text):
|
||||
from wx.lib import buttons
|
||||
button = buttons.GenBitmapButton(self, id, image, size=self.TOOL_SIZE,
|
||||
@@ -107,7 +109,8 @@ class Tools(wx.Panel):
|
||||
button.SetBezelWidth(0)
|
||||
wx.EVT_KEY_DOWN(button, self.OnKeyDown)
|
||||
wx.EVT_KEY_UP(button, self.OnKeyUp)
|
||||
wx.EVT_RIGHT_DOWN(button, self.OnRightClick)
|
||||
wx.EVT_LEFT_DOWN(button, self.OnLeftDownOnButton)
|
||||
wx.EVT_MOTION(button, self.OnMotionOnButton)
|
||||
button.SetToolTipString(text)
|
||||
self.curSizer.Add(button)
|
||||
self.groups[-1][1][id] = button
|
||||
@@ -160,11 +163,32 @@ class Tools(wx.Panel):
|
||||
else: box.SetLabel('[-] ' + box.name)
|
||||
self.Layout()
|
||||
|
||||
# Drag
|
||||
def OnRightClick(self, evt):
|
||||
# DaD
|
||||
def OnLeftDownOnButton(self, evt):
|
||||
self.posDown = evt.GetPosition()
|
||||
self.idDown = evt.GetId()
|
||||
self.btnDown = evt.GetEventObject()
|
||||
evt.Skip()
|
||||
|
||||
def OnMotionOnButton(self, evt):
|
||||
# Detect dragging
|
||||
if evt.Dragging() and evt.LeftIsDown():
|
||||
d = evt.GetPosition() - self.posDown
|
||||
if max(abs(d[0]), abs(d[1])) >= 5:
|
||||
if self.btnDown.HasCapture():
|
||||
# Generate up event to release mouse
|
||||
evt = wx.MouseEvent(wx.EVT_LEFT_UP.typeId)
|
||||
evt.SetId(self.idDown)
|
||||
# Set flag to prevent normal button operation this time
|
||||
self.drag = True
|
||||
self.btnDown.ProcessEvent(evt)
|
||||
self.StartDrag()
|
||||
evt.Skip()
|
||||
|
||||
def StartDrag(self):
|
||||
do = MyDataObject()
|
||||
do.SetData(str(evt.GetId()))
|
||||
bm = evt.GetEventObject().GetBitmapLabel()
|
||||
do.SetData(str(self.idDown))
|
||||
bm = self.btnDown.GetBitmapLabel()
|
||||
# wxGTK requires wxIcon cursor, wxWIN and wxMAC require wxCursor
|
||||
if wx.Platform == '__WXGTK__':
|
||||
icon = wx.EmptyIcon()
|
||||
|
@@ -501,7 +501,7 @@ class XML_Tree(wx.TreeCtrl):
|
||||
# Register events
|
||||
wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged)
|
||||
# One works on Linux, another on Windows
|
||||
if wx.Platform == '__WXGTK__':
|
||||
if wx.Platform == '__WXGTK__': # !!! MAC too?
|
||||
wx.EVT_TREE_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
|
||||
else:
|
||||
wx.EVT_LEFT_DCLICK(self, self.OnDClick)
|
||||
@@ -582,6 +582,7 @@ class XML_Tree(wx.TreeCtrl):
|
||||
self.rootObj = xxxMainNode(self.dom)
|
||||
self.root = self.AddRoot('XML tree', self.rootImage,
|
||||
data=wx.TreeItemData(self.rootObj))
|
||||
self.itemColour = self.GetItemTextColour(self.root)
|
||||
self.SetItemHasChildren(self.root)
|
||||
self.testElem = self.dom.createElement('dummy')
|
||||
self.mainNode.appendChild(self.testElem)
|
||||
@@ -601,7 +602,6 @@ class XML_Tree(wx.TreeCtrl):
|
||||
self.rootObj = xxxMainNode(self.dom)
|
||||
self.root = self.AddRoot('XML tree', self.rootImage,
|
||||
data=wx.TreeItemData(self.rootObj))
|
||||
self.itemColour = self.GetItemTextColour(self.root)
|
||||
self.SetItemHasChildren(self.root)
|
||||
nodes = self.mainNode.childNodes[:]
|
||||
for node in nodes:
|
||||
@@ -1038,7 +1038,10 @@ class XML_Tree(wx.TreeCtrl):
|
||||
wx.EVT_CLOSE(testWin, self.OnCloseTestWin)
|
||||
wx.EVT_SIZE(testWin, self.OnSizeTestWin)
|
||||
# Add drop target
|
||||
testWin.SetDropTarget(DropTarget())
|
||||
if testWin.panel:
|
||||
testWin.panel.SetDropTarget(DropTarget())
|
||||
else:
|
||||
testWin.SetDropTarget(DropTarget())
|
||||
# Reset highlights
|
||||
testWin.highLight = testWin.highLightDT = None
|
||||
if highLight and not self.pendingHighLight:
|
||||
@@ -1346,8 +1349,7 @@ class DropTarget(wx.PyDropTarget):
|
||||
# Set color of highlighted item back to normal
|
||||
if hl and hl.item:
|
||||
if hl.item != parentItem:
|
||||
if hasattr(g.tree, 'itemColour'):
|
||||
g.tree.SetItemTextColour(hl.item, g.tree.itemColour)
|
||||
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)
|
||||
|
@@ -274,7 +274,8 @@ class UndoEdit:
|
||||
# Save current state for redo
|
||||
map(ParamPage.SaveState, g.panel.pages)
|
||||
pages = map(ParamPage.GetState, g.panel.pages)
|
||||
map(ParamPage.SetState, g.panel.pages, self.pages)
|
||||
if self.pages:
|
||||
map(ParamPage.SetState, g.panel.pages, self.pages)
|
||||
self.pages = pages
|
||||
self.update(selected)
|
||||
def redo(self):
|
||||
|
@@ -1101,6 +1101,10 @@ Homepage: http://xrced.sourceforge.net\
|
||||
print msg
|
||||
|
||||
def OnCreate(self, evt):
|
||||
# Ignore fake events generated while dragging
|
||||
if g.tools.drag:
|
||||
g.tools.drag = False
|
||||
return
|
||||
selected = tree.selection
|
||||
if tree.ctrl: appendChild = False
|
||||
else: appendChild = not tree.NeedInsert(selected)
|
||||
|
Reference in New Issue
Block a user