Files
MuditaOS/module-gui/gui/widgets/visitor/ItemNode.hpp
Piotr Tański 1d2f5cf7a4 [EGD-7754] Dates bumped in disclaimers
Dates bumped from 2020 to 2021.
2021-10-11 19:08:26 +02:00

37 lines
858 B
C++

// 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 "Item.hpp"
namespace gui
{
class Item;
/// General wrapper for a `gui::Item`'s parent-children hierarchy. Encapsulates a object's reference together with
/// it's level in a hierarchy
class ItemNode
{
public:
static constexpr auto rootLevel = 0;
explicit ItemNode(gui::Item &item, int level = rootLevel) : item{item}, level{level}
{}
[[nodiscard]] auto getItem() noexcept -> gui::Item &
{
return item;
}
[[nodiscard]] auto getLevel() const noexcept -> int
{
return level;
}
private:
gui::Item &item;
int level = rootLevel;
};
} // namespace gui