Mercurial > MadButterfly
diff pyink/dom_event.py @ 1253:07e0cb1e051d
Add class consistency_checker for domview_ui.
- consistency_checker is to check consistency of the DOM-tree
associated with a domview_ui.
- It is so closed to domview_ui, so it may access private
variables.
- But, it uses public interface of domview_ui if possible.
- consistency_checker is not integrated to domview_ui for separating
functions of consistency checking from the domview_ui. It collects
relative logic into a place and setups a boundary from others.
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Tue, 11 Jan 2011 11:43:32 +0800 |
parents | |
children | 5313bbfafa67 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pyink/dom_event.py Tue Jan 11 11:43:32 2011 +0800 @@ -0,0 +1,29 @@ +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 +