play.callback
This module contains the CallbackManager class and CallbackType enum.
1""" 2This module contains the CallbackManager class and CallbackType enum. 3""" 4 5from enum import Enum 6 7 8class CallbackType(Enum): 9 REPEAT_FOREVER = 0 10 WHEN_PROGRAM_START = 1 11 PRESSED_KEYS = 2 12 RELEASED_KEYS = 3 13 WHEN_CLICKED = 4 14 WHEN_CLICK_RELEASED = 5 15 WHEN_CLICKED_SPRITE = 6 16 WHEN_TOUCHING = 7 17 WHEN_STOPPED_TOUCHING = 8 18 WHEN_TOUCHING_WALL = 9 19 WHEN_STOPPED_TOUCHING_WALL = 10 20 WHEN_CONTROLLER_BUTTON_PRESSED = 11 21 WHEN_CONTROLLER_BUTTON_RELEASED = 12 22 WHEN_CONTROLLER_AXIS_MOVED = 13 23 24 25class CallbackManager: 26 def __init__(self): 27 """ 28 A class to manage callbacks. 29 """ 30 self.callbacks = {} 31 32 def add_callback( 33 self, callback_type, callback, callback_discriminator=None 34 ) -> None: 35 """ 36 Add a callback to the callback manager. 37 :param callback_type: The type of callback. 38 :param callback: The callback function. 39 :param callback_discriminator: The discriminator for the callback. 40 :return: None 41 """ 42 if callback_type not in self.callbacks: 43 if callback_discriminator is None: 44 self.callbacks[callback_type] = [] 45 else: 46 self.callbacks[callback_type] = {} 47 if callback_discriminator is None: 48 self.callbacks[callback_type].append(callback) 49 else: 50 if callback_discriminator not in self.callbacks[callback_type]: 51 self.callbacks[callback_type][callback_discriminator] = [] 52 self.callbacks[callback_type][callback_discriminator].append(callback) 53 54 def get_callbacks(self, callback_type) -> dict: 55 """ 56 Get the callbacks of a certain type. 57 :param callback_type: The type of callback. 58 :return: The callbacks of the specified type. 59 """ 60 return self.callbacks.get(callback_type, None) 61 62 def get_callback(self, callback_type, callback_discriminator=None) -> callable: 63 """ 64 Get a callback of a certain type. 65 :param callback_type: The type of callback. 66 :param callback_discriminator: The discriminator for the callback. 67 :return: The callback(s) of the specified type. 68 """ 69 if callback_discriminator is None: 70 return self.callbacks.get(callback_type, None) 71 return self.callbacks.get(callback_type, {}).get(callback_discriminator, None) 72 73 74callback_manager = CallbackManager()
class
CallbackType(enum.Enum):
9class CallbackType(Enum): 10 REPEAT_FOREVER = 0 11 WHEN_PROGRAM_START = 1 12 PRESSED_KEYS = 2 13 RELEASED_KEYS = 3 14 WHEN_CLICKED = 4 15 WHEN_CLICK_RELEASED = 5 16 WHEN_CLICKED_SPRITE = 6 17 WHEN_TOUCHING = 7 18 WHEN_STOPPED_TOUCHING = 8 19 WHEN_TOUCHING_WALL = 9 20 WHEN_STOPPED_TOUCHING_WALL = 10 21 WHEN_CONTROLLER_BUTTON_PRESSED = 11 22 WHEN_CONTROLLER_BUTTON_RELEASED = 12 23 WHEN_CONTROLLER_AXIS_MOVED = 13
An enumeration.
REPEAT_FOREVER =
<CallbackType.REPEAT_FOREVER: 0>
WHEN_PROGRAM_START =
<CallbackType.WHEN_PROGRAM_START: 1>
PRESSED_KEYS =
<CallbackType.PRESSED_KEYS: 2>
RELEASED_KEYS =
<CallbackType.RELEASED_KEYS: 3>
WHEN_CLICKED =
<CallbackType.WHEN_CLICKED: 4>
WHEN_CLICK_RELEASED =
<CallbackType.WHEN_CLICK_RELEASED: 5>
WHEN_CLICKED_SPRITE =
<CallbackType.WHEN_CLICKED_SPRITE: 6>
WHEN_TOUCHING =
<CallbackType.WHEN_TOUCHING: 7>
WHEN_STOPPED_TOUCHING =
<CallbackType.WHEN_STOPPED_TOUCHING: 8>
WHEN_TOUCHING_WALL =
<CallbackType.WHEN_TOUCHING_WALL: 9>
WHEN_STOPPED_TOUCHING_WALL =
<CallbackType.WHEN_STOPPED_TOUCHING_WALL: 10>
WHEN_CONTROLLER_BUTTON_PRESSED =
<CallbackType.WHEN_CONTROLLER_BUTTON_PRESSED: 11>
WHEN_CONTROLLER_BUTTON_RELEASED =
<CallbackType.WHEN_CONTROLLER_BUTTON_RELEASED: 12>
WHEN_CONTROLLER_AXIS_MOVED =
<CallbackType.WHEN_CONTROLLER_AXIS_MOVED: 13>
class
CallbackManager:
26class CallbackManager: 27 def __init__(self): 28 """ 29 A class to manage callbacks. 30 """ 31 self.callbacks = {} 32 33 def add_callback( 34 self, callback_type, callback, callback_discriminator=None 35 ) -> None: 36 """ 37 Add a callback to the callback manager. 38 :param callback_type: The type of callback. 39 :param callback: The callback function. 40 :param callback_discriminator: The discriminator for the callback. 41 :return: None 42 """ 43 if callback_type not in self.callbacks: 44 if callback_discriminator is None: 45 self.callbacks[callback_type] = [] 46 else: 47 self.callbacks[callback_type] = {} 48 if callback_discriminator is None: 49 self.callbacks[callback_type].append(callback) 50 else: 51 if callback_discriminator not in self.callbacks[callback_type]: 52 self.callbacks[callback_type][callback_discriminator] = [] 53 self.callbacks[callback_type][callback_discriminator].append(callback) 54 55 def get_callbacks(self, callback_type) -> dict: 56 """ 57 Get the callbacks of a certain type. 58 :param callback_type: The type of callback. 59 :return: The callbacks of the specified type. 60 """ 61 return self.callbacks.get(callback_type, None) 62 63 def get_callback(self, callback_type, callback_discriminator=None) -> callable: 64 """ 65 Get a callback of a certain type. 66 :param callback_type: The type of callback. 67 :param callback_discriminator: The discriminator for the callback. 68 :return: The callback(s) of the specified type. 69 """ 70 if callback_discriminator is None: 71 return self.callbacks.get(callback_type, None) 72 return self.callbacks.get(callback_type, {}).get(callback_discriminator, None)
def
add_callback(self, callback_type, callback, callback_discriminator=None) -> None:
33 def add_callback( 34 self, callback_type, callback, callback_discriminator=None 35 ) -> None: 36 """ 37 Add a callback to the callback manager. 38 :param callback_type: The type of callback. 39 :param callback: The callback function. 40 :param callback_discriminator: The discriminator for the callback. 41 :return: None 42 """ 43 if callback_type not in self.callbacks: 44 if callback_discriminator is None: 45 self.callbacks[callback_type] = [] 46 else: 47 self.callbacks[callback_type] = {} 48 if callback_discriminator is None: 49 self.callbacks[callback_type].append(callback) 50 else: 51 if callback_discriminator not in self.callbacks[callback_type]: 52 self.callbacks[callback_type][callback_discriminator] = [] 53 self.callbacks[callback_type][callback_discriminator].append(callback)
Add a callback to the callback manager.
Parameters
- callback_type: The type of callback.
- callback: The callback function.
- callback_discriminator: The discriminator for the callback.
Returns
None
def
get_callbacks(self, callback_type) -> dict:
55 def get_callbacks(self, callback_type) -> dict: 56 """ 57 Get the callbacks of a certain type. 58 :param callback_type: The type of callback. 59 :return: The callbacks of the specified type. 60 """ 61 return self.callbacks.get(callback_type, None)
Get the callbacks of a certain type.
Parameters
- callback_type: The type of callback.
Returns
The callbacks of the specified type.
def
get_callback( self, callback_type, callback_discriminator=None) -> <built-in function callable>:
63 def get_callback(self, callback_type, callback_discriminator=None) -> callable: 64 """ 65 Get a callback of a certain type. 66 :param callback_type: The type of callback. 67 :param callback_discriminator: The discriminator for the callback. 68 :return: The callback(s) of the specified type. 69 """ 70 if callback_discriminator is None: 71 return self.callbacks.get(callback_type, None) 72 return self.callbacks.get(callback_type, {}).get(callback_discriminator, None)
Get a callback of a certain type.
Parameters
- callback_type: The type of callback.
- callback_discriminator: The discriminator for the callback.
Returns
The callback(s) of the specified type.
callback_manager =
<CallbackManager object>