2 * @file buttonManager.h
3 * @brief This contains the ButtonManager class.
4 * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
8 #ifndef CARTOBUTTONCONTAINER_H
9 #define CARTOBUTTONCONTAINER_H
12 #include <wx/bmpbuttn.h>
13 #include <wx/stattext.h>
14 #include <wx/string.h>
17 #include "buttonGroup.h"
19 /*! @namespace <creaButtonContainer>
20 * @brief Contains the creaButtonContainer library included in creaMaracasVisu.
22 namespace creaButtonContainer
24 /*! @namespace <creaButtonContainer::view>
25 * @brief Contains the implementation of the view in creaButtonContainer library.
26 * @see <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC Software Architecture</a>
30 /*! @class ButtonManager buttonManager.h "buttonManager.h"
31 * @brief This class contains the ButtonManager view.
32 * @details This class describes a wxFlexGridSizer with the button manager, it derives from wxFlexGridSizer and it is the
33 * controller in the MVC.
34 * @see <a href="http://docs.wxwidgets.org/stable/wx_wxflexGridSizer.html">wxFlexGridSizer</a>
36 class ButtonManager : public wxFlexGridSizer
40 /*! @typedef creaButtonContainer::view::Button Button;
41 * @brief Defines the Button type.
43 typedef creaButtonContainer::view::Button Button;
44 // ----------------------------------------------------------------------------------
45 /*! @typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
46 * @brief Defines the ButtonGroup type.
48 typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
49 // ----------------------------------------------------------------------------------
50 /*! @typedef std::map< long, Button* > ButtonContainer;
51 * @brief Defines the ButtonContainer type.
53 typedef std::map< long, Button* > ButtonContainer;
54 // ----------------------------------------------------------------------------------
55 //end of typedef definition.
57 // ----------------------------------------------------------------------------------
58 /*! @fn ButtonManager( );
59 * @brief This is the default construuctor.
62 // ----------------------------------------------------------------------------------
63 /*! @fn ButtonManager( ButtonGroup* buttonGroup );
64 * @brief This is the parameterized constructor
65 * @param buttonGroup The group of buttons.
67 ButtonManager( ButtonGroup* buttonGroup );
68 // ----------------------------------------------------------------------------------
69 /*! @fn ~ButtonManager( );
70 * @brief This is the destructor.
74 // ----------------------------------------------------------------------------------
75 /*! @fn SetGroupName( wxStaticText* groupName );
76 * @details Sets the groupName.
80 SetGroupName( wxStaticText* groupName );
81 // ----------------------------------------------------------------------------------
82 /*! @fn ShowButtonManager( );
83 * @brief This function shows the ButtonManager
87 // ----------------------------------------------------------------------------------
88 /*! @fn HideButtonManager( );
89 * @brief This function hides the ButtonManager.
93 // ----------------------------------------------------------------------------------
95 // ----------------------------------------------------------------------------------
96 /*! @fn SetButtonManager( ButtonContainer buttonContainer );
97 * @brief This function set the buttons and it is private.
98 * @param buttonContainer
101 SetButtonManager( ButtonContainer buttonContainer );
102 // ----------------------------------------------------------------------------------
104 wxStaticText* m_GroupName; //!<The name of the group.
105 wxGridSizer* m_GridSizer; //!<The sizer that contains the buttons.
110 #endif // CARTOBUTTONCONTAINER_H