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.h

81 lines
1.7 KiB
C++

/******************************************************************************
* File - editor.h
* 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.
******************************************************************************/
#ifndef EDITOR_H_
#define EDITOR_H_
#include <core/iRunMode.h>
#include <utils/opRes.h>
#include "project/project.h"
#include <filesystem>
#include <map>
namespace lunarium
{
class FileBrowser;
namespace editor
{
enum ToolType
{
TT_MAIN_EDITOR,
TT_MAP_EDITOR,
};
class MapEditor;
class Editor : public iRunMode
{
public:
Editor();
OpRes Initialize();
void Shutdown();
void OnTick(double delta);
void OnRender(lunarium::IGraphics* g);
uint32_t GetLogCat() const;
unsigned int GetNextWindowID();
bool IsToolOpen(ToolType type) const;
private:
Editor(const Editor&) = delete;
const Editor& operator=(const Editor&) = delete;
private: // Data
uint32_t mLogCat;
Project mProject;
// Tools
unsigned int mNextWindowID;
MapEditor* mpMapEditor;
FileBrowser* mpFileBrowser;
const std::filesystem::path* mpPath;
// Menu Bar Events
// Don't want to handles these events during rendering
bool mDoNewProject;
bool mDoOpenProject;
bool mDoSaveProject;
bool mDoSaveAs;
private: // HELPERS
void DoMainMenu();
void DoStatusBar();
void DestroyTools();
void HandleMenuEvents();
};
}
}
#endif // EDITOR_H_