Mercurial > MadButterfly
view pyink/dom_event.py @ 1338:d0e6f350b3fd
Clear change log to prevent from undo/redo.
- commit the transaction after changing DOM-tree.
- prevent SPObject document from adding changes into the log of undo/redo.
- If a changes is not in the log of undo/redo, it would not be redo.
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Sat, 05 Feb 2011 18:08:57 +0800 |
parents | 07e0cb1e051d |
children | 5313bbfafa67 |
line wrap: on
line source
import pybInkscape class ObjectWatcher(pybInkscape.PYNodeObserver): def __init__(self, obj, type, func, arg): self.obj = obj self.type = type self.func = func self.arg = arg def notifyChildAdded(self, node, child, prev): if self.type == 'DOMNodeInserted': self.func(node, child) def notifyChildRemoved(self, node, child, prev): if self.type == 'DOMNodeRemoved': self.func(node, child) def notifyChildOrderChanged(self,node,child,prev): pass def notifyContentChanged(self,node,old_content,new_content): if self.type == 'DOMSubtreeModified': self.func(node) def notifyAttributeChanged(self,node, name, old_value, new_value): if self.type == 'DOMAttrModified': self.func(node, name, old_value, new_value) def addEventListener(obj, type, func, arg): obs = ObjectWatcher(obj, type, func, arg) obj.addSubtreeObserver(obs) pass