source: molecuilder/src/Menu/TextMenu.cpp@ 45ff42

Last change on this file since 45ff42 was 45ff42, checked in by Frederik Heber <heber@…>, 16 years ago

Fixed memory leak in TextMenu Signed-off-by: Tillmann Crueger <crueger@…>

  • Property mode set to 100644
File size: 1.0 KB
Line 
1/*
2 * TextMenu.cpp
3 *
4 * Created on: Dec 10, 2009
5 * Author: crueger
6 */
7
8#include <boost/bind.hpp>
9#include <iostream>
10#include "TextMenu.hpp"
11#include "MenuItem.hpp"
12
13TextMenu::TextMenu(ostream& _outputter, string _title) :
14outputter(_outputter),
15title(_title),
16quit(false)
17{
18}
19
20TextMenu::~TextMenu()
21{
22 for(list<MenuItem*>::iterator it=items.begin(); it != items.end(); it++)
23 delete (*it);
24}
25
26
27void TextMenu::addItem(MenuItem* item) {
28 items.push_back(item);
29}
30
31void TextMenu::removeItem(MenuItem* item) {
32 items.remove(item);
33}
34
35void TextMenu::doQuit(){
36 quit = true;
37}
38
39bool TextMenu::hasQuit(){
40 return quit;
41}
42
43void TextMenu::showEntry(MenuItem* entry){
44 outputter << entry->formatEntry() << "\n";
45}
46
47void TextMenu::display() {
48 char choice;
49 do {
50 outputter << title << "\n";
51 for_each(items.begin(), items.end(), boost::bind(&TextMenu::showEntry,this,_1));
52 outputter.flush();
53
54 cin >> choice;
55
56 for_each(items.begin(), items.end(), boost::bind(&MenuItem::checkTrigger,_1,choice));
57 }while (!hasQuit());
58}
Note: See TracBrowser for help on using the repository browser.