// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include "ApplicationMeditation.hpp" #include #include #include #include namespace app { class ProgressTimerWithBarGraphAndCounter; } namespace gui { class MeditationTimer : public HBox { public: MeditationTimer(std::uint32_t x, std::uint32_t y, std::uint32_t width, std::uint32_t height, app::ApplicationMeditation *app, Item *_parent = nullptr); [[nodiscard]] auto onDimensionChanged(const BoundingBox &oldDim, const BoundingBox &newDim) -> bool override; void setCounterVisible(bool isVisible) noexcept; [[nodiscard]] app::TimerWithCallbacks &getTimer() noexcept; [[nodiscard]] gui::Progress &getProgress() noexcept; void playSound(); private: void build(); app::ApplicationMeditation *application = nullptr; CircularProgressBar *progressBar = nullptr; Text *text = nullptr; std::unique_ptr timer; }; } // namespace gui