~aleteoryx/muditaos

ref: ca9579a252e7ea6186b2dedb4dd6f66309eb0d93 muditaos/module-gui/gui/widgets/status-bar/SIM.hpp -rw-r--r-- 1.4 KiB
ca9579a2 — Dawid Wojtas [BH-1590] Light press ends the Power Nap 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "Image.hpp"
#include "status-bar/StatusBarWidgetBase.hpp"
#include <EventStore.hpp>

namespace gui::status_bar
{
    class SIMConfiguration : public StatusBarVisitor
    {
      public:
        enum class DisplayMode
        {
            AnyState,
            OnlyInactiveState
        };

        explicit SIMConfiguration(DisplayMode mode);

        [[nodiscard]] DisplayMode getMode() const noexcept;

        void visit([[maybe_unused]] gui::status_bar::SIM &widget) const override;

      private:
        DisplayMode mode;
    };

    class SIM : public StatusBarWidgetBase<Image>
    {
        Store::GSM::SIM current            = Store::GSM::SIM::SIM_UNKNOWN;
        SIMConfiguration::DisplayMode mode = SIMConfiguration::DisplayMode::AnyState;
        friend class SIMConfiguration;

      public:
        SIM(Item *parent, uint32_t x, uint32_t y);

        /// check if sim set in state -> if not -> show new sim
        void update();

        void show() override;

        void acceptStatusBarVisitor(StatusBarVisitor &visitor) override;
    };

    class SIMDevelopersMode : public SIM
    {
      public:
        SIMDevelopersMode(Item *parent, uint32_t x, uint32_t y);

        void show() override;
    };
} // namespace gui::status_bar