# {py:mod}`simvx.core.ui.marks` ```{py:module} simvx.core.ui.marks ``` ```{autodoc2-docstring} simvx.core.ui.marks :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ControlMark ` - ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`enumerate_interactive_controls ` - ```{autodoc2-docstring} simvx.core.ui.marks.enumerate_interactive_controls :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.ui.marks.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.ui.marks.__all__ :value: > ['ControlMark', 'enumerate_interactive_controls'] ```{autodoc2-docstring} simvx.core.ui.marks.__all__ ``` ```` `````{py:class} ControlMark :canonical: simvx.core.ui.marks.ControlMark ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark ``` ````{py:attribute} control :canonical: simvx.core.ui.marks.ControlMark.control :type: simvx.core.ui.core.Control :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.control ``` ```` ````{py:attribute} rect :canonical: simvx.core.ui.marks.ControlMark.rect :type: tuple[float, float, float, float] :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.rect ``` ```` ````{py:attribute} path :canonical: simvx.core.ui.marks.ControlMark.path :type: str :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.path ``` ```` ````{py:attribute} type_name :canonical: simvx.core.ui.marks.ControlMark.type_name :type: str :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.type_name ``` ```` ````{py:attribute} text :canonical: simvx.core.ui.marks.ControlMark.text :type: str :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.text ``` ```` ````{py:attribute} clickable :canonical: simvx.core.ui.marks.ControlMark.clickable :type: bool :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.clickable ``` ```` ````{py:attribute} focusable :canonical: simvx.core.ui.marks.ControlMark.focusable :type: bool :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.focusable ``` ```` ````{py:attribute} disabled :canonical: simvx.core.ui.marks.ControlMark.disabled :type: bool :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.disabled ``` ```` ````{py:attribute} focused :canonical: simvx.core.ui.marks.ControlMark.focused :type: bool :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.focused ``` ```` ````{py:attribute} mouse_over :canonical: simvx.core.ui.marks.ControlMark.mouse_over :type: bool :value: > None ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.mouse_over ``` ```` ````{py:property} interactive :canonical: simvx.core.ui.marks.ControlMark.interactive :type: bool ```{autodoc2-docstring} simvx.core.ui.marks.ControlMark.interactive ``` ```` ````` ````{py:function} enumerate_interactive_controls(root: simvx.core.node.Node, *, interactive_only: bool = False) -> list[simvx.core.ui.marks.ControlMark] :canonical: simvx.core.ui.marks.enumerate_interactive_controls ```{autodoc2-docstring} simvx.core.ui.marks.enumerate_interactive_controls ``` ````