mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-02 02:48:51 -05:00
130 lines
5.9 KiB
C++
130 lines
5.9 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 "CertificationWindow.hpp"
|
|
|
|
#include <application-settings/widgets/SettingsStyle.hpp>
|
|
#include <application-settings/windows/WindowNames.hpp>
|
|
#include <TextFixedSize.hpp>
|
|
#include <ImageBox.hpp>
|
|
|
|
namespace gui
|
|
{
|
|
CertificationWindow::CertificationWindow(app::ApplicationCommon *app)
|
|
: AppWindow(app, gui::window::name::certification)
|
|
{
|
|
buildInterface();
|
|
}
|
|
|
|
void CertificationWindow::buildInterface()
|
|
{
|
|
AppWindow::buildInterface();
|
|
|
|
setTitle(utils::translate("app_settings_certification"));
|
|
|
|
navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
|
|
|
|
auto body = new VBox(this,
|
|
style::window::default_left_margin,
|
|
style::window::default_vertical_pos,
|
|
style::window::default_body_width,
|
|
style::window::default_body_height);
|
|
body->setEdges(RectangleEdge::None);
|
|
|
|
createEntryWithTextsAndImage(body,
|
|
"United States",
|
|
"<text>Contains FCC IDs:<br></br>XMR201903EG25G, RFR-BL871</text>",
|
|
"settings_certification_US");
|
|
|
|
createEntryWithTextsAndImage(body,
|
|
"Canada",
|
|
"<text>Contains ISED IDs:<br></br>10224A-201903EG25G, 23249-BL871</text>",
|
|
"settings_certification_Canada");
|
|
|
|
createEntryWithTextsAndImage(body, "Australia/New Zealand", "", "settings_certification_Australia");
|
|
|
|
createEntryWithTitlesAndImages(
|
|
body, "Europe", "settings_certification_Eurlope", "United Kingdom", "settings_certification_UKCA");
|
|
|
|
body->resizeItems();
|
|
}
|
|
|
|
void CertificationWindow::createEntryWithTextsAndImage(Item *parent,
|
|
const std::string &title,
|
|
const std::string &description,
|
|
const std::string &imageName)
|
|
{
|
|
auto elemHeight = !description.empty() ? style::certification::entry_with_texts_and_image_max_h
|
|
: style::certification::entry_with_texts_and_image_min_h;
|
|
|
|
auto entryBody = new HBox(parent);
|
|
entryBody->setMinimumSize(style::window::default_body_width, elemHeight);
|
|
entryBody->setEdges(RectangleEdge::None);
|
|
entryBody->setMargins(Margins(0, style::margins::very_big, 0, style::margins::very_big));
|
|
|
|
auto textBody = new VBox(entryBody);
|
|
textBody->setMinimumHeight(elemHeight);
|
|
textBody->setMaximumWidth(style::window::default_body_width);
|
|
textBody->setEdges(RectangleEdge::None);
|
|
|
|
auto imageBody = new ImageBox(entryBody, 0, 0, 0, 0, new Image(imageName));
|
|
imageBody->setMinimumSizeToFitImage();
|
|
imageBody->setAlignment(Alignment(Alignment::Vertical::Top));
|
|
|
|
createTitle(textBody, title);
|
|
|
|
if (!description.empty()) {
|
|
auto descriptionText = new TextFixedSize(textBody, 0, 0, 0, 0);
|
|
descriptionText->drawUnderline(false);
|
|
descriptionText->setFont(style::window::font::small);
|
|
descriptionText->setMinimumHeightToFitText(2);
|
|
descriptionText->setMaximumWidth(style::window::default_body_width);
|
|
descriptionText->setMargins(Margins(0, style::margins::very_big, 0, 0));
|
|
descriptionText->setRichText(description);
|
|
}
|
|
}
|
|
|
|
void CertificationWindow::createTitle(Item *parent, const std::string &title)
|
|
{
|
|
auto titleText = new TextFixedSize(parent, 0, 0, 0, 0);
|
|
titleText->drawUnderline(false);
|
|
titleText->setFont(style::window::font::smallbold);
|
|
titleText->setMinimumHeightToFitText();
|
|
titleText->setMaximumWidth(style::window::default_body_width);
|
|
titleText->setMaximumHeight(style::certification::entry_with_texts_and_image_max_h);
|
|
titleText->setAlignment(Alignment(Alignment::Vertical::Center));
|
|
titleText->setText(title);
|
|
}
|
|
|
|
void CertificationWindow::createTitleAndImage(Item *parent, const std::string &title, const std::string &imageName)
|
|
{
|
|
auto entryBody = new VBox(parent);
|
|
entryBody->setMinimumHeight(style::certification::entry_with_texts_and_image_max_h);
|
|
entryBody->setMaximumWidth(style::window::default_body_width / 2);
|
|
entryBody->setEdges(RectangleEdge::None);
|
|
|
|
createTitle(entryBody, title);
|
|
|
|
auto imageBody = new ImageBox(entryBody, 0, 0, 0, 0, new Image(imageName));
|
|
imageBody->setMinimumSizeToFitImage();
|
|
imageBody->setMinimumHeight(style::certification::entry_with_texts_and_image_min_h);
|
|
imageBody->setAlignment(Alignment(Alignment::Vertical::Bottom));
|
|
}
|
|
|
|
void CertificationWindow::createEntryWithTitlesAndImages(Item *parent,
|
|
const std::string &title1,
|
|
const std::string &imageName1,
|
|
const std::string &title2,
|
|
const std::string &imageName2)
|
|
{
|
|
auto entryBody = new HBox(parent);
|
|
entryBody->setMinimumSize(style::window::default_body_width,
|
|
style::certification::entry_with_texts_and_image_max_h);
|
|
entryBody->setEdges(RectangleEdge::None);
|
|
entryBody->setMargins(Margins(0, style::margins::very_big, 0, style::margins::very_big));
|
|
|
|
createTitleAndImage(entryBody, title1, imageName1);
|
|
createTitleAndImage(entryBody, title2, imageName2);
|
|
}
|
|
} // namespace gui
|