~aleteoryx/muditaos

muditaos/module-gui/test/mock/TestListViewProvider.hpp -rw-r--r-- 1.8 KiB
a405cad6Aleteoryx trim readme 6 days 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
56
57
58
59
60
61
62
63
64
65
66
67
68
// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md

#pragma once
#include <module-gui/gui/widgets/ListItem.hpp>
#include <module-gui/gui/widgets/ListView.hpp>
#include <module-gui/gui/widgets/ListItemProvider.hpp>

namespace testStyle
{

    const inline uint32_t list_x = 0;
    const inline uint32_t list_y = 0;
    const inline uint32_t list_w = 200;
    const inline uint32_t list_h = 600;

    const inline uint32_t item_w = 200;
    const inline uint32_t item_h = 100;
} // namespace testStyle

namespace gui
{

    class TestListItem : public ListItem
    {

      public:
        unsigned int ID = 0;

        TestListItem(unsigned int ID, bool deleteByList);
        ~TestListItem() = default;
    };

    enum class TestListViewDataSource
    {
        Internal,
        External
    };

    class TestListViewProvider : public ListItemProvider
    {
        int modelIndex              = 0;
        unsigned int internalOffset = 0;
        unsigned int internalLimit  = 0;
        std::vector<ListItem *> internalData;

      public:
        unsigned int testItemCount         = 10;
        unsigned int testItemMinimalHeight = 100;
        bool notEqualItems                 = false;
        TestListViewDataSource dataSource  = TestListViewDataSource::External;
        Margins testItemMargins            = Margins();

        TestListViewProvider();

        virtual ~TestListViewProvider();

        [[nodiscard]] unsigned int requestRecordsCount() override;

        unsigned int getMinimalItemSpaceRequired() const override;

        ListItem *getItem(Order order) override;

        void requestRecords(const uint32_t offset, const uint32_t limit) override;

        void refreshList();
    };
} // namespace gui