#include <TGUI/TGUI.hpp>
using namespace sf;
FloatRect handleResize(Event::SizeEvent size)
{
    unsigned int iw = size.width;
    unsigned int ih = size.height;
    float fh(ih), fw(iw);//If size is in a 16:9 ratio, it won't change.
    if(iw/16 < ih/9)//Taller than a 16:9 ratio
        fh = iw * (9.0/16.0);
    else if(iw/16 > ih/9)//Larger than a 16:9 ratio
        fw = ih * (16.0/9.0);
    float scalex = fw/iw;
    float scaley = fh/ih;
    return FloatRect((1-scalex)/2.0f, (1-scaley)/2.0f, scalex, scaley);
}


int main()
{
    sf::RenderWindow window(sf::VideoMode(1024, 576), "TGUI window");
    tgui::Gui gui(window);
    gui.setGlobalFont("square_caps.ttf");

    tgui::Panel::Ptr logo(gui);
    logo->setSize(2000, 2000);
    logo->setPosition(50, 50);
    logo->setBackgroundColor(sf::Color(0, 0, 0, 0));

    tgui::Label::Ptr label(*logo);
    label->load("Black.conf");
    label->setText("Some Text");
    label->setTextSize(240);
    label->setPosition(10, 10);
    label->setTextColor(Color::Black);
    label->setBackgroundColor(sf::Color(123,123, 120, 255));
    label->setTextSize(label->getTextSize()*0.5f);//<-------- HERE
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if(event.type == Event::Closed)
            {
                window.close();
                exit(0);
            }
            else if(event.type == Event::Resized)
            {
                View view = window.getView();
                view.setViewport(handleResize(event.size));
                window.setView(view);
            }
            gui.handleEvent(event, false);
        }
        window.clear(sf::Color::White);
        gui.draw(false);
        window.display();
    }
    return 0;
}
