/****************************************************************************** * 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_