#pragma once #include "MenuComponent.h" #include "DEFINES.h" #include "Crawler.h" #include "utils.h" INCLUDE_game class MenuLabel:public MenuComponent{ bool shadow=false; bool centered=true; public: inline MenuLabel(MenuType parent,geom2d::rectrect,std::string label,bool centered=true,bool shadow=false) :MenuComponent(parent,rect,label,MenuFunc{},false),centered(centered),shadow(shadow){ border=false; } inline void SetLabel(std::string text){ label=text; } protected: virtual void inline Update(Crawler*game)override{ MenuComponent::Update(game); } virtual void inline Draw(Crawler*game,vf2d parentPos,bool focused)override{ std::string wrappedText=util::WrapText(game,label,rect.size.x,true,{1,1}); vf2d drawPos=parentPos+rect.middle()-game->GetTextSizeProp(wrappedText)/2; //Assume centered. if(!centered){ drawPos=rect.pos+parentPos; } if(shadow){ game->DrawShadowStringProp(drawPos,wrappedText,focused?WHITE:WHITE*"ThemeGlobal.MenuUnfocusedColorMult"_F); }else{ game->DrawStringProp(drawPos,wrappedText,focused?WHITE:WHITE*"ThemeGlobal.MenuUnfocusedColorMult"_F); } } };