]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h
Diego Caceres: creaPanelButtonContainer changes: new structButtonContainerSettings...
[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
17 #include "structButtonContainerSettings.h"
18 #include "containerSettings.h"
19 #include "functor.h"
20
21 namespace creaPanelButtonContainer
22 {
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         class ButtonContainerSettings
35         {
36                 public:
37                         ButtonContainerSettings( );
38                         virtual
39                         ~ButtonContainerSettings( );
40                         ButtonGroupMap
41                         GetButtonGroupContainer( );
42                         KeyMapList
43                         GetGroupNameList( );
44                         PanelButton
45                         GetPanelButton( const std::string &buttonName );
46                         ButtonGroupSettings*
47                         GetButtonGroupSettings( TFunctor* functor );
48                         void
49                         SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer );
50                         void
51                         SetGroupNameList( KeyMapList m_GroupNameList );
52                         void
53                         AddButton( const std::string &groupName, const std::string &buttonName,
54                             const std::string &iconpath, const std::string &buttonDescription,
55                             PanelButton panel );
56                         void
57                         AddButton( const BCSettingsStruct &info );
58
59                 private:
60                         ButtonGroupMap m_ButtonGroupContainer;
61                         KeyMapList m_GroupNameList;
62         };
63 }//ecapseman
64 #endif /* BUTTONCONTAINERSETTINGS_H_ */