#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);
        }
    }
};