00001
00002
00003
00004
00005 #ifndef SUBMENU_H
00006 #define SUBMENU_H
00007 #include <string>
00008 #include "gui/Command.h"
00009 #include "gui/Menu.h"
00010
00011 namespace gui{
00012
00013 class SubMenu {
00014
00015 public:
00016 void addButton(const std::string& label, Command* command);
00017
00018
00019 GUI::Toggle* addToggle(const std::string& label, bool state, Command* set, Command* unset);
00020
00021
00022
00023
00024 void addSeparator();
00025
00026
00027 SubMenu& subMenu(const std::string& label);
00028
00029
00030 const Menu::Node* tag()const{ return m_tag;}
00031
00032
00033
00034 private:
00035 friend class Menu;
00036 SubMenu(Menu& m, const std::string& label);
00037 SubMenu(Menu& m, SubMenu* s, const std::string& label);
00038
00039 Menu& m_menu;
00040 SubMenu* m_subMenu;
00041 Menu::Node* m_tag;
00042 };
00043 }
00044
00045 #endif //SUBMENU