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)
8 ***************************************************************************************/
10 #ifndef BUTTONGROUPFACTORY_H
11 #define BUTTONGROUPFACTORY_H
13 //! @include <wx/window.h>
14 #include <wx/window.h>
19 //! @include <iostream>
21 //! @include <exception>
24 //! @include "system.h"
26 //! @include "button.h"
28 //! @include "buttonGroup.h"
29 #include "buttonGroup.h"
30 //! @include "containerSettings.h"
31 #include "containerSettings.h"
32 //! @include "functor.h"
35 //! @namespace <creaButtonContainer>
36 namespace creaButtonContainer
38 //! @namespace <model>
41 //! @class ButtonGroupFactory
42 //! @brief This class is the factory of a group of wxButtons.
44 /*! @class ButtonGroupFactory buttonGroupFactory.h "buttonGroupFactory.h"
45 * @brief This class contains the ButtonContainer factory.
46 * This class describes the factory of the ButtonContainer using design patterns.
48 class ButtonGroupFactory
52 /*! @typedef creaButtonContainer::view::Button Button;
53 * @brief Defines the Button type.
55 typedef creaButtonContainer::view::Button Button;
56 // ----------------------------------------------------------------------------------
57 /*! @typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
58 * @brief Defines the ButtonGroup type.
60 typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
61 // ----------------------------------------------------------------------------------
62 /*! @typedef creaButtonContainer::model::ContainerSettings ButtonGroupModel;
63 * @brief Defines the ButtonGroupModel type.
65 typedef creaButtonContainer::model::ContainerSettings ButtonGroupModel;
66 // ----------------------------------------------------------------------------------
67 /*! @typedef std::list< ButtonGroup* > ButtonGroupContainer;
68 * @brief Defines the ButtonGroupContainer type.
70 typedef std::list< ButtonGroup* > ButtonGroupContainer;
71 // ----------------------------------------------------------------------------------
72 /*! @typedef std::map< long, Button* > ButtonContainer;
73 * @brief Defines the ButtonContainer type.
75 typedef std::map< long, Button* > ButtonContainer;
76 // ----------------------------------------------------------------------------------
78 /*! @fn ButtonGroupFactory::ButtonGroupFactory( )
79 * @brief This is the default constructor.
81 ButtonGroupFactory( );
82 // -------------------------------------------------------------------------------
83 /*! @fn virtual ButtonGroupFactory::~ButtonGroupFactory( )
84 * @brief This is the destructor.
87 ~ButtonGroupFactory( );
88 /*! @fn ButtonGroupContainer ButtonGroupFactory::CreateButtonGroupContainer( wxWindow* parent, ButtonGroupModel* settings );
89 * @brief This function allows to create the ButtonGroupContainer.
90 * @param parent the wxWindow* parent to be attached.
91 * @param settings The Container settings.
92 * @exception std::bad_alloc
93 * @return ButtonGroupContainer The wx button group container.
96 CreateButtonGroupContainer( wxWindow* parent,
97 ButtonGroupModel* settings );
99 /*! @fn ButtonContainer ButtonGroupFactory::GetButtons( wxWindow* parent, ButtonList buttonModel );
100 * @brief This function allows to create a wx button container for a group.
101 * @param parent the wxWindow* parent to be attached.
102 * @param buttonModel The button list with its own information.
103 * @exception std::bad_alloc
104 * @return ButtonContainer The wx button container.
107 GetButtons( wxWindow* parent, ButtonList buttonModel );
112 #endif // CARTOBUTTONFACTORY_H