00001 #ifndef _GUIMENUTHINGS_H_
00002 #define _GUIMENUTHINGS_H_
00003
00004 #include <string>
00005 #include "Midad/Gui/GuiMenu.h"
00006
00007 typedef GuiMenu::GuiMenuList::iterator GuiMenuItr;
00008
00009
00010 class GuiToggledMenuItem
00011 {
00012 Bool_t fState;
00013 SigC::Signal0<void> fSig;
00014 public:
00015 GuiToggledMenuItem( Bool_t state = false );
00016
00017 GuiMenuItr AddToMenu(GuiMenu* menu, const char* name);
00018 void CallBack(GuiMenu* menu, GuiMenu::GuiMenuList::iterator mit);
00019 void Connect(SigC::Slot0<void> s) { fSig.connect(s); }
00020
00021 Bool_t GetState() { return fState; };
00022 void SetState(Bool_t set);
00023 Bool_t operator()(void) { return fState; };
00024 };
00025
00026 class GuiToggledSubMenu
00027 {
00028 Int_t fState;
00029 SigC::Ptr<GuiMenu> fMenu;
00030 SigC::Signal0<void> fSig0;
00031 SigC::Signal1<void,Int_t> fSig1;
00032 public:
00033 GuiToggledSubMenu( Int_t state );
00034
00035 GuiMenu* CreateMenu(GuiMenu *parent, const char* menuname );
00036 GuiMenuItr AddItem(const char* name, Int_t value);
00037 void CallBack(GuiMenu* menu, GuiMenu::GuiMenuList::iterator mit, Int_t value);
00038 void Connect(SigC::Slot0<void> s) { fSig0.connect(s); };
00039 void Connect(SigC::Slot1<void,Int_t> s) { fSig1.connect(s); };
00040 void SetState(Int_t value) { fState = value; };
00041 Int_t GetState(void) { return fState; };
00042 Int_t operator()(void) { return fState; };
00043 };
00044
00045 #endif