batgrl.gadgets.parallax#
A parallax gadget.
Classes
| 
 | A parallax gadget. | 
- class batgrl.gadgets.parallax.Parallax(*, path: Path | None = None, speeds: Sequence[float] | None = None, default_color: AColor = (0, 0, 0, 0), alpha: float = 1.0, interpolation: Literal['nearest', 'linear', 'cubic', 'area', 'lanczos'] = 'linear', blitter: Literal['braille', 'full', 'half', 'octant', 'quadrant', 'sextant', 'sixel'] = 'half', size: Sizelike = (10, 10), pos: Pointlike = (0, 0), size_hint: SizeHint | None = None, pos_hint: PosHint | None = None, is_transparent: bool = True, is_visible: bool = True, is_enabled: bool = True)#
- Bases: - Graphics- A parallax gadget. - Parameters:
- pathPath | None, default: None
- Path to directory of images for layers of the parallax (loaded in lexographical order of filenames) layered from background to foreground. 
- speedsSequence[float] | None, default: None
- The scrolling speed of each layer. Default speeds are 1/(N - i) where N is the number of layers and i is the index of a layer. 
- default_colorAColor, default: AColor(0, 0, 0, 0)
- Default texture color. 
- alphafloat, default: 1.0
- Transparency of gadget. 
- interpolationInterpolation, default: “linear”
- Interpolation used when gadget is resized. 
- blitterBlitter, default: “half”
- Determines how graphics are rendered. 
- sizeSizelike, default: Size(10, 10)
- Size of gadget. 
- posPointlike, default: Point(0, 0)
- Position of upper-left corner in parent. 
- size_hintSizeHint | None, default: None
- Size as a proportion of parent’s height and width. 
- pos_hintPosHint | None, default: None
- Position as a proportion of parent’s height and width. 
- is_transparentbool, default: True
- Whether gadget is transparent. 
- is_visiblebool, default: True
- Whether gadget is visible. Gadget will still receive input events if not visible. 
- is_enabledbool, default: True
- Whether gadget is enabled. A disabled gadget is not painted and doesn’t receive input events. 
 
- Attributes:
- layerslist[Image]
- Layers of the parallax. 
- speedsSequence[float]
- The scrolling speed of each layer. 
- offsettuple[float, float]
- Vertical and horizontal offset of the parallax. 
- vertical_offsetfloat
- Vertical offset of the parallax. 
- horizontal_offsetfloat
- Horizontal offset of the parallax. 
- textureRGBA_2D
- uint8 RGBA color array. 
- default_colorAColor
- Default texture color. 
- alphafloat
- Transparency of gadget. 
- interpolationInterpolation
- Interpolation used when gadget is resized. 
- blitterBlitter
- Determines how graphics are rendered. 
- sizeSize
- Size of gadget. 
- heightint
- Height of gadget. 
- rowsint
- Height of gadget. 
- widthint
- Width of gadget. 
- columnsint
- Width of gadget. 
- posPoint
- Position relative to parent. 
- topint
- y-coordinate of top of gadget. 
- yint
- y-coordinate of top of gadget. 
- leftint
- x-coordinate of left side of gadget. 
- xint
- x-coordinate of left side of gadget. 
- bottomint
- y-coordinate of bottom of gadget. 
- rightint
- x-coordinate of right side of gadget. 
- centerPoint
- Position of center of gadget. 
- absolute_posPoint
- Absolute position on screen. 
- size_hintTotalSizeHint
- Gadget’s size as a proportion of its parent’s size. 
- pos_hintTotalPosHint
- Gadget’s position as a proportion of its parent’s size. 
- parent: Gadget | None
- Parent gadget. 
- childrenlist[Gadget]
- Children gadgets. 
- is_transparentbool
- Whether gadget is transparent. 
- is_visiblebool
- Whether gadget is visible. 
- is_enabledbool
- Whether gadget is enabled. 
- rootGadget | None
- Return the root gadget if connected to gadget tree. 
- appApp | None
- The running app. 
 
 - Methods - from_textures(textures, …) - Create a - Parallaxfrom an iterable of uint8 RGBA numpy array.- to_png(path) - Write - textureto provided path as a png image.- clear() - Fill texture with default color. - apply_hints() - Apply size and pos hints. - to_local(point) - Convert point in absolute coordinates to local coordinates. - collides_point(point) - Return true if point collides with visible portion of gadget. - collides_gadget(other) - Return true if other is within gadget’s bounding box. - pull_to_front() - Move to end of gadget stack so gadget is drawn last. - walk() - Yield all descendents of this gadget (preorder traversal). - walk_reverse() - Yield all descendents of this gadget (reverse postorder traversal). - ancestors() - Yield all ancestors of this gadget. - add_gadget(gadget) - Add a child gadget. - add_gadgets(gadget_it, *gadgets) - Add multiple child gadgets. - remove_gadget(gadget) - Remove a child gadget. - prolicide() - Recursively remove all children. - destroy() - Remove this gadget and recursively remove all its children. - bind(prop, callback) - Bind callback to a gadget property. - unbind(uid) - Unbind a callback from a gadget property. - tween(…) - Sequentially update gadget properties over time. - on_size() - Update gadget after a resize. - on_transparency() - Update gadget after transparency is enabled/disabled. - on_add() - Update gadget after being added to the gadget tree. - on_remove() - Update gadget after being removed from the gadget tree. - on_key(key_event) - Handle a key press event. - on_mouse(mouse_event) - Handle a mouse event. - on_paste(paste_event) - Handle a paste event. - on_terminal_focus(focus_event) - Handle a focus event. - add_gadget(gadget: Gadget) None#
- Add a child gadget. - Parameters:
- gadgetGadget
- A gadget to add as a child. 
 
 
 - add_gadgets(gadget_it: Gadget | Iterable[Gadget], *gadgets: Gadget) None#
- Add multiple child gadgets. - Parameters:
- gadget_itGadget | Iterable[Gadget]
- A gadget or iterable of gadgets to add as children. 
- *gadgetsGadget
- Gadgets to add as children. 
 
 
 - property alpha: float#
- Transparency of gadget. 
 - ancestors() Iterator[Gadget]#
- Yield all ancestors of this gadget. - Yields:
- Gadget
- An ancestor of this gadget. 
 
 
 - apply_hints() None#
- Apply size and pos hints. - This is called automatically when the gadget is added to the gadget tree and when the gadget’s parent’s size changes. 
 - bind(prop: str, callback: Callable[[], None]) int#
- Bind callback to a gadget property. When the property is updated, callback is called with no arguments. - Parameters:
- propstr
- The name of the gadget property. 
- callbackCallable[[], None]
- Callback to bind to property. 
 
- Returns:
- int
- A unique id used to unbind the callback. 
 
 
 - property blitter: Literal['braille', 'full', 'half', 'octant', 'quadrant', 'sextant', 'sixel']#
- Determines how graphics are rendered. 
 - property bottom: int#
- y-coordinate of bottom of gadget. 
 - children: _GadgetList#
- The gadget’s children. 
 - clear() None#
- Fill texture with default color. 
 - collides_gadget(other: Gadget) bool#
- Return true if other is within gadget’s bounding box. - Parameters:
- otherGadget
- Another gadget. 
 
- Returns:
- bool
- Whether other collides with gadget. 
 
 
 - collides_point(point: Point) bool#
- Return true if point collides with visible portion of gadget. - Parameters:
- pointPoint
- A point. 
 
- Returns:
- bool
- Whether point collides with gadget. 
 
 
 - property columns: int#
- Width of gadget. 
 - destroy() None#
- Remove this gadget and recursively remove all its children. 
 - dispatch_key(key_event: KeyEvent) bool | None#
- Dispatch a key press event until handled. - A key press event is handled if a handler returns - True.- Parameters:
- key_eventKeyEvent
- The key event to dispatch. 
 
- Returns:
- bool | None
- Whether the dispatch was handled. 
 
 
 - dispatch_mouse(mouse_event: MouseEvent) bool | None#
- Dispatch a mouse event until handled. - A mouse event is handled if a handler returns - True.- Parameters:
- mouse_eventMouseEvent
- The mouse event to dispatch. 
 
- Returns:
- bool | None
- Whether the dispatch was handled. 
 
 
 - dispatch_paste(paste_event: PasteEvent) bool | None#
- Dispatch a paste event until handled. - A paste event is handled if a handler returns - True.- Parameters:
- paste_eventPasteEvent
- The paste event to dispatch. 
 
- Returns:
- bool | None
- Whether the dispatch was handled. 
 
 
 - dispatch_terminal_focus(focus_event: FocusEvent) bool | None#
- Dispatch a focus event until handled. - A focus event is handled if a handler returns - True.- Parameters:
- focus_eventFocusEvent
- The focus event to dispatch. 
 
- Returns:
- bool | None
- Whether the dispatch was handled. 
 
 
 - classmethod from_textures(textures: Iterable[ndarray[tuple[int, int, Literal[4]], dtype[uint8]]], *, speeds: Sequence[float] | None = None, default_color: AColor = (0, 0, 0, 0), alpha: float = 1.0, interpolation: Literal['nearest', 'linear', 'cubic', 'area', 'lanczos'] = 'linear', blitter: Literal['braille', 'full', 'half', 'octant', 'quadrant', 'sextant', 'sixel'] = 'half', size: Sizelike = (10, 10), pos: Pointlike = (0, 0), size_hint: SizeHint | None = None, pos_hint: PosHint | None = None, is_transparent: bool = True, is_visible: bool = True, is_enabled: bool = True) Self#
- Create an - Parallaxfrom an iterable of uint8 RGBA numpy array.- Parameters:
- texturesIterable[RGBA_2D]
- An iterable of RGBA textures that will be the layers of the parallax. 
- speedsSequence[float] | None, default: None
- The scrolling speed of each layer. Default speeds are 1/(N - i) where N is the number of layers and i is the index of a layer. 
- default_colorAColor, default: AColor(0, 0, 0, 0)
- Default texture color. 
- alphafloat, default: 1.0
- Transparency of gadget. 
- interpolationInterpolation, default: “linear”
- Interpolation used when gadget is resized. 
- blitterBlitter, default: “half”
- Determines how graphics are rendered. 
- sizeSizelike, default: Size(10, 10)
- Size of gadget. 
- posPointlike, default: Point(0, 0)
- Position of upper-left corner in parent. 
- size_hintSizeHint | None, default: None
- Size as a proportion of parent’s height and width. 
- pos_hintPosHint | None, default: None
- Position as a proportion of parent’s height and width. 
- is_transparentbool, default: True
- Whether gadget is transparent. 
- is_visiblebool, default: True
- Whether gadget is visible. Gadget will still receive input events if not visible. 
- is_enabledbool, default: True
- Whether gadget is enabled. A disabled gadget is not painted and doesn’t receive input events. 
 
- Returns:
- Parallax
- A new parallax gadget. 
 
 
 - property height: int#
- Height of gadget. 
 - property horizontal_offset: float#
- Horizontal offset of the parallax. 
 - property interpolation: Literal['nearest', 'linear', 'cubic', 'area', 'lanczos']#
- Interpolation used when gadget is resized. 
 - property is_enabled: bool#
- Whether gadget is enabled. A disabled gadget is not painted and doesn’t receive input events. 
 - property is_transparent: bool#
- Whether gadget is transparent. 
 - property is_visible: bool#
- Whether gadget is visible. Gadget will still receive input events if not visible. 
 - layers: list[RGBA_2D]#
- Layers of the parallax. 
 - property left: int#
- x-coordinate of left side of gadget. 
 - property offset: tuple[float, float]#
- Vertical and horizontal offset of the parallax. 
 - on_add() None#
- Resize if geometry is incorrect on add. 
 - on_key(key_event: KeyEvent) bool | None#
- Handle a key press event. - Handled key presses should return - True.- Parameters:
- key_eventKeyEvent
- The key event to handle. 
 
- Returns:
- bool | None
- Whether the key event was handled. 
 
 
 - on_mouse(mouse_event: MouseEvent) bool | None#
- Handle a mouse event. - Handled mouse events should return - True.- Parameters:
- mouse_eventMouseEvent
- The mouse event to handle. 
 
- Returns:
- bool | None
- Whether the mouse event was handled. 
 
 
 - on_paste(paste_event: PasteEvent) bool | None#
- Handle a paste event. - Handled paste events should return - True.- Parameters:
- paste_eventPasteEvent
- The paste event to handle. 
 
- Returns:
- bool | None
- Whether the paste event was handled. 
 
 
 - on_remove() None#
- Update gadget after being removed from the gadget tree. 
 - on_size()#
- Resize parallax layers. 
 - on_terminal_focus(focus_event: FocusEvent) bool | None#
- Handle a focus event. - Handled focus events should return - True.- Parameters:
- focus_eventFocusEvent
- The focus event to handle. 
 
- Returns:
- bool | None
- Whether the focus event was handled. 
 
 
 - on_transparency() None#
- Update gadget after transparency is enabled/disabled. 
 - property pos_hint: TotalPosHint#
- Gadget’s position as a proportion of its parent’s size. 
 - prolicide() None#
- Recursively remove all children. 
 - pull_to_front() None#
- Move gadget to end of gadget stack so that it is drawn last. 
 - remove_gadget(gadget: Gadget) None#
- Remove a child gadget. - Parameters:
- gadgetGadget
- The gadget to remove from children. 
 
 
 - property right: int#
- x-coordinate of right side of gadget. 
 - property root: _Root | None#
- Return the root gadget if connected to gadget tree. 
 - property rows: int#
- Height of gadget. 
 - property size_hint: TotalSizeHint#
- Gadget’s size as a proportion of its parent’s size. 
 - speeds: Sequence[float]#
- The scrolling speed of each layer. 
 - texture: RGBA_2D#
 - to_local(point: Point) Point#
- Convert point in absolute coordinates to local coordinates. - Parameters:
- pointPoint
- Point in absolute (screen) coordinates. 
 
- Returns:
- Point
- The point in local coordinates. 
 
 
 - property top: int#
- y-coordinate of top of gadget. 
 - async tween(*, duration: float = 1.0, easing: Literal['linear', 'in_quad', 'out_quad', 'in_out_quad', 'in_cubic', 'out_cubic', 'in_out_cubic', 'in_quart', 'out_quart', 'in_out_quart', 'in_quint', 'out_quint', 'in_out_quint', 'in_sine', 'out_sine', 'in_out_sine', 'in_exp', 'out_exp', 'in_out_exp', 'in_circ', 'out_circ', 'in_out_circ', 'in_elastic', 'out_elastic', 'in_out_elastic', 'in_back', 'out_back', 'in_out_back', 'in_bounce', 'out_bounce', 'in_out_bounce'] = 'linear', on_start: Callable[[], None] | None = None, on_progress: Callable[[float], None] | None = None, on_complete: Callable[[], None] | None = None, **properties: Any) None#
- Coroutine that sequentially updates gadget properties over a duration (in seconds). - Parameters:
- durationfloat, default: 1.0
- The duration of the tween in seconds. 
- easingEasing, default: “linear”
- The easing used for tweening. 
- on_startCallable[[], None] | None, default: None
- Called when tween starts. 
- on_progressCallable[[float], None] | None, default: None
- Called as tween updates with current progress. 
- on_completeCallable[[], None] | None, default: None
- Called when tween completes. 
- **propertiesAny
- Gadget properties’ target values. E.g., to smoothly tween a gadget’s position to (5, 10) over 2.5 seconds, specify the pos property as a keyword-argument: - await gadget.tween(pos=(5, 10), duration=2.5, easing="out_bounce")
 
 - Warning - Running several tweens on the same properties concurrently will probably result in unexpected behavior. - Notes - Tweened values will be coerced to match the type of the initial value of their corresponding property. - Non-numeric values will be set immediately. 
 - unbind(uid: int) None#
- Unbind a callback from a gadget property. - Parameters:
- uidint
- Unique id returned by the - bind()method.
 
 
 - property vertical_offset: float#
- Vertical offset of the parallax. 
 - walk() Iterator[Gadget]#
- Yield all descendents of this gadget (preorder traversal). - Yields:
- Gadget
- A descendent of this gadget. 
 
 
 - walk_reverse() Iterator[Gadget]#
- Yield all descendents of this gadget (reverse postorder traversal). - Yields:
- Gadget
- A descendent of this gadget. 
 
 
 - property width: int#
- Width of gadget. 
 - property x: int#
- x-coordinate of left side of gadget. 
 - property y: int#
- y-coordinate of top of gadget.