24 template <std::predicate<
int> Predicate>
32 std::function<
bool(
int slot)> _predicate;
39 {
row.ToItem() } -> std::same_as<MenuItem>;
83 std::function<
void(
int slot,
int index)>
commit, std::optional<ChoiceIndex>
bind,
int index,
96 std::optional<ChoiceIndex>
Bind;
104 std::vector<std::string>
labels;
200 _emptyText = std::move(
label);
207 if (_menu.
Items.empty() && !_emptyText.empty())
209 Text(std::move(_emptyText));
212 return std::make_shared<Menu>(std::move(_menu));
217 std::string _emptyText;
bool operator()(int slot) const
EnabledCondition(bool value)
EnabledCondition()=default
EnabledCondition(Predicate predicate)
MenuItem ChoiceItem(std::string label, std::vector< std::string > choices, std::function< void(int slot, int index)> commit, std::optional< ChoiceIndex > bind, int index, EnabledCondition enabled, ChoiceApply apply)
@ Text
Not selectable; a caption or a summary line.
static std::string ReadFile(const std::filesystem::path &path)
std::function< void(int slot, int index)> Set
std::function< int(int slot)> Get
std::vector< Labeled< T > > Choices
std::function< void(int slot, const T &value)> Commit
std::optional< ChoiceIndex > Bind
std::function< bool(int slot)> Get
std::function< void(int slot)> Flip