summary refs log tree commit diff stats
path: root/src/menu.h
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2021-03-13 08:42:18 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2021-03-13 15:34:50 -0500
commit72709189edf800d52fe29eea59880bce28becc82 (patch)
tree53f7a6b98546ea8359c0207c64d7119bd202e3c1 /src/menu.h
parent764efea5a38b970fa57d8c0197673276023b58aa (diff)
downloadtanetane-72709189edf800d52fe29eea59880bce28becc82.tar.gz
tanetane-72709189edf800d52fe29eea59880bce28becc82.tar.bz2
tanetane-72709189edf800d52fe29eea59880bce28becc82.zip
Rendered some menu options
#7
Diffstat (limited to 'src/menu.h')
-rw-r--r--src/menu.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/menu.h b/src/menu.h new file mode 100644 index 0000000..1b91b88 --- /dev/null +++ b/src/menu.h
@@ -0,0 +1,37 @@
1#ifndef MENU_H_3F6E62B3
2#define MENU_H_3F6E62B3
3
4#include <memory>
5#include <string>
6#include <vector>
7
8enum class MenuType {
9 Command
10};
11
12struct MenuItem {
13 MenuType type = MenuType::Command;
14 std::string text;
15};
16
17class MenuBuilder {
18public:
19
20 MenuBuilder& Command(std::string text) {
21 result_.type = MenuType::Command;
22 result_.text = std::move(text);
23 return *this;
24 }
25
26 MenuItem Build() const {
27 return result_;
28 }
29
30private:
31
32 MenuItem result_;
33};
34
35std::vector<MenuItem> CreateMenu(const std::vector<MenuBuilder>& builders);
36
37#endif /* end of include guard: MENU_H_3F6E62B3 */