# {py:mod}`simvx.core.ui.widgets` ```{py:module} simvx.core.ui.widgets ``` ```{autodoc2-docstring} simvx.core.ui.widgets :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Label ` - ```{autodoc2-docstring} simvx.core.ui.widgets.Label :summary: ``` * - {py:obj}`Button ` - ```{autodoc2-docstring} simvx.core.ui.widgets.Button :summary: ``` * - {py:obj}`Panel ` - ```{autodoc2-docstring} simvx.core.ui.widgets.Panel :summary: ``` * - {py:obj}`TextEdit ` - ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit :summary: ``` * - {py:obj}`Slider ` - ```{autodoc2-docstring} simvx.core.ui.widgets.Slider :summary: ``` * - {py:obj}`ProgressBar ` - ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`log ` - ```{autodoc2-docstring} simvx.core.ui.widgets.log :summary: ``` * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.ui.widgets.__all__ :summary: ``` ```` ### API ````{py:data} log :canonical: simvx.core.ui.widgets.log :value: > 'getLogger(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.log ``` ```` ````{py:data} __all__ :canonical: simvx.core.ui.widgets.__all__ :value: > ['Label', 'Button', 'Panel', 'TextEdit', 'Slider', 'ProgressBar'] ```{autodoc2-docstring} simvx.core.ui.widgets.__all__ ``` ```` `````{py:class} Label(text: str = '', **kwargs) :canonical: simvx.core.ui.widgets.Label Bases: {py:obj}`simvx.core.ui.core.Control` ```{autodoc2-docstring} simvx.core.ui.widgets.Label ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.widgets.Label.__init__ ``` ````{py:attribute} text :canonical: simvx.core.ui.widgets.Label.text :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Label.text ``` ```` ````{py:attribute} font_size :canonical: simvx.core.ui.widgets.Label.font_size :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Label.font_size ``` ```` ````{py:attribute} text_color :canonical: simvx.core.ui.widgets.Label.text_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Label.text_color ``` ```` ````{py:attribute} bg_color :canonical: simvx.core.ui.widgets.Label.bg_color :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Label.bg_color ``` ```` ````{py:attribute} alignment :canonical: simvx.core.ui.widgets.Label.alignment :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Label.alignment ``` ```` ````{py:method} draw(renderer) :canonical: simvx.core.ui.widgets.Label.draw ```` ````{py:attribute} size_x :canonical: simvx.core.ui.widgets.Label.size_x :value: > 'Property(...)' ```` ````{py:attribute} size_y :canonical: simvx.core.ui.widgets.Label.size_y :value: > 'Property(...)' ```` ````{py:property} size :canonical: simvx.core.ui.widgets.Label.size :type: simvx.core.math.types.Vec2 ```` ````{py:method} get_theme() -> simvx.core.ui.core.Theme :canonical: simvx.core.ui.widgets.Label.get_theme ```` ````{py:method} get_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Label.get_rect ```` ````{py:method} get_global_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Label.get_global_rect ```` ````{py:method} is_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Label.is_point_inside ```` ````{py:method} set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset) :canonical: simvx.core.ui.widgets.Label.set_anchor_preset ```` ````{py:method} set_focus() :canonical: simvx.core.ui.widgets.Label.set_focus ```` ````{py:method} grab_focus() :canonical: simvx.core.ui.widgets.Label.grab_focus ```` ````{py:method} release_focus() :canonical: simvx.core.ui.widgets.Label.release_focus ```` ````{py:method} has_focus() -> bool :canonical: simvx.core.ui.widgets.Label.has_focus ```` ````{py:method} focus_next_control() :canonical: simvx.core.ui.widgets.Label.focus_next_control ```` ````{py:method} focus_previous_control() :canonical: simvx.core.ui.widgets.Label.focus_previous_control ```` ````{py:method} grab_mouse() :canonical: simvx.core.ui.widgets.Label.grab_mouse ```` ````{py:method} release_mouse() :canonical: simvx.core.ui.widgets.Label.release_mouse ```` ````{py:method} set_drag_preview(control: simvx.core.ui.core.Control) :canonical: simvx.core.ui.widgets.Label.set_drag_preview ```` ````{py:method} draw_popup(renderer) :canonical: simvx.core.ui.widgets.Label.draw_popup ```` ````{py:method} is_popup_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Label.is_popup_point_inside ```` ````{py:method} popup_input(event) :canonical: simvx.core.ui.widgets.Label.popup_input ```` ````{py:method} dismiss_popup() :canonical: simvx.core.ui.widgets.Label.dismiss_popup ```` ````{py:attribute} z_index :canonical: simvx.core.ui.widgets.Label.z_index :value: > 'Property(...)' ```` ````{py:attribute} z_as_relative :canonical: simvx.core.ui.widgets.Label.z_as_relative :value: > 'Property(...)' ```` ````{py:property} absolute_z_index :canonical: simvx.core.ui.widgets.Label.absolute_z_index :type: int ```` ````{py:property} position :canonical: simvx.core.ui.widgets.Label.position :type: simvx.core.math.types.Vec2 ```` ````{py:property} rotation :canonical: simvx.core.ui.widgets.Label.rotation :type: float ```` ````{py:property} rotation_degrees :canonical: simvx.core.ui.widgets.Label.rotation_degrees :type: float ```` ````{py:property} scale :canonical: simvx.core.ui.widgets.Label.scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_position :canonical: simvx.core.ui.widgets.Label.global_position :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_rotation :canonical: simvx.core.ui.widgets.Label.global_rotation :type: float ```` ````{py:property} global_scale :canonical: simvx.core.ui.widgets.Label.global_scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} forward :canonical: simvx.core.ui.widgets.Label.forward :type: simvx.core.math.types.Vec2 ```` ````{py:property} right :canonical: simvx.core.ui.widgets.Label.right :type: simvx.core.math.types.Vec2 ```` ````{py:method} translate(offset: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Label.translate ```` ````{py:method} rotate(radians: float) :canonical: simvx.core.ui.widgets.Label.rotate ```` ````{py:method} rotate_deg(degrees: float) :canonical: simvx.core.ui.widgets.Label.rotate_deg ```` ````{py:method} look_at(target: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Label.look_at ```` ````{py:method} transform_points(points: list[simvx.core.math.types.Vec2]) -> list[simvx.core.math.types.Vec2] :canonical: simvx.core.ui.widgets.Label.transform_points ```` ````{py:method} draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, color=None) :canonical: simvx.core.ui.widgets.Label.draw_polygon ```` ````{py:method} wrap_screen(margin: float = 20) :canonical: simvx.core.ui.widgets.Label.wrap_screen ```` ````{py:attribute} script_error_raised :canonical: simvx.core.ui.widgets.Label.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.ui.widgets.Label.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.ui.widgets.Label.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.ui.widgets.Label.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.ui.widgets.Label.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Label.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Label.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Label.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Label.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Label.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Label.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.ui.widgets.Label.find_all ```` ````{py:property} path :canonical: simvx.core.ui.widgets.Label.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.ui.widgets.Label.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.ui.widgets.Label.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.ui.widgets.Label.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.ui.widgets.Label.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.ui.widgets.Label.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.ui.widgets.Label.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.ui.widgets.Label.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.ui.widgets.Label.physics_process ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.ui.widgets.Label.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Label.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Label.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.ui.widgets.Label.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.ui.widgets.Label.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.ui.widgets.Label.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.ui.widgets.Label.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.ui.widgets.Label.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.ui.widgets.Label.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.ui.widgets.Label.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.ui.widgets.Label.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.ui.widgets.Label.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.ui.widgets.Label.__repr__ ```` ````` `````{py:class} Button(text: str = 'Button', on_press=None, **kwargs) :canonical: simvx.core.ui.widgets.Button Bases: {py:obj}`simvx.core.ui.core.Control` ```{autodoc2-docstring} simvx.core.ui.widgets.Button ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.widgets.Button.__init__ ``` ````{py:attribute} text :canonical: simvx.core.ui.widgets.Button.text :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.text ``` ```` ````{py:attribute} font_size :canonical: simvx.core.ui.widgets.Button.font_size :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.font_size ``` ```` ````{py:attribute} bg_color :canonical: simvx.core.ui.widgets.Button.bg_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.bg_color ``` ```` ````{py:attribute} hover_color :canonical: simvx.core.ui.widgets.Button.hover_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.hover_color ``` ```` ````{py:attribute} pressed_color :canonical: simvx.core.ui.widgets.Button.pressed_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.pressed_color ``` ```` ````{py:attribute} text_color :canonical: simvx.core.ui.widgets.Button.text_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.text_color ``` ```` ````{py:attribute} border_color :canonical: simvx.core.ui.widgets.Button.border_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.border_color ``` ```` ````{py:attribute} border_width :canonical: simvx.core.ui.widgets.Button.border_width :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Button.border_width ``` ```` ````{py:method} draw(renderer) :canonical: simvx.core.ui.widgets.Button.draw ```` ````{py:attribute} size_x :canonical: simvx.core.ui.widgets.Button.size_x :value: > 'Property(...)' ```` ````{py:attribute} size_y :canonical: simvx.core.ui.widgets.Button.size_y :value: > 'Property(...)' ```` ````{py:property} size :canonical: simvx.core.ui.widgets.Button.size :type: simvx.core.math.types.Vec2 ```` ````{py:method} get_theme() -> simvx.core.ui.core.Theme :canonical: simvx.core.ui.widgets.Button.get_theme ```` ````{py:method} get_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Button.get_rect ```` ````{py:method} get_global_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Button.get_global_rect ```` ````{py:method} is_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Button.is_point_inside ```` ````{py:method} set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset) :canonical: simvx.core.ui.widgets.Button.set_anchor_preset ```` ````{py:method} set_focus() :canonical: simvx.core.ui.widgets.Button.set_focus ```` ````{py:method} grab_focus() :canonical: simvx.core.ui.widgets.Button.grab_focus ```` ````{py:method} release_focus() :canonical: simvx.core.ui.widgets.Button.release_focus ```` ````{py:method} has_focus() -> bool :canonical: simvx.core.ui.widgets.Button.has_focus ```` ````{py:method} focus_next_control() :canonical: simvx.core.ui.widgets.Button.focus_next_control ```` ````{py:method} focus_previous_control() :canonical: simvx.core.ui.widgets.Button.focus_previous_control ```` ````{py:method} grab_mouse() :canonical: simvx.core.ui.widgets.Button.grab_mouse ```` ````{py:method} release_mouse() :canonical: simvx.core.ui.widgets.Button.release_mouse ```` ````{py:method} set_drag_preview(control: simvx.core.ui.core.Control) :canonical: simvx.core.ui.widgets.Button.set_drag_preview ```` ````{py:method} draw_popup(renderer) :canonical: simvx.core.ui.widgets.Button.draw_popup ```` ````{py:method} is_popup_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Button.is_popup_point_inside ```` ````{py:method} popup_input(event) :canonical: simvx.core.ui.widgets.Button.popup_input ```` ````{py:method} dismiss_popup() :canonical: simvx.core.ui.widgets.Button.dismiss_popup ```` ````{py:attribute} z_index :canonical: simvx.core.ui.widgets.Button.z_index :value: > 'Property(...)' ```` ````{py:attribute} z_as_relative :canonical: simvx.core.ui.widgets.Button.z_as_relative :value: > 'Property(...)' ```` ````{py:property} absolute_z_index :canonical: simvx.core.ui.widgets.Button.absolute_z_index :type: int ```` ````{py:property} position :canonical: simvx.core.ui.widgets.Button.position :type: simvx.core.math.types.Vec2 ```` ````{py:property} rotation :canonical: simvx.core.ui.widgets.Button.rotation :type: float ```` ````{py:property} rotation_degrees :canonical: simvx.core.ui.widgets.Button.rotation_degrees :type: float ```` ````{py:property} scale :canonical: simvx.core.ui.widgets.Button.scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_position :canonical: simvx.core.ui.widgets.Button.global_position :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_rotation :canonical: simvx.core.ui.widgets.Button.global_rotation :type: float ```` ````{py:property} global_scale :canonical: simvx.core.ui.widgets.Button.global_scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} forward :canonical: simvx.core.ui.widgets.Button.forward :type: simvx.core.math.types.Vec2 ```` ````{py:property} right :canonical: simvx.core.ui.widgets.Button.right :type: simvx.core.math.types.Vec2 ```` ````{py:method} translate(offset: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Button.translate ```` ````{py:method} rotate(radians: float) :canonical: simvx.core.ui.widgets.Button.rotate ```` ````{py:method} rotate_deg(degrees: float) :canonical: simvx.core.ui.widgets.Button.rotate_deg ```` ````{py:method} look_at(target: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Button.look_at ```` ````{py:method} transform_points(points: list[simvx.core.math.types.Vec2]) -> list[simvx.core.math.types.Vec2] :canonical: simvx.core.ui.widgets.Button.transform_points ```` ````{py:method} draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, color=None) :canonical: simvx.core.ui.widgets.Button.draw_polygon ```` ````{py:method} wrap_screen(margin: float = 20) :canonical: simvx.core.ui.widgets.Button.wrap_screen ```` ````{py:attribute} script_error_raised :canonical: simvx.core.ui.widgets.Button.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.ui.widgets.Button.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.ui.widgets.Button.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.ui.widgets.Button.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.ui.widgets.Button.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Button.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Button.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Button.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Button.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Button.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Button.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.ui.widgets.Button.find_all ```` ````{py:property} path :canonical: simvx.core.ui.widgets.Button.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.ui.widgets.Button.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.ui.widgets.Button.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.ui.widgets.Button.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.ui.widgets.Button.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.ui.widgets.Button.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.ui.widgets.Button.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.ui.widgets.Button.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.ui.widgets.Button.physics_process ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.ui.widgets.Button.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Button.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Button.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.ui.widgets.Button.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.ui.widgets.Button.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.ui.widgets.Button.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.ui.widgets.Button.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.ui.widgets.Button.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.ui.widgets.Button.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.ui.widgets.Button.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.ui.widgets.Button.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.ui.widgets.Button.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.ui.widgets.Button.__repr__ ```` ````` `````{py:class} Panel(**kwargs) :canonical: simvx.core.ui.widgets.Panel Bases: {py:obj}`simvx.core.ui.core.Control` ```{autodoc2-docstring} simvx.core.ui.widgets.Panel ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.widgets.Panel.__init__ ``` ````{py:attribute} bg_color :canonical: simvx.core.ui.widgets.Panel.bg_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Panel.bg_color ``` ```` ````{py:attribute} border_color :canonical: simvx.core.ui.widgets.Panel.border_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Panel.border_color ``` ```` ````{py:method} draw(renderer) :canonical: simvx.core.ui.widgets.Panel.draw ```` ````{py:attribute} size_x :canonical: simvx.core.ui.widgets.Panel.size_x :value: > 'Property(...)' ```` ````{py:attribute} size_y :canonical: simvx.core.ui.widgets.Panel.size_y :value: > 'Property(...)' ```` ````{py:property} size :canonical: simvx.core.ui.widgets.Panel.size :type: simvx.core.math.types.Vec2 ```` ````{py:method} get_theme() -> simvx.core.ui.core.Theme :canonical: simvx.core.ui.widgets.Panel.get_theme ```` ````{py:method} get_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Panel.get_rect ```` ````{py:method} get_global_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Panel.get_global_rect ```` ````{py:method} is_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Panel.is_point_inside ```` ````{py:method} set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset) :canonical: simvx.core.ui.widgets.Panel.set_anchor_preset ```` ````{py:method} set_focus() :canonical: simvx.core.ui.widgets.Panel.set_focus ```` ````{py:method} grab_focus() :canonical: simvx.core.ui.widgets.Panel.grab_focus ```` ````{py:method} release_focus() :canonical: simvx.core.ui.widgets.Panel.release_focus ```` ````{py:method} has_focus() -> bool :canonical: simvx.core.ui.widgets.Panel.has_focus ```` ````{py:method} focus_next_control() :canonical: simvx.core.ui.widgets.Panel.focus_next_control ```` ````{py:method} focus_previous_control() :canonical: simvx.core.ui.widgets.Panel.focus_previous_control ```` ````{py:method} grab_mouse() :canonical: simvx.core.ui.widgets.Panel.grab_mouse ```` ````{py:method} release_mouse() :canonical: simvx.core.ui.widgets.Panel.release_mouse ```` ````{py:method} set_drag_preview(control: simvx.core.ui.core.Control) :canonical: simvx.core.ui.widgets.Panel.set_drag_preview ```` ````{py:method} draw_popup(renderer) :canonical: simvx.core.ui.widgets.Panel.draw_popup ```` ````{py:method} is_popup_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Panel.is_popup_point_inside ```` ````{py:method} popup_input(event) :canonical: simvx.core.ui.widgets.Panel.popup_input ```` ````{py:method} dismiss_popup() :canonical: simvx.core.ui.widgets.Panel.dismiss_popup ```` ````{py:attribute} z_index :canonical: simvx.core.ui.widgets.Panel.z_index :value: > 'Property(...)' ```` ````{py:attribute} z_as_relative :canonical: simvx.core.ui.widgets.Panel.z_as_relative :value: > 'Property(...)' ```` ````{py:property} absolute_z_index :canonical: simvx.core.ui.widgets.Panel.absolute_z_index :type: int ```` ````{py:property} position :canonical: simvx.core.ui.widgets.Panel.position :type: simvx.core.math.types.Vec2 ```` ````{py:property} rotation :canonical: simvx.core.ui.widgets.Panel.rotation :type: float ```` ````{py:property} rotation_degrees :canonical: simvx.core.ui.widgets.Panel.rotation_degrees :type: float ```` ````{py:property} scale :canonical: simvx.core.ui.widgets.Panel.scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_position :canonical: simvx.core.ui.widgets.Panel.global_position :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_rotation :canonical: simvx.core.ui.widgets.Panel.global_rotation :type: float ```` ````{py:property} global_scale :canonical: simvx.core.ui.widgets.Panel.global_scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} forward :canonical: simvx.core.ui.widgets.Panel.forward :type: simvx.core.math.types.Vec2 ```` ````{py:property} right :canonical: simvx.core.ui.widgets.Panel.right :type: simvx.core.math.types.Vec2 ```` ````{py:method} translate(offset: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Panel.translate ```` ````{py:method} rotate(radians: float) :canonical: simvx.core.ui.widgets.Panel.rotate ```` ````{py:method} rotate_deg(degrees: float) :canonical: simvx.core.ui.widgets.Panel.rotate_deg ```` ````{py:method} look_at(target: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Panel.look_at ```` ````{py:method} transform_points(points: list[simvx.core.math.types.Vec2]) -> list[simvx.core.math.types.Vec2] :canonical: simvx.core.ui.widgets.Panel.transform_points ```` ````{py:method} draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, color=None) :canonical: simvx.core.ui.widgets.Panel.draw_polygon ```` ````{py:method} wrap_screen(margin: float = 20) :canonical: simvx.core.ui.widgets.Panel.wrap_screen ```` ````{py:attribute} script_error_raised :canonical: simvx.core.ui.widgets.Panel.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.ui.widgets.Panel.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.ui.widgets.Panel.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.ui.widgets.Panel.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.ui.widgets.Panel.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Panel.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Panel.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Panel.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Panel.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Panel.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Panel.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.ui.widgets.Panel.find_all ```` ````{py:property} path :canonical: simvx.core.ui.widgets.Panel.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.ui.widgets.Panel.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.ui.widgets.Panel.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.ui.widgets.Panel.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.ui.widgets.Panel.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.ui.widgets.Panel.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.ui.widgets.Panel.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.ui.widgets.Panel.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.ui.widgets.Panel.physics_process ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.ui.widgets.Panel.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Panel.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Panel.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.ui.widgets.Panel.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.ui.widgets.Panel.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.ui.widgets.Panel.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.ui.widgets.Panel.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.ui.widgets.Panel.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.ui.widgets.Panel.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.ui.widgets.Panel.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.ui.widgets.Panel.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.ui.widgets.Panel.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.ui.widgets.Panel.__repr__ ```` ````` `````{py:class} TextEdit(text: str = '', placeholder: str = '', **kwargs) :canonical: simvx.core.ui.widgets.TextEdit Bases: {py:obj}`simvx.core.ui.core.Control` ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.__init__ ``` ````{py:attribute} text :canonical: simvx.core.ui.widgets.TextEdit.text :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.text ``` ```` ````{py:attribute} placeholder :canonical: simvx.core.ui.widgets.TextEdit.placeholder :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.placeholder ``` ```` ````{py:attribute} max_length :canonical: simvx.core.ui.widgets.TextEdit.max_length :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.max_length ``` ```` ````{py:attribute} text_color :canonical: simvx.core.ui.widgets.TextEdit.text_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.text_color ``` ```` ````{py:attribute} placeholder_color :canonical: simvx.core.ui.widgets.TextEdit.placeholder_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.placeholder_color ``` ```` ````{py:attribute} bg_color :canonical: simvx.core.ui.widgets.TextEdit.bg_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.bg_color ``` ```` ````{py:attribute} border_color :canonical: simvx.core.ui.widgets.TextEdit.border_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.border_color ``` ```` ````{py:attribute} focus_color :canonical: simvx.core.ui.widgets.TextEdit.focus_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.TextEdit.focus_color ``` ```` ````{py:method} process(dt: float) :canonical: simvx.core.ui.widgets.TextEdit.process ```` ````{py:method} draw(renderer) :canonical: simvx.core.ui.widgets.TextEdit.draw ```` ````{py:attribute} size_x :canonical: simvx.core.ui.widgets.TextEdit.size_x :value: > 'Property(...)' ```` ````{py:attribute} size_y :canonical: simvx.core.ui.widgets.TextEdit.size_y :value: > 'Property(...)' ```` ````{py:property} size :canonical: simvx.core.ui.widgets.TextEdit.size :type: simvx.core.math.types.Vec2 ```` ````{py:method} get_theme() -> simvx.core.ui.core.Theme :canonical: simvx.core.ui.widgets.TextEdit.get_theme ```` ````{py:method} get_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.TextEdit.get_rect ```` ````{py:method} get_global_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.TextEdit.get_global_rect ```` ````{py:method} is_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.TextEdit.is_point_inside ```` ````{py:method} set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset) :canonical: simvx.core.ui.widgets.TextEdit.set_anchor_preset ```` ````{py:method} set_focus() :canonical: simvx.core.ui.widgets.TextEdit.set_focus ```` ````{py:method} grab_focus() :canonical: simvx.core.ui.widgets.TextEdit.grab_focus ```` ````{py:method} release_focus() :canonical: simvx.core.ui.widgets.TextEdit.release_focus ```` ````{py:method} has_focus() -> bool :canonical: simvx.core.ui.widgets.TextEdit.has_focus ```` ````{py:method} focus_next_control() :canonical: simvx.core.ui.widgets.TextEdit.focus_next_control ```` ````{py:method} focus_previous_control() :canonical: simvx.core.ui.widgets.TextEdit.focus_previous_control ```` ````{py:method} grab_mouse() :canonical: simvx.core.ui.widgets.TextEdit.grab_mouse ```` ````{py:method} release_mouse() :canonical: simvx.core.ui.widgets.TextEdit.release_mouse ```` ````{py:method} set_drag_preview(control: simvx.core.ui.core.Control) :canonical: simvx.core.ui.widgets.TextEdit.set_drag_preview ```` ````{py:method} draw_popup(renderer) :canonical: simvx.core.ui.widgets.TextEdit.draw_popup ```` ````{py:method} is_popup_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.TextEdit.is_popup_point_inside ```` ````{py:method} popup_input(event) :canonical: simvx.core.ui.widgets.TextEdit.popup_input ```` ````{py:method} dismiss_popup() :canonical: simvx.core.ui.widgets.TextEdit.dismiss_popup ```` ````{py:attribute} z_index :canonical: simvx.core.ui.widgets.TextEdit.z_index :value: > 'Property(...)' ```` ````{py:attribute} z_as_relative :canonical: simvx.core.ui.widgets.TextEdit.z_as_relative :value: > 'Property(...)' ```` ````{py:property} absolute_z_index :canonical: simvx.core.ui.widgets.TextEdit.absolute_z_index :type: int ```` ````{py:property} position :canonical: simvx.core.ui.widgets.TextEdit.position :type: simvx.core.math.types.Vec2 ```` ````{py:property} rotation :canonical: simvx.core.ui.widgets.TextEdit.rotation :type: float ```` ````{py:property} rotation_degrees :canonical: simvx.core.ui.widgets.TextEdit.rotation_degrees :type: float ```` ````{py:property} scale :canonical: simvx.core.ui.widgets.TextEdit.scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_position :canonical: simvx.core.ui.widgets.TextEdit.global_position :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_rotation :canonical: simvx.core.ui.widgets.TextEdit.global_rotation :type: float ```` ````{py:property} global_scale :canonical: simvx.core.ui.widgets.TextEdit.global_scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} forward :canonical: simvx.core.ui.widgets.TextEdit.forward :type: simvx.core.math.types.Vec2 ```` ````{py:property} right :canonical: simvx.core.ui.widgets.TextEdit.right :type: simvx.core.math.types.Vec2 ```` ````{py:method} translate(offset: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.TextEdit.translate ```` ````{py:method} rotate(radians: float) :canonical: simvx.core.ui.widgets.TextEdit.rotate ```` ````{py:method} rotate_deg(degrees: float) :canonical: simvx.core.ui.widgets.TextEdit.rotate_deg ```` ````{py:method} look_at(target: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.TextEdit.look_at ```` ````{py:method} transform_points(points: list[simvx.core.math.types.Vec2]) -> list[simvx.core.math.types.Vec2] :canonical: simvx.core.ui.widgets.TextEdit.transform_points ```` ````{py:method} draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, color=None) :canonical: simvx.core.ui.widgets.TextEdit.draw_polygon ```` ````{py:method} wrap_screen(margin: float = 20) :canonical: simvx.core.ui.widgets.TextEdit.wrap_screen ```` ````{py:attribute} script_error_raised :canonical: simvx.core.ui.widgets.TextEdit.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.ui.widgets.TextEdit.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.ui.widgets.TextEdit.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.ui.widgets.TextEdit.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.ui.widgets.TextEdit.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.TextEdit.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.TextEdit.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.TextEdit.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.TextEdit.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.TextEdit.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.TextEdit.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.ui.widgets.TextEdit.find_all ```` ````{py:property} path :canonical: simvx.core.ui.widgets.TextEdit.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.ui.widgets.TextEdit.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.ui.widgets.TextEdit.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.ui.widgets.TextEdit.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.ui.widgets.TextEdit.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.ui.widgets.TextEdit.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.ui.widgets.TextEdit.exit_tree ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.ui.widgets.TextEdit.physics_process ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.ui.widgets.TextEdit.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.TextEdit.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.TextEdit.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.ui.widgets.TextEdit.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.ui.widgets.TextEdit.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.ui.widgets.TextEdit.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.ui.widgets.TextEdit.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.ui.widgets.TextEdit.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.ui.widgets.TextEdit.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.ui.widgets.TextEdit.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.ui.widgets.TextEdit.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.ui.widgets.TextEdit.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.ui.widgets.TextEdit.__repr__ ```` ````` `````{py:class} Slider(min_val: float = 0, max_val: float = 100, value: float = None, **kwargs) :canonical: simvx.core.ui.widgets.Slider Bases: {py:obj}`simvx.core.ui.core.Control` ```{autodoc2-docstring} simvx.core.ui.widgets.Slider ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.__init__ ``` ````{py:attribute} min_value :canonical: simvx.core.ui.widgets.Slider.min_value :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.min_value ``` ```` ````{py:attribute} max_value :canonical: simvx.core.ui.widgets.Slider.max_value :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.max_value ``` ```` ````{py:attribute} value :canonical: simvx.core.ui.widgets.Slider.value :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.value ``` ```` ````{py:attribute} bg_color :canonical: simvx.core.ui.widgets.Slider.bg_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.bg_color ``` ```` ````{py:attribute} fill_color :canonical: simvx.core.ui.widgets.Slider.fill_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.fill_color ``` ```` ````{py:attribute} handle_color :canonical: simvx.core.ui.widgets.Slider.handle_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.handle_color ``` ```` ````{py:attribute} handle_hover_color :canonical: simvx.core.ui.widgets.Slider.handle_hover_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.Slider.handle_hover_color ``` ```` ````{py:method} draw(renderer) :canonical: simvx.core.ui.widgets.Slider.draw ```` ````{py:attribute} size_x :canonical: simvx.core.ui.widgets.Slider.size_x :value: > 'Property(...)' ```` ````{py:attribute} size_y :canonical: simvx.core.ui.widgets.Slider.size_y :value: > 'Property(...)' ```` ````{py:property} size :canonical: simvx.core.ui.widgets.Slider.size :type: simvx.core.math.types.Vec2 ```` ````{py:method} get_theme() -> simvx.core.ui.core.Theme :canonical: simvx.core.ui.widgets.Slider.get_theme ```` ````{py:method} get_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Slider.get_rect ```` ````{py:method} get_global_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.Slider.get_global_rect ```` ````{py:method} is_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Slider.is_point_inside ```` ````{py:method} set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset) :canonical: simvx.core.ui.widgets.Slider.set_anchor_preset ```` ````{py:method} set_focus() :canonical: simvx.core.ui.widgets.Slider.set_focus ```` ````{py:method} grab_focus() :canonical: simvx.core.ui.widgets.Slider.grab_focus ```` ````{py:method} release_focus() :canonical: simvx.core.ui.widgets.Slider.release_focus ```` ````{py:method} has_focus() -> bool :canonical: simvx.core.ui.widgets.Slider.has_focus ```` ````{py:method} focus_next_control() :canonical: simvx.core.ui.widgets.Slider.focus_next_control ```` ````{py:method} focus_previous_control() :canonical: simvx.core.ui.widgets.Slider.focus_previous_control ```` ````{py:method} grab_mouse() :canonical: simvx.core.ui.widgets.Slider.grab_mouse ```` ````{py:method} release_mouse() :canonical: simvx.core.ui.widgets.Slider.release_mouse ```` ````{py:method} set_drag_preview(control: simvx.core.ui.core.Control) :canonical: simvx.core.ui.widgets.Slider.set_drag_preview ```` ````{py:method} draw_popup(renderer) :canonical: simvx.core.ui.widgets.Slider.draw_popup ```` ````{py:method} is_popup_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.Slider.is_popup_point_inside ```` ````{py:method} popup_input(event) :canonical: simvx.core.ui.widgets.Slider.popup_input ```` ````{py:method} dismiss_popup() :canonical: simvx.core.ui.widgets.Slider.dismiss_popup ```` ````{py:attribute} z_index :canonical: simvx.core.ui.widgets.Slider.z_index :value: > 'Property(...)' ```` ````{py:attribute} z_as_relative :canonical: simvx.core.ui.widgets.Slider.z_as_relative :value: > 'Property(...)' ```` ````{py:property} absolute_z_index :canonical: simvx.core.ui.widgets.Slider.absolute_z_index :type: int ```` ````{py:property} position :canonical: simvx.core.ui.widgets.Slider.position :type: simvx.core.math.types.Vec2 ```` ````{py:property} rotation :canonical: simvx.core.ui.widgets.Slider.rotation :type: float ```` ````{py:property} rotation_degrees :canonical: simvx.core.ui.widgets.Slider.rotation_degrees :type: float ```` ````{py:property} scale :canonical: simvx.core.ui.widgets.Slider.scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_position :canonical: simvx.core.ui.widgets.Slider.global_position :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_rotation :canonical: simvx.core.ui.widgets.Slider.global_rotation :type: float ```` ````{py:property} global_scale :canonical: simvx.core.ui.widgets.Slider.global_scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} forward :canonical: simvx.core.ui.widgets.Slider.forward :type: simvx.core.math.types.Vec2 ```` ````{py:property} right :canonical: simvx.core.ui.widgets.Slider.right :type: simvx.core.math.types.Vec2 ```` ````{py:method} translate(offset: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Slider.translate ```` ````{py:method} rotate(radians: float) :canonical: simvx.core.ui.widgets.Slider.rotate ```` ````{py:method} rotate_deg(degrees: float) :canonical: simvx.core.ui.widgets.Slider.rotate_deg ```` ````{py:method} look_at(target: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.Slider.look_at ```` ````{py:method} transform_points(points: list[simvx.core.math.types.Vec2]) -> list[simvx.core.math.types.Vec2] :canonical: simvx.core.ui.widgets.Slider.transform_points ```` ````{py:method} draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, color=None) :canonical: simvx.core.ui.widgets.Slider.draw_polygon ```` ````{py:method} wrap_screen(margin: float = 20) :canonical: simvx.core.ui.widgets.Slider.wrap_screen ```` ````{py:attribute} script_error_raised :canonical: simvx.core.ui.widgets.Slider.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.ui.widgets.Slider.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.ui.widgets.Slider.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.ui.widgets.Slider.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.ui.widgets.Slider.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Slider.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Slider.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.Slider.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.Slider.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Slider.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.Slider.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.ui.widgets.Slider.find_all ```` ````{py:property} path :canonical: simvx.core.ui.widgets.Slider.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.ui.widgets.Slider.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.ui.widgets.Slider.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.ui.widgets.Slider.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.ui.widgets.Slider.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.ui.widgets.Slider.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.ui.widgets.Slider.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.ui.widgets.Slider.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.ui.widgets.Slider.physics_process ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.ui.widgets.Slider.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Slider.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.Slider.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.ui.widgets.Slider.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.ui.widgets.Slider.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.ui.widgets.Slider.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.ui.widgets.Slider.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.ui.widgets.Slider.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.ui.widgets.Slider.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.ui.widgets.Slider.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.ui.widgets.Slider.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.ui.widgets.Slider.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.ui.widgets.Slider.__repr__ ```` ````` `````{py:class} ProgressBar(min_val: float = 0, max_val: float = 100, **kwargs) :canonical: simvx.core.ui.widgets.ProgressBar Bases: {py:obj}`simvx.core.ui.core.Control` ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar.__init__ ``` ````{py:attribute} min_value :canonical: simvx.core.ui.widgets.ProgressBar.min_value :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar.min_value ``` ```` ````{py:attribute} max_value :canonical: simvx.core.ui.widgets.ProgressBar.max_value :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar.max_value ``` ```` ````{py:attribute} value :canonical: simvx.core.ui.widgets.ProgressBar.value :value: > 'Property(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar.value ``` ```` ````{py:attribute} bg_color :canonical: simvx.core.ui.widgets.ProgressBar.bg_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar.bg_color ``` ```` ````{py:attribute} fill_color :canonical: simvx.core.ui.widgets.ProgressBar.fill_color :value: > 'ThemeColour(...)' ```{autodoc2-docstring} simvx.core.ui.widgets.ProgressBar.fill_color ``` ```` ````{py:method} draw(renderer) :canonical: simvx.core.ui.widgets.ProgressBar.draw ```` ````{py:attribute} size_x :canonical: simvx.core.ui.widgets.ProgressBar.size_x :value: > 'Property(...)' ```` ````{py:attribute} size_y :canonical: simvx.core.ui.widgets.ProgressBar.size_y :value: > 'Property(...)' ```` ````{py:property} size :canonical: simvx.core.ui.widgets.ProgressBar.size :type: simvx.core.math.types.Vec2 ```` ````{py:method} get_theme() -> simvx.core.ui.core.Theme :canonical: simvx.core.ui.widgets.ProgressBar.get_theme ```` ````{py:method} get_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.ProgressBar.get_rect ```` ````{py:method} get_global_rect() -> tuple[float, float, float, float] :canonical: simvx.core.ui.widgets.ProgressBar.get_global_rect ```` ````{py:method} is_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.ProgressBar.is_point_inside ```` ````{py:method} set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset) :canonical: simvx.core.ui.widgets.ProgressBar.set_anchor_preset ```` ````{py:method} set_focus() :canonical: simvx.core.ui.widgets.ProgressBar.set_focus ```` ````{py:method} grab_focus() :canonical: simvx.core.ui.widgets.ProgressBar.grab_focus ```` ````{py:method} release_focus() :canonical: simvx.core.ui.widgets.ProgressBar.release_focus ```` ````{py:method} has_focus() -> bool :canonical: simvx.core.ui.widgets.ProgressBar.has_focus ```` ````{py:method} focus_next_control() :canonical: simvx.core.ui.widgets.ProgressBar.focus_next_control ```` ````{py:method} focus_previous_control() :canonical: simvx.core.ui.widgets.ProgressBar.focus_previous_control ```` ````{py:method} grab_mouse() :canonical: simvx.core.ui.widgets.ProgressBar.grab_mouse ```` ````{py:method} release_mouse() :canonical: simvx.core.ui.widgets.ProgressBar.release_mouse ```` ````{py:method} set_drag_preview(control: simvx.core.ui.core.Control) :canonical: simvx.core.ui.widgets.ProgressBar.set_drag_preview ```` ````{py:method} draw_popup(renderer) :canonical: simvx.core.ui.widgets.ProgressBar.draw_popup ```` ````{py:method} is_popup_point_inside(point) -> bool :canonical: simvx.core.ui.widgets.ProgressBar.is_popup_point_inside ```` ````{py:method} popup_input(event) :canonical: simvx.core.ui.widgets.ProgressBar.popup_input ```` ````{py:method} dismiss_popup() :canonical: simvx.core.ui.widgets.ProgressBar.dismiss_popup ```` ````{py:attribute} z_index :canonical: simvx.core.ui.widgets.ProgressBar.z_index :value: > 'Property(...)' ```` ````{py:attribute} z_as_relative :canonical: simvx.core.ui.widgets.ProgressBar.z_as_relative :value: > 'Property(...)' ```` ````{py:property} absolute_z_index :canonical: simvx.core.ui.widgets.ProgressBar.absolute_z_index :type: int ```` ````{py:property} position :canonical: simvx.core.ui.widgets.ProgressBar.position :type: simvx.core.math.types.Vec2 ```` ````{py:property} rotation :canonical: simvx.core.ui.widgets.ProgressBar.rotation :type: float ```` ````{py:property} rotation_degrees :canonical: simvx.core.ui.widgets.ProgressBar.rotation_degrees :type: float ```` ````{py:property} scale :canonical: simvx.core.ui.widgets.ProgressBar.scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_position :canonical: simvx.core.ui.widgets.ProgressBar.global_position :type: simvx.core.math.types.Vec2 ```` ````{py:property} global_rotation :canonical: simvx.core.ui.widgets.ProgressBar.global_rotation :type: float ```` ````{py:property} global_scale :canonical: simvx.core.ui.widgets.ProgressBar.global_scale :type: simvx.core.math.types.Vec2 ```` ````{py:property} forward :canonical: simvx.core.ui.widgets.ProgressBar.forward :type: simvx.core.math.types.Vec2 ```` ````{py:property} right :canonical: simvx.core.ui.widgets.ProgressBar.right :type: simvx.core.math.types.Vec2 ```` ````{py:method} translate(offset: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.ProgressBar.translate ```` ````{py:method} rotate(radians: float) :canonical: simvx.core.ui.widgets.ProgressBar.rotate ```` ````{py:method} rotate_deg(degrees: float) :canonical: simvx.core.ui.widgets.ProgressBar.rotate_deg ```` ````{py:method} look_at(target: tuple[float, float] | numpy.ndarray) :canonical: simvx.core.ui.widgets.ProgressBar.look_at ```` ````{py:method} transform_points(points: list[simvx.core.math.types.Vec2]) -> list[simvx.core.math.types.Vec2] :canonical: simvx.core.ui.widgets.ProgressBar.transform_points ```` ````{py:method} draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, color=None) :canonical: simvx.core.ui.widgets.ProgressBar.draw_polygon ```` ````{py:method} wrap_screen(margin: float = 20) :canonical: simvx.core.ui.widgets.ProgressBar.wrap_screen ```` ````{py:attribute} script_error_raised :canonical: simvx.core.ui.widgets.ProgressBar.script_error_raised :value: > 'Signal(...)' ```` ````{py:method} __init_subclass__(**kwargs) :canonical: simvx.core.ui.widgets.ProgressBar.__init_subclass__ :classmethod: ```` ````{py:property} name :canonical: simvx.core.ui.widgets.ProgressBar.name :type: str ```` ````{py:property} process_mode :canonical: simvx.core.ui.widgets.ProgressBar.process_mode :type: simvx.core.descriptors.ProcessMode ```` ````{py:method} reset_error() -> None :canonical: simvx.core.ui.widgets.ProgressBar.reset_error ```` ````{py:method} add_child(node: simvx.core.node.Node) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.ProgressBar.add_child ```` ````{py:method} remove_child(node: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.ProgressBar.remove_child ```` ````{py:method} reparent(new_parent: simvx.core.node.Node) :canonical: simvx.core.ui.widgets.ProgressBar.reparent ```` ````{py:method} get_node(path: str) -> simvx.core.node.Node :canonical: simvx.core.ui.widgets.ProgressBar.get_node ```` ````{py:method} find_child(name: str, recursive: bool = False) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.ProgressBar.find_child ```` ````{py:method} find(node_type: type) -> simvx.core.node.Node | None :canonical: simvx.core.ui.widgets.ProgressBar.find ```` ````{py:method} find_all(node_type: type, recursive: bool = True) -> list :canonical: simvx.core.ui.widgets.ProgressBar.find_all ```` ````{py:property} path :canonical: simvx.core.ui.widgets.ProgressBar.path :type: str ```` ````{py:method} add_to_group(group: str) :canonical: simvx.core.ui.widgets.ProgressBar.add_to_group ```` ````{py:method} remove_from_group(group: str) :canonical: simvx.core.ui.widgets.ProgressBar.remove_from_group ```` ````{py:method} is_in_group(group: str) -> bool :canonical: simvx.core.ui.widgets.ProgressBar.is_in_group ```` ````{py:method} ready() -> None :canonical: simvx.core.ui.widgets.ProgressBar.ready ```` ````{py:method} enter_tree() -> None :canonical: simvx.core.ui.widgets.ProgressBar.enter_tree ```` ````{py:method} exit_tree() -> None :canonical: simvx.core.ui.widgets.ProgressBar.exit_tree ```` ````{py:method} process(dt: float) -> None :canonical: simvx.core.ui.widgets.ProgressBar.process ```` ````{py:method} physics_process(dt: float) -> None :canonical: simvx.core.ui.widgets.ProgressBar.physics_process ```` ````{py:method} input_event(event: simvx.core.events.InputEvent) -> None :canonical: simvx.core.ui.widgets.ProgressBar.input_event ```` ````{py:method} input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.ProgressBar.input ```` ````{py:method} unhandled_input(event: simvx.core.events.TreeInputEvent) -> None :canonical: simvx.core.ui.widgets.ProgressBar.unhandled_input ```` ````{py:method} start_coroutine(gen: simvx.core.descriptors.Coroutine) -> simvx.core.descriptors.CoroutineHandle :canonical: simvx.core.ui.widgets.ProgressBar.start_coroutine ```` ````{py:method} stop_coroutine(gen_or_handle) :canonical: simvx.core.ui.widgets.ProgressBar.stop_coroutine ```` ````{py:method} destroy() :canonical: simvx.core.ui.widgets.ProgressBar.destroy ```` ````{py:attribute} queue_free :canonical: simvx.core.ui.widgets.ProgressBar.queue_free :value: > None ```` ````{py:property} tree :canonical: simvx.core.ui.widgets.ProgressBar.tree :type: simvx.core.scene_tree.SceneTree ```` ````{py:method} get_tree() -> simvx.core.scene_tree.SceneTree :canonical: simvx.core.ui.widgets.ProgressBar.get_tree ```` ````{py:method} __getitem__(key: str) :canonical: simvx.core.ui.widgets.ProgressBar.__getitem__ ```` ````{py:method} get_properties() -> dict[str, simvx.core.descriptors.Property] :canonical: simvx.core.ui.widgets.ProgressBar.get_properties :classmethod: ```` ````{py:attribute} get_settings :canonical: simvx.core.ui.widgets.ProgressBar.get_settings :value: > None ```` ````{py:method} __repr__() :canonical: simvx.core.ui.widgets.ProgressBar.__repr__ ```` `````