// 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 #include #include #include 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", "Contains FCC IDs:

XMR201903EG25G, RFR-BL871
", "settings_certification_US"); createEntryWithTextsAndImage(body, "Canada", "Contains ISED IDs:

10224A-201903EG25G, 23249-BL871
", "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