]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h
Last updates
[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         typedef std::list< BCSettingsStruct* > BCSetListType;
35         class ButtonContainerSettings
36         {
37                 public:
38                         ButtonContainerSettings( );
39                         virtual
40                         ~ButtonContainerSettings( );
41                         ButtonGroupMap
42                         GetButtonGroupContainer( );
43                         KeyMapList
44                         GetGroupNameList( );
45                         PanelButton
46                         GetPanelButton( const std::string &buttonName );
47                         ButtonGroupSettings*
48                         GetButtonGroupSettings( TFunctor* functor );
49                         void
50                         SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer );
51                         void
52                         SetGroupNameList( KeyMapList m_GroupNameList );
53                         void
54                         AddButton( const std::string &groupName, const std::string &buttonName,
55                             const std::string &iconpath, const std::string &buttonDescription,
56                             PanelButton panel );
57                         void
58                         AddButton( BCSettingsStruct* info );
59
60                         void
61                         AddButtons( BCSetListType infoList );
62
63                 private:
64                         ButtonGroupMap m_ButtonGroupContainer;
65                         KeyMapList m_GroupNameList;
66         };
67 }//ecapseman
68 #endif /* BUTTONCONTAINERSETTINGS_H_ */