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/run_modes/editor/editor.cpp

138 lines
2.6 KiB
C++

/******************************************************************************
* File - editor.cpp
* Author - Joey Pollack
* Date - 2021/11/01 (y/m/d)
* Mod Date - 2021/11/01 (y/m/d)
* Description - Entry point for the editor run mode.
******************************************************************************/
#include "editor.h"
#include "panels/mainPanel.h"
#include <core/core.h>
#include <utils/logger.h>
// Panels
#include "panels/about.h"
namespace lunarium
{
Editor::Editor()
: mLogCat(-1), mpMainPanel(nullptr), mDoNewProject(false), mDoOpenProject(false),
mDoSaveProject(false), mDoSaveAs(false)
{
}
OpRes Editor::Initialize()
{
mLogCat = Logger::RegisterCategory("EDITOR");
mpMainPanel = &MainPanel::GetInstance();
mpMainPanel->SetEditor(this);
CreatePanels();
return OpRes::OK();
}
void Editor::Shutdown()
{
MainPanel::FreeInstance();
}
void Editor::OnTick(double delta)
{
HandleMenuEvents();
}
void Editor::OnRender(IGraphics* g)
{
mpMainPanel->DoFrame();
for (auto iter = mPanels.begin(); iter != mPanels.end(); iter++)
{
if (iter->second->IsOpen())
{
iter->second->DoFrame();
}
}
}
uint32_t Editor::GetLogCat() const
{
return mLogCat;
}
////////////////////////////////////////////////////////////
// HELPER METHODS
////////////////////////////////////////////////////////////
void Editor::CreatePanels()
{
mPanels[PanelType::PT_ABOUT] = new AboutPanel;
}
void Editor::HandleMenuEvents()
{
///////////////////////////
// FILE
if (mDoNewProject)
{
mDoNewProject = false;
}
if (mDoOpenProject)
{
mDoOpenProject = false;
}
if (mDoSaveProject)
{
mDoSaveProject = false;
}
if (mDoSaveAs)
{
mDoSaveAs = false;
}
///////////////////////////
}
////////////////////////////////////////////////////////////
// MENU BAR EVENTS
////////////////////////////////////////////////////////////
void Editor::NewProject()
{
mDoNewProject = true;
}
void Editor::OpenProject()
{
}
void Editor::SaveProject()
{
}
void Editor::SaveAs()
{
}
void Editor::Exit()
{
Core::GetInstance().SignalShutdown();
}
void Editor::ShowAboutPanel()
{
mPanels[PanelType::PT_ABOUT]->SetOpen(true);
}
}