00001
00002
00003 #include "gui/SubMenu.h"
00004
00005 #include <string>
00006 using namespace gui;
00007
00008
00009
00010
00011 SubMenu& Menu::subMenu(const std::string& name)
00012 {
00013 SubMenu* sm = new SubMenu(*this, name);
00014 m_sub_menus.push_back(sm);
00015 return * sm;
00016 }
00017
00018 SubMenu::SubMenu(Menu& m, const std::string& name)
00019 :m_menu(m), m_subMenu(0),
00020 m_tag(m.beginMenu(name))
00021 {
00022 m.endMenu();
00023 }
00024
00025 SubMenu::SubMenu(Menu& m, SubMenu* s, const std::string& name)
00026 :m_menu(m),
00027 m_subMenu(s),
00028 m_tag(m.beginMenu( name, s->m_tag))
00029 {
00030 m.endMenu();
00031 }
00032
00033 void SubMenu::addButton(const std::string& name, Command* cmd)
00034 {
00035 m_menu.setMenu(m_tag);
00036 m_menu.addCommand(name,cmd);
00037 m_menu.endMenu();
00038 }
00039
00040 void SubMenu::addSeparator()
00041 {
00042 m_menu.setMenu(m_tag);
00043 m_menu.addSeparator();
00044 m_menu.endMenu();
00045 }
00046
00047 GUI::Toggle* SubMenu::addToggle(const std::string& title, bool state, Command* set, Command* unset)
00048 {
00049 m_menu.setMenu(m_tag);
00050 GUI::Toggle* t = m_menu.addToggle(title,state,set,unset);
00051 m_menu.endMenu();
00052 return t;
00053 }
00054
00055 SubMenu& SubMenu::subMenu(const std::string& label)
00056 {
00057
00058
00059 SubMenu* sm = new SubMenu(m_menu, this, label);
00060 m_menu.m_sub_menus.push_back(sm);
00061 return * sm;
00062 }