Panel names, and dock zones are now retrievable from any panel

Panel Manager uses a map to store the dock zone ids
Gui_Panel_Refactor
Joeyrp 4 years ago
parent ed030afcea
commit 307892cb51

@ -2,10 +2,13 @@
Editor:
✔ Come up with project directory structure @done (9/17/2021, 6:46:44 PM)
✔ Make the editor a separate module @high @done (11/1/2021, 2:24:35 PM)
☐ Implement Run Mode interface class @high
✔ Implement Run Mode interface class @high @done (2/8/2022, 4:05:17 PM)
☐ Reference raw asset files in a "content" folder@high
☐ Platform independant file browsing
✔ Platform independant file browsing @done (2/8/2022, 4:05:29 PM)
☐ Scan script files to make sure they don't overwrite globals
Panel System:
☐ Allow for saving custom panel layouts @low
Raw Asset Importers:
- Need classes to import raw resource files for the editor
@ -17,7 +20,7 @@ Editor:
Project (Class for loading and tracking project data):
✔ Generate new project at given location @done (11/9/2021, 3:26:03 PM)
☐ Save project data
☐ Open existing project
✔ Open existing project @done (2/8/2022, 4:05:42 PM)
GUI Panels:
Project Overview (Tree view):

@ -68,7 +68,7 @@ namespace lunarium
mpInstance->mpWindow->GetPosition(&mpInstance->mState.Display.WindowStartPosition.X,
&mpInstance->mState.Display.WindowStartPosition.Y);
//mpInstance->mState.SaveToFile();
mpInstance->mState.SaveToFile();
// Run Mode shuts down first
mpInstance->mpRunMode->Shutdown();

@ -10,6 +10,7 @@
#include "panel_manager.h"
#include <core/core.h>
#include <core/version.h>
#include <utils/logger.h>
#include <gui/fileBrowser.h>
#include <internal_data/dataManager.h>
@ -311,10 +312,13 @@ namespace editor
{
const ImGuiViewport* viewport = ImGui::GetMainViewport();
ImGui::SetNextWindowViewport(viewport->ID);
float height = viewport->WorkSize.y * 0.05f;
float height = viewport->WorkSize.y * 0.035f;
float ypos = (viewport->WorkPos.y + viewport->WorkSize.y) - height;
ImGui::SetNextWindowSize(ImVec2(viewport->WorkSize.x, height), ImGuiCond_Always);
ImGui::SetNextWindowPos(ImVec2(viewport->WorkPos.x, ypos), ImGuiCond_Always);
ImGui::PushStyleVar( ImGuiStyleVar_WindowRounding, 0.0f );
ImGui::PushStyleVar( ImGuiStyleVar_WindowBorderSize, 0.1f );
ImGui::PushStyleVar( ImGuiStyleVar_WindowPadding, ImVec2( 0.0f, 0.0f ) );
ImGui::Begin("status bar", nullptr, ImGuiWindowFlags_NoCollapse
| ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize
| ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoDocking );
@ -323,7 +327,7 @@ namespace editor
{
ImGui::AlignTextToFramePadding();
ImGui::TableNextColumn();
ImGui::Text("Lunarium");
ImGui::Text("Lunarium (%s)", Version::GetVersion().ToString().c_str());
ImGui::TableNextColumn();
ImGui::Text("Testing");
ImGui::TableNextColumn();
@ -331,6 +335,7 @@ namespace editor
ImGui::EndTable();
}
ImGui::PopStyleVar(3);
ImGui::End();
}

@ -116,11 +116,6 @@ namespace lunarium { namespace editor
return nullptr;
}
const PanelManager::DockSpaces& PanelManager::GetDockSpaces() const
{
return mDockSpaces;
}
void PanelManager::ResetDocking()
{
mResetDockSpace = true;
@ -196,25 +191,35 @@ namespace lunarium { namespace editor
void PanelManager::MakeDockSpaces()
{
ImGuiViewport* Viewport = ImGui::GetMainViewport();
mDockSpaces.Main = ImGui::DockSpace(ImGui::GetID("Lunarium Editor Dockspace"));
if (!ImGui::DockBuilderGetNode(mDockSpaces.Main) || mResetDockSpace)
mDockSpaceID = ImGui::DockSpace(ImGui::GetID("Lunarium Editor Dockspace"));
if (!ImGui::DockBuilderGetNode(mDockSpaceID) || mResetDockSpace)
{
Logger::Log(mpEditor->GetLogCat(), LogLevel::INFO, "Resetting Dockspaces");
mResetDockSpace = false;
ImGui::DockBuilderRemoveNode(mDockSpaces.Main);
ImGui::DockBuilderAddNode(mDockSpaces.Main, ImGuiDockNodeFlags_DockSpace);
ImGui::DockBuilderSetNodeSize(mDockSpaces.Main, Viewport->Size);
ImGui::DockBuilderRemoveNode(mDockSpaceID);
ImGui::DockBuilderAddNode(mDockSpaceID, ImGuiDockNodeFlags_DockSpace);
ImGui::DockBuilderSetNodeSize(mDockSpaceID, Viewport->Size);
//ImGui::DockBuilderSetNodePos(mDockSpaces.Main, Viewport->WorkPos);
ImGui::DockBuilderSplitNode(mDockSpaces.Main, ImGuiDir_Left, 0.25f, &mDockSpaces.Left, &mDockSpaces.Center);
ImGui::DockBuilderSplitNode(mDockSpaces.Center, ImGuiDir_Right, 0.25f, &mDockSpaces.Right, &mDockSpaces.Center);
ImGui::DockBuilderSplitNode(mDockSpaces.Center, ImGuiDir_Down, 0.25f, &mDockSpaces.Bottom, &mDockSpaces.Center);
ImGui::DockBuilderFinish(mDockSpaces.Main);
ImGui::DockBuilderSplitNode(mDockSpaceID, ImGuiDir_Left, 0.25f, &mDockZoneIDs[PanelDockZone::DDZ_LEFT], &mDockZoneIDs[PanelDockZone::DDZ_CENTER]);
ImGui::DockBuilderSplitNode(mDockZoneIDs[PanelDockZone::DDZ_CENTER], ImGuiDir_Right, 0.2f, &mDockZoneIDs[PanelDockZone::DDZ_RIGHT], &mDockZoneIDs[PanelDockZone::DDZ_CENTER]);
ImGui::DockBuilderSplitNode(mDockZoneIDs[PanelDockZone::DDZ_CENTER], ImGuiDir_Down, 0.25f, &mDockZoneIDs[PanelDockZone::DDZ_BOTTOM], &mDockZoneIDs[PanelDockZone::DDZ_CENTER]);
ImGui::DockBuilderFinish(mDockSpaceID);
// Dock Panels
ImGui::DockBuilderDockWindow("World View", mDockSpaces.Center);
// ImGui::DockBuilderDockWindow("World View",mDockZoneIDs[PanelDefaultDockZone::DDZ_CENTER]);
// ImGui::DockBuilderDockWindow("World Tree", mDockZoneIDs[PanelDefaultDockZone::DDZ_LEFT]);
// ImGui::DockBuilderDockWindow("Properties", mDockZoneIDs[PanelDefaultDockZone::DDZ_RIGHT]);
// ImGui::DockBuilderDockWindow("Asset Browser", mDockZoneIDs[PanelDefaultDockZone::DDZ_BOTTOM]);
for (auto iter = mPanels.begin(); iter != mPanels.end(); iter++)
{
PanelDockZone dz = iter->second->GetDockZone();
if (dz != PanelDockZone::DDZ_NONE)
{
ImGui::DockBuilderDockWindow(iter->second->GetName(), mDockZoneIDs[dz]);
}
}
}
}

@ -9,6 +9,7 @@
#ifndef PANEL_MANAGER_H_
#define PANEL_MANAGER_H_
#include "panels/panel_defs.h"
#include <utils/opRes.h>
//#include "panels/mainPanel.h"
#include "panels/iPanel.h"
@ -21,16 +22,6 @@ namespace editor
class Editor;
class PanelManager
{
public:
struct DockSpaces
{
unsigned int Main;
unsigned int Left;
unsigned int Right;
unsigned int Center;
// unsigned int Top;
unsigned int Bottom;
};
public:
static PanelManager& GetInstance();
@ -43,7 +34,6 @@ namespace editor
bool IsOpen(PanelType type);
Panel* GetPanel(PanelType type);
const DockSpaces& GetDockSpaces() const;
void ResetDocking();
void OnTick(double delta);
@ -52,9 +42,10 @@ namespace editor
private:
Editor* mpEditor;
// MainPanel* mpMainPanel;
DockSpaces mDockSpaces;
bool mResetDockSpace;
std::map<PanelType, Panel*> mPanels;
unsigned int mDockSpaceID;
std::map<PanelDockZone, unsigned int> mDockZoneIDs;
private:
static PanelManager* mpInstance;

@ -16,7 +16,7 @@ namespace lunarium
namespace editor
{
AboutPanel::AboutPanel()
: Panel(PanelType::PT_ABOUT)
: Panel(PanelType::PT_ABOUT, "About", PanelDockZone::DDZ_NONE)
{
}
@ -27,7 +27,7 @@ namespace editor
return false;
ImGui::SetNextWindowSize(ImVec2(300, ImGui::GetFrameHeight() * 20));
if (!ImGui::Begin("About", &mIsOpen, ImGuiWindowFlags_NoCollapse ))
if (!ImGui::Begin(GetName(), &mIsOpen, ImGuiWindowFlags_NoCollapse ))
{
ImGui::End();
return false;

@ -15,7 +15,8 @@ namespace lunarium
namespace editor
{
AssetBrowser::AssetBrowser(std::filesystem::path dir)
: Panel(PanelType::PT_ASSET_BROWSER, true), mAssetDirectory(dir), mTreeRoot(nullptr), mSelectedNode(nullptr)
: Panel(PanelType::PT_ASSET_BROWSER, "Asset Browser", PanelDockZone::DDZ_BOTTOM, true),
mAssetDirectory(dir), mTreeRoot(nullptr), mSelectedNode(nullptr)
{
mTreeRoot = ReloadAssets(mAssetDirectory);
mSelectedNode = mTreeRoot;
@ -31,7 +32,7 @@ namespace editor
if (!mIsOpen)
return false;
if (!ImGui::Begin("Asset Browser", &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
if (!ImGui::Begin(GetName(), &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
{
ImGui::End();
return false;

@ -15,8 +15,8 @@ namespace lunarium
{
namespace editor
{
Panel::Panel(PanelType type,bool isOpen)
: mType(type), mIsOpen(isOpen), mForceDock(false)
Panel::Panel(PanelType type, std::string name, PanelDockZone dock_zone, bool isOpen)
: mType(type), mIsOpen(isOpen), mPanelName(name), mDockZone(dock_zone)
{
}
@ -26,6 +26,16 @@ namespace editor
return mType;
}
const char* Panel::GetName() const
{
return mPanelName.c_str();
}
PanelDockZone Panel::GetDockZone() const
{
return mDockZone;
}
void Panel::SetOpen(bool isOpen)
{
mIsOpen = isOpen;
@ -48,11 +58,6 @@ namespace editor
w = mWidth;
h = mHeight;
}
void Panel::ForceDock()
{
mForceDock = true;
}
void Panel::Update(float dt)
{

@ -9,29 +9,21 @@
#ifndef PANEL_H_
#define PANEL_H_
#include "panel_defs.h"
#include <string>
namespace lunarium
{
namespace editor
{
class Editor;
enum PanelType
{
PT_MAIN,
PT_ABOUT,
PT_WORLD_TREE,
PT_WORLD_VIEW,
PT_ASSET_BROWSER,
PT_PROPERTIES_VIEW,
PT_CONSOLE,
PT_UNKNOWN,
};
class Panel
{
public:
Panel(PanelType type, bool isOpen = false);
Panel(PanelType type, std::string name, PanelDockZone dock_zone, bool isOpen = false);
PanelType GetType() const;
const char* GetName() const;
virtual void Update(float dt);
virtual bool DoFrame() = 0;
@ -39,12 +31,13 @@ namespace editor
bool IsOpen();
void GetPosition(int& x, int& y) const;
void GetSize(int& w, int& h) const;
void ForceDock();
PanelDockZone GetDockZone() const;
protected:
PanelType mType;
std::string mPanelName;
bool mIsOpen;
bool mForceDock;
PanelDockZone mDockZone;
// Editor* mpEditor;
int mX;

@ -1,248 +0,0 @@
/******************************************************************************
* File - mainPanel.cpp
* Author - Joey Pollack
* Date - 2021/11/01 (y/m/d)
* Mod Date - 2021/11/01 (y/m/d)
* Description - The main window for the editor.
******************************************************************************/
#include "mainPanel.h"
#include "../editor.h"
#include <core/core.h>
#include <dearimgui/imgui.h>
#include <dearimgui/imgui_internal.h> // To use the DockWindowXXX methods
#include <utils/logger.h>
#include "../panel_manager.h"
namespace lunarium
{
namespace editor
{
MainPanel* MainPanel::mpInstance = nullptr;
MainPanel::MainPanel()
: Panel(PT_MAIN, true), mpEditor(nullptr), mResetDockSpace(false)
{
}
MainPanel& MainPanel::GetInstance()
{
if (!mpInstance)
{
mpInstance = new MainPanel;
}
return *mpInstance;
}
void MainPanel::FreeInstance()
{
delete mpInstance;
mpInstance = nullptr;
}
void MainPanel::SetEditor(Editor* e)
{
mpEditor = e;
}
const MainPanel::DockSpaces& MainPanel::GetDockSpaces() const
{
return mDockSpaces;
}
void MainPanel::ResetDockSpace()
{
mResetDockSpace = true;
}
bool MainPanel::DoFrame()
{
if (!mIsOpen)
return false;
DoMainMenu();
ImGuiViewport* Viewport = ImGui::GetMainViewport();
ImGui::SetNextWindowPos( Viewport->WorkPos );
ImGui::SetNextWindowSize( Viewport->WorkSize );
ImGui::SetNextWindowViewport( Viewport->ID );
ImGuiWindowFlags WindowFlags = 0;
WindowFlags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoDocking;
WindowFlags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;
ImGui::PushStyleVar( ImGuiStyleVar_WindowRounding, 0.0f );
ImGui::PushStyleVar( ImGuiStyleVar_WindowBorderSize, 0.0f );
ImGui::PushStyleVar( ImGuiStyleVar_WindowPadding, ImVec2( 0.0f, 0.0f ) );
// Core::MainWindow().GetFramebufferSize(&mWidth, &mHeight);
// Core::MainWindow().GetPosition(&mX, &mY);
float double_frame_height = ImGui::GetFrameHeight() * 2;
// ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
// ImGui::SetNextWindowSize(ImVec2(mWidth, mHeight - double_frame_height), ImGuiCond_Always);
// ImGui::SetNextWindowPos(ImVec2(mX, mY + ImGui::GetFrameHeight()), ImGuiCond_Always);
if (!ImGui::Begin("Lunarium Editor", &mIsOpen, WindowFlags))
{
MakeDockSpaces();
ImGui::End();
return false;
}
ImGui::PopStyleVar( 3 );
MakeDockSpaces();
// ImGui::PopStyleVar();
ImGui::End();
// // STATUS BAR
// const ImGuiViewport* viewport = ImGui::GetMainViewport();
// ImGui::SetNextWindowViewport(viewport->ID);
// ImGui::SetNextWindowSize(ImVec2(mWidth, ImGui::GetFrameHeight() - 15.0f), ImGuiCond_Always);
// ImGui::SetNextWindowPos(ImVec2(mX, mY + (mHeight - ImGui::GetFrameHeight() - 8.0f)), ImGuiCond_Always);
// ImGui::Begin("status bar", &mIsOpen, ImGuiWindowFlags_NoCollapse
// | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize
// | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoDocking );
// if (ImGui::BeginTable("status", 3, ImGuiTableFlags_BordersInnerV))
// {
// ImGui::AlignTextToFramePadding();
// ImGui::TableNextColumn();
// ImGui::Text("Lunarium");
// ImGui::TableNextColumn();
// ImGui::Text("Testing");
// ImGui::TableNextColumn();
// ImGui::Text("Status Bar");
// ImGui::EndTable();
// }
// ImGui::End();
return true;
}
void MainPanel::MakeDockSpaces()
{
ImGuiViewport* Viewport = ImGui::GetMainViewport();
mDockSpaces.Main = ImGui::DockSpace(ImGui::GetID("Lunarium Editor Dockspace"), Viewport->Size);
if (!ImGui::DockBuilderGetNode(mDockSpaces.Main) || mResetDockSpace)
{
Logger::Log(mpEditor->GetLogCat(), LogLevel::INFO, "Resetting Dockspaces");
mResetDockSpace = false;
ImGui::DockBuilderRemoveNode(mDockSpaces.Main);
ImGui::DockBuilderAddNode(mDockSpaces.Main, ImGuiDockNodeFlags_DockSpace);
ImGui::DockBuilderSetNodeSize(mDockSpaces.Main, Viewport->Size);
//ImGui::DockBuilderSetNodePos(mDockSpaces.Main, Viewport->WorkPos);
ImGui::DockBuilderSplitNode(mDockSpaces.Main, ImGuiDir_Left, 0.25f, &mDockSpaces.Left, &mDockSpaces.Center);
ImGui::DockBuilderSplitNode(mDockSpaces.Center, ImGuiDir_Right, 0.25f, &mDockSpaces.Right, &mDockSpaces.Center);
ImGui::DockBuilderSplitNode(mDockSpaces.Center, ImGuiDir_Down, 0.25f, &mDockSpaces.Bottom, &mDockSpaces.Center);
ImGui::DockBuilderFinish(mDockSpaces.Main);
// Dock Panels
ImGui::DockBuilderDockWindow("World View", mDockSpaces.Center);
}
//ImGui::DockSpace(mDockSpaces.Main);
}
void MainPanel::DoMainMenu()
{
ImGui::BeginMainMenuBar();
// File
if (ImGui::BeginMenu("File"))
{
if (ImGui::MenuItem("New Project"))
{
mpEditor->NewProject();
}
if (ImGui::MenuItem("Open Project"))
{
mpEditor->OpenProject();
}
if (ImGui::MenuItem("Save Project"))
{
mpEditor->SaveProject();
}
if (ImGui::MenuItem("Save Project As"))
{
mpEditor->SaveAs();
}
ImGui::Separator();
if (ImGui::MenuItem("Exit"))
{
mpEditor->Exit();
}
ImGui::EndMenu();
}
if (ImGui::BeginMenu("Windows"))
{
if (ImGui::MenuItem("Reset Window Docking"))
{
ResetDockSpace();
PanelManager::GetInstance().ResetDocking();
}
ImGui::EndMenu();
}
// Tools
if (ImGui::BeginMenu("Tools"))
{
if (ImGui::MenuItem("Map Editor"))
{
mpEditor->OpenMapEditor();
}
ImGui::EndMenu();
}
// TODO: If map editor is open show it's menu
if (mpEditor->IsToolOpen(ToolType::TT_MAP_EDITOR))
{
if (ImGui::BeginMenu("Map Editor"))
{
if (ImGui::BeginMenu("Windows"))
{
ImGui::EndMenu();
}
if (ImGui::BeginMenu("Settings"))
{
ImGui::EndMenu();
}
ImGui::EndMenu();
}
}
if (ImGui::BeginMenu("Help"))
{
if (ImGui::MenuItem("About"))
{
mpEditor->ShowAboutPanel();
}
ImGui::EndMenu();
}
ImGui::EndMainMenuBar();
}
}
}

@ -1,61 +0,0 @@
/******************************************************************************
* File - mainPanel.h
* Author - Joey Pollack
* Date - 2021/11/01 (y/m/d)
* Mod Date - 2021/11/01 (y/m/d)
* Description - The main window for the editor.
******************************************************************************/
#ifndef PANEL_MAIN_H_
#define PANEL_MAIN_H_
#include "iPanel.h"
namespace lunarium
{
namespace editor
{
class Editor;
class MainPanel : public Panel
{
public:
struct DockSpaces
{
unsigned int Main;
unsigned int Left;
unsigned int Right;
unsigned int Center;
// unsigned int Top;
unsigned int Bottom;
};
public:
MainPanel();
static MainPanel& GetInstance();
static void FreeInstance();
void SetEditor(Editor* e);
const DockSpaces& GetDockSpaces() const;
void ResetDockSpace();
// Returns false if the window is closed
bool DoFrame();
private:
static MainPanel* mpInstance;
MainPanel(const MainPanel&) = delete;
MainPanel& operator=(const MainPanel&) = delete;
private:
Editor* mpEditor;
DockSpaces mDockSpaces;
bool mResetDockSpace;
private: // HELPERS
void DoMainMenu();
void MakeDockSpaces();
};
}
}
#endif // PANEL_MAIN_H_

@ -0,0 +1,37 @@
/******************************************************************************
* File - panel_defs.h
* Author - Joey Pollack
* Date - 2022/02/08 (y/m/d)
* Mod Date - 2022/02/08 (y/m/d)
* Description - Common definitions for the panel system
******************************************************************************/
#ifndef PANEL_DEFS_H_
#define PANEL_DEFS_H_
namespace lunarium { namespace editor
{
enum PanelType
{
PT_MAIN,
PT_ABOUT,
PT_WORLD_TREE,
PT_WORLD_VIEW,
PT_ASSET_BROWSER,
PT_PROPERTIES_VIEW,
PT_CONSOLE,
PT_UNKNOWN,
};
enum PanelDockZone
{
DDZ_LEFT,
DDZ_CENTER,
DDZ_RIGHT,
DDZ_BOTTOM,
DDZ_NONE
};
}}
#endif // PANEL_DEFS_H_

@ -14,7 +14,7 @@
namespace lunarium { namespace editor
{
PropertiesView::PropertiesView()
: Panel(PT_PROPERTIES_VIEW, true)
: Panel(PT_PROPERTIES_VIEW, "Properties", PanelDockZone::DDZ_RIGHT, true)
{
}
@ -24,7 +24,7 @@ namespace lunarium { namespace editor
if (!mIsOpen)
return false;
if (!ImGui::Begin("Properties", &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
if (!ImGui::Begin(GetName(), &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
{
ImGui::End();
return false;

@ -16,7 +16,7 @@ namespace lunarium
namespace editor
{
WorldTree::WorldTree()
: Panel(PT_WORLD_TREE, true), mpWorld(nullptr)
: Panel(PT_WORLD_TREE, "World Tree", PanelDockZone::DDZ_LEFT, true), mpWorld(nullptr)
{
}
@ -36,7 +36,7 @@ namespace editor
if (!mIsOpen)
return false;
if (!ImGui::Begin("World Tree", &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
if (!ImGui::Begin(GetName(), &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
{
ImGui::End();
return false;

@ -18,7 +18,7 @@ namespace lunarium
namespace editor
{
WorldView::WorldView()
: Panel(PT_WORLD_VIEW, true), mpWorld(nullptr)
: Panel(PT_WORLD_VIEW, "World View", PanelDockZone::DDZ_CENTER ,true), mpWorld(nullptr)
{
}
@ -28,16 +28,7 @@ namespace editor
if (!mIsOpen)
return false;
//ImGui::SetNextWindowPosition()
if (mForceDock)
{
mForceDock = false;
//ImGui::SetNextWindowDockID(PanelManager::GetInstance().GetDockSpaces().Center, ImGuiCond_Appearing);
Logger::Log(LogCategory::CORE, LogLevel::INFO, "Attempting force-dock world view panel");
}
if (!ImGui::Begin("World View", &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
if (!ImGui::Begin(GetName(), &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar))
{
ImGui::End();
return false;

Loading…
Cancel
Save