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/panels/iPanel.h

56 lines
1.1 KiB
C++

/******************************************************************************
* File - iPanel.h
* Author - Joey Pollack
* Date - 2021/11/01 (y/m/d)
* Mod Date - 2021/11/01 (y/m/d)
* Description - Base class for all editor panels
******************************************************************************/
#ifndef PANEL_H_
#define PANEL_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,
};
class Panel
{
public:
Panel(PanelType type, bool isOpen = false);
PanelType GetType() const;
virtual void Update(float dt);
virtual bool DoFrame() = 0;
void SetOpen(bool isOpen);
bool IsOpen();
void GetPosition(int& x, int& y) const;
void GetSize(int& w, int& h) const;
protected:
PanelType mType;
bool mIsOpen;
int mX;
int mY;
int mWidth;
int mHeight;
protected:
void UpdateMetaInfo();
};
}
}
#endif // PANEL_H_