#pragma once #include "workspace.h" #include "rendering/view.h" #include "core/memory.h" #include namespace Donut { // The Dorico-style tab strip. Owns the workspaces (Setup / Scene / Simulation // / Export); each frame it draws the dock space, the shared header, the tab // bar, and delegates the active tab's panels. Returns the active workspace's // View so the Application knows what the RenderPath should draw. class UILayer { public: UILayer(); auto draw(const UIContext& ctx) -> View; private: std::vector> m_workspaces; int m_active = 0; int m_landing = 0; // tab selected on the first frame bool m_landed = false; }; }