You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lunarium_OLD/src/core/core_console.cpp

78 lines
2.4 KiB
C++

/******************************************************************************
* File - core_console.cpp
* Author - Joey Pollack
* Date - 2022/02/10 (y/m/d)
* Mod Date - 2022/02/10 (y/m/d)
* Description - console for the game mode
******************************************************************************/
#include "core_console.h"
#include <dearimgui/imgui.h>
#include <dearimgui/imgui_internal.h> // To use the DockWindowXXX methods
#include <iostream>
namespace lunarium
{
CoreConsole::CoreConsole()
: Console("Core Console"), mDockIsInit(false)
{
}
CoreConsole::~CoreConsole()
{
}
bool CoreConsole::DoFrame()
{
InitDock();
if (!mIsOpen)
return false;
ImGuiViewport* pView = ImGui::GetMainViewport();
float myHeight = pView->WorkSize.y / 3.0f;
float y = pView->WorkPos.y + (myHeight * 2);
float alpha = IsFocused() ? 0.75f : 0.5f;
ImGui::SetNextWindowPos(ImVec2(pView->WorkPos.x, y), ImGuiCond_Always);
ImGui::SetNextWindowSize(ImVec2(pView->WorkSize.x, myHeight), ImGuiCond_Always);
ImGui::SetNextWindowBgAlpha(alpha);
if (!ImGui::Begin(GetName(), &mIsOpen, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar
| ImGuiWindowFlags_NoCollapse))
{
ImGui::End();
return mIsOpen;
}
Console::DoFrame();
ImGui::End();
return mIsOpen;
}
void CoreConsole::InitDock()
{
ImGuiViewport* Viewport = ImGui::GetMainViewport();
// ImGuiID mainID = ImGui::DockSpace(ImGui::GetID("Core Dockspace"));
ImGuiID mainID = ImGui::DockSpaceOverViewport(Viewport, ImGuiDockNodeFlags_PassthruCentralNode);
if (!ImGui::DockBuilderGetNode(mainID) || !mDockIsInit)
{
mDockIsInit = true;
ImGui::DockBuilderRemoveNode(mainID);
ImGui::DockBuilderAddNode(mainID, ImGuiDockNodeFlags_DockSpace);
ImGui::DockBuilderSetNodeSize(mainID, Viewport->Size);
//ImGui::DockBuilderSetNodePos(mDockSpaces.Main, Viewport->WorkPos);
ImGuiID bottom = ImGui::DockBuilderSplitNode(mainID, ImGuiDir_Down, 0.35f, nullptr, nullptr);
ImGui::DockBuilderFinish(mainID);
// Dock Panels
//ImGui::DockBuilderDockWindow(GetName(), bottom);
}
}
}