# {py:mod}`simvx.core.input.layouts` ```{py:module} simvx.core.input.layouts ``` ```{autodoc2-docstring} simvx.core.input.layouts :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`DeviceLayout ` - ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`type_layout ` - ```{autodoc2-docstring} simvx.core.input.layouts.type_layout :summary: ``` * - {py:obj}`default_raw ` - ```{autodoc2-docstring} simvx.core.input.layouts.default_raw :summary: ``` * - {py:obj}`raw_button ` - ```{autodoc2-docstring} simvx.core.input.layouts.raw_button :summary: ``` * - {py:obj}`raw_axis ` - ```{autodoc2-docstring} simvx.core.input.layouts.raw_axis :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.input.layouts.__all__ :summary: ``` * - {py:obj}`KEYBOARD_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.KEYBOARD_LAYOUT :summary: ``` * - {py:obj}`MOUSE_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.MOUSE_LAYOUT :summary: ``` * - {py:obj}`DOM_MOUSE_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.DOM_MOUSE_LAYOUT :summary: ``` * - {py:obj}`TOUCH_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.TOUCH_LAYOUT :summary: ``` * - {py:obj}`PEN_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.PEN_LAYOUT :summary: ``` * - {py:obj}`W3C_PEN_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.W3C_PEN_LAYOUT :summary: ``` * - {py:obj}`TABLET_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.TABLET_LAYOUT :summary: ``` * - {py:obj}`CONTROLLER_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.CONTROLLER_LAYOUT :summary: ``` * - {py:obj}`UNRECOGNISED_CONTROLLER_LAYOUT ` - ```{autodoc2-docstring} simvx.core.input.layouts.UNRECOGNISED_CONTROLLER_LAYOUT :summary: ``` * - {py:obj}`DEFAULT_LAYOUTS ` - ```{autodoc2-docstring} simvx.core.input.layouts.DEFAULT_LAYOUTS :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.input.layouts.__all__ :value: > ['DeviceLayout'] ```{autodoc2-docstring} simvx.core.input.layouts.__all__ ``` ```` `````{py:class} DeviceLayout :canonical: simvx.core.input.layouts.DeviceLayout ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout ``` ````{py:attribute} device :canonical: simvx.core.input.layouts.DeviceLayout.device :type: simvx.core.input.controls.DeviceType :value: > None ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.device ``` ```` ````{py:attribute} buttons :canonical: simvx.core.input.layouts.DeviceLayout.buttons :type: collections.abc.Mapping[typing.Any, int] :value: > 'field(...)' ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.buttons ``` ```` ````{py:attribute} axes :canonical: simvx.core.input.layouts.DeviceLayout.axes :type: collections.abc.Mapping[typing.Any, int] :value: > 'field(...)' ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.axes ``` ```` ````{py:attribute} labels :canonical: simvx.core.input.layouts.DeviceLayout.labels :type: collections.abc.Mapping[typing.Any, str] :value: > 'field(...)' ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.labels ``` ```` ````{py:method} __post_init__() -> None :canonical: simvx.core.input.layouts.DeviceLayout.__post_init__ ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.__post_init__ ``` ```` ````{py:method} __eq__(other: object) -> bool :canonical: simvx.core.input.layouts.DeviceLayout.__eq__ ```` ````{py:attribute} __hash__ :canonical: simvx.core.input.layouts.DeviceLayout.__hash__ :value: > None ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.__hash__ ``` ```` ````{py:method} moved(buttons: collections.abc.Mapping[str, int] | None = None, axes: collections.abc.Mapping[str, int] | None = None) -> simvx.core.input.layouts.DeviceLayout :canonical: simvx.core.input.layouts.DeviceLayout.moved ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.moved ``` ```` ````{py:method} button_control(index: int) -> simvx.core.input.controls.DeviceButton :canonical: simvx.core.input.layouts.DeviceLayout.button_control ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.button_control ``` ```` ````{py:method} axis_control(index: int) -> simvx.core.input.controls.DeviceAxis :canonical: simvx.core.input.layouts.DeviceLayout.axis_control ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.axis_control ``` ```` ````{py:method} button_index(button: simvx.core.input.controls.DeviceButton) -> int | None :canonical: simvx.core.input.layouts.DeviceLayout.button_index ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.button_index ``` ```` ````{py:method} axis_index(axis: simvx.core.input.controls.DeviceAxis) -> int | None :canonical: simvx.core.input.layouts.DeviceLayout.axis_index ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.axis_index ``` ```` ````{py:property} primary :canonical: simvx.core.input.layouts.DeviceLayout.primary :type: int | None ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.primary ``` ```` ````{py:method} button_label(index: int) -> str :canonical: simvx.core.input.layouts.DeviceLayout.button_label ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.button_label ``` ```` ````{py:method} axis_label(index: int) -> str :canonical: simvx.core.input.layouts.DeviceLayout.axis_label ```{autodoc2-docstring} simvx.core.input.layouts.DeviceLayout.axis_label ``` ```` ````` ````{py:data} KEYBOARD_LAYOUT :canonical: simvx.core.input.layouts.KEYBOARD_LAYOUT :value: > 'DeviceLayout(...)' ```{autodoc2-docstring} simvx.core.input.layouts.KEYBOARD_LAYOUT ``` ```` ````{py:data} MOUSE_LAYOUT :canonical: simvx.core.input.layouts.MOUSE_LAYOUT :value: > 'DeviceLayout(...)' ```{autodoc2-docstring} simvx.core.input.layouts.MOUSE_LAYOUT ``` ```` ````{py:data} DOM_MOUSE_LAYOUT :canonical: simvx.core.input.layouts.DOM_MOUSE_LAYOUT :value: > 'moved(...)' ```{autodoc2-docstring} simvx.core.input.layouts.DOM_MOUSE_LAYOUT ``` ```` ````{py:data} TOUCH_LAYOUT :canonical: simvx.core.input.layouts.TOUCH_LAYOUT :value: > 'DeviceLayout(...)' ```{autodoc2-docstring} simvx.core.input.layouts.TOUCH_LAYOUT ``` ```` ````{py:data} PEN_LAYOUT :canonical: simvx.core.input.layouts.PEN_LAYOUT :value: > 'DeviceLayout(...)' ```{autodoc2-docstring} simvx.core.input.layouts.PEN_LAYOUT ``` ```` ````{py:data} W3C_PEN_LAYOUT :canonical: simvx.core.input.layouts.W3C_PEN_LAYOUT :value: > 'moved(...)' ```{autodoc2-docstring} simvx.core.input.layouts.W3C_PEN_LAYOUT ``` ```` ````{py:data} TABLET_LAYOUT :canonical: simvx.core.input.layouts.TABLET_LAYOUT :value: > 'DeviceLayout(...)' ```{autodoc2-docstring} simvx.core.input.layouts.TABLET_LAYOUT ``` ```` ````{py:data} CONTROLLER_LAYOUT :canonical: simvx.core.input.layouts.CONTROLLER_LAYOUT :value: > 'DeviceLayout(...)' ```{autodoc2-docstring} simvx.core.input.layouts.CONTROLLER_LAYOUT ``` ```` ````{py:data} UNRECOGNISED_CONTROLLER_LAYOUT :canonical: simvx.core.input.layouts.UNRECOGNISED_CONTROLLER_LAYOUT :value: > 'DeviceLayout(...)' ```{autodoc2-docstring} simvx.core.input.layouts.UNRECOGNISED_CONTROLLER_LAYOUT ``` ```` ````{py:data} DEFAULT_LAYOUTS :canonical: simvx.core.input.layouts.DEFAULT_LAYOUTS :type: dict[simvx.core.input.controls.DeviceType, simvx.core.input.layouts.DeviceLayout] :value: > None ```{autodoc2-docstring} simvx.core.input.layouts.DEFAULT_LAYOUTS ``` ```` ````{py:function} type_layout(device_type: simvx.core.input.controls.DeviceType, backend: collections.abc.Mapping[simvx.core.input.controls.DeviceType, simvx.core.input.layouts.DeviceLayout]) -> simvx.core.input.layouts.DeviceLayout :canonical: simvx.core.input.layouts.type_layout ```{autodoc2-docstring} simvx.core.input.layouts.type_layout ``` ```` ````{py:function} default_raw(control: simvx.core.input.controls.DeviceControl) -> simvx.core.input.controls.DeviceControl | None :canonical: simvx.core.input.layouts.default_raw ```{autodoc2-docstring} simvx.core.input.layouts.default_raw ``` ```` ````{py:function} raw_button(layout: simvx.core.input.layouts.DeviceLayout, index: int) -> simvx.core.input.controls.DeviceButton :canonical: simvx.core.input.layouts.raw_button ```{autodoc2-docstring} simvx.core.input.layouts.raw_button ``` ```` ````{py:function} raw_axis(layout: simvx.core.input.layouts.DeviceLayout, index: int) -> simvx.core.input.controls.DeviceAxis :canonical: simvx.core.input.layouts.raw_axis ```{autodoc2-docstring} simvx.core.input.layouts.raw_axis ``` ````