// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #include "buildTextDocument.hpp" #include "InitializedFontManager.hpp" #include "multi-line-string.hpp" #include namespace mockup { std::tuple buildEmptyTestDocument() { using namespace gui; auto &fontmanager = mockup::fontManager(); auto testfont = fontmanager.getFont(); auto document = TextDocument({}); return std::tuple{document, testfont}; } std::tuple buildTestDocument(gui::TextBlock::End lineEnd) { using namespace gui; const auto no_lines = 3; auto &fontmanager = mockup::fontManager(); auto testfont = fontmanager.getFont(); std::string text = mockup::multiLineString(no_lines); auto blocks = textToTextBlocks(text, testfont, lineEnd); auto document = TextDocument(blocks); return std::tuple{document, testfont}; } auto buildOnelineTestDocument(std::string text) -> std::tuple { using namespace gui; auto &fontmanager = fontManager(); auto testfont = fontmanager.getFont(); auto blocks = textToTextBlocks(text, testfont, gui::TextBlock::End::None); auto document = TextDocument(blocks); return std::tuple{document, testfont}; } auto buildMultilineTestDocument(std::list source) -> std::tuple { using namespace gui; auto &fontmanager = mockup::fontManager(); auto testfont = fontmanager.getFont(); std::list 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(); return TextDocument({TextBlock("", testfont, TextBlock::End::Newline)}); } } // namespace mockup