On Tue, Mar 10, 2015 at 6:09 PM, Brandon Keith Biggs <
brandonkeithbi...@gmail.com> wrote:

>  Hello,
> I can't quite figure out how this class works.
> I see under remove_handler:
> The given event handler is removed from the first handler stack frame it
> appears in.
> OK, so the stack is split into frames? How do I make one of the frames?
>

Each event_handler_instance.push_handlers(...) creates a frame

When I make a frame, can I add several objects with the same event type?
> Like 3 screen objects with the on_key_press method?
>

No. Each frame accepts only one handler per event.
So, for 3 screen objects that want to handle on_key_press, you need three
frames, by example with
   window.push_handlers(on_key_press=obj1.on_key_press)
   window.push_handlers(on_key_press=obj2.on_key_press)
   window.push_handlers(on_key_press=obj3.on_key_press)

Last pushed will be called first by pyglet.

The return of each handler will tell pyglet if the event needs further
propagation


> How do I remove an item from that frame?
>

You cannot specify the frame for deletions. The stack will be inspected
from the top searching for a match; first match will be deleted.
Following the prev example, you can do

window.remove_handler("on_key_press", obj2.on_key_press)

that will remove the obvious handler from the second frame in the stack.

How do I remove the whole frame, even though there may be several items on
> that frame?
>

event_handler_instance.pop_handlers() will remove the top frame in the stack


> What is the difference between push_handlers and set_handlers?
>

push_handlers creates a frame in the top of the stack, and if any handler
was specified they are  added to this newly created frame.

set_handlers adds / replaces handlers into the frame at the top of the
stack (if the stack is empty it creates a new frame)


> Sorry, but the documentation is not very clear and creating screens/frames
> is how I like to layout my games.
> thanks,
>
> --
>  <http://www.brandonkeithbiggs.com/>
>

hth

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyglet-users+unsubscr...@googlegroups.com.
To post to this group, send email to pyglet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/pyglet-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to