Studio: implement dockable panels

Goal

Implement dockable panels in the studio, allowing users to reorganize, dock, and undock panels (Inspector, Scene Hierarchy, Asset Browser, Profiler, etc.) similar to VSCode, Unreal, or Unity. Panels can be dragged to new locations, split, and tabbed.

Context / integration points

  • DVUI (the GUI framework we use) already has docking planned; we may fork/customize the implementation.
  • Current panels are fixed in layout; users cannot reorganize.
  • Docking is a major UX feature for professional tools.
  • This affects the entire studio architecture (window layout, panel registration).

Design

  • Fork or adopt DVUI's docking implementation (if available) or build on top of DVUI primitives.
  • Panels register with a layout manager instead of being hardcoded in Window.zig.
  • Drag panel headers to move panels between dock areas.
  • Tabs for multiple panels in the same dock slot.
  • Persist layout to studio/layout.json or similar.
  • Provide a "Reset Layout" option in settings.

Tasks

  • Evaluate DVUI's docking capabilities and plan adoption/fork strategy
  • Branch DVUI
  • Implement panel registration system (replace hardcoded layout)
  • Implement drag-drop panel movement
  • Implement tab rendering for multiple panels in one dock
  • Persist and restore layout on startup
  • Add "Reset Layout" option to settings
  • Test with various panel configurations

Acceptance criteria

DVUI

  • Panels can be dragged and docked to different areas.
  • Multiple panels can share a dock slot (tabs).
  • No performance regression from docking logic.

Studio

  • Layout persists across session restarts.
  • A "Reset Layout" option restores the default layout.

Optional scope

  • Floating panels (detached windows)
Edited by Bruno Massa