-/***************************************************************
- * Name: @file ButtonGroupFactory.h
- * Purpose: @brief This contains ButtonGroupFactory Class
+/************************************************************************************//*!
+ * Name: @file buttonGroupFactory.h
+ * Purpose: @brief This contains ButtonGroupFactory class
* Author: @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
- * Modified: 2011-05-09
- * Copyright: Diego CACERES (http://www.creatis.insa-lyon.fr/~caceres/)
+ * Modified: 2011-05-17
+ * Copyright:
* License:
- **************************************************************/
+ ***************************************************************************************/
#ifndef BUTTONGROUPFACTORY_H
#define BUTTONGROUPFACTORY_H
+//! @include <wx/window.h>
#include <wx/window.h>
+//! @include <list>
#include <list>
+//! @include <map>
#include <map>
+//! @include <iostream>
+#include <iostream>
+//! @include <exception>
+#include <exception>
+//! @include "system.h"
#include "system.h"
+//! @include "button.h"
#include "button.h"
+//! @include "buttonGroup.h"
#include "buttonGroup.h"
+//! @include "containerSettings.h"
#include "containerSettings.h"
+//! @include "functor.h"
#include "functor.h"
-///@namespace <creaButtonContainer>
+//! @namespace <creaButtonContainer>
namespace creaButtonContainer
{
- ///@namespace <model>
+ //! @namespace <model>
namespace model
{
- //typedef
- typedef creaButtonContainer::view::Button Button;
- typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
- typedef creaButtonContainer::model::ContainerSettings ButtonGroupModel;
- typedef std::list< ButtonGroup* > ButtonGroupContainer;
- typedef std::map< long, Button* > ButtonContainer;
- /// @class ButtonGroupFactory
- /// @brief This class is the factory of a group of wxButtons
+ //! @class ButtonGroupFactory
+ //! @brief This class is the factory of a group of wxButtons.
+
+ /*! @class ButtonGroupFactory buttonGroupFactory.h "buttonGroupFactory.h"
+ * @brief This class contains the ButtonContainer factory.
+ * This class describes the factory of the ButtonContainer using design patterns.
+ */
class ButtonGroupFactory
{
public:
- //Constructors:
- /*!
- * @brief This is the default constructor.
+ //typedef definition
+ /*! @typedef creaButtonContainer::view::Button Button;
+ * @brief Defines the Button type.
+ */
+ typedef creaButtonContainer::view::Button Button;
+ // ----------------------------------------------------------------------------------
+ /*! @typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
+ * @brief Defines the ButtonGroup type.
+ */
+ typedef creaButtonContainer::view::ButtonGroup ButtonGroup;
+ // ----------------------------------------------------------------------------------
+ /*! @typedef creaButtonContainer::model::ContainerSettings ButtonGroupModel;
+ * @brief Defines the ButtonGroupModel type.
+ */
+ typedef creaButtonContainer::model::ContainerSettings ButtonGroupModel;
+ // ----------------------------------------------------------------------------------
+ /*! @typedef std::list< ButtonGroup* > ButtonGroupContainer;
+ * @brief Defines the ButtonGroupContainer type.
+ */
+ typedef std::list< ButtonGroup* > ButtonGroupContainer;
+ // ----------------------------------------------------------------------------------
+ /*! @typedef std::map< long, Button* > ButtonContainer;
+ * @brief Defines the ButtonContainer type.
+ */
+ typedef std::map< long, Button* > ButtonContainer;
+ // ----------------------------------------------------------------------------------
+ public:
+ /*! @fn ButtonGroupFactory::ButtonGroupFactory( )
+ * @brief This is the default constructor.
*/
ButtonGroupFactory( );
- //Destructors:
- /*!
- * @brief this is the destructor.
+ // -------------------------------------------------------------------------------
+ /*! @fn virtual ButtonGroupFactory::~ButtonGroupFactory( )
+ * @brief This is the destructor.
*/
virtual
~ButtonGroupFactory( );
- //Functions:
- /*!
+ /*! @fn ButtonGroupContainer ButtonGroupFactory::CreateButtonGroupContainer( wxWindow* parent, ButtonGroupModel* settings );
* @brief This function allows to create the ButtonGroupContainer.
- * @param the wxWindow* parent to be attached.
- * @param The Container settings.
- * @return The wx button group container.
+ * @param parent the wxWindow* parent to be attached.
+ * @param settings The Container settings.
+ * @exception std::bad_alloc
+ * @return ButtonGroupContainer The wx button group container.
*/
ButtonGroupContainer
CreateButtonGroupContainer( wxWindow* parent,
ButtonGroupModel* settings );
private:
- /*!
- * @brief This function allows to create a wx button container for a group.
- * @param the wxWindow* parent to be attached.
- * @param The button list with its own information.
- * @return The wx button container.
+ /*! @fn ButtonContainer ButtonGroupFactory::GetButtons( wxWindow* parent, ButtonList buttonModel );
+ * @brief This function allows to create a wx button container for a group.
+ * @param parent the wxWindow* parent to be attached.
+ * @param buttonModel The button list with its own information.
+ * @exception std::bad_alloc
+ * @return ButtonContainer The wx button container.
*/
ButtonContainer
GetButtons( wxWindow* parent, ButtonList buttonModel );