|
|
|
|
/******************************************************************************
|
|
|
|
|
* 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);
|
|
|
|
|
}
|
|
|
|
|
}
|