~aleteoryx/muditaos

ref: 3ff04e06c9eab6de2c9a2ded0876bed2d87eab93 muditaos/module-apps/application-settings/windows/OptionsWidgetMaker.hpp -rw-r--r-- 1.6 KiB
3ff04e06 — Maciej Gibowicz [BH-1944] Changing the rounding method for minutes in relaxation 1 year, 9 months 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
// 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 <OptionWindow.hpp>

namespace gui
{
    ///  @brief Helping class for easy options creation/manipulation
    class OptionsWidgetMaker
    {
      public:
        ///  Constructor
        ///  @param window pointer to parent option window
        explicit OptionsWidgetMaker(OptionWindow *window);

        ///  Adds switch option to the given options list
        ///  @param list list to be updated
        ///  @param text option description text
        ///  @param option state of option
        ///  @param callback called whenever option is changed
        ///  @param indent should the option be indent
        void addSwitchOption(std::list<gui::Option> &list,
                             const UTF8 &text,
                             bool &option,
                             const std::function<void()> &callback,
                             bool indent = false);

        ///  Adds select option to the given options list
        ///  @param list list to be updated
        ///  @param text option description text
        ///  @param callback called whenever option is clicked
        ///  @param indent should the option be indent
        void addSelectOption(std::list<gui::Option> &list,
                             const UTF8 &text,
                             const std::function<void(void)> &callback,
                             bool indent = false);

      private:
        ///  Pointer to the window containing the options
        OptionWindow *mWindow = nullptr;
    };
} // namespace gui