2 * @file buttonContainerController.h
3 * @brief This contains the ButtonContainerController class
4 * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
8 #ifndef BUTTONCONTAINERPANEL_H
9 #define BUTTONCONTAINERPANEL_H
11 #include <wx/scrolwin.h>
12 #include <wx/button.h>
17 #include "buttonGroup.h"
18 #include "groupManager.h"
19 #include "buttonGroupFactory.h"
20 #include "containerSettings.h"
21 #include "buttonContainerController.h"
23 /*! @namespace <creaButtonContainer>
24 * @brief Contains the creaButtonContainer library included in creaMaracasVisu.
26 namespace creaButtonContainer
28 /*! @namespace<creaButtonContainer::controller>
29 * @brief Contains the implementation of the controller in creaButtonContainer library.
30 * @see <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC Software Architecture</a>
34 /*! @class ButtonContainerController buttonContainerController.h "buttonContainerController.h"
35 * @brief This class contains the ButtonContainerPanel controller.
36 * @details This class describes the button events, it derives from wxEvtHandler and it is the
37 * controller in the MVC.
38 * @see <a href="http://docs.wxwidgets.org/stable/wx_wxevthandler.html">wxEvtHandler</a>
40 class ButtonContainerController;
43 /*! @namespace <creaButtonContainer::view>
44 * @brief Contains the implementation of the view in creaButtonContainer library.
45 * @see <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC Software Architecture</a>
49 class ButtonContainerPanel : public wxScrolledWindow
53 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
54 * @brief Defines the TFunctor type.
56 typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
57 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
58 * @brief Defines the TFunctor type.
60 typedef creaButtonContainer::view::GroupManager GroupManager;
61 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
62 * @brief Defines the TFunctor type.
64 typedef std::list< ButtonGroup* > ButtonGroupList;
65 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
66 * @brief Defines the TFunctor type.
68 typedef std::map< long, GroupManager* > GroupManagerList;
69 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
70 * @brief Defines the TFunctor type.
72 typedef wxFlexGridSizer Sizer;
73 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
74 * @brief Defines the TFunctor type.
76 typedef std::list< long > KeyList;
77 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
78 * @brief Defines the TFunctor type.
80 typedef creaButtonContainer::model::ContainerSettings
82 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
83 * @brief Defines the TFunctor type.
85 typedef creaButtonContainer::model::ButtonGroupFactory
87 /*! @typedef creaButtonContainer::model::TFunctor TFunctor;
88 * @brief Defines the TFunctor type.
90 typedef creaButtonContainer::controller::ButtonContainerController
92 //end of typedef definition
94 /*! @fn ButtonContainerPanel( wxWindow* parent, ButtonGroupSettings* settings );
99 ButtonContainerPanel( wxWindow* parent, ButtonGroupSettings* settings );
100 // ----------------------------------------------------------------------------------
101 /*! @fn ~ButtonContainerPanel( );
105 ~ButtonContainerPanel( );
106 // ----------------------------------------------------------------------------------
107 /*! @fn SetGroupContainer( ButtonGroupList groupContainer );
109 * @param groupContainer
112 SetGroupContainer( ButtonGroupList groupContainer );
113 // ----------------------------------------------------------------------------------
114 /*! @fn PanelInit( );
119 // ----------------------------------------------------------------------------------
125 // ----------------------------------------------------------------------------------
127 friend class creaButtonContainer::controller::ButtonContainerController;
129 GroupManagerList m_GroupManagerList;
130 ButtonGroupList m_ButtonGroupList;
131 BCController* m_ButtonCController;
137 #endif // BUTTONCONTAINERPANEL_H