#pragma once #include "olcUTIL_Geometry2D.h" #include "MenuType.h" #include class Menu; class Crawler; class MenuComponent{ friend class Menu; MenuType menuDest; std::string label; MenuFunc onClick; bool hovered=false; private: float hoverEffect=0; protected: geom2d::rectrect; public: MenuComponent(geom2d::rectrect,std::string label,MenuFunc onClick); MenuComponent(geom2d::rectrect,std::string label,MenuType menuDest,MenuFunc onClick); virtual void Update(Crawler*game); virtual void Draw(Crawler*game,vf2d parentPos); }; class MenuIconButton:public MenuComponent{ private: Decal*icon; public: MenuIconButton(geom2d::rectrect,Decal*icon,MenuFunc onClick); protected: virtual void Update(Crawler*game)override; virtual void Draw(Crawler*game,vf2d parentPos)override; };