Source code for libretro.api.input.pointer

"""
Pointer (touch/pen) input types and multi-touch state.

Corresponds to the ``RETRO_DEVICE_ID_POINTER_*`` constants in ``libretro.h``.
"""

from dataclasses import dataclass
from enum import IntEnum

from .device import InputDeviceState

RETRO_DEVICE_ID_POINTER_X = 0
RETRO_DEVICE_ID_POINTER_Y = 1
RETRO_DEVICE_ID_POINTER_PRESSED = 2
RETRO_DEVICE_ID_POINTER_COUNT = 3
RETRO_DEVICE_ID_POINTER_IS_OFFSCREEN = 15


[docs] class DeviceIdPointer(IntEnum): """ Input IDs for the pointer device. Corresponds to the ``RETRO_DEVICE_ID_POINTER_*`` constants in ``libretro.h``. >>> from libretro.api.input import DeviceIdPointer >>> DeviceIdPointer.PRESSED <DeviceIdPointer.PRESSED: 2> """ X = RETRO_DEVICE_ID_POINTER_X Y = RETRO_DEVICE_ID_POINTER_Y PRESSED = RETRO_DEVICE_ID_POINTER_PRESSED COUNT = RETRO_DEVICE_ID_POINTER_COUNT IS_OFFSCREEN = RETRO_DEVICE_ID_POINTER_IS_OFFSCREEN
[docs] @dataclass(frozen=True, slots=True) class Pointer: """ A single pointer contact point. >>> from libretro.api.input import Pointer >>> p = Pointer() >>> p.pressed False """ x: int = 0 y: int = 0 pressed: bool = False is_offscreen: bool = False
[docs] @dataclass(frozen=True, slots=True) class PointerState(InputDeviceState): """ Snapshot of pointer (multi-touch) state. >>> from libretro.api.input import PointerState >>> state = PointerState() >>> state.pointers () """ pointers: tuple[Pointer, ...] = ()
__all__ = ["DeviceIdPointer", "Pointer", "PointerState"]