/*************************************************************** * Name: buttonContainerSettings.h * Purpose: It is the ButtonGroupSettings * Author: Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr) * Modified: 2011-05-09 * Copyright: Diego CACERES (http://www.creatis.insa-lyon.fr/~caceres/) * License: **************************************************************/ #ifndef BUTTONCONTAINERSETTINGS_H_ #define BUTTONCONTAINERSETTINGS_H_ #include #include #include #include "containerSettings.h" #include "functor.h" namespace creaPanelButtonContainer { typedef creaButtonContainer::model::TFunctor TFunctor; typedef creaButtonContainer::model::ContainerSettings ButtonGroupSettings; typedef wxPanel* PanelButton; //First is the button description, Second FunctionEventType typedef std::pair< std::string, PanelButton > ActionButton; //First is the ButtonName and Second is the ImageIconPath typedef std::pair< std::string, std::string > ButtonInfo; typedef std::pair< ButtonInfo*, ActionButton* > ButtonPair; typedef std::list< std::string > KeyMapList; typedef std::list< ButtonPair* > ButtonList; typedef std::map< std::string, ButtonList > ButtonGroupMap; class ButtonContainerSettings { public: ButtonContainerSettings( ); virtual ~ButtonContainerSettings( ); ButtonGroupMap GetButtonGroupContainer( ); KeyMapList GetGroupNameList( ); PanelButton GetPanelButton( const std::string &buttonName ); ButtonGroupSettings* GetButtonGroupSettings( TFunctor* functor ); void SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer ); void SetGroupNameList( KeyMapList m_GroupNameList ); void AddButton( const std::string & groupName, const std::string buttonName, const std::string iconpath, const std::string buttonDescription, PanelButton panel ); private: ButtonGroupMap m_ButtonGroupContainer; KeyMapList m_GroupNameList; }; }//ecapseman #endif /* BUTTONCONTAINERSETTINGS_H_ */