Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

SubMenu.cxx

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/gui/src/SubMenu.cxx,v 1.1.1.1 2001/01/04 01:01:11 burnett Exp $
00002 
00003 #include "gui/SubMenu.h"
00004 
00005 #include <string>
00006 using namespace gui;
00007 
00008 //==============================================================================
00009 //        SubMenu implementation              
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     // creating a submenu of this menu, but looks the same to the menu
00058     
00059     SubMenu* sm = new SubMenu(m_menu, this, label);
00060     m_menu.m_sub_menus.push_back(sm);
00061     return * sm;
00062 }

Generated at Mon Nov 26 18:18:11 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000