]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/include/buttonContainerPanel.h
Diego Caceres: Changes in CMakeLists.txt.
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / view / include / buttonContainerPanel.h
1 /***************************************************************
2  * Name:      ButtonContainerPanel.h
3  * Purpose:   Defines the  main panel of the button container
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 BUTTONCONTAINERPANEL_H
11 #define BUTTONCONTAINERPANEL_H
12
13 #include <wx/scrolwin.h>
14 #include <wx/button.h>
15 #include <wx/sizer.h>
16 #include <list>
17 #include <map>
18
19 #include "buttonGroup.h"
20 #include "groupManager.h"
21 #include "buttonGroupFactory.h"
22 #include "containerSettings.h"
23 #include "buttonContainerController.h"
24
25 namespace creaButtonContainer
26 {
27         namespace controller
28         {
29                 class ButtonContainerController;
30         }
31         namespace view
32         {
33                 /**
34                  Class Description:
35                  **/
36                 class ButtonContainerPanel : public wxScrolledWindow
37                 {
38                         public:
39                                 //typedef definition
40                                 typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
41                                 typedef creaButtonContainer::view::GroupManager GroupManager;
42                                 typedef std::list< ButtonGroup* > ButtonGroupList;
43                                 typedef std::map< long, GroupManager* > GroupManagerList;
44                                 typedef wxFlexGridSizer Sizer;
45                                 typedef std::list< long > KeyList;
46                                 typedef creaButtonContainer::model::ContainerSettings
47                                     ButtonGroupSettings;
48                                 typedef creaButtonContainer::model::ButtonGroupFactory
49                                     ButtonGroupFactory;
50                                 typedef creaButtonContainer::controller::ButtonContainerController
51                                     BCController;
52                                 //end of typedef definition
53                         public:
54                                 ButtonContainerPanel( wxWindow* parent, ButtonGroupSettings* settings );
55                                 virtual
56                                 ~ButtonContainerPanel( );
57                                 void
58                                 SetGroupContainer( ButtonGroupList groupContainer );
59                                 void
60                                 PanelInit( );
61                                 void
62                                 FitSizer( );
63                         public:
64                                 friend class creaButtonContainer::controller::ButtonContainerController;
65                         private:
66                                 GroupManagerList m_GroupManagerList;
67                                 ButtonGroupList m_ButtonGroupList;
68                                 BCController* m_ButtonCController;
69                                 Sizer* m_Sizer;
70                 };
71         }//ecapseman
72 }//ecapseman
73
74 #endif // BUTTONCONTAINERPANEL_H