Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

GuiMenu Class Reference

#include <GuiMenu.h>

Inheritance diagram for GuiMenu:

GuiBase List of all members.

Public Types

typedef std::list< SigC::Ptr<
GuiMenuEntry > > 
GuiMenuList
typedef std::list< SigC::Ptr<
GuiMenu > > 
GuiSubMenuList

Public Member Functions

 GuiMenu ()
virtual ~GuiMenu ()
virtual void Activated (int id)
GuiMenuList::iterator Add (const char *label)
GuiMenuList::iterator Add (const char *label, SigC::Slot0< void > slot)
GuiMenuList::iterator Add (const char *label, GuiMenu &menu)
GuiMenuList::iterator Insert (GuiMenuList::iterator gmitr, const char *label)
GuiMenuList::iterator Insert (GuiMenuList::iterator gmitr, const char *label, SigC::Slot0< void > slot)
GuiMenuList::iterator Insert (GuiMenuList::iterator gmitr, const char *label, GuiMenu &menu)
void CheckEntry (GuiMenuList::iterator &mit, bool check_it=true)
bool IsEntryChecked (GuiMenuList::iterator &mit)
GuiMenuListGetMenuList ()
void ClearAll ()

Private Member Functions

void CheckEntry (int)
bool IsEntryChecked (int)

Private Attributes

GuiMenuList fEntries
GuiSubMenuList fSubMenus

Member Typedef Documentation

typedef std::list<SigC::Ptr<GuiMenuEntry> > GuiMenu::GuiMenuList
 

Definition at line 49 of file GuiMenu.h.

Referenced by GetMenuList().

typedef std::list<SigC::Ptr<GuiMenu> > GuiMenu::GuiSubMenuList
 

Definition at line 50 of file GuiMenu.h.


Constructor & Destructor Documentation

GuiMenu::GuiMenu  ) 
 

Definition at line 7 of file GuiMenu.cxx.

References GuiBase::SetLayoutHints().

00007                  : TGPopupMenu(0) 
00008 {
00009     SetLayoutHints(kLHintsTop|kLHintsLeft); 
00010 }

virtual GuiMenu::~GuiMenu  )  [inline, virtual]
 

Definition at line 55 of file GuiMenu.h.

References fEntries.

00055                        { 
00056         fEntries.erase(fEntries.begin(),fEntries.end()); 
00057     }


Member Function Documentation

void GuiMenu::Activated int  id  )  [virtual]
 

Definition at line 12 of file GuiMenu.cxx.

References GuiMenuEntry::Trigger().

00013 {
00014     gVirtualX->Update(1);       // XSync
00015     // could change pointer here....
00016     this->TGPopupMenu::Activated(id);
00017     GuiMenuEntry* gme = (GuiMenuEntry*)id; // yes, I am evil.
00018     gme->Trigger();
00019 }

GuiMenu::GuiMenuList::iterator GuiMenu::Add const char *  label,
GuiMenu menu
 

Definition at line 37 of file GuiMenu.cxx.

References fEntries, and Insert().

00038 {
00039     return this->Insert(fEntries.end(), label, menu);
00040 }

GuiMenu::GuiMenuList::iterator GuiMenu::Add const char *  label,
SigC::Slot0< void >  slot
 

Definition at line 32 of file GuiMenu.cxx.

References fEntries, and Insert().

00033 {
00034     return this->Insert(fEntries.end(),label,slot);
00035 }

GuiMenu::GuiMenuList::iterator GuiMenu::Add const char *  label  ) 
 

Definition at line 22 of file GuiMenu.cxx.

References fEntries, and Insert().

Referenced by add_menu(), add_to_page_menu(), GuiToggledSubMenu::AddItem(), GuiToggledMenuItem::AddToMenu(), EVD::BuildGfxMenu(), MultiPage::BuildMenus(), EVD::BuildMenus(), CheezyPage::BuildMenus(), GuiToggledSubMenu::CreateMenu(), fill_menu(), fill_mydisplay_menu(), fill_recurs_menu(), fill_test_menu(), TridPage::Init(), main(), GfxTrackListMenu::MakeMenu(), GfxStripListMenu::MakeMenu(), GfxShowerListMenu::MakeMenu(), GfxMCVecListMenu::MakeMenu(), GfxDigitListMenu::MakeMenu(), my_add_to_window_menu(), RegistryGui::SetPossiblesMenu(), TridPageDisplay::SetupMenus(), PageDisplay::SetupMenus(), and TridControl::TridControl().

00023 {
00024     if (label)
00025         return this->Insert(fEntries.end(),label);
00026     else {
00027         this->AddSeparator(0);
00028         return fEntries.end();
00029     }        
00030 }

void GuiMenu::CheckEntry int   )  [inline, private]
 

Definition at line 86 of file GuiMenu.h.

00086 {}     // don't use

void GuiMenu::CheckEntry GuiMenuList::iterator &  mit,
bool  check_it = true
 

Definition at line 89 of file GuiMenu.cxx.

Referenced by GuiToggledSubMenu::AddItem(), GuiToggledMenuItem::AddToMenu(), MultiPage::BuildMenus(), EVD::BuildMenus(), GuiToggledSubMenu::CallBack(), GuiToggledMenuItem::CallBack(), GfxTrackListMenu::HideAll(), GfxStripListMenu::HideAll(), GfxShowerListMenu::HideAll(), GfxMCVecListMenu::HideAll(), GfxDigitListMenu::HideAll(), TridControl::HistoMenuHandler(), TridPage::Init(), toggle_mux(), MultiPage::ToggleRealCoords(), EVD::ToggleRealCoords(), EVD::ToggleTimeZoom(), and TridPage::ViewMenuHandler().

00090 {
00091     GuiMenuEntry* gme = *mit;
00092 
00093     if (check_it)
00094         this->TGPopupMenu::CheckEntry((int)gme);
00095     else
00096         this->TGPopupMenu::UnCheckEntry((int)gme);
00097 }

void GuiMenu::ClearAll  ) 
 

Definition at line 104 of file GuiMenu.cxx.

References fEntries, and fSubMenus.

Referenced by clear_menu(), and remake_menu().

00105 {
00106     GuiSubMenuList::iterator smit, send = fSubMenus.end();
00107     for (smit = fSubMenus.begin(); smit != send; ++smit) 
00108         (*smit)->ClearAll();
00109 
00110     GuiMenuList::iterator mit, end = fEntries.end();
00111     for (mit = fEntries.begin(); mit != end; ++mit)
00112         this->DeleteEntry((*mit)->GetEntry());
00113       
00114     fSubMenus.clear();
00115     fEntries.clear();
00116 }

GuiMenuList& GuiMenu::GetMenuList  )  [inline]
 

Definition at line 79 of file GuiMenu.h.

References GuiMenuList.

Referenced by GuiToggledSubMenu::CallBack(), TridControl::HistoMenuHandler(), and TridPage::ViewMenuHandler().

00079 { return fEntries; }

GuiMenu::GuiMenuList::iterator GuiMenu::Insert GuiMenuList::iterator  gmitr,
const char *  label,
GuiMenu menu
 

Definition at line 73 of file GuiMenu.cxx.

References fEntries, fSubMenus, and GuiMenuEntry::SetEntry().

00075 {
00076     menu.GuiBase::SetName(label);
00077 
00078     GuiMenuEntry* gme = manage(new GuiMenuEntry);
00079     fSubMenus.push_back(&menu);
00080 
00081     if (gmitr == fEntries.end()) 
00082         this->AddPopup(label,&menu);
00083     else
00084         this->AddPopup(label,&menu,(*gmitr)->GetEntry());
00085     gme->SetEntry(this->GetEntry(label));
00086     return fEntries.insert(gmitr,gme);    
00087 }

GuiMenu::GuiMenuList::iterator GuiMenu::Insert GuiMenuList::iterator  gmitr,
const char *  label,
SigC::Slot0< void >  slot
 

Definition at line 57 of file GuiMenu.cxx.

References GuiMenuEntry::Connect(), fEntries, s(), and GuiMenuEntry::SetEntry().

00059 {
00060     GuiMenuEntry* gme = manage(new GuiMenuEntry);
00061     gme->Connect(s);
00062 
00063     int id = (int)gme;          // evil
00064 
00065     if (gmitr == fEntries.end()) 
00066         this->AddEntry(label,id);
00067     else
00068         this->AddEntry(label,id,0,0,(*gmitr)->GetEntry());
00069     gme->SetEntry(this->GetEntry(id));
00070     return fEntries.insert(gmitr,gme);
00071 }

GuiMenu::GuiMenuList::iterator GuiMenu::Insert GuiMenuList::iterator  gmitr,
const char *  label
 

Definition at line 43 of file GuiMenu.cxx.

References fEntries, and GuiMenuEntry::SetEntry().

Referenced by Add(), and insert_menu().

00044 {
00045     GuiMenuEntry* gme = manage(new GuiMenuEntry);
00046 
00047     int id = (int)gme;          // evil
00048 
00049     if (gmitr == fEntries.end()) 
00050         this->AddEntry(label,id);
00051     else
00052         this->AddEntry(label,id,0,0,(*gmitr)->GetEntry());
00053     gme->SetEntry(this->GetEntry(id));
00054     return fEntries.insert(gmitr,gme);
00055 }

bool GuiMenu::IsEntryChecked int   )  [inline, private]
 

Definition at line 87 of file GuiMenu.h.

00087 { return false; } // don't use

bool GuiMenu::IsEntryChecked GuiMenuList::iterator &  mit  ) 
 

Definition at line 98 of file GuiMenu.cxx.

Referenced by GfxTrackListMenu::HideAll(), GfxStripListMenu::HideAll(), GfxShowerListMenu::HideAll(), GfxMCVecListMenu::HideAll(), GfxDigitListMenu::HideAll(), MultiPage::ToggleRealCoords(), EVD::ToggleRealCoords(), and EVD::ToggleTimeZoom().

00099 {
00100     GuiMenuEntry* gme = *mit;
00101     return this->TGPopupMenu::IsEntryChecked((int)gme);
00102 }


Member Data Documentation

GuiMenuList GuiMenu::fEntries [private]
 

Definition at line 89 of file GuiMenu.h.

Referenced by Add(), ClearAll(), Insert(), and ~GuiMenu().

GuiSubMenuList GuiMenu::fSubMenus [private]
 

Definition at line 90 of file GuiMenu.h.

Referenced by ClearAll(), and Insert().


The documentation for this class was generated from the following files:
Generated on Thu Nov 1 11:58:28 2007 for loon by  doxygen 1.3.9.1