Files
MuditaOS/module-apps/widgets/TextWithIconsWidget.cpp
Michał Kamoń 48f7cf171d [EGD-6755] Add updated notification icons
This PR adds/updates notification icons to latest version provided
by designs.

Also this PR provides new implementation for CallLogDetailsWindow.
The window was using one of the icons updated. To avoid making
temporary corrections on the icon's hardcoded (x,y,w,h) properties,
the entire window was redesign to use up-to-date ModuitaOS GUI
features.
2021-05-19 08:10:49 +02:00

68 lines
2.3 KiB
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "TextWithIconsWidget.hpp"
#include <Style.hpp>
#include <TextFixedSize.hpp>
#include <Image.hpp>
#include <Application.hpp>
using namespace gui;
TextWithIconsWidget::TextWithIconsWidget(gui::Item *parent)
{
assert(parent);
setMinimumSize(style::window::default_body_width, style::widgets::h);
setEdges(gui::RectangleEdge::None);
setAlignment(Alignment(gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center));
parent->addWidget(this);
}
void TextWithIconsWidget::addIcon(ImageBox *icon)
{
assert(icon);
icon->setMargins(Margins(0, 0, style::widgets::rightMargin, 0));
addWidget(icon);
icons.push_back(icon);
}
namespace
{
[[nodiscard]] auto createText(const std::string &text, const UTF8 &font)
{
auto textFixedSize = new TextFixedSize(nullptr, 0, 0, 0, 0);
textFixedSize->setUnderline(false);
textFixedSize->setMaximumSize(style::window::default_body_width, style::widgets::h);
textFixedSize->setFont(font);
textFixedSize->setEdges(gui::RectangleEdge::None);
textFixedSize->setEditMode(EditMode::Browse);
textFixedSize->setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
textFixedSize->setMargins(Margins(style::widgets::leftMargin, 0, 0, 0));
textFixedSize->setText(text);
textFixedSize->activeItem = false;
return textFixedSize;
}
[[nodiscard]] auto createSnippet(const UTF8 &snippetName)
{
auto snippet = new gui::Image(snippetName);
snippet->setAlignment(Alignment(gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Center));
snippet->activeItem = false;
return snippet;
}
} // namespace
void TextWithIconsWidget::addText(const std::string &text, const UTF8 &font)
{
addWidget(createText(text, font));
}
TextWithSnippet::TextWithSnippet(const std::string &text, const UTF8 &font, const UTF8 &snippet)
{
setMinimumSize(style::window::default_body_width, style::widgets::h);
setEdges(gui::RectangleEdge::None);
setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
addWidget(createSnippet(snippet));
addWidget(createText(text, font));
}