|
|
|
#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::rect<float>rect,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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|