52 lines
799 B
C++
52 lines
799 B
C++
#include "Menu.h"
|
|
|
|
Menu::Menu(const char *const name,DisType dt) : name_(name)
|
|
{
|
|
|
|
}
|
|
|
|
Menu::~Menu()
|
|
{
|
|
std::cout << "Menu " << name_ << " destroyed" << std::endl;
|
|
for (auto &item : menu_items)
|
|
{
|
|
item.reset();
|
|
}
|
|
}
|
|
|
|
string Menu::get_name()
|
|
{
|
|
return name_;
|
|
}
|
|
|
|
int Menu::select()
|
|
{
|
|
int ret = -1;
|
|
int choice;
|
|
int count = 0;
|
|
|
|
for (auto &item : menu_items)
|
|
{
|
|
std::cout << item->get_name() << " : " << count++ << std::endl;
|
|
}
|
|
|
|
if (choice >= 0 && choice <= menu_items.size())
|
|
{
|
|
ret = menu_items[choice]->select();
|
|
// if(!ret)
|
|
// g_call();
|
|
}
|
|
|
|
|
|
count = 0;
|
|
choice = 0;
|
|
|
|
return ret;
|
|
}
|
|
|
|
void Menu::add_menu_item(unique_ptr<Selectable> menu_item)
|
|
{
|
|
menu_items.push_back(std::move(menu_item));
|
|
}
|
|
|