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.
56 lines
1.1 KiB
C++
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_
|