view pyink/dom_event.py @ 1419:3519f43da037

Check old component before hiding it for a component switching. Ref: ticket #37 in assembla - Scribboo try to hide old component before switching to new one. But, old one was already removed. It cause an error. - This is fixed by checking old component if it is still existed before hiding it.
author Thinker K.F. Li <thinker@codemud.net>
date Thu, 07 Apr 2011 13:45:07 +0800
parents 5313bbfafa67
children
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, old_prev, new_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