45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
|
|
#include "DebugUI.hpp"
|
||
|
|
#include <imgui.h>
|
||
|
|
|
||
|
|
namespace tw::dbg {
|
||
|
|
|
||
|
|
void DebugUI::draw_dockspace() {
|
||
|
|
const ImGuiViewport* viewport = ImGui::GetMainViewport();
|
||
|
|
ImGui::SetNextWindowPos(viewport->WorkPos);
|
||
|
|
ImGui::SetNextWindowSize(viewport->WorkSize);
|
||
|
|
ImGui::SetNextWindowViewport(viewport->ID);
|
||
|
|
|
||
|
|
const ImGuiWindowFlags flags =
|
||
|
|
ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking |
|
||
|
|
ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse |
|
||
|
|
ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove |
|
||
|
|
ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus |
|
||
|
|
ImGuiWindowFlags_NoBackground;
|
||
|
|
|
||
|
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
|
||
|
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
|
||
|
|
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
|
||
|
|
|
||
|
|
ImGui::Begin("##debug_dockspace_host", nullptr, flags);
|
||
|
|
|
||
|
|
ImGui::PopStyleVar(3);
|
||
|
|
|
||
|
|
// A pass through centre leaves the middle empty until something is docked
|
||
|
|
// there, which is where the world is drawn.
|
||
|
|
ImGui::DockSpace(ImGui::GetID("debug_dockspace"), ImVec2(0.0f, 0.0f),
|
||
|
|
ImGuiDockNodeFlags_PassthruCentralNode);
|
||
|
|
|
||
|
|
if(ImGui::BeginMenuBar()) {
|
||
|
|
m_windows.draw_menu();
|
||
|
|
ImGui::EndMenuBar();
|
||
|
|
}
|
||
|
|
|
||
|
|
ImGui::End();
|
||
|
|
}
|
||
|
|
|
||
|
|
void DebugUI::draw_windows() {
|
||
|
|
m_windows.draw_windows();
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|