# {py:mod}`simvx.core.ui.touch_controller` ```{py:module} simvx.core.ui.touch_controller ``` ```{autodoc2-docstring} simvx.core.ui.touch_controller :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`TouchControllerLayout ` - ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchControllerLayout :summary: ``` * - {py:obj}`TouchController ` - ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.ui.touch_controller.__all__ :summary: ``` * - {py:obj}`VIRTUAL_CONTROLLER_NAME ` - ```{autodoc2-docstring} simvx.core.ui.touch_controller.VIRTUAL_CONTROLLER_NAME :summary: ``` * - {py:obj}`VIRTUAL_CONTROLLER_GUID ` - ```{autodoc2-docstring} simvx.core.ui.touch_controller.VIRTUAL_CONTROLLER_GUID :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.ui.touch_controller.__all__ :value: > ['TouchController', 'TouchControllerLayout'] ```{autodoc2-docstring} simvx.core.ui.touch_controller.__all__ ``` ```` ````{py:data} VIRTUAL_CONTROLLER_NAME :canonical: simvx.core.ui.touch_controller.VIRTUAL_CONTROLLER_NAME :value: > 'On-screen controller' ```{autodoc2-docstring} simvx.core.ui.touch_controller.VIRTUAL_CONTROLLER_NAME ``` ```` ````{py:data} VIRTUAL_CONTROLLER_GUID :canonical: simvx.core.ui.touch_controller.VIRTUAL_CONTROLLER_GUID :value: > 'simvx:touch-controller' ```{autodoc2-docstring} simvx.core.ui.touch_controller.VIRTUAL_CONTROLLER_GUID ``` ```` `````{py:class} TouchControllerLayout() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout Bases: {py:obj}`enum.StrEnum` ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchControllerLayout ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchControllerLayout.__init__ ``` ````{py:attribute} STICK_AND_BUTTONS :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.STICK_AND_BUTTONS :value: > 'stick_and_buttons' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchControllerLayout.STICK_AND_BUTTONS ``` ```` ````{py:attribute} TWIN_STICK :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.TWIN_STICK :value: > 'twin_stick' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchControllerLayout.TWIN_STICK ``` ```` ````{py:attribute} DPAD_AND_BUTTONS :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.DPAD_AND_BUTTONS :value: > 'dpad_and_buttons' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchControllerLayout.DPAD_AND_BUTTONS ``` ```` ````{py:method} __new__(*values) :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__new__ ```` ````{py:method} __add__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__add__ ```` ````{py:method} __contains__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__contains__ ```` ````{py:method} __delattr__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__delattr__ ```` ````{py:method} __dir__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__dir__ ```` ````{py:method} __eq__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__eq__ ```` ````{py:method} __format__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__format__ ```` ````{py:method} __ge__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__ge__ ```` ````{py:method} __getattribute__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__getattribute__ ```` ````{py:method} __getitem__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__getitem__ ```` ````{py:method} __getnewargs__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__getnewargs__ ```` ````{py:method} __getstate__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__getstate__ ```` ````{py:method} __gt__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__gt__ ```` ````{py:method} __hash__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__hash__ ```` ````{py:method} __iter__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__iter__ ```` ````{py:method} __le__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__le__ ```` ````{py:method} __len__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__len__ ```` ````{py:method} __lt__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__lt__ ```` ````{py:method} __mod__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__mod__ ```` ````{py:method} __mul__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__mul__ ```` ````{py:method} __ne__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__ne__ ```` ````{py:method} __reduce__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__reduce__ ```` ````{py:method} __reduce_ex__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__reduce_ex__ ```` ````{py:method} __repr__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__repr__ ```` ````{py:method} __rmod__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__rmod__ ```` ````{py:method} __rmul__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__rmul__ ```` ````{py:method} __setattr__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__setattr__ ```` ````{py:method} __sizeof__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__sizeof__ ```` ````{py:method} __str__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__str__ ```` ````{py:method} __subclasshook__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__subclasshook__ ```` ````{py:method} capitalize() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.capitalize ```` ````{py:method} casefold() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.casefold ```` ````{py:method} center() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.center ```` ````{py:method} count() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.count ```` ````{py:method} encode() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.encode ```` ````{py:method} endswith() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.endswith ```` ````{py:method} expandtabs() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.expandtabs ```` ````{py:method} find() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.find ```` ````{py:method} format() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.format ```` ````{py:method} format_map() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.format_map ```` ````{py:method} index() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.index ```` ````{py:method} isalnum() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isalnum ```` ````{py:method} isalpha() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isalpha ```` ````{py:method} isascii() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isascii ```` ````{py:method} isdecimal() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isdecimal ```` ````{py:method} isdigit() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isdigit ```` ````{py:method} isidentifier() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isidentifier ```` ````{py:method} islower() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.islower ```` ````{py:method} isnumeric() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isnumeric ```` ````{py:method} isprintable() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isprintable ```` ````{py:method} isspace() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isspace ```` ````{py:method} istitle() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.istitle ```` ````{py:method} isupper() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.isupper ```` ````{py:method} join() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.join ```` ````{py:method} ljust() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.ljust ```` ````{py:method} lower() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.lower ```` ````{py:method} lstrip() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.lstrip ```` ````{py:method} partition() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.partition ```` ````{py:method} removeprefix() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.removeprefix ```` ````{py:method} removesuffix() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.removesuffix ```` ````{py:method} replace() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.replace ```` ````{py:method} rfind() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.rfind ```` ````{py:method} rindex() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.rindex ```` ````{py:method} rjust() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.rjust ```` ````{py:method} rpartition() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.rpartition ```` ````{py:method} rsplit() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.rsplit ```` ````{py:method} rstrip() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.rstrip ```` ````{py:method} split() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.split ```` ````{py:method} splitlines() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.splitlines ```` ````{py:method} startswith() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.startswith ```` ````{py:method} strip() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.strip ```` ````{py:method} swapcase() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.swapcase ```` ````{py:method} title() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.title ```` ````{py:method} translate() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.translate ```` ````{py:method} upper() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.upper ```` ````{py:method} zfill() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.zfill ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.__copy__ ```` ````{py:method} name() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.name ```` ````{py:method} value() :canonical: simvx.core.ui.touch_controller.TouchControllerLayout.value ```` ````` ``````{py:class} TouchController(**kwargs) :canonical: simvx.core.ui.touch_controller.TouchController Bases: {py:obj}`simvx.core.nodes_2d.canvas.CanvasLayer` ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.__init__ ``` ````{py:attribute} layout :canonical: simvx.core.ui.touch_controller.TouchController.layout :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.layout ``` ```` ````{py:attribute} buttons :canonical: simvx.core.ui.touch_controller.TouchController.buttons :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.buttons ``` ```` ````{py:attribute} layer :canonical: simvx.core.ui.touch_controller.TouchController.layer :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.layer ``` ```` ````{py:attribute} auto_hide :canonical: simvx.core.ui.touch_controller.TouchController.auto_hide :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.auto_hide ``` ```` ````{py:attribute} visible :canonical: simvx.core.ui.touch_controller.TouchController.visible :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.visible ``` ```` ````{py:property} controller :canonical: simvx.core.ui.touch_controller.TouchController.controller :type: simvx.core.input.devices.ControllerDevice | None ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.controller ``` ```` ````{py:property} pointer_types :canonical: simvx.core.ui.touch_controller.TouchController.pointer_types :type: frozenset[simvx.core.input.enums.PointerType] | None ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.pointer_types ``` ```` ````{py:method} on_enter_tree() -> None :canonical: simvx.core.ui.touch_controller.TouchController.on_enter_tree ```` ````{py:method} on_exit_tree() -> None :canonical: simvx.core.ui.touch_controller.TouchController.on_exit_tree ```` `````{py:class} Band() :canonical: simvx.core.ui.touch_controller.TouchController.Band Bases: {py:obj}`enum.IntEnum` ````{py:attribute} BACKGROUND :canonical: simvx.core.ui.touch_controller.TouchController.Band.BACKGROUND :value: > None ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.Band.BACKGROUND ``` ```` ````{py:attribute} WORLD :canonical: simvx.core.ui.touch_controller.TouchController.Band.WORLD :value: > 0 ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.Band.WORLD ``` ```` ````{py:attribute} UI :canonical: simvx.core.ui.touch_controller.TouchController.Band.UI :value: > 1000 ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.Band.UI ``` ```` ````{py:attribute} OVERLAY :canonical: simvx.core.ui.touch_controller.TouchController.Band.OVERLAY :value: > 2000 ```{autodoc2-docstring} simvx.core.ui.touch_controller.TouchController.Band.OVERLAY ``` ```` ````{py:method} __abs__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__abs__ ```` ````{py:method} __add__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__add__ ```` ````{py:method} __and__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__and__ ```` ````{py:method} __bool__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__bool__ ```` ````{py:method} __ceil__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__ceil__ ```` ````{py:method} __delattr__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__delattr__ ```` ````{py:method} __dir__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__dir__ ```` ````{py:method} __divmod__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__divmod__ ```` ````{py:method} __eq__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__eq__ ```` ````{py:method} __float__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__float__ ```` ````{py:method} __floor__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__floor__ ```` ````{py:method} __floordiv__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__floordiv__ ```` ````{py:method} __format__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__format__ ```` ````{py:method} __ge__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__ge__ ```` ````{py:method} __getattribute__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__getattribute__ ```` ````{py:method} __getnewargs__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__getnewargs__ ```` ````{py:method} __getstate__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__getstate__ ```` ````{py:method} __gt__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__gt__ ```` ````{py:method} __hash__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__hash__ ```` ````{py:method} __index__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__index__ ```` ````{py:method} __int__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__int__ ```` ````{py:method} __invert__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__invert__ ```` ````{py:method} __le__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__le__ ```` ````{py:method} __lshift__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__lshift__ ```` ````{py:method} __lt__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__lt__ ```` ````{py:method} __mod__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__mod__ ```` ````{py:method} __mul__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__mul__ ```` ````{py:method} __ne__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__ne__ ```` ````{py:method} __neg__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__neg__ ```` ````{py:method} __new__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__new__ ```` ````{py:method} __or__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__or__ ```` ````{py:method} __pos__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__pos__ ```` ````{py:method} __pow__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__pow__ ```` ````{py:method} __radd__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__radd__ ```` ````{py:method} __rand__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rand__ ```` ````{py:method} __rdivmod__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rdivmod__ ```` ````{py:method} __reduce__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__reduce__ ```` ````{py:method} __reduce_ex__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__reduce_ex__ ```` ````{py:method} __repr__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__repr__ ```` ````{py:method} __rfloordiv__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rfloordiv__ ```` ````{py:method} __rlshift__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rlshift__ ```` ````{py:method} __rmod__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rmod__ ```` ````{py:method} __rmul__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rmul__ ```` ````{py:method} __ror__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__ror__ ```` ````{py:method} __round__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__round__ ```` ````{py:method} __rpow__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rpow__ ```` ````{py:method} __rrshift__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rrshift__ ```` ````{py:method} __rshift__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rshift__ ```` ````{py:method} __rsub__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rsub__ ```` ````{py:method} __rtruediv__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rtruediv__ ```` ````{py:method} __rxor__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__rxor__ ```` ````{py:method} __setattr__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__setattr__ ```` ````{py:method} __sizeof__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__sizeof__ ```` ````{py:method} __str__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__str__ ```` ````{py:method} __sub__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__sub__ ```` ````{py:method} __subclasshook__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__subclasshook__ ```` ````{py:method} __truediv__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__truediv__ ```` ````{py:method} __trunc__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__trunc__ ```` ````{py:method} __xor__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__xor__ ```` ````{py:method} as_integer_ratio() :canonical: simvx.core.ui.touch_controller.TouchController.Band.as_integer_ratio ```` ````{py:method} bit_count() :canonical: simvx.core.ui.touch_controller.TouchController.Band.bit_count ```` ````{py:method} bit_length() :canonical: simvx.core.ui.touch_controller.TouchController.Band.bit_length ```` ````{py:method} conjugate() :canonical: simvx.core.ui.touch_controller.TouchController.Band.conjugate ```` ```{py:class} denominator :canonical: simvx.core.ui.touch_controller.TouchController.Band.denominator ``` ```{py:class} imag :canonical: simvx.core.ui.touch_controller.TouchController.Band.imag ``` ````{py:method} is_integer() :canonical: simvx.core.ui.touch_controller.TouchController.Band.is_integer ```` ```{py:class} numerator :canonical: simvx.core.ui.touch_controller.TouchController.Band.numerator ``` ```{py:class} real :canonical: simvx.core.ui.touch_controller.TouchController.Band.real ``` ````{py:method} to_bytes() :canonical: simvx.core.ui.touch_controller.TouchController.Band.to_bytes ```` ````{py:method} __deepcopy__(memo) :canonical: simvx.core.ui.touch_controller.TouchController.Band.__deepcopy__ ```` ````{py:method} __copy__() :canonical: simvx.core.ui.touch_controller.TouchController.Band.__copy__ ```` ````{py:method} name() :canonical: simvx.core.ui.touch_controller.TouchController.Band.name ```` ````{py:method} value() :canonical: simvx.core.ui.touch_controller.TouchController.Band.value ```` ````` ````{py:attribute} offset :canonical: simvx.core.ui.touch_controller.TouchController.offset :value: > 'Property(...)' ```` ````{py:attribute} rotation :canonical: simvx.core.ui.touch_controller.TouchController.rotation :value: > 'Property(...)' ```` ````{py:attribute} scale_val :canonical: simvx.core.ui.touch_controller.TouchController.scale_val :value: > 'Property(...)' ```` ````{py:attribute} follow_viewport :canonical: simvx.core.ui.touch_controller.TouchController.follow_viewport :value: > 'Property(...)' ```` ````{py:attribute} environment :canonical: simvx.core.ui.touch_controller.TouchController.environment :value: > 'Property(...)' ```` ````{py:attribute} post_processed :canonical: simvx.core.ui.touch_controller.TouchController.post_processed :value: > 'Property(...)' ```` ````{py:property} transform_render_dirty :canonical: simvx.core.ui.touch_controller.TouchController.transform_render_dirty :type: bool ```` ````{py:attribute} strict_errors :canonical: simvx.core.ui.touch_controller.TouchController.strict_errors :type: typing.ClassVar[bool] :value: > True ```` ````{py:attribute} dev_checks :canonical: simvx.core.ui.touch_controller.TouchController.dev_checks :type: typing.ClassVar[bool] :value: > None ```` ````{py:attribute} dev_warnings :canonical: simvx.core.ui.touch_controller.TouchController.dev_warnings :type: typing.ClassVar[bool] :value: > None ```` ````{py:attribute} freeze_check_interval :canonical: simvx.core.ui.touch_controller.TouchController.freeze_check_interval :type: typing.ClassVar[float] :value: > 1.0 ```` ````{py:attribute} script_error_raised :canonical: simvx.core.ui.touch_controller.TouchController.script_error_raised :value: > 'Signal(...)' ```` ````{py:attribute} dynamic :canonical: simvx.core.ui.touch_controller.TouchController.dynamic :type: bool :value: > False ```` ````{py:attribute} update_mode :canonical: simvx.core.ui.touch_controller.TouchController.update_mode :value: > 'Property(...)' ```` ````{py:attribute} focus_mode :canonical: simvx.core.ui.touch_controller.TouchController.focus_mode :value: > 'Property(...)' ```` ````{py:attribute} drag_threshold :canonical: simvx.core.ui.touch_controller.TouchController.drag_threshold :value: > 'Property(...)' ```` ````{py:attribute} focus_entered :canonical: simvx.core.ui.touch_controller.TouchController.focus_entered :value: > 'Signal(...)' ```` ````{py:attribute} focus_exited :canonical: simvx.core.ui.touch_controller.TouchController.focus_exited :value: > 'Signal(...)' ```` ````{py:attribute} __properties__ :canonical: simvx.core.ui.touch_controller.TouchController.__properties__ :type: typing.ClassVar[dict[str, simvx.core.descriptors.Property]] :value: > None ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.ui.touch_controller.TouchController.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.ui.touch_controller.TouchController.name :type: str ```` ````{py:property} visible_in_tree :canonical: simvx.core.ui.touch_controller.TouchController.visible_in_tree :type: bool ```` ````{py:property} input_player :canonical: simvx.core.ui.touch_controller.TouchController.input_player :type: simvx.core.input.players.InputPlayer ```` ````{py:property} input_context :canonical: simvx.core.ui.touch_controller.TouchController.input_context :type: simvx.core.input.contexts.InputContext | None ```` ````{py:method} reset_error() -> None :canonical: simvx.core.ui.touch_controller.TouchController.reset_error ```` ````{py:method} add_child(node: simvx.core.node.T) -> simvx.core.node.T :canonical: simvx.core.ui.touch_controller.TouchController.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) -> None :canonical: simvx.core.ui.touch_controller.TouchController.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.ui.touch_controller.TouchController.reparent ```` ````{py:method} node_at(path, default=_NO_DEFAULT) :canonical: simvx.core.ui.touch_controller.TouchController.node_at ```` ````{py:method} find(target, *, direct: bool = False) :canonical: simvx.core.ui.touch_controller.TouchController.find ```` ````{py:method} find_all(target, *, direct: bool = False) :canonical: simvx.core.ui.touch_controller.TouchController.find_all ```` ````{py:method} expect(target, *, direct: bool = False) :canonical: simvx.core.ui.touch_controller.TouchController.expect ```` ````{py:method} ancestor(target) :canonical: simvx.core.ui.touch_controller.TouchController.ancestor ```` ````{py:method} walk(*, include_self: bool = True) -> collections.abc.Iterator[simvx.core.node.Node] :canonical: simvx.core.ui.touch_controller.TouchController.walk ```` ````{py:property} path :canonical: simvx.core.ui.touch_controller.TouchController.path :type: str ```` ````{py:property} is_scene_root :canonical: simvx.core.ui.touch_controller.TouchController.is_scene_root :type: bool ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.ui.touch_controller.TouchController.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.ui.touch_controller.TouchController.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.ui.touch_controller.TouchController.is_in_group ```` ````{py:method} on_ready() -> None :canonical: simvx.core.ui.touch_controller.TouchController.on_ready ```` ````{py:method} on_update(dt: float) -> None :canonical: simvx.core.ui.touch_controller.TouchController.on_update ```` ````{py:method} on_fixed_update(dt: float) -> None :canonical: simvx.core.ui.touch_controller.TouchController.on_fixed_update ```` ````{py:method} on_draw(canvas) -> None :canonical: simvx.core.ui.touch_controller.TouchController.on_draw ```` ````{py:method} on_draw_3d(gizmos) -> None :canonical: simvx.core.ui.touch_controller.TouchController.on_draw_3d ```` ````{py:method} on_picked(event: simvx.core.input.events.PickEvent) -> bool | None :canonical: simvx.core.ui.touch_controller.TouchController.on_picked ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.ui.touch_controller.TouchController.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.ui.touch_controller.TouchController.stop_coroutine ```` ````{py:property} focused :canonical: simvx.core.ui.touch_controller.TouchController.focused :type: bool ```` ````{py:property} focus_rect :canonical: simvx.core.ui.touch_controller.TouchController.focus_rect :type: tuple[float, float, float, float] | None ```` ````{py:method} drag_threshold_for(pointer_type: simvx.core.input.enums.PointerType | str) -> float :canonical: simvx.core.ui.touch_controller.TouchController.drag_threshold_for ```` ````{py:method} grab_focus() -> None :canonical: simvx.core.ui.touch_controller.TouchController.grab_focus ```` ````{py:method} release_focus() -> None :canonical: simvx.core.ui.touch_controller.TouchController.release_focus ```` ````{py:method} capture_pointer(pointer_id: int | None = None) -> None :canonical: simvx.core.ui.touch_controller.TouchController.capture_pointer ```` ````{py:method} release_pointer(pointer_id: int | None = None) -> None :canonical: simvx.core.ui.touch_controller.TouchController.release_pointer ```` ````{py:method} queue_redraw() -> None :canonical: simvx.core.ui.touch_controller.TouchController.queue_redraw ```` ````{py:property} render_dirty :canonical: simvx.core.ui.touch_controller.TouchController.render_dirty :type: bool ```` ````{py:method} clear_children() :canonical: simvx.core.ui.touch_controller.TouchController.clear_children ```` ````{py:method} destroy() :canonical: simvx.core.ui.touch_controller.TouchController.destroy ```` ````{py:property} destroying :canonical: simvx.core.ui.touch_controller.TouchController.destroying :type: bool ```` ````{py:method} call_deferred(method: collections.abc.Callable[..., typing.Any], *args: typing.Any) -> None :canonical: simvx.core.ui.touch_controller.TouchController.call_deferred ```` ````{py:property} app :canonical: simvx.core.ui.touch_controller.TouchController.app ```` ````{py:property} tree :canonical: simvx.core.ui.touch_controller.TouchController.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:property} viewport_size :canonical: simvx.core.ui.touch_controller.TouchController.viewport_size :type: simvx.core.math.types.Vec2 ```` ````{py:property} viewport_insets :canonical: simvx.core.ui.touch_controller.TouchController.viewport_insets :type: tuple[float, float, float, float] ```` ````{py:property} physics :canonical: simvx.core.ui.touch_controller.TouchController.physics ```` ````{py:property} physics_2d :canonical: simvx.core.ui.touch_controller.TouchController.physics_2d ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.ui.touch_controller.TouchController.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.ui.touch_controller.TouchController.get_properties :classmethod: ```` ````{py:method} __repr__() :canonical: simvx.core.ui.touch_controller.TouchController.__repr__ ```` ``````