// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "RawText.hpp" #include #include namespace gui { RawText::RawText(UTF8 text, RawFont *font, Color color) : Item() { this->text = text; this->font = font; this->color = color; widgetArea.w = this->font->getPixelWidth(text); widgetArea.h = this->font->info.line_height; } UTF8 RawText::stripNewlineToDraw() { auto textToDraw = text; if (textToDraw.length() > 0 && textToDraw[textToDraw.length() - 1] == text::newline) { textToDraw.removeChar(textToDraw.length() - 1); } return textToDraw; } void RawText::buildDrawListImplementation(std::list &commands) { if (font) { auto cmd = std::make_unique(); cmd->str = stripNewlineToDraw(); cmd->fontID = font->id; cmd->color = color; cmd->origin = {drawArea.x, drawArea.y}; cmd->width = drawArea.w; cmd->height = drawArea.h; cmd->textOrigin = {0, static_cast(this->font->info.base)}; cmd->textHeight = widgetArea.h; cmd->areaX = widgetArea.x; cmd->areaY = widgetArea.y; cmd->areaW = widgetArea.w; cmd->areaH = widgetArea.h; commands.emplace_back(std::move(cmd)); } } } // namespace gui