simvx.editor.panels.inspector

Inspector Panel – Property editor for the selected node.

Reads Property descriptors from the selected node’s class hierarchy and creates appropriate editor widgets (Slider, SpinBox, CheckBox, DropDown, TextEdit, ColorPicker) for each property. All property changes go through the undo system via PropertyCommand.

Layout: +———————————-+ | [Node Type Icon] TypeName | | Name: [ editable name field ] | +———————————-+ | v Node | | Visible [x] | +———————————-+ | v Transform | | Position X [ ] Y [ ] Z [ ] | | Rotation X [ ] Y [ ] Z [ ] | | Scale X [ ] Y [ ] Z [ ] | +———————————-+ | v Custom Propertys | | speed [=====|——-] 5.0 | | mode [ walk v] | +———————————-+ | v Material | | Color [####] | | Metallic [===|—–] 0.0 | | Roughness [======|–] 0.5 | +———————————-+

Module Contents

Classes

InspectorPanel

Property editor panel for the currently selected node.

API

class simvx.editor.panels.inspector.InspectorPanel(editor_state=None, **kwargs)

Bases: simvx.core.Control

Property editor panel for the currently selected node.

Subscribes to state.selection_changed and rebuilds its contents whenever the selection changes. Each Property on the selected node is mapped to an appropriate editor widget. Property edits are pushed to the undo stack as PropertyCommand instances.

Args: editor_state: The central EditorState instance.

Initialization

property_changed

‘Signal(…)’

ready()

Connect to editor state signals.

inspect(node: simvx.core.Node | None)

Public API: display properties for the given node (or clear if None).

process(dt: float)

Reflow vertical layout each frame.

draw(renderer)
size_x

‘Property(…)’

size_y

‘Property(…)’

property size: simvx.core.math.types.Vec2
get_theme() simvx.core.ui.core.Theme
get_rect() tuple[float, float, float, float]
get_global_rect() tuple[float, float, float, float]
is_point_inside(point) bool
set_anchor_preset(preset: simvx.core.ui.core.AnchorPreset)
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)
draw_popup(renderer)
is_popup_point_inside(point) bool
popup_input(event)
dismiss_popup()
z_index

‘Property(…)’

z_as_relative

‘Property(…)’

property absolute_z_index: int
property position: simvx.core.math.types.Vec2
property rotation: float
property rotation_degrees: float
property scale: simvx.core.math.types.Vec2
property global_position: simvx.core.math.types.Vec2
property global_rotation: float
property global_scale: simvx.core.math.types.Vec2
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, color=None)
wrap_screen(margin: float = 20)
script_error_raised

‘Signal(…)’

classmethod __init_subclass__(**kwargs)
property name: str
property process_mode: simvx.core.descriptors.ProcessMode
reset_error() None
add_child(node: simvx.core.node.Node) simvx.core.node.Node
remove_child(node: simvx.core.node.Node)
reparent(new_parent: simvx.core.node.Node)
get_node(path: str) simvx.core.node.Node
find_child(name: str, recursive: bool = False) simvx.core.node.Node | None
find(node_type: type) simvx.core.node.Node | None
find_all(node_type: type, recursive: bool = True) list
property path: str
add_to_group(group: str)
remove_from_group(group: str)
is_in_group(group: str) bool
enter_tree() None
exit_tree() None
physics_process(dt: float) None
input_event(event: simvx.core.events.InputEvent) None
input(event: simvx.core.events.TreeInputEvent) None
unhandled_input(event: simvx.core.events.TreeInputEvent) None
start_coroutine(gen: simvx.core.descriptors.Coroutine) simvx.core.descriptors.CoroutineHandle
stop_coroutine(gen_or_handle)
destroy()
queue_free

None

property tree: simvx.core.scene_tree.SceneTree
get_tree() simvx.core.scene_tree.SceneTree
__getitem__(key: str)
classmethod get_properties() dict[str, simvx.core.descriptors.Property]
get_settings

None

__repr__()