#pragma once #include "Menu.h" class MenuComponent{ friend class Menu; MenuType menuDest; bool hovered=false; bool selectable=true; private: float hoverEffect=0; protected: geom2d::rectrect; std::string label; bool border=true; bool draggable=false; MenuFunc onClick; public: MenuComponent(geom2d::rectrect,std::string label,MenuFunc onClick,bool selectable=true); MenuComponent(geom2d::rectrect,std::string label,MenuType menuDest,MenuFunc onClick,bool selectable=true); virtual void Update(Crawler*game); virtual void Draw(Crawler*game,vf2d parentPos,bool focused); //We picked up a draggable component, we should make a copy and return it here. If a nullptr is returned here, the pickup is not allowed. virtual MenuComponent*PickUpDraggableItem(); //We are attempting to drop draggable onto this item. If it's not allowed, return false. virtual bool DropDraggableItem(MenuComponent*draggable); };