]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h
Diego Caceres: creaButtonContainer & creaPanelButtonContainer
[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 "containerSettings.h"
18 #include "functor.h"
19
20 namespace creaPanelButtonContainer
21 {
22         typedef creaButtonContainer::model::TFunctor TFunctor;
23         typedef creaButtonContainer::model::ContainerSettings ButtonGroupSettings;
24         typedef wxPanel* PanelButton;
25         //First is the button description, Second FunctionEventType
26         typedef std::pair< std::string, PanelButton > ActionButton;
27         //First is the ButtonName and Second is the ImageIconPath
28         typedef std::pair< std::string, std::string > ButtonInfo;
29         typedef std::pair< ButtonInfo*, ActionButton* > ButtonPair;
30         typedef std::list< std::string > KeyMapList;
31         typedef std::list< ButtonPair* > ButtonList;
32         typedef std::map< std::string, ButtonList > ButtonGroupMap;
33         class ButtonContainerSettings
34         {
35                 public:
36                         ButtonContainerSettings( );
37                         virtual
38                         ~ButtonContainerSettings( );
39                         ButtonGroupMap
40                         GetButtonGroupContainer( );
41                         KeyMapList
42                         GetGroupNameList( );
43                         PanelButton
44                         GetPanelButton( const std::string &buttonName );
45                         ButtonGroupSettings*
46                         GetButtonGroupSettings( TFunctor* functor );
47                         void
48                         SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer );
49                         void
50                         SetGroupNameList( KeyMapList m_GroupNameList );
51                         void
52                         AddButton( const std::string & groupName, const std::string buttonName,
53                             const std::string iconpath, const std::string buttonDescription,
54                             PanelButton panel );
55
56                 private:
57                         ButtonGroupMap m_ButtonGroupContainer;
58                         KeyMapList m_GroupNameList;
59         };
60 }//ecapseman
61 #endif /* BUTTONCONTAINERSETTINGS_H_ */