Files

53 lines
1.7 KiB
C++

#include "Pch.h"
#include "Dockspace.h"
#include <ImGui/ImGui.h>
#include <Engine/Renderer/Renderer.h>
using namespace Flower;
using namespace Flower::UI;
DockSpace::DockSpace()
: Widget("DockSpace")
{
m_bShow = false;
}
void DockSpace::onTick(const RuntimeModuleTickData& tickData)
{
static ImGuiDockNodeFlags dockspaceFlags = ImGuiDockNodeFlags_None;
ImGuiWindowFlags windowFlags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking;
const ImGuiViewport* viewport = ImGui::GetMainViewport();
ImGui::SetNextWindowPos(viewport->WorkPos);
ImGui::SetNextWindowSize(viewport->WorkSize);
ImGui::SetNextWindowViewport(viewport->ID);
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0f, 6.0f));
windowFlags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove;
windowFlags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;
if (dockspaceFlags & ImGuiDockNodeFlags_PassthruCentralNode)
{
windowFlags |= ImGuiWindowFlags_NoBackground;
}
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
ImGui::Begin("FlowerDockSpace", &m_bShow, windowFlags);
ImGui::PopStyleVar();
ImGuiIO& io = ImGui::GetIO();
if (io.ConfigFlags & ImGuiConfigFlags_DockingEnable)
{
ImGuiID dockspaceId = ImGui::GetID("FlowerDockSpace");
ImGui::DockSpace(dockspaceId, ImVec2(0.0f, 0.0f), dockspaceFlags);
}
m_mainMenu.build();
ImGui::PopStyleVar(3);
ImGui::End();
}