Files
MuditaOS/module-gui/test/mock/buildTextDocument.cpp
pholat 50a1f97643 [feature] Font handling feature (#527)
* Font renamed to RawFont
* Added gui::Font adapter
2020-07-15 12:15:14 +02:00

65 lines
2.2 KiB
C++

#include "buildTextDocument.hpp"
#include "TextDocument.hpp"
#include "multi-line-string.hpp"
#include <module-gui/gui/widgets/TextParse.hpp>
#include "InitializedFontManager.hpp"
namespace mockup
{
std::tuple<gui::TextDocument, gui::RawFont *> buildEmptyTestDocument()
{
using namespace gui;
auto &fontmanager = mockup::fontManager();
auto testfont = fontmanager.getFont(0);
auto document = TextDocument({});
return std::tuple{document, testfont};
}
std::tuple<gui::TextDocument, gui::RawFont *> buildTestDocument()
{
using namespace gui;
const auto no_lines = 3;
auto &fontmanager = mockup::fontManager();
auto testfont = fontmanager.getFont(0);
std::string text = mockup::multiLineString(no_lines);
auto blocks = textToTextBlocks(text, testfont);
auto document = TextDocument(blocks);
return std::tuple{document, testfont};
}
auto buildOnelineTestDocument(std::string text) -> std::tuple<gui::TextDocument, gui::RawFont *>
{
using namespace gui;
auto &fontmanager = fontManager();
auto testfont = fontmanager.getFont(0);
auto blocks = textToTextBlocks(text, testfont, gui::TextBlock::End::None);
auto document = TextDocument(blocks);
return std::tuple{document, testfont};
}
auto buildMultilineTestDocument(std::list<std::string> source) -> std::tuple<gui::TextDocument, gui::RawFont *>
{
using namespace gui;
auto &fontmanager = mockup::fontManager();
auto testfont = fontmanager.getFont(0);
std::list<TextBlock> blocks;
for (auto el : source) {
blocks.emplace_back(TextBlock(el, testfont, TextBlock::End::Newline));
}
auto document = TextDocument(blocks);
return std::tuple{document, testfont};
}
auto buildJustNewlineTestDocument() -> gui::TextDocument
{
using namespace gui;
auto &fontmanager = mockup::fontManager();
auto testfont = fontmanager.getFont(0);
return TextDocument({TextBlock("", testfont, TextBlock::End::Newline)});
}
} // namespace mockup