Package pygsear :: Module Event :: Class Repeat_KEY_Event
[show private | hide private]
[frames | no frames]

Class Repeat_KEY_Event

object --+            
         |            
    Sprite --+        
             |        
         Event --+    
                 |    
         KEY_Event --+
                     |
                    Repeat_KEY_Event


KEY_Event which will auto-repeat after a delay.

if no key parameter is passed in, this Event will listen for all keyboard keypress events. Since the only thing I am using this for right now is for text input, I made the behavior somewhat like a command line interface. Specifically: shift, alt, and ctrl are treated specially and will not repeat. I considered keeping track of a dict of active keypress, but it seemed like much work for little gain. It should not be too difficult though if someone needs that functionality.
Method Summary
  __init__(self, key, on_press, on_hold, on_release, delay, period, **kwargs)
Initialize a keyboard event that will auto-repeat when the key is held.
a new object with type S, a subtype of T __new__(S, ...)
  __repr__(self)
(inherited from Sprite)
  add(self, group)
Add this Event to an EventGroup. (inherited from Event)
  add_internal(self, group)
(inherited from Sprite)
  alive(self)
alive() -> bool ask the life of a sprite (inherited from Sprite)
  call(self, pygame_event, **kwargs)
Perform the callback, if the event is enabled, and the key pressed is the right key. (inherited from KEY_Event)
  check_holding(self, ev, **kwargs)
(inherited from KEY_Event)
  disable(self)
Do not allow callbacks to go through. (inherited from Event)
  enable(self)
Allow callbacks to go through. (inherited from Event)
  groups(self)
groups() -> list list used sprite containers (inherited from Sprite)
  kill(self)
kill() end life of sprite, remove from all groups (inherited from Sprite)
  nop(self, ev, **kwargs)
Do nothing. (inherited from Event)
  press(self, ev)
Do nothing, so we can handle the on_hold a different way here.
  release(self, ev)
Do nothing, so we can handle the on_hold a different way here.
  remove(self, group)
remove(group) remove a sprite from container (inherited from Sprite)
  remove_internal(self, group)
(inherited from Sprite)
  rhold(self, ev)
Call the callback at the requested interval.
  rpress(self, ev)
Start counting down the delay time until auto-repeat kicks in.
  rrelease(self, ev)
Reset the counters.
  update(self, *args)
(inherited from Sprite)

Method Details

__init__(self, key=None, on_press=None, on_hold=None, on_release=None, delay=400, period=50, **kwargs)
(Constructor)

Initialize a keyboard event that will auto-repeat when the key is held.
Parameters:
key - The keyboard key which will trigger this event, or a sequence of keys. (ie: Pressing any one of these keys will trigger the event) If key is None then any keypress will fire the callback.
on_press - Function to call when key is first pressed
on_hold - Function to call while key is being held down. Will be called once every period milliseconds after delay milliseconds.
on_release - Function to call when key is finally released
delay - Time to wait before starting auto-repeat (in milliseconds)
period - Time between auto-repeat calls to on_hold(in milliseconds)
kwargs - Additional parameters that should be passed on to the callback.

__new__(S, ...)

Returns:
a new object with type S, a subtype of T

press(self, ev)

Do nothing, so we can handle the on_hold a different way here.

release(self, ev)

Do nothing, so we can handle the on_hold a different way here.

rhold(self, ev)

Call the callback at the requested interval.

rpress(self, ev)

Start counting down the delay time until auto-repeat kicks in.

rrelease(self, ev)

Reset the counters.

Generated by Epydoc 1.1 on Sun Jan 25 19:10:10 2004 http://epydoc.sf.net