simvx.core.ui.file_browser

Project file browser – unified tree view with filter, context menu, and drag support.

Module Contents

Classes

FileBrowserPanel

Project file browser with tree view, filter, context menu, drag, and rename.

Data

API

simvx.core.ui.file_browser.__all__

[‘FileBrowserPanel’]

class simvx.core.ui.file_browser.FileBrowserPanel(*, title: str = 'Files', show_icons: bool = True, drag_enabled: bool = False, show_scene_actions: bool = False, **kwargs)

Bases: simvx.core.ui.core.Control

Project file browser with tree view, filter, context menu, drag, and rename.

Combines editor and IDE file browser features into a single reusable panel.

Parameters: title: Header title text (default “Files”) show_icons: Show file-type Unicode icons (default True) drag_enabled: Enable drag data for assets (default False) show_scene_actions: Show “New Script”/”New Scene” in context menu (default False)

Signals: file_selected(path: str) – single-click selection file_activated(path: str) – double-click open file_opened(path: str) – alias for file_activated (editor compat) file_created(path: str) – after file/folder creation file_deleted(path: str) – after deletion file_renamed(old: str, new: str) – after rename

Initialization

set_root(path: str | pathlib.Path)

Set the project root directory and rebuild the tree.

set_project_root

None

get_root() str

Return the current project root path as a string.

get_project_root

None

get_selected_path() str

Return the path of the currently selected item.

refresh()

Rescan the project directory and rebuild the tree.

get_drag_data(path: str | None = None) dict | None

Create drag data for a file path (for drag-and-drop into the scene).

Returns a dict with keys: type, path, extension. Returns None if the file type is not a recognized draggable asset or drag is disabled.

create_folder(parent_path: str, name: str) str | None

Create a new folder and refresh the tree. Returns the new path.

delete_file(path: str) bool

Delete a file or directory. Returns True on success.

rename_file(old_path: str, new_name: str) str | None

Rename a file or directory. Returns the new path, or None on failure.

process(dt: float)
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
ready() None
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__()