2017-07-05 07:37:57 -07:00
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// TGUI - Texus' Graphical User Interface
|
2018-03-22 11:57:45 -07:00
|
|
|
// Copyright (C) 2012-2018 Bruno Van de Velde (vdv_b@tgui.eu)
|
2017-07-05 07:37:57 -07:00
|
|
|
//
|
|
|
|
// This software is provided 'as-is', without any express or implied warranty.
|
|
|
|
// In no event will the authors be held liable for any damages arising from the use of this software.
|
|
|
|
//
|
|
|
|
// Permission is granted to anyone to use this software for any purpose,
|
|
|
|
// including commercial applications, and to alter it and redistribute it freely,
|
|
|
|
// subject to the following restrictions:
|
|
|
|
//
|
|
|
|
// 1. The origin of this software must not be misrepresented;
|
|
|
|
// you must not claim that you wrote the original software.
|
|
|
|
// If you use this software in a product, an acknowledgment
|
|
|
|
// in the product documentation would be appreciated but is not required.
|
|
|
|
//
|
|
|
|
// 2. Altered source versions must be plainly marked as such,
|
|
|
|
// and must not be misrepresented as being the original software.
|
|
|
|
//
|
|
|
|
// 3. This notice may not be removed or altered from any source distribution.
|
|
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2017-11-01 05:19:47 -07:00
|
|
|
#include "Tests.hpp"
|
2017-07-05 07:37:57 -07:00
|
|
|
#include <TGUI/Widgets/HorizontalWrap.hpp>
|
|
|
|
#include <TGUI/Widgets/Picture.hpp>
|
|
|
|
|
|
|
|
TEST_CASE("[HorizontalWrap]")
|
|
|
|
{
|
|
|
|
auto wrap = tgui::HorizontalWrap::create({140, "100%"});
|
|
|
|
wrap->setPosition(20, 10);
|
|
|
|
|
2017-07-28 14:03:58 -07:00
|
|
|
SECTION("Positioning widgets")
|
|
|
|
{
|
|
|
|
auto pic = tgui::Picture::create("resources/image.png");
|
|
|
|
pic->setSize({50, 40});
|
|
|
|
|
|
|
|
auto pic1 = tgui::Picture::copy(pic);
|
|
|
|
wrap->add(pic1);
|
|
|
|
REQUIRE(pic1->getPosition() == sf::Vector2f(0, 0));
|
|
|
|
|
|
|
|
auto pic2 = tgui::Picture::copy(pic);
|
|
|
|
wrap->add(pic2);
|
|
|
|
REQUIRE(pic2->getPosition() == sf::Vector2f(50, 0));
|
|
|
|
|
|
|
|
auto pic3 = tgui::Picture::copy(pic);
|
|
|
|
wrap->add(pic3);
|
|
|
|
REQUIRE(pic3->getPosition() == sf::Vector2f(0, 40));
|
|
|
|
|
|
|
|
auto pic4 = tgui::Picture::copy(pic);
|
|
|
|
wrap->add(pic4);
|
|
|
|
REQUIRE(pic4->getPosition() == sf::Vector2f(50, 40));
|
|
|
|
|
|
|
|
wrap->getRenderer()->setPadding({10});
|
|
|
|
REQUIRE(pic1->getPosition() == sf::Vector2f(0, 0));
|
|
|
|
REQUIRE(pic2->getPosition() == sf::Vector2f(60, 0));
|
|
|
|
REQUIRE(pic3->getPosition() == sf::Vector2f(0, 50));
|
|
|
|
REQUIRE(pic4->getPosition() == sf::Vector2f(60, 50));
|
|
|
|
|
2017-08-30 13:07:45 -07:00
|
|
|
wrap->getRenderer()->setSpaceBetweenWidgets(20);
|
2017-07-28 14:03:58 -07:00
|
|
|
REQUIRE(pic1->getPosition() == sf::Vector2f(0, 0));
|
|
|
|
REQUIRE(pic2->getPosition() == sf::Vector2f(70, 0));
|
|
|
|
REQUIRE(pic3->getPosition() == sf::Vector2f(0, 60));
|
|
|
|
REQUIRE(pic4->getPosition() == sf::Vector2f(70, 60));
|
|
|
|
|
2017-08-30 13:07:45 -07:00
|
|
|
wrap->getRenderer()->setSpaceBetweenWidgets(21);
|
2017-07-28 14:03:58 -07:00
|
|
|
REQUIRE(pic1->getPosition() == sf::Vector2f(0, 0));
|
|
|
|
REQUIRE(pic2->getPosition() == sf::Vector2f(0, 61));
|
|
|
|
REQUIRE(pic3->getPosition() == sf::Vector2f(0, 122));
|
|
|
|
REQUIRE(pic4->getPosition() == sf::Vector2f(0, 183));
|
|
|
|
|
2017-08-30 13:07:45 -07:00
|
|
|
wrap->getRenderer()->setSpaceBetweenWidgets(20);
|
2017-07-28 14:03:58 -07:00
|
|
|
wrap->removeAllWidgets();
|
|
|
|
|
|
|
|
auto pic5 = tgui::Picture::copy(pic);
|
|
|
|
pic5->setSize({80, 60});
|
|
|
|
wrap->add(pic5);
|
|
|
|
|
|
|
|
auto pic6 = tgui::Picture::copy(pic);
|
|
|
|
pic6->setSize({80, 60});
|
|
|
|
wrap->add(pic6);
|
|
|
|
|
|
|
|
auto pic7 = tgui::Picture::copy(pic);
|
|
|
|
pic7->setSize({20, 20});
|
|
|
|
wrap->add(pic7);
|
|
|
|
|
|
|
|
auto pic8 = tgui::Picture::copy(pic);
|
|
|
|
wrap->add(pic8);
|
|
|
|
|
|
|
|
REQUIRE(pic5->getPosition() == sf::Vector2f(0, 0));
|
|
|
|
REQUIRE(pic6->getPosition() == sf::Vector2f(0, 80));
|
|
|
|
REQUIRE(pic7->getPosition() == sf::Vector2f(100, 80));
|
|
|
|
REQUIRE(pic8->getPosition() == sf::Vector2f(0, 160));
|
|
|
|
}
|
|
|
|
|
|
|
|
testWidgetRenderer(wrap->getRenderer());
|
|
|
|
SECTION("Renderer")
|
|
|
|
{
|
|
|
|
auto renderer = wrap->getRenderer();
|
|
|
|
|
|
|
|
SECTION("set serialized property")
|
|
|
|
{
|
|
|
|
REQUIRE_NOTHROW(renderer->setProperty("SpaceBetweenWidgets", "15"));
|
|
|
|
REQUIRE_NOTHROW(renderer->setProperty("Padding", "(1, 2, 3, 4)"));
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("set object property")
|
|
|
|
{
|
|
|
|
REQUIRE_NOTHROW(renderer->setProperty("SpaceBetweenWidgets", 15));
|
|
|
|
REQUIRE_NOTHROW(renderer->setProperty("Padding", tgui::Padding{1, 2, 3, 4}));
|
|
|
|
}
|
|
|
|
|
|
|
|
SECTION("functions")
|
|
|
|
{
|
|
|
|
renderer->setSpaceBetweenWidgets(15);
|
|
|
|
renderer->setPadding({1, 2, 3, 4});
|
|
|
|
}
|
|
|
|
|
|
|
|
REQUIRE(renderer->getProperty("SpaceBetweenWidgets").getNumber() == 15);
|
|
|
|
REQUIRE(renderer->getProperty("Padding").getOutline() == tgui::Padding(1, 2, 3, 4));
|
|
|
|
|
|
|
|
REQUIRE(renderer->getSpaceBetweenWidgets() == 15);
|
|
|
|
REQUIRE(renderer->getPadding() == tgui::Padding(1, 2, 3, 4));
|
|
|
|
}
|
2017-07-25 09:54:59 -07:00
|
|
|
|
|
|
|
SECTION("Saving and loading from file")
|
|
|
|
{
|
2017-08-30 13:07:45 -07:00
|
|
|
wrap->getRenderer()->setSpaceBetweenWidgets(20);
|
2017-07-28 14:03:58 -07:00
|
|
|
|
|
|
|
auto pic = tgui::Picture::create("resources/image.png");
|
|
|
|
pic->setSize({50, 40});
|
|
|
|
|
|
|
|
auto pic5 = tgui::Picture::copy(pic);
|
|
|
|
pic5->setSize({80, 60});
|
|
|
|
wrap->add(pic5);
|
|
|
|
|
|
|
|
auto pic6 = tgui::Picture::copy(pic);
|
|
|
|
pic6->setSize({80, 60});
|
|
|
|
wrap->add(pic6);
|
|
|
|
|
|
|
|
auto pic7 = tgui::Picture::copy(pic);
|
|
|
|
pic7->setSize({20, 20});
|
|
|
|
wrap->add(pic7);
|
|
|
|
|
|
|
|
auto pic8 = tgui::Picture::copy(pic);
|
|
|
|
wrap->add(pic8);
|
|
|
|
|
2017-07-25 09:54:59 -07:00
|
|
|
testSavingWidget("HorizontalWrap", wrap, false);
|
|
|
|
}
|
2017-07-05 07:37:57 -07:00
|
|
|
}
|