~aleteoryx/muditaos

ref: bc737e93f697de2dda221f8f97f0ce0ff05edd0b muditaos/module-apps/locks/widgets/LockBoxAlternatingSize.cpp -rw-r--r-- 1.2 KiB
bc737e93 — Przemyslaw Brudny [EGD-5885] Added SimLockHandler 4 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
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "Lock.hpp"
#include "LockBoxAlternatingSize.hpp"

#include <locks/data/LockStyle.hpp>
#include <locks/windows/LockInputWindow.hpp>

namespace gui
{
    void LockBoxAlternatingSize::buildLockBox(unsigned int pinSize)
    {
        buildPinLabels(0);
    }

    void LockBoxAlternatingSize::clear()
    {
        lockWindow->pinLabelsBox->erase();
        buildPinLabels(0);
    }

    void LockBoxAlternatingSize::popChar(unsigned int charNum)
    {
        buildPinLabels(charNum);
    }

    void LockBoxAlternatingSize::putChar(unsigned int charNum)
    {
        buildPinLabels(charNum + 1);
    }

    void LockBoxAlternatingSize::buildPinLabels(unsigned int pinSize)
    {
        if (lockWindow->pinLabelsBox) {
            lockWindow->pinLabelsBox->erase();
        }

        auto itemBuilder = []() {
            auto label = new gui::Image("dot_12px_hard_alpha_W_G");
            return label;
        };

        lockWindow->buildPinLabels(itemBuilder, pinSize);
        lockWindow->pinLabelsBox->setEdges(RectangleEdge::Bottom);
    }
} // namespace gui