// 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 #include #include 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 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