class hiro::gui::CheckboxList

Overview

List of checkbox elements that can be managed in a group. More…

#include <GuiTypes.h>

class CheckboxList: public hiro::gui::TElement {
public:
    // methods

    size_t AddItem(const std::string& title, bool state = false, const std::optional<size_t> id = std::nullopt);
    hiro::gui::CheckboxList* SetItemColor(size_t id, const cogs::Color3f& color);
    hiro::gui::CheckboxList* SubscribeItems(const std::function<void(uint32_t, bool)>& func);
};

Inherited Members

public:
    // methods

    bool TestCondition() const;
    uint32_t GetId() const;
    C* SetConditionFunc(std::function<bool(void)> condition_func);
    C* SetConditionBool(bool* var, hiro::BoolFunc func = hiro::BoolFunc::equals_true);
    C* Subscribe(std::function<void(const C*)> callback_func);

protected:
    // methods

    void SetConditionFuncImpl(std::function<bool(void)> condition_func);
    virtual void NotifyChange() const;

Detailed Documentation

List of checkbox elements that can be managed in a group.

Methods

size_t AddItem(const std::string& title, bool state = false, const std::optional<size_t> id = std::nullopt)

Add checkbox element to the list.

Parameters:

title

Checkbox element title.

state

Initial state of checkbox.

id

User defined item identifier. When not specified, equal to the number of elements already in the list.

Returns:

Identifier of an item. Equal to parameter id when specified.

hiro::gui::CheckboxList* SetItemColor(size_t id, const cogs::Color3f& color)

Assigns custom color to the item.

Parameters:

id

Identifier of an item.

color

Color used to highlight an item. Default black

hiro::gui::CheckboxList* SubscribeItems(const std::function<void(uint32_t, bool)>& func)

Subscribe callback function that will be invoked on item state change.

When the state of any checkbox element in a list changes, the specified function will be invoked. The first parameter of a function holds an identifier of the checkbox whose state has been changed. The second parameter holds the new state of the checkbox.