✅ Added draw tests for MenuBar, RangeSlider, Tabs and TextBox
@ -115,17 +115,20 @@ TEST_CASE("[MenuBar]")
|
||||
menuBar->addMenu("Help");
|
||||
menuBar->addMenuItem("About");
|
||||
|
||||
REQUIRE(menuBar->getMenus().size() == 3);
|
||||
REQUIRE(menuBar->getMenus()["File"].size() == 2);
|
||||
REQUIRE(menuBar->getMenus()["File"][0] == "Load");
|
||||
REQUIRE(menuBar->getMenus()["File"][1] == "Save");
|
||||
REQUIRE(menuBar->getMenus()["Edit"].size() == 4);
|
||||
REQUIRE(menuBar->getMenus()["Edit"][0] == "Undo");
|
||||
REQUIRE(menuBar->getMenus()["Edit"][1] == "Redo");
|
||||
REQUIRE(menuBar->getMenus()["Edit"][2] == "Copy");
|
||||
REQUIRE(menuBar->getMenus()["Edit"][3] == "Paste");
|
||||
REQUIRE(menuBar->getMenus()["Help"].size() == 1);
|
||||
REQUIRE(menuBar->getMenus()["Help"][0] == "About");
|
||||
SECTION("Verify that menus were added")
|
||||
{
|
||||
REQUIRE(menuBar->getMenus().size() == 3);
|
||||
REQUIRE(menuBar->getMenus()["File"].size() == 2);
|
||||
REQUIRE(menuBar->getMenus()["File"][0] == "Load");
|
||||
REQUIRE(menuBar->getMenus()["File"][1] == "Save");
|
||||
REQUIRE(menuBar->getMenus()["Edit"].size() == 4);
|
||||
REQUIRE(menuBar->getMenus()["Edit"][0] == "Undo");
|
||||
REQUIRE(menuBar->getMenus()["Edit"][1] == "Redo");
|
||||
REQUIRE(menuBar->getMenus()["Edit"][2] == "Copy");
|
||||
REQUIRE(menuBar->getMenus()["Edit"][3] == "Paste");
|
||||
REQUIRE(menuBar->getMenus()["Help"].size() == 1);
|
||||
REQUIRE(menuBar->getMenus()["Help"][0] == "About");
|
||||
}
|
||||
|
||||
SECTION("Adding menu items to older menu")
|
||||
{
|
||||
@ -161,6 +164,12 @@ TEST_CASE("[MenuBar]")
|
||||
REQUIRE(menuBar->getMenus()["Edit"].size() == 4);
|
||||
REQUIRE(menuBar->getMenus()["Help"].size() == 1);
|
||||
}
|
||||
|
||||
SECTION("Removing all menus")
|
||||
{
|
||||
menuBar->removeAllMenus();
|
||||
REQUIRE(menuBar->getMenus().empty());
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Invalid addMenuItem calls")
|
||||
@ -184,7 +193,14 @@ TEST_CASE("[MenuBar]")
|
||||
REQUIRE(menuBar->getMinimumSubMenuWidth() == 150);
|
||||
}
|
||||
|
||||
// TODO: setInvertedMenuDirection
|
||||
SECTION("InvertedMenuDirection")
|
||||
{
|
||||
REQUIRE(!menuBar->getInvertedMenuDirection());
|
||||
menuBar->setInvertedMenuDirection(true);
|
||||
REQUIRE(menuBar->getInvertedMenuDirection());
|
||||
menuBar->setInvertedMenuDirection(false);
|
||||
REQUIRE(!menuBar->getInvertedMenuDirection());
|
||||
}
|
||||
|
||||
SECTION("Events / Signals")
|
||||
{
|
||||
@ -288,4 +304,45 @@ TEST_CASE("[MenuBar]")
|
||||
|
||||
testSavingWidget("MenuBar", menuBar);
|
||||
}
|
||||
|
||||
SECTION("Draw")
|
||||
{
|
||||
TEST_DRAW_INIT(150, 70, menuBar)
|
||||
|
||||
menuBar->enable();
|
||||
menuBar->setPosition(10, 5);
|
||||
menuBar->setSize(130, 20);
|
||||
menuBar->setTextSize(16);
|
||||
menuBar->setMinimumSubMenuWidth(60);
|
||||
|
||||
menuBar->addMenu("File");
|
||||
menuBar->addMenuItem("Quit");
|
||||
menuBar->addMenu("Edit");
|
||||
menuBar->addMenuItem("Undo");
|
||||
menuBar->addMenuItem("Redo");
|
||||
menuBar->addMenu("Help");
|
||||
|
||||
tgui::MenuBarRenderer renderer = tgui::RendererData::create();
|
||||
renderer.setTextColor(sf::Color::Red);
|
||||
renderer.setSelectedTextColor(sf::Color::Blue);
|
||||
renderer.setBackgroundColor(sf::Color::Green);
|
||||
renderer.setSelectedBackgroundColor(sf::Color::Yellow);
|
||||
renderer.setDistanceToSide(3);
|
||||
renderer.setOpacity(0.7f);
|
||||
menuBar->setRenderer(renderer.getData());
|
||||
|
||||
TEST_DRAW("MenuBar.png")
|
||||
|
||||
sf::Vector2f mousePos = {52, 15};
|
||||
menuBar->mouseMoved(mousePos);
|
||||
menuBar->leftMousePressed(mousePos);
|
||||
menuBar->leftMouseReleased(mousePos);
|
||||
|
||||
TEST_DRAW("MenuBar_MenuOpen.png")
|
||||
|
||||
mousePos = {52, 55};
|
||||
menuBar->mouseMoved(mousePos);
|
||||
|
||||
TEST_DRAW("MenuBar_MenuHover.png")
|
||||
}
|
||||
}
|
||||
|
@ -292,4 +292,97 @@ TEST_CASE("[RangeSlider]")
|
||||
|
||||
testSavingWidget("RangeSlider", slider, false);
|
||||
}
|
||||
|
||||
SECTION("Draw")
|
||||
{
|
||||
TEST_DRAW_INIT(120, 60, slider)
|
||||
|
||||
slider->enable();
|
||||
slider->setPosition({10, 15});
|
||||
slider->setSize({100, 30});
|
||||
slider->setMinimum(1000);
|
||||
slider->setMaximum(2000);
|
||||
slider->setSelectionStart(1200);
|
||||
slider->setSelectionEnd(1650);
|
||||
|
||||
tgui::RangeSliderRenderer renderer = tgui::RendererData::create();
|
||||
renderer.setTrackColor(sf::Color::Green);
|
||||
renderer.setThumbColor(sf::Color::Red);
|
||||
renderer.setBorderColor(sf::Color::Blue);
|
||||
renderer.setSelectedTrackColor(sf::Color::White);
|
||||
renderer.setBorders({1, 2, 3, 4});
|
||||
renderer.setOpacity(0.7f);
|
||||
slider->setRenderer(renderer.getData());
|
||||
|
||||
auto setHoverRenderer = [&](bool textured){
|
||||
renderer.setTrackColorHover(sf::Color::Cyan);
|
||||
renderer.setThumbColorHover(sf::Color::Magenta);
|
||||
renderer.setBorderColorHover(sf::Color::Yellow);
|
||||
renderer.setSelectedTrackColorHover(sf::Color::Black);
|
||||
if (textured)
|
||||
{
|
||||
renderer.setTextureTrackHover("resources/Texture3.png");
|
||||
renderer.setTextureThumbHover("resources/Texture4.png");
|
||||
}
|
||||
};
|
||||
|
||||
const auto mousePos = slider->getPosition() + (slider->getSize() / 2.f);
|
||||
|
||||
SECTION("Colored")
|
||||
{
|
||||
SECTION("NormalState")
|
||||
{
|
||||
TEST_DRAW("RangeSlider_Normal_NormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(false);
|
||||
TEST_DRAW("RangeSlider_Normal_HoverSet.png")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("HoverState")
|
||||
{
|
||||
slider->mouseMoved(mousePos);
|
||||
|
||||
TEST_DRAW("RangeSlider_Hover_NormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(false);
|
||||
TEST_DRAW("RangeSlider_Hover_HoverSet.png")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Textured")
|
||||
{
|
||||
renderer.setTextureTrack("resources/Texture1.png");
|
||||
renderer.setTextureThumb("resources/Texture2.png");
|
||||
|
||||
SECTION("NormalState")
|
||||
{
|
||||
TEST_DRAW("RangeSlider_Normal_TextureNormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(true);
|
||||
TEST_DRAW("RangeSlider_Normal_TextureHoverSet.png")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("HoverState")
|
||||
{
|
||||
slider->mouseMoved(mousePos);
|
||||
|
||||
TEST_DRAW("RangeSlider_Hover_TextureNormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(true);
|
||||
TEST_DRAW("RangeSlider_Hover_TextureHoverSet.png")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -155,4 +155,121 @@ TEST_CASE("[Tabs]")
|
||||
|
||||
testSavingWidget("Tabs", tabs);
|
||||
}
|
||||
|
||||
SECTION("Draw")
|
||||
{
|
||||
TEST_DRAW_INIT(120, 40, tabs)
|
||||
|
||||
tabs->enable();
|
||||
tabs->setPosition({10, 5});
|
||||
tabs->setSize({100, 30});
|
||||
tabs->add("1");
|
||||
tabs->add("2");
|
||||
tabs->add("3");
|
||||
|
||||
tgui::TabsRenderer renderer = tgui::RendererData::create();
|
||||
renderer.setBackgroundColor(sf::Color::Green);
|
||||
renderer.setSelectedBackgroundColor(sf::Color::Black);
|
||||
renderer.setTextColor(sf::Color::Red);
|
||||
renderer.setSelectedTextColor(sf::Color::White);
|
||||
renderer.setBorderColor({235, 125, 0});
|
||||
renderer.setBorders({1, 2, 3, 4});
|
||||
renderer.setOpacity(0.7f);
|
||||
tabs->setRenderer(renderer.getData());
|
||||
|
||||
auto setHoverRenderer = [&](bool textured){
|
||||
renderer.setBackgroundColorHover(sf::Color::Cyan);
|
||||
renderer.setSelectedBackgroundColorHover(sf::Color::Blue);
|
||||
renderer.setTextColorHover(sf::Color::Magenta);
|
||||
renderer.setSelectedTextColorHover(sf::Color::Yellow);
|
||||
if (textured)
|
||||
{
|
||||
//renderer.setTextureTabHover("resources/Texture3.png");
|
||||
//renderer.setTextureSelectedTabHover("resources/Texture4.png");
|
||||
}
|
||||
};
|
||||
|
||||
SECTION("Colored")
|
||||
{
|
||||
SECTION("NormalState")
|
||||
{
|
||||
TEST_DRAW("Tabs_Normal_NormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(false);
|
||||
TEST_DRAW("Tabs_Normal_HoverSet.png")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("HoverState (mouse not over selected tab)")
|
||||
{
|
||||
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() / 2.f));
|
||||
|
||||
TEST_DRAW("Tabs_Hover_NormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(false);
|
||||
TEST_DRAW("Tabs_Hover_HoverSet.png")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("HoverState (mouse on selected tab)")
|
||||
{
|
||||
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() * (2.f / 3.f)));
|
||||
|
||||
TEST_DRAW("Tabs_HoverSelected_NormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(false);
|
||||
TEST_DRAW("Tabs_HoverSelected_HoverSet.png")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Textured")
|
||||
{
|
||||
renderer.setTextureTab("resources/Texture1.png");
|
||||
renderer.setTextureSelectedTab("resources/Texture2.png");
|
||||
|
||||
SECTION("NormalState")
|
||||
{
|
||||
TEST_DRAW("Tabs_Normal_TextureNormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(true);
|
||||
TEST_DRAW("Tabs_Normal_TextureHoverSet.png")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("HoverState")
|
||||
{
|
||||
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() / 2.f));
|
||||
|
||||
TEST_DRAW("Tabs_Hover_TextureNormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(true);
|
||||
TEST_DRAW("Tabs_Hover_TextureHoverSet.png")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("HoverState")
|
||||
{
|
||||
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() * (2.f / 3.f)));
|
||||
|
||||
TEST_DRAW("Tabs_HoverSelected_TextureNormalSet.png")
|
||||
|
||||
SECTION("HoverSet")
|
||||
{
|
||||
setHoverRenderer(true);
|
||||
TEST_DRAW("Tabs_HoverSelected_TextureHoverSet.png")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -150,8 +150,30 @@ TEST_CASE("[TextBox]")
|
||||
REQUIRE(textBox->isVerticalScrollbarPresent() == true);
|
||||
}
|
||||
|
||||
// TODO: setCaretPosition
|
||||
// TODO: getLinesCount
|
||||
SECTION("CaretPosition")
|
||||
{
|
||||
REQUIRE(textBox->getCaretPosition() == 0);
|
||||
|
||||
textBox->setText("Some\ntext");
|
||||
REQUIRE(textBox->getCaretPosition() == 9);
|
||||
|
||||
textBox->setCaretPosition(7);
|
||||
REQUIRE(textBox->getCaretPosition() == 7);
|
||||
|
||||
textBox->setCaretPosition(25);
|
||||
REQUIRE(textBox->getCaretPosition() == 9);
|
||||
}
|
||||
|
||||
SECTION("LinesCount")
|
||||
{
|
||||
REQUIRE(textBox->getLinesCount() == 1);
|
||||
|
||||
textBox->setText("Some text");
|
||||
REQUIRE(textBox->getLinesCount() == 1);
|
||||
|
||||
textBox->setText("More\nthan\none\nline");
|
||||
REQUIRE(textBox->getLinesCount() == 4);
|
||||
}
|
||||
|
||||
SECTION("Events / Signals")
|
||||
{
|
||||
@ -267,6 +289,50 @@ TEST_CASE("[TextBox]")
|
||||
testSavingWidget("TextBox", textBox);
|
||||
}
|
||||
|
||||
SECTION("Draw")
|
||||
{
|
||||
TEST_DRAW_INIT(270, 160, textBox)
|
||||
|
||||
textBox->enable();
|
||||
textBox->setPosition(10, 5);
|
||||
textBox->setSize(250, 150);
|
||||
textBox->setText("Something");
|
||||
textBox->setTextSize(16);
|
||||
textBox->setText("Cupcake ipsum dolor sit. Amet candy canes sesame snaps cupcake apple pie lemon drops jelly apple pie candy canes. Powder donut sugar plum croissant gingerbread sesame snaps pie. Caramels cupcake icing. Bear claw lemon drops carrot cake chocolate ice cream jelly beans gummi bears.");
|
||||
|
||||
tgui::TextBoxRenderer renderer = tgui::RendererData::create();
|
||||
renderer.setBackgroundColor(sf::Color::Yellow);
|
||||
renderer.setTextColor(sf::Color::Blue);
|
||||
renderer.setSelectedTextColor(sf::Color::Red);
|
||||
renderer.setSelectedTextBackgroundColor(sf::Color::Cyan);
|
||||
renderer.setCaretColor(sf::Color::Green);
|
||||
renderer.setBorderColor(sf::Color::Magenta);
|
||||
renderer.setCaretWidth(1);
|
||||
renderer.setBorders({1, 2, 3, 4});
|
||||
renderer.setPadding({4, 3, 2, 1});
|
||||
renderer.setOpacity(0.7f);
|
||||
textBox->setRenderer(renderer.getData());
|
||||
|
||||
tgui::ScrollbarRenderer scrollbarRenderer = tgui::RendererData::create();
|
||||
scrollbarRenderer.setTrackColor(sf::Color::Green);
|
||||
scrollbarRenderer.setThumbColor(sf::Color::Red);
|
||||
scrollbarRenderer.setArrowBackgroundColor(sf::Color::Blue);
|
||||
scrollbarRenderer.setArrowColor(sf::Color::White);
|
||||
scrollbarRenderer.setOpacity(0.7f);
|
||||
renderer.setScrollbar(scrollbarRenderer.getData());
|
||||
|
||||
SECTION("Colored")
|
||||
{
|
||||
TEST_DRAW("TextBox.png")
|
||||
}
|
||||
|
||||
SECTION("Textured")
|
||||
{
|
||||
renderer.setTextureBackground("resources/Texture1.png");
|
||||
TEST_DRAW("TextBox_Textured.png")
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Bug Fixes")
|
||||
{
|
||||
SECTION("ctrl+alt+A should not act as ctrl+A (https://github.com/texus/TGUI/issues/43)")
|
||||
|
BIN
tests/expected/MenuBar.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
tests/expected/MenuBar_MenuHover.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
tests/expected/MenuBar_MenuOpen.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
tests/expected/RangeSlider_Hover_HoverSet.png
Normal file
After Width: | Height: | Size: 590 B |
BIN
tests/expected/RangeSlider_Hover_NormalSet.png
Normal file
After Width: | Height: | Size: 592 B |
BIN
tests/expected/RangeSlider_Hover_TextureHoverSet.png
Normal file
After Width: | Height: | Size: 928 B |
BIN
tests/expected/RangeSlider_Hover_TextureNormalSet.png
Normal file
After Width: | Height: | Size: 903 B |
BIN
tests/expected/RangeSlider_Normal_HoverSet.png
Normal file
After Width: | Height: | Size: 592 B |
BIN
tests/expected/RangeSlider_Normal_NormalSet.png
Normal file
After Width: | Height: | Size: 592 B |
BIN
tests/expected/RangeSlider_Normal_TextureHoverSet.png
Normal file
After Width: | Height: | Size: 903 B |
BIN
tests/expected/RangeSlider_Normal_TextureNormalSet.png
Normal file
After Width: | Height: | Size: 903 B |
BIN
tests/expected/Tabs_HoverSelected_HoverSet.png
Normal file
After Width: | Height: | Size: 1007 B |
BIN
tests/expected/Tabs_HoverSelected_NormalSet.png
Normal file
After Width: | Height: | Size: 1007 B |
BIN
tests/expected/Tabs_HoverSelected_TextureHoverSet.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
tests/expected/Tabs_HoverSelected_TextureNormalSet.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
tests/expected/Tabs_Hover_HoverSet.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
tests/expected/Tabs_Hover_NormalSet.png
Normal file
After Width: | Height: | Size: 1007 B |
BIN
tests/expected/Tabs_Hover_TextureHoverSet.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
tests/expected/Tabs_Hover_TextureNormalSet.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
tests/expected/Tabs_Normal_HoverSet.png
Normal file
After Width: | Height: | Size: 1007 B |
BIN
tests/expected/Tabs_Normal_NormalSet.png
Normal file
After Width: | Height: | Size: 1007 B |
BIN
tests/expected/Tabs_Normal_TextureHoverSet.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
tests/expected/Tabs_Normal_TextureNormalSet.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
tests/expected/TextBox.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
tests/expected/TextBox_Textured.png
Normal file
After Width: | Height: | Size: 16 KiB |