1 /***************************************************************
2 * Name: buttonContainerSettings.h
3 * Purpose: It is the ButtonGroupSettings
4 * Author: Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
6 * Copyright: Diego CACERES (http://www.creatis.insa-lyon.fr/~caceres/)
8 **************************************************************/
10 #ifndef BUTTONCONTAINERSETTINGS_H_
11 #define BUTTONCONTAINERSETTINGS_H_
17 #include "structButtonContainerSettings.h"
18 #include "containerSettings.h"
21 namespace creaPanelButtonContainer
23 typedef creaButtonContainer::model::TFunctor TFunctor;
24 typedef creaButtonContainer::model::ContainerSettings ButtonGroupSettings;
25 typedef wxPanel* PanelButton;
26 //First is the button description, Second FunctionEventType
27 typedef std::pair< std::string, PanelButton > ActionButton;
28 //First is the ButtonName and Second is the ImageIconPath
29 typedef std::pair< std::string, std::string > ButtonInfo;
30 typedef std::pair< ButtonInfo*, ActionButton* > ButtonPair;
31 typedef std::list< std::string > KeyMapList;
32 typedef std::list< ButtonPair* > ButtonList;
33 typedef std::map< std::string, ButtonList > ButtonGroupMap;
34 typedef std::list< BCSettingsStruct* > BCSetListType;
35 class ButtonContainerSettings
38 ButtonContainerSettings( );
40 ~ButtonContainerSettings( );
42 GetButtonGroupContainer( );
46 GetPanelButton( const std::string &buttonName );
48 GetButtonGroupSettings( TFunctor* functor );
50 SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer );
52 SetGroupNameList( KeyMapList m_GroupNameList );
54 AddButton( const std::string &groupName, const std::string &buttonName,
55 const std::string &iconpath, const std::string &buttonDescription,
58 AddButton( BCSettingsStruct* info );
61 AddButtons( BCSetListType infoList );
64 ButtonGroupMap m_ButtonGroupContainer;
65 KeyMapList m_GroupNameList;
68 #endif /* BUTTONCONTAINERSETTINGS_H_ */