0.1.6-4: replace working for sizeritems and spacers

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Roman Rolinsky
2005-08-15 19:53:33 +00:00
parent f02a4ffa5f
commit baba4aa5ec
4 changed files with 90 additions and 17 deletions

View File

@@ -5,6 +5,7 @@
# RCS-ID: $Id$
from globals import *
from xxx import MakeXXXFromDOM
#from panel import *
# Undo/redo classes
@@ -119,6 +120,49 @@ class UndoPasteCreate:
else:
g.tree.pendingHighLight = None
class UndoReplace:
def __init__(self, item):
self.itemIndex = g.tree.ItemFullIndex(item)
self.xxx = g.tree.GetPyData(item)
def destroy(self):
if self.xxx: self.xxx.element.unlink()
def undo(self):
print 'Sorry, UndoReplace is not yet implemented.'
return
item = g.tree.ItemAtFullIndex(self.itemIndex)
xxx = g.tree.GetPyData(item)
# Replace with old element
parent = xxx.parent.element
if xxx is self.xxx: # sizeritem or notebookpage - replace child
parent.replaceChild(self.xxx.child.element, xxx.child.element)
else:
parent.replaceChild(self.xxx.element, xxx.element)
self.xxx.parent = xxx.parent
xxx = self.xxx
g.tree.SetPyData(item, xxx)
g.tree.SetItemText(item, xxx.treeName())
g.tree.SetItemImage(item, xxx.treeImage())
# Update panel
g.panel.SetData(xxx)
# Update tools
g.tools.UpdateUI()
g.tree.EnsureVisible(item)
g.tree.SelectItem(item)
# Delete testWin?
if g.testWin:
# If deleting top-level item, delete testWin
if selected == g.testWin.item:
g.testWin.Destroy()
g.testWin = None
else:
# Remove highlight, update testWin
if g.testWin.highLight:
g.testWin.highLight.Remove()
g.tree.needUpdate = True
def redo(self):
return
class UndoEdit:
def __init__(self):
self.pages = map(ParamPage.GetState, g.panel.pages)