So I'm a little confused about how the EventDispatcher works...
perhaps someone can clue me in. Here goes...

Assume the following:

classA(EventDispatcher):
    def __init__(self):
        ...code..
classA.register_event_type('on_added')

classB(classA):
    def __init__(self):
        classA.__init__(self)
        ...code...

    def addChild(self, child):
        child.dispatch_event('on_added')

class Main(classB):
    def __init__(self):
        ...code...

    def on_added(self):
        print 'on_added'
        # offending code
        child = classB()
        self.addChild(child)

class App(object):
    def __init__(self, main):
        root = classB()
        root.addChild(main)

app = App(Main())

When I run this app 'on_added' prints to the console and then
everything freezes and I have to force quit. I can only guess that I'm
mixed up on how the EventDispatcher works. I'm guessing that my
on_added handler is getting triggered a second time when I create
another child element and add it, but I'm not positive. What I'm
unclear on is when the on_added handler get's triggered. Will Main's
on_added handler get triggered anytime any instance of classB
dispatches an 'on_added' event? I thought that I could get away with
the handler only being triggered when self dispatches the event... is
that not the case?

Basically I'm trying to implement a simple parent/child relationship
between objects. Ideally, when Main get's added to root I'd expect
Main's on_added handler to get called. And when child get's added to
Main (in the on_added handler) I'd expect nothing to happen b/c I
haven't implemented a handler for 'on_added' events being dispatched
by child. Thanks in advance...

--

You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en.


Reply via email to