mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-09-18 17:18:08 +08:00
Add index to EntryState (#933)
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
This commit is contained in:
@@ -226,5 +226,50 @@ TEST(MenuTest, AnimationsVertical) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST(MenuTest, EntryIndex) {
|
||||
int selected = 0;
|
||||
std::vector<std::string> entries = {"0", "1", "2"};
|
||||
|
||||
auto option = MenuOption::Vertical();
|
||||
option.entries = &entries;
|
||||
option.selected = &selected;
|
||||
option.entries_option.transform = [&](const EntryState& state) {
|
||||
int curidx = std::stoi(state.label);
|
||||
EXPECT_EQ(state.index, curidx);
|
||||
return text(state.label);
|
||||
};
|
||||
auto menu = Menu(option);
|
||||
menu->OnEvent(Event::ArrowDown);
|
||||
menu->OnEvent(Event::ArrowDown);
|
||||
menu->OnEvent(Event::Return);
|
||||
entries.resize(2);
|
||||
(void)menu->Render();
|
||||
}
|
||||
|
||||
TEST(MenuTest, MenuEntryIndex) {
|
||||
int selected = 0;
|
||||
|
||||
MenuEntryOption option;
|
||||
option.transform = [&](const EntryState& state) {
|
||||
int curidx = std::stoi(state.label);
|
||||
EXPECT_EQ(state.index, curidx);
|
||||
return text(state.label);
|
||||
};
|
||||
auto menu = Container::Vertical(
|
||||
{
|
||||
MenuEntry("0", option),
|
||||
MenuEntry("1", option),
|
||||
MenuEntry("2", option),
|
||||
},
|
||||
&selected);
|
||||
|
||||
menu->OnEvent(Event::ArrowDown);
|
||||
menu->OnEvent(Event::ArrowDown);
|
||||
menu->OnEvent(Event::Return);
|
||||
for (int index = 0; index < menu->ChildCount(); index++) {
|
||||
EXPECT_EQ(menu->ChildAt(index)->Index(), index);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace ftxui
|
||||
// NOLINTEND
|
||||
|
Reference in New Issue
Block a user