00001 #ifndef CSMenuBar_h 00002 #define CSMenuBar_h 00003 00004 // USES SDL_Surface 00005 00006 #ifdef WIN32 00007 #pragma warning(disable : 4786 ) 00008 #endif 00009 00010 #include <vector> 00011 #include <string> 00012 00013 #include "CSPicture.h" 00014 #include "CSMessage.h" 00015 #include "CSButton.h" 00016 #include "CSGrafikElement.h" 00017 #include "CSDesktop.h" 00018 #include "CSBar.h" 00019 #include "CSLog.h" 00020 00021 #include "CSIcon.h" 00022 00023 class CSMenu; 00024 class CSMenuBar; 00025 typedef std::vector<CSMenuBar *> CSMenuBars; 00026 00027 class CSMenuBar : public CSBar 00028 { 00029 private: 00030 CSMenu *mActiveMenu; 00031 CSMenu *mLastActiveMenu; 00032 00033 protected: 00034 int mMenuState; 00035 void layoutSetupMenuBar(); 00036 00037 public: 00038 CSMenuBar(void); 00039 virtual ~CSMenuBar(); 00040 static const char *CLASS; 00041 virtual std::string getType() {return (std::string) CLASS;} 00042 00043 void initMenuBar(); 00044 // void addMenu(CSMenu *menu); // should be prefered over addElement! 00045 // void addMenu(CSMenu *menu, int place); // should be prefered over addElement! 00046 // void removeMenu(CSMenu *menu); 00047 00048 virtual void layoutSetup(){layoutSetupMenuBar();} 00049 virtual void setMenuState(int state) {mMenuState = state;} 00050 virtual void setActiveMenu(CSMenu *menu); 00051 virtual CSMenu *getActiveMenu(){return mActiveMenu;} 00052 virtual int getMenuState(CSMenu *menu); 00053 virtual void closeLastMenu(); 00054 virtual void resetMenu(); 00055 CSMenu *getLastActiveMenu() {return mLastActiveMenu;} 00056 }; 00057 00058 #endif // CSMenuBar_h