#pragma once

#include "debug/DebugWindowRegistry.hpp"

namespace tw::dbg {

/**
 * The full screen host the debug panels live in: a menu bar to toggle them and
 * a dock space to arrange them in. Draws no background of its own, so the world
 * stays visible underneath.
 */
class DebugUI {
    DebugWindowRegistry m_windows;

public:
    DebugWindowRegistry& windows() {
        return m_windows;
    }

    /**
     * Opens the host for this frame. Has to run before anything that should be
     * dockable is drawn, since the dock space has to exist by then.
     */
    void draw_dockspace();

    void draw_windows();
};

}
