]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h
c7d2ca5309cbd336e6b92946a71eaced01c395c5
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / view / groupManager.h
1 /*!
2  * @file groupManager.h
3  * @brief This contains the GroupManager class
4  * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
5  * @date  2011-05-24
6  */
7
8 #ifndef GROUPMANAGER_H
9 #define GROUPMANAGER_H
10
11 #include <wx/sizer.h>
12 #include <wx/button.h>
13 #include <wx/stattext.h>
14 #include <wx/event.h>
15 #include <list>
16 #include <iostream>
17 #include "buttonManager.h"
18 #include "buttonGroup.h"
19 #include <wx/event.h>
20
21 /*!     @namespace <creaButtonContainer>
22  *      @brief Contains the creaButtonContainer library included in creaMaracasVisu.
23  */
24 namespace creaButtonContainer
25 {
26         /*! @namespace <creaButtonContainer::view>
27          *      @brief Contains the implementation of the view in creaButtonContainer library.
28          *      @see <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC Software Architecture</a>
29          */
30         namespace view
31         {
32                 /*! @class GroupManager groupManager.h "groupManager.h"
33                  *      @brief This class contains the GroupManager.
34                  *  @details This class describes a wxFlexGridSizer with the group manager.
35                  *  @see <a href="http://docs.wxwidgets.org/stable/wx_wxflexGridSizer.html">wxFlexGridSizer</a>
36                  */
37                 class GroupManager : public wxFlexGridSizer
38                 {
39                         public:
40                                 //typedef definition
41                                 /*!     @typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
42                                  *      @brief Defines the ButtonGroup type.
43                                  */
44                                 typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
45                                 // ----------------------------------------------------------------------------------
46                                 /*!     @typedef wxButton ExpansionButton;
47                                  *      @brief Defines the ExpansionButton type.
48                                  */
49                                 typedef wxButton ExpansionButton;
50                                 // ----------------------------------------------------------------------------------
51                                 //end of typedef definition.
52                         public:
53                                 // ----------------------------------------------------------------------------------
54                                 /*! @fn GroupManager( wxWindow* parent, ButtonGroup* buttonGroup );
55                                  *      @brief This is the parameterized constructor.
56                                  *      @param parent The wxWindow* parent
57                                  *      @param buttonGroup The pointer to the ButtonGroup.
58                                  */
59                                 GroupManager( wxWindow* parent, ButtonGroup* buttonGroup );
60                                 // ----------------------------------------------------------------------------------
61                                 /*! @fn ~GroupManager( );
62                                  *  @brief This is the destructor.
63                                  */
64                                 virtual
65                                 ~GroupManager( );
66                                 // ----------------------------------------------------------------------------------
67                                 /*! @fn GetButtonID( );
68                                  *  @brief This method returns the Button ID.
69                                  *  @return
70                                  */
71                                 long
72                                 GetButtonID( );
73                                 // ----------------------------------------------------------------------------------
74                                 /*! @fn GetButton( );
75                                  *      @brief This method returns the expansion button.
76                                  * @return
77                                  */
78                                 ExpansionButton*
79                                 GetButton( );
80                                 // ----------------------------------------------------------------------------------
81                                 /*! @fn GetButtonManager( );
82                                  *      @brief This method returns the manager of the buttons.
83                                  *      @return
84                                  */
85                                 ButtonManager*
86                                 GetButtonManager( );
87                                 // ----------------------------------------------------------------------------------
88                                 /*! @fn SetButtonID( long id );
89                                  *      @brief This method sets the ID of the expansion button.
90                                  * @param id
91                                  */
92                                 void
93                                 SetButtonID( long id );
94                                 // ----------------------------------------------------------------------------------
95                                 /*! @fn SetButton( ExpansionButton* button );
96                                  *      @brief This method sets the expansion button.
97                                  * @param button
98                                  */
99                                 void
100                                 SetButton( ExpansionButton* button );
101                                 // ----------------------------------------------------------------------------------
102                                 /*! @fn SetButtonManager( ButtonManager* manager );
103                                  *      @brief This method Sets the ButtonManager
104                                  * @param manager A pointer with the manager.
105                                  */
106                                 void
107                                 SetButtonManager( ButtonManager* manager );
108                                 // ----------------------------------------------------------------------------------
109                                 /*! @fn HideSubPanel( bool hide );
110                                  *      @brief This method hides the subPanel (Hides the buttons).
111                                  * @param hide True if you need to hide the buttons.
112                                  */
113                                 void
114                                 HideSubPanel( bool hide );
115
116                         private:
117                                 long m_IDExpButton; //!<ID of "+""-" expansion button.
118                                 ExpansionButton* m_ExpansionButton; //!<The expansion button.
119                                 ButtonManager* m_ButtonManager; //!<The button manager.
120                 };
121         }//ecapseman
122 }//ecapseman
123
124 #endif // GROUPMANAGER_H