// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "MeditationListItems.hpp" #include "application-meditation/data/Style.hpp" #include using namespace gui; namespace listStyle = style::meditation::itemList; MeditationListItem::MeditationListItem(std::string textValue) { setMargins(Margins(0, style::margins::big, 0, 0)); setMinimumSize(listStyle::text::Width, listStyle::text::Height); setMaximumSize(listStyle::text::Width, listStyle::text::Height); setEdges(RectangleEdge::Bottom | RectangleEdge::Top); setPenFocusWidth(style::window::default_border_focus_w); setPenWidth(style::window::default_border_no_focus_w); text = new gui::Label( this, listStyle::text::X, listStyle::text::Y, listStyle::text::Width, listStyle::text::Height, textValue); style::window::decorate(text); text->setFont(style::window::font::medium); text->setEllipsis(Ellipsis::Right); text->setVisible(true); } PreparationTimeItem::PreparationTimeItem(std::chrono::seconds _duration) : MeditationListItem(convertToPrintable(_duration)), duration(_duration) { MeditationListItem::text->setFont(style::window::font::big); imageSelectionTick = new gui::Image(this, listStyle::image::X, listStyle::image::Y, listStyle::image::Width, listStyle::image::Height, "small_tick_W_M"); imageSelectionTick->setVisible(false); imageSelectionTick->setAlignment(Alignment(Alignment::Horizontal::Right)); } void PreparationTimeItem::select(bool isSelected) { imageSelectionTick->setVisible(isSelected); } std::string PreparationTimeItem::convertToPrintable(std::chrono::seconds _duration) { if (_duration.count() > 60) { return std::to_string(static_cast((_duration.count()) / 60)) + " m"; } return std::to_string(static_cast(_duration.count())) + " s"; } OptionItemMeditationCounter::OptionItemMeditationCounter(bool isCounterOn) : MeditationListItem(utils::translate("app_meditation_option_show_counter")) { imageOptionOn = new gui::Image(this, listStyle::image::X, listStyle::image::OnOffY, listStyle::image::Width, listStyle::image::Height, "btn_on"); imageOptionOff = new gui::Image(this, listStyle::image::X, listStyle::image::OnOffY, listStyle::image::Width, listStyle::image::Height, "btn_off"); imageOptionOn->setVisible(isCounterOn); imageOptionOff->setVisible(!isCounterOn); } void OptionItemMeditationCounter::select(bool isSelected) { imageOptionOn->setVisible(isSelected); imageOptionOff->setVisible(!isSelected); } OptionItemPreparation::OptionItemPreparation() : MeditationListItem(utils::translate("app_meditation_preparation_time")) { image = new gui::Image(this, listStyle::image::X, listStyle::image::Y, listStyle::image::Width, listStyle::image::Height, "right_label_arrow_border"); image->setVisible(true); }