]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/include/buttonGroupFactory.h
Diego Caceres: creaButtonContainer and creaPanelButtonContainer has been added to...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / model / include / buttonGroupFactory.h
1 /***************************************************************
2  * Name:      @file ButtonGroupFactory.h
3  * Purpose:   @brief This contains ButtonGroupFactory Class
4  * Author:    @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 BUTTONGROUPFACTORY_H
11 #define BUTTONGROUPFACTORY_H
12
13 #include <wx/window.h>
14 #include <list>
15 #include <map>
16
17 #include "system.h"
18 #include "button.h"
19 #include "buttonGroup.h"
20 #include "containerSettings.h"
21 #include "functor.h"
22
23 ///@namespace <creaButtonContainer>
24 namespace creaButtonContainer
25 {
26         ///@namespace <model>
27         namespace model
28         {
29                 //typedef
30                 typedef creaButtonContainer::view::Button Button;
31                 typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
32                 typedef creaButtonContainer::model::ContainerSettings ButtonGroupModel;
33                 typedef std::list< ButtonGroup* > ButtonGroupContainer;
34                 typedef std::map< long, Button* > ButtonContainer;
35                 /// @class ButtonGroupFactory
36                 /// @brief This class is the factory of a group of wxButtons
37                 class ButtonGroupFactory
38                 {
39                         public:
40                                 //Constructors:
41                                 /*!
42                                  * @brief This is the default constructor.
43                                  */
44                                 ButtonGroupFactory( );
45                                 //Destructors:
46                                 /*!
47                                  * @brief this is the destructor.
48                                  */
49                                 virtual
50                                 ~ButtonGroupFactory( );
51                                 //Functions:
52                                 /*!
53                                  * @brief This function allows to create the ButtonGroupContainer.
54                                  * @param the wxWindow* parent to be attached.
55                                  * @param The Container settings.
56                                  * @return The wx button group container.
57                                  */
58                                 ButtonGroupContainer
59                                 CreateButtonGroupContainer( wxWindow* parent,
60                                     ButtonGroupModel* settings );
61                         private:
62                                 /*!
63                                  * @brief This function allows to create a wx button container for a group.
64                                  * @param the wxWindow* parent to be attached.
65                                  * @param The button list with its own information.
66                                  * @return The wx button container.
67                                  */
68                                 ButtonContainer
69                                 GetButtons( wxWindow* parent, ButtonList buttonModel );
70                 };
71         }//ecapseman
72 }//ecapseman
73
74 #endif // CARTOBUTTONFACTORY_H