]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h
CreaPanelButtonContainer boxes
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaPanelButtonContainer / buttonContainerSettings.h
1 /***************************************************************
2  * Name:      buttonContainerSettings.h
3  * Purpose:   It is the ButtonGroupSettings
4  * Author:    Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
5  * Modified:  2011-05-09
6  * Copyright: Diego CACERES (http://www.creatis.insa-lyon.fr/~caceres/)
7  * License:
8  **************************************************************/
9
10 #ifndef BUTTONCONTAINERSETTINGS_H_
11 #define BUTTONCONTAINERSETTINGS_H_
12
13 #include <list>
14 #include <map>
15 #include <wx/panel.h>
16 #include <vector>
17
18 #include "structButtonContainerSettings.h"
19 #include "containerSettings.h"
20 #include "functor.h"
21
22 namespace creaPanelButtonContainer
23 {
24         typedef creaButtonContainer::model::TFunctor TFunctor;
25         typedef creaButtonContainer::model::ContainerSettings ButtonGroupSettings;
26         typedef wxPanel* PanelButton;
27         //First is the button description, Second FunctionEventType
28         typedef std::pair< std::string, PanelButton > ActionButton;
29         //First is the ButtonName and Second is the ImageIconPath
30         typedef std::pair< std::string, std::string > ButtonInfo;
31         typedef std::pair< ButtonInfo*, ActionButton* > ButtonPair;
32         typedef std::list< std::string > KeyMapList;
33         typedef std::list< ButtonPair* > ButtonList;
34         typedef std::map< std::string, ButtonList > ButtonGroupMap;
35         typedef std::vector< BCSettingsStruct* > BCStructVectorType;
36         class ButtonContainerSettings
37         {
38                 public:
39                         ButtonContainerSettings( );
40                         virtual
41                         ~ButtonContainerSettings( );
42                         ButtonGroupMap
43                         GetButtonGroupContainer( );
44                         KeyMapList
45                         GetGroupNameList( );
46                         PanelButton
47                         GetPanelButton( const std::string &buttonName );
48                         ButtonGroupSettings*
49                         GetButtonGroupSettings( TFunctor* functor );
50                         void
51                         SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer );
52                         void
53                         SetGroupNameList( KeyMapList m_GroupNameList );
54                         void
55                         AddButton( const std::string &groupName, const std::string &buttonName,
56                             const std::string &iconpath, const std::string &buttonDescription,
57                             PanelButton panel );
58                         void
59                         AddButton( BCSettingsStruct* info );
60
61                         void
62                         AddButtons( BCStructVectorType infoList );
63
64                 private:
65                         ButtonGroupMap m_ButtonGroupContainer;
66                         KeyMapList m_GroupNameList;
67         };
68 }//ecapseman
69 #endif /* BUTTONCONTAINERSETTINGS_H_ */