simvx.ide.panels.debug_panel¶

Debug panel – toolbar, variables, call stack, and breakpoints tabs.

Module Contents¶

Classes¶

DebugToolbar

Horizontal bar of debug action buttons.

VariablesTab

TreeView showing variable scopes with expandable nested objects.

CallStackTab

List of stack frames with click-to-navigate.

WatchTab

Watch expressions tab – evaluate expressions during debug pauses.

BreakpointsTab

List of all breakpoints across files with click-to-navigate.

DebugPanel

Complete debug panel with toolbar and tabbed sub-panels.

API¶

class simvx.ide.panels.debug_panel.DebugToolbar(**kwargs)[source]¶

Bases: simvx.core.ui.containers.HBoxContainer

Horizontal bar of debug action buttons.

Initialization

separation¶

‘Property(…)’

set_state(state: str)[source]¶

Enable/disable buttons based on debug state (idle|running|stopped).

refresh_theme()[source]¶

Re-apply theme colours to all toolbar buttons.

on_draw(renderer)[source]¶
alignment¶

‘Property(…)’

get_minimum_size() simvx.core.math.types.Vec2¶
on_enter_tree()¶
on_ready()¶
on_exit_tree()¶
add_child(node: simvx.core.node.T) simvx.core.node.T¶
remove_child(node: simvx.core.node.Node) None¶
mark_layout_dirty()¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

min_size_x¶

‘Property(…)’

min_size_y¶

‘Property(…)’

anchor_left¶

‘Property(…)’

anchor_top¶

‘Property(…)’

anchor_right¶

‘Property(…)’

anchor_bottom¶

‘Property(…)’

margin_left¶

‘Property(…)’

margin_top¶

‘Property(…)’

margin_right¶

‘Property(…)’

margin_bottom¶

‘Property(…)’

dismiss_on_outside_click¶

‘Property(…)’

clip_contents¶

‘Property(…)’

focus_mode¶

‘Property(…)’

tooltip¶

‘Property(…)’

mouse_filter¶

‘Property(…)’

size_flags_horizontal¶

‘Property(…)’

size_flags_vertical¶

‘Property(…)’

stretch_ratio¶

‘Property(…)’

max_size¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
property min_size: simvx.core.math.types.Vec2¶
content_signature() object¶
content_uses(chars: str) bool¶
autosize_to_content() None¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
place_bottom_strip(height: float) None¶
place_top_strip(height: float) None¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
activate() bool¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
property is_overlay_open: bool¶
show_overlay(modality: str = 'light', *, dim: bool | None = None, dismiss: bool | None = None, inert: bool | None = None, owner: simvx.core.ui.core.Control | None = None, initial_focus: simvx.core.ui.core.Control | None = None) None¶
close_overlay() None¶
position¶

‘_SpatialVecProperty(…)’

rotation¶

‘Property(…)’

scale¶

‘_SpatialVecProperty(…)’

z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property rotation_degrees: float¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
hdr¶

‘Property(…)’

property transform_render_dirty: bool¶
strict_errors: ClassVar[bool]¶

True

dev_checks: ClassVar[bool]¶

None

script_error_raised¶

‘Signal(…)’

dynamic: bool¶

False

visible¶

‘Property(…)’

update_mode¶

‘Property(…)’

__properties__: ClassVar[dict[str, simvx.core.descriptors.Property]]¶

None

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property visible_in_tree: bool¶
reset_error() None¶
reparent(new_parent: simvx.core.node.Node)¶
node_at(path, default=_NO_DEFAULT)¶
find(target, *, direct: bool = False)¶
find_all(target, *, direct: bool = False)¶
expect(target, *, direct: bool = False)¶
ancestor(target)¶
walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
property path: str¶
property is_scene_root: bool¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
on_update(dt: float) None¶
on_fixed_update(dt: float) None¶
on_picked(event: simvx.core.events.InputEvent) None¶
on_unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
property render_dirty: bool¶
clear_children()¶
destroy()¶
property destroying: bool¶
call_deferred(method: collections.abc.Callable[..., Any], *args: Any) None¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
property physics¶
property physics_2d¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.VariablesTab(**kwargs)[source]¶

Bases: simvx.core.ui.core.Control

TreeView showing variable scopes with expandable nested objects.

Initialization

refresh_theme()[source]¶

Re-apply theme colours to the variables tree.

set_session(session: simvx.ide.debug_session.DebugSession)[source]¶
refresh()[source]¶

Rebuild the tree from cached scopes and variables.

on_update(dt: float)[source]¶
on_draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

min_size_x¶

‘Property(…)’

min_size_y¶

‘Property(…)’

anchor_left¶

‘Property(…)’

anchor_top¶

‘Property(…)’

anchor_right¶

‘Property(…)’

anchor_bottom¶

‘Property(…)’

margin_left¶

‘Property(…)’

margin_top¶

‘Property(…)’

margin_right¶

‘Property(…)’

margin_bottom¶

‘Property(…)’

dismiss_on_outside_click¶

‘Property(…)’

clip_contents¶

‘Property(…)’

focus_mode¶

‘Property(…)’

tooltip¶

‘Property(…)’

mouse_filter¶

‘Property(…)’

size_flags_horizontal¶

‘Property(…)’

size_flags_vertical¶

‘Property(…)’

stretch_ratio¶

‘Property(…)’

max_size¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
property min_size: simvx.core.math.types.Vec2¶
content_signature() object¶
content_uses(chars: str) bool¶
autosize_to_content() None¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
add_child(node: simvx.core.node.T) simvx.core.node.T¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
place_bottom_strip(height: float) None¶
place_top_strip(height: float) None¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
activate() bool¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
property is_overlay_open: bool¶
show_overlay(modality: str = 'light', *, dim: bool | None = None, dismiss: bool | None = None, inert: bool | None = None, owner: simvx.core.ui.core.Control | None = None, initial_focus: simvx.core.ui.core.Control | None = None) None¶
close_overlay() None¶
position¶

‘_SpatialVecProperty(…)’

rotation¶

‘Property(…)’

scale¶

‘_SpatialVecProperty(…)’

z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property rotation_degrees: float¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
hdr¶

‘Property(…)’

property transform_render_dirty: bool¶
strict_errors: ClassVar[bool]¶

True

dev_checks: ClassVar[bool]¶

None

script_error_raised¶

‘Signal(…)’

dynamic: bool¶

False

visible¶

‘Property(…)’

update_mode¶

‘Property(…)’

__properties__: ClassVar[dict[str, simvx.core.descriptors.Property]]¶

None

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property visible_in_tree: bool¶
reset_error() None¶
remove_child(node: simvx.core.node.Node) None¶
reparent(new_parent: simvx.core.node.Node)¶
node_at(path, default=_NO_DEFAULT)¶
find(target, *, direct: bool = False)¶
find_all(target, *, direct: bool = False)¶
expect(target, *, direct: bool = False)¶
ancestor(target)¶
walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
property path: str¶
property is_scene_root: bool¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
on_ready() None¶
on_enter_tree() None¶
on_exit_tree() None¶
on_fixed_update(dt: float) None¶
on_picked(event: simvx.core.events.InputEvent) None¶
on_unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
property render_dirty: bool¶
clear_children()¶
destroy()¶
property destroying: bool¶
call_deferred(method: collections.abc.Callable[..., Any], *args: Any) None¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
property physics¶
property physics_2d¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.CallStackTab(**kwargs)[source]¶

Bases: simvx.core.ui.core.Control

List of stack frames with click-to-navigate.

Initialization

set_refs(state: simvx.ide.state.State, session: simvx.ide.debug_session.DebugSession)[source]¶
refresh()[source]¶
on_draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

min_size_x¶

‘Property(…)’

min_size_y¶

‘Property(…)’

anchor_left¶

‘Property(…)’

anchor_top¶

‘Property(…)’

anchor_right¶

‘Property(…)’

anchor_bottom¶

‘Property(…)’

margin_left¶

‘Property(…)’

margin_top¶

‘Property(…)’

margin_right¶

‘Property(…)’

margin_bottom¶

‘Property(…)’

dismiss_on_outside_click¶

‘Property(…)’

clip_contents¶

‘Property(…)’

focus_mode¶

‘Property(…)’

tooltip¶

‘Property(…)’

mouse_filter¶

‘Property(…)’

size_flags_horizontal¶

‘Property(…)’

size_flags_vertical¶

‘Property(…)’

stretch_ratio¶

‘Property(…)’

max_size¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
property min_size: simvx.core.math.types.Vec2¶
content_signature() object¶
content_uses(chars: str) bool¶
autosize_to_content() None¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
add_child(node: simvx.core.node.T) simvx.core.node.T¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
place_bottom_strip(height: float) None¶
place_top_strip(height: float) None¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
activate() bool¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
property is_overlay_open: bool¶
show_overlay(modality: str = 'light', *, dim: bool | None = None, dismiss: bool | None = None, inert: bool | None = None, owner: simvx.core.ui.core.Control | None = None, initial_focus: simvx.core.ui.core.Control | None = None) None¶
close_overlay() None¶
position¶

‘_SpatialVecProperty(…)’

rotation¶

‘Property(…)’

scale¶

‘_SpatialVecProperty(…)’

z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property rotation_degrees: float¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
hdr¶

‘Property(…)’

property transform_render_dirty: bool¶
strict_errors: ClassVar[bool]¶

True

dev_checks: ClassVar[bool]¶

None

script_error_raised¶

‘Signal(…)’

dynamic: bool¶

False

visible¶

‘Property(…)’

update_mode¶

‘Property(…)’

__properties__: ClassVar[dict[str, simvx.core.descriptors.Property]]¶

None

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property visible_in_tree: bool¶
reset_error() None¶
remove_child(node: simvx.core.node.Node) None¶
reparent(new_parent: simvx.core.node.Node)¶
node_at(path, default=_NO_DEFAULT)¶
find(target, *, direct: bool = False)¶
find_all(target, *, direct: bool = False)¶
expect(target, *, direct: bool = False)¶
ancestor(target)¶
walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
property path: str¶
property is_scene_root: bool¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
on_ready() None¶
on_enter_tree() None¶
on_exit_tree() None¶
on_update(dt: float) None¶
on_fixed_update(dt: float) None¶
on_picked(event: simvx.core.events.InputEvent) None¶
on_unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
property render_dirty: bool¶
clear_children()¶
destroy()¶
property destroying: bool¶
call_deferred(method: collections.abc.Callable[..., Any], *args: Any) None¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
property physics¶
property physics_2d¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.WatchTab(state: simvx.ide.state.State, session: simvx.ide.debug_session.DebugSession | None, **kwargs)[source]¶

Bases: simvx.core.ui.core.Control

Watch expressions tab – evaluate expressions during debug pauses.

Initialization

add_watch(expression: str)[source]¶

Add a watch expression.

remove_watch(index: int)[source]¶

Remove a watch expression by index.

on_draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

min_size_x¶

‘Property(…)’

min_size_y¶

‘Property(…)’

anchor_left¶

‘Property(…)’

anchor_top¶

‘Property(…)’

anchor_right¶

‘Property(…)’

anchor_bottom¶

‘Property(…)’

margin_left¶

‘Property(…)’

margin_top¶

‘Property(…)’

margin_right¶

‘Property(…)’

margin_bottom¶

‘Property(…)’

dismiss_on_outside_click¶

‘Property(…)’

clip_contents¶

‘Property(…)’

focus_mode¶

‘Property(…)’

tooltip¶

‘Property(…)’

mouse_filter¶

‘Property(…)’

size_flags_horizontal¶

‘Property(…)’

size_flags_vertical¶

‘Property(…)’

stretch_ratio¶

‘Property(…)’

max_size¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
property min_size: simvx.core.math.types.Vec2¶
content_signature() object¶
content_uses(chars: str) bool¶
autosize_to_content() None¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
add_child(node: simvx.core.node.T) simvx.core.node.T¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
place_bottom_strip(height: float) None¶
place_top_strip(height: float) None¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
activate() bool¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
property is_overlay_open: bool¶
show_overlay(modality: str = 'light', *, dim: bool | None = None, dismiss: bool | None = None, inert: bool | None = None, owner: simvx.core.ui.core.Control | None = None, initial_focus: simvx.core.ui.core.Control | None = None) None¶
close_overlay() None¶
position¶

‘_SpatialVecProperty(…)’

rotation¶

‘Property(…)’

scale¶

‘_SpatialVecProperty(…)’

z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property rotation_degrees: float¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
hdr¶

‘Property(…)’

property transform_render_dirty: bool¶
strict_errors: ClassVar[bool]¶

True

dev_checks: ClassVar[bool]¶

None

script_error_raised¶

‘Signal(…)’

dynamic: bool¶

False

visible¶

‘Property(…)’

update_mode¶

‘Property(…)’

__properties__: ClassVar[dict[str, simvx.core.descriptors.Property]]¶

None

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property visible_in_tree: bool¶
reset_error() None¶
remove_child(node: simvx.core.node.Node) None¶
reparent(new_parent: simvx.core.node.Node)¶
node_at(path, default=_NO_DEFAULT)¶
find(target, *, direct: bool = False)¶
find_all(target, *, direct: bool = False)¶
expect(target, *, direct: bool = False)¶
ancestor(target)¶
walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
property path: str¶
property is_scene_root: bool¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
on_ready() None¶
on_enter_tree() None¶
on_exit_tree() None¶
on_update(dt: float) None¶
on_fixed_update(dt: float) None¶
on_picked(event: simvx.core.events.InputEvent) None¶
on_unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
property render_dirty: bool¶
clear_children()¶
destroy()¶
property destroying: bool¶
call_deferred(method: collections.abc.Callable[..., Any], *args: Any) None¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
property physics¶
property physics_2d¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.BreakpointsTab(**kwargs)[source]¶

Bases: simvx.core.ui.core.Control

List of all breakpoints across files with click-to-navigate.

Initialization

set_state(state: simvx.ide.state.State)[source]¶
set_session(session: simvx.ide.debug_session.DebugSession)[source]¶
set_condition(path: str, line: int, condition: str)[source]¶

Set or clear a condition on a breakpoint (delegates to DebugSession).

get_condition(path: str, line: int) str[source]¶

Get the condition for a breakpoint, or empty string if none.

get_conditions_for_file(path: str) dict[int, str][source]¶

Get all conditions for a file as {line: condition}.

refresh()[source]¶
on_draw(renderer)[source]¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

min_size_x¶

‘Property(…)’

min_size_y¶

‘Property(…)’

anchor_left¶

‘Property(…)’

anchor_top¶

‘Property(…)’

anchor_right¶

‘Property(…)’

anchor_bottom¶

‘Property(…)’

margin_left¶

‘Property(…)’

margin_top¶

‘Property(…)’

margin_right¶

‘Property(…)’

margin_bottom¶

‘Property(…)’

dismiss_on_outside_click¶

‘Property(…)’

clip_contents¶

‘Property(…)’

focus_mode¶

‘Property(…)’

tooltip¶

‘Property(…)’

mouse_filter¶

‘Property(…)’

size_flags_horizontal¶

‘Property(…)’

size_flags_vertical¶

‘Property(…)’

stretch_ratio¶

‘Property(…)’

max_size¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
property min_size: simvx.core.math.types.Vec2¶
content_signature() object¶
content_uses(chars: str) bool¶
autosize_to_content() None¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
get_minimum_size() simvx.core.math.types.Vec2¶
add_child(node: simvx.core.node.T) simvx.core.node.T¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
place_bottom_strip(height: float) None¶
place_top_strip(height: float) None¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
activate() bool¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
property is_overlay_open: bool¶
show_overlay(modality: str = 'light', *, dim: bool | None = None, dismiss: bool | None = None, inert: bool | None = None, owner: simvx.core.ui.core.Control | None = None, initial_focus: simvx.core.ui.core.Control | None = None) None¶
close_overlay() None¶
position¶

‘_SpatialVecProperty(…)’

rotation¶

‘Property(…)’

scale¶

‘_SpatialVecProperty(…)’

z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property rotation_degrees: float¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
hdr¶

‘Property(…)’

property transform_render_dirty: bool¶
strict_errors: ClassVar[bool]¶

True

dev_checks: ClassVar[bool]¶

None

script_error_raised¶

‘Signal(…)’

dynamic: bool¶

False

visible¶

‘Property(…)’

update_mode¶

‘Property(…)’

__properties__: ClassVar[dict[str, simvx.core.descriptors.Property]]¶

None

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property visible_in_tree: bool¶
reset_error() None¶
remove_child(node: simvx.core.node.Node) None¶
reparent(new_parent: simvx.core.node.Node)¶
node_at(path, default=_NO_DEFAULT)¶
find(target, *, direct: bool = False)¶
find_all(target, *, direct: bool = False)¶
expect(target, *, direct: bool = False)¶
ancestor(target)¶
walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
property path: str¶
property is_scene_root: bool¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
on_ready() None¶
on_enter_tree() None¶
on_exit_tree() None¶
on_update(dt: float) None¶
on_fixed_update(dt: float) None¶
on_picked(event: simvx.core.events.InputEvent) None¶
on_unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
property render_dirty: bool¶
clear_children()¶
destroy()¶
property destroying: bool¶
call_deferred(method: collections.abc.Callable[..., Any], *args: Any) None¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
property physics¶
property physics_2d¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶
class simvx.ide.panels.debug_panel.DebugPanel(state: simvx.ide.state.State, debug_session: simvx.ide.debug_session.DebugSession, **kwargs)[source]¶

Bases: simvx.core.ui.widgets.Panel

Complete debug panel with toolbar and tabbed sub-panels.

Layout: [Toolbar: Continue | Pause | Step Over | Step Into | Step Out | Restart | Stop] [TabContainer: Variables | Call Stack | Breakpoints]

Initialization

refresh_theme()[source]¶

Re-apply theme colours after a theme change.

on_update(dt: float)[source]¶
on_draw(renderer)[source]¶
style¶

‘ThemeStyleBox(…)’

property bg_colour¶
property border_colour¶
property border_width¶
get_minimum_size() simvx.core.math.types.Vec2¶
size_x¶

‘Property(…)’

size_y¶

‘Property(…)’

min_size_x¶

‘Property(…)’

min_size_y¶

‘Property(…)’

anchor_left¶

‘Property(…)’

anchor_top¶

‘Property(…)’

anchor_right¶

‘Property(…)’

anchor_bottom¶

‘Property(…)’

margin_left¶

‘Property(…)’

margin_top¶

‘Property(…)’

margin_right¶

‘Property(…)’

margin_bottom¶

‘Property(…)’

dismiss_on_outside_click¶

‘Property(…)’

clip_contents¶

‘Property(…)’

focus_mode¶

‘Property(…)’

tooltip¶

‘Property(…)’

mouse_filter¶

‘Property(…)’

size_flags_horizontal¶

‘Property(…)’

size_flags_vertical¶

‘Property(…)’

stretch_ratio¶

‘Property(…)’

max_size¶

‘Property(…)’

property size: simvx.core.math.types.Vec2¶
property min_size: simvx.core.math.types.Vec2¶
content_signature() object¶
content_uses(chars: str) bool¶
autosize_to_content() None¶
touch_mode: str¶

‘mouse’

property theme: simvx.core.ui.types.Theme | None¶
property mouse_over: bool¶
property focused: bool¶
property disabled: bool¶
get_theme() simvx.core.ui.types.Theme¶
queue_redraw()¶
add_child(node: simvx.core.node.T) simvx.core.node.T¶
get_rect() tuple[float, float, float, float]¶
get_global_rect() tuple[float, float, float, float]¶
is_point_inside(point) bool¶
place_bottom_strip(height: float) None¶
place_top_strip(height: float) None¶
set_anchor_preset(preset: simvx.core.ui.enums.AnchorPreset)¶
activate() bool¶
set_focus()¶
grab_focus()¶
release_focus()¶
has_focus() bool¶
focus_next_control()¶
focus_previous_control()¶
grab_mouse()¶
release_mouse()¶
set_drag_preview(control: simvx.core.ui.core.Control)¶
property is_overlay_open: bool¶
show_overlay(modality: str = 'light', *, dim: bool | None = None, dismiss: bool | None = None, inert: bool | None = None, owner: simvx.core.ui.core.Control | None = None, initial_focus: simvx.core.ui.core.Control | None = None) None¶
close_overlay() None¶
position¶

‘_SpatialVecProperty(…)’

rotation¶

‘Property(…)’

scale¶

‘_SpatialVecProperty(…)’

z_index¶

‘Property(…)’

z_as_relative¶

‘Property(…)’

render_layer¶

‘Property(…)’

set_render_layer(index: int, enabled: bool = True) None¶
is_on_render_layer(index: int) bool¶
property absolute_z_index: int¶
property rotation_degrees: float¶
property world_position: simvx.core.math.types.Vec2¶
property world_rotation: float¶
property world_scale: simvx.core.math.types.Vec2¶
property world_transform: tuple[simvx.core.math.types.Vec2, simvx.core.math.types.Vec2, float]¶
property forward: simvx.core.math.types.Vec2¶
property right: simvx.core.math.types.Vec2¶
translate(offset: tuple[float, float] | numpy.ndarray)¶
rotate(radians: float)¶
rotate_deg(degrees: float)¶
look_at(target: tuple[float, float] | numpy.ndarray)¶
transform_points(points: list[simvx.core.math.types.Vec2]) list[simvx.core.math.types.Vec2]¶
draw_polygon(renderer, points: list[simvx.core.math.types.Vec2], closed=True, colour=None)¶
wrap_screen(margin: float = 20)¶
hdr¶

‘Property(…)’

property transform_render_dirty: bool¶
strict_errors: ClassVar[bool]¶

True

dev_checks: ClassVar[bool]¶

None

script_error_raised¶

‘Signal(…)’

dynamic: bool¶

False

visible¶

‘Property(…)’

update_mode¶

‘Property(…)’

__properties__: ClassVar[dict[str, simvx.core.descriptors.Property]]¶

None

classmethod __init_subclass__(**kwargs)¶
property name: str¶
property visible_in_tree: bool¶
reset_error() None¶
remove_child(node: simvx.core.node.Node) None¶
reparent(new_parent: simvx.core.node.Node)¶
node_at(path, default=_NO_DEFAULT)¶
find(target, *, direct: bool = False)¶
find_all(target, *, direct: bool = False)¶
expect(target, *, direct: bool = False)¶
ancestor(target)¶
walk(*, include_self: bool = True) collections.abc.Iterator[simvx.core.node.Node]¶
property path: str¶
property is_scene_root: bool¶
add_to_group(group: str)¶
remove_from_group(group: str)¶
is_in_group(group: str) bool¶
on_ready() None¶
on_enter_tree() None¶
on_exit_tree() None¶
on_fixed_update(dt: float) None¶
on_picked(event: simvx.core.events.InputEvent) None¶
on_unhandled_input(event: simvx.core.events.TreeInputEvent) None¶
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle¶
stop_coroutine(gen_or_handle)¶
property render_dirty: bool¶
clear_children()¶
destroy()¶
property destroying: bool¶
call_deferred(method: collections.abc.Callable[..., Any], *args: Any) None¶
property app¶
property tree: simvx.core.scene_tree.SceneTree¶
property physics¶
property physics_2d¶
__getitem__(key: str)¶
classmethod get_properties() dict[str, simvx.core.descriptors.Property]¶
__repr__()¶