-
-
Notifications
You must be signed in to change notification settings - Fork 6
Item
- Fundamentals
- Examples
- Methods
The EKG library contains an item collector named ekg::item, the item is a recursive vector collection.
The item contains the following fields:
-
valuedisplay-text/tag of item. -
attrthe attribute flag defines the rendering, and processing behavior. -
child_listchild list to other items. -
componentgeometry data of item component.
Setting a value to an item is simple:
ekg::item item("animals"); // constructor explicit
ekg::item item {"animals"}; // initialization-list implicit
ekg::item item = {"animals"}; // assign initialization-list implicit
ekg::item item {}; // initialization-list implicit
item.value = "animals"; // accessing the field, but is not too recommendeddItem contains attr (attributes) flags and state flags, both manually configurable or automatically by setting the value component with special chars.
Special chars:
-
\tadd automatically the attributeekg::attr::separator. -
\\add automatically the attributeekg::attr::box. -
\1add automatically the attributeekg::attr::category. -
\2add automatically the attributeekg::attr::row. -
\3add automatically the attributeekg::attr::row_member. -
\4add automatically the attributeekg::attr::unselectable.
ekg::item item {"Animals"};
item.set_value("\t\\Select All");
// insert a std::vector<std::string> to item.
item.insert({"\\Dogs"});
item.insert({"\\Cats"});
item.insert({"\\Humans"});You can iterate over the item children using for loop:
ekg::item item("animals");
item.insert({"dogs", "cats", "humans"});
for (ekg::item &items : item) {
std::cout << items.value << std::endl;
}Set value with attributes check, use this instead of setting directly the field.
void set_value(std::string_view _value);Initialize an item child without generating a copy.
ekg::item &emplace_back();Insert an item copy in the child list.
void push_back(const ekg::item &item);Insert an item by setting the value.
void push_back(std::string_view item_value);Insert a std::vector<ekg::item> child list.
void insert(const std::vector<std::string> &item_value_list);Get the child item by index position.
ekg::item &at(uint64_t index);Check if has item children.
bool empty() const;Get the size of the child list.
uint64_t size() const;Get begin iterator point.
std::vector<ekg::item>::iterator begin();Get end iterator point.
std::vector<ekg::item>::iterator end();Get const begin iterator point.
std::vector<ekg::item>::const_iterator cbegin() const;Get const end iterator point.
std::vector<ekg::item>::const_iterator cend() const;