diff options
Diffstat (limited to 'src/menu.cpp')
-rw-r--r-- | src/menu.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/menu.cpp b/src/menu.cpp index 4da4574..cfb0dd6 100644 --- a/src/menu.cpp +++ b/src/menu.cpp | |||
@@ -1,12 +1,25 @@ | |||
1 | #include "menu.h" | 1 | #include "menu.h" |
2 | 2 | ||
3 | std::vector<MenuItem> CreateMenu(const std::vector<MenuBuilder>& builders) { | 3 | Menu::Menu(const std::vector<MenuBuilder>& builders) { |
4 | std::vector<MenuItem> result; | 4 | items_.reserve(builders.size()); |
5 | result.reserve(builders.size()); | ||
6 | 5 | ||
7 | for (const MenuBuilder& builder : builders) { | 6 | for (const MenuBuilder& builder : builders) { |
8 | result.push_back(builder.Build()); | 7 | items_.push_back(builder.Build()); |
9 | } | 8 | } |
9 | } | ||
10 | |||
11 | void Menu::moveCursorUp() { | ||
12 | cursor_--; | ||
10 | 13 | ||
11 | return result; | 14 | if (cursor_ < 0) { |
15 | cursor_ = items_.size() - 1; | ||
16 | } | ||
17 | } | ||
18 | |||
19 | void Menu::moveCursorDown() { | ||
20 | cursor_++; | ||
21 | |||
22 | if (cursor_ >= items_.size()) { | ||
23 | cursor_ = 0; | ||
24 | } | ||
12 | } | 25 | } |