]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h
#2647 creaMaracasVisu Feature New Normal - Merge creaButtonContainer BRANCH
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / creaButtonContainer / view / listWx.h
index 346552982ff271e6ceea3dc6ef2abb329f06a990..9eb623543dabc8fdfcc7b014a0c308f309f3de5f 100644 (file)
  #  knowledge of the CeCILL-B license and that you accept its terms.
  # ------------------------------------------------------------------------ */
 
+/*!
+ * @file listWx.h
+ * @brief This contains the ListWx class.
+ * @author Monica ESPINOSA (espinosa[AT]creatis.insa-lyon.fr)
+ * @date  2015-01-02
+ */
+
 #ifndef LISTWX_H
 #define LISTWX_H
 
 //#include <wx/bmpbuttn.h>
 #include <wx/panel.h>
-#include <wx/image.h>
 #include <wx/string.h>
-#include <wx/bitmap.h>
-//#include <wx/listctrl.h>
-#include <wx/control.h>
-#include <wx/choice.h>
 #include <wx/listbox.h>
 #include <wx/wx.h>
+#include <wx/event.h>
 
-#include <map>
 #include <string>
-#include "functor.h"
-#include <wx/event.h>
+#include <vector>
+#include <utility>
 
+#include "functor.h"
 #include "system.h"
-#include "listConfig.h"
-//#include "listConfigPanel.h"
-
-namespace creaButtonContainer {
-
-namespace view {
-
-class ListWx: public wxPanel {
-public:
-
-       typedef creaButtonContainer::model::TFunctor TFunctor;
-       typedef std::map<std::string, wxPanel*> ItemsMap;
-       typedef creaButtonContainer::model::ListConfig ListConfig;
-
-public:
-
-       ListWx(wxWindow* parent, wxWindowID id, ItemsMap iMap, TFunctor* functor);
-       ListWx(wxWindow* parent, wxWindowID id, ItemsMap iMap, TFunctor* functor,
-                       std::string c);
-       // ----------------------------------------------------------------------------------
-
-       virtual
-       ~ListWx();
-       // ----------------------------------------------------------------------------------
 
-       long
-       GetID();
-
-       void
-       FillList();
-
-       void
-       ListEvent(wxCommandEvent& event);
-
-       ItemsMap
-       GetItemsMap();
-
-       TFunctor*
-       GetWxListFunctor();
-
-       void SetFunctorEnabled(const bool& enabled);
-
-       void AddItemToMap(std::string key, wxPanel* panel);
-
-       void DeleteItemFromMap(std::string key);
-
-       bool IsFunctorEnabled() const;
-
-       wxListBox*
-       GetListBox() const;
-
-       // ----------------------------------------------------------------------------------
-private:
-       ItemsMap m_itemsMap; //!
-       TFunctor* functor;
-       wxListBox* listBox;
-       wxFlexGridSizer* sizer;
-       wxButton* button;
-       bool m_functorEnabled;
-       ListConfig* m_listConfig;
-};
-} //ecapseman
+/*!    @namespace <creaButtonContainer>
+ *     @brief Contains the creaButtonContainer library included in creaMaracasVisu.
+ */
+namespace creaButtonContainer
+{
+       /*! @namespace <creaButtonContainer::view>
+        *      @brief Contains the implementation of the view in creaButtonContainer library.
+        *      @see <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC Software Architecture</a>
+        */
+       namespace view
+       {
+               /*! @class ListWx listWx.h "listWx.h"
+                *      @brief This class contains the list in the panel.
+                *  @details This class contains the information of a list, it derives from wxPanel.
+                *  @see <a href="http://docs.wxwidgets.org/stable/wx_wxpanel.html">wxPanel</a>
+                */
+               class ListWx: public wxPanel
+               {
+                       public:
+                               //typedef definition.
+                               // ----------------------------------------------------------------------------------
+                               /*!     typedef creaButtonContainer::model::TFunctor TFunctor;
+                                *      @brief Defines the TFunctor type.
+                                */
+                               typedef creaButtonContainer::model::TFunctor TFunctor;
+                               // ----------------------------------------------------------------------------------
+                               /*!     @typedef std::pair<std::string, wxPanel*> ListAction;
+                                *      @brief Defines the ListAction type.
+                                *      First is the button name(item list), Second FunctionEventType
+                                */
+                               typedef std::pair<std::string, wxPanel*> ListAction;
+                               // ----------------------------------------------------------------------------------
+                               /*!     @typedef std::vector<ListAction> ItemsVector;
+                                *      @brief Defines the Items Vector type.
+                                */
+                               typedef std::vector<ListAction> ItemsVector;
+                               // ----------------------------------------------------------------------------------
+                               //end of typedef definition.
+
+                       public:
+                               // ----------------------------------------------------------------------------------
+                               /*! @fn ListWx( wxWindow* parent, wxWindowID id, ItemsVector iVector,
+                                TFunctor* functor );
+                                *      @brief This is the parameterized constructor.
+                                *      @param parent The wxWindow pointer to parent.
+                                *      @param id The wxID of the button.
+                                *      @param ItemsVector //The items Vector (name, wxPanel).
+                                *      @param TFunctor //The functor of items list.
+                                */
+                               ListWx(wxWindow* parent, wxWindowID id, ItemsVector iVector,
+                                               TFunctor* functor);
+                               // ----------------------------------------------------------------------------------
+                               /*! @fn ListWx( wxWindow* parent, wxWindowID id, TFunctor* functor );
+                                *      @brief This is the parameterized constructor.
+                                *      @param parent The wxWindow pointer to parent.
+                                *      @param id The wxID of the button.
+                                *      @param TFunctor //The functor of items list.
+                                */
+                               ListWx(wxWindow* parent, wxWindowID id, TFunctor* functor);
+                               // ----------------------------------------------------------------------------------
+                               /*! @fn virtual ~Button( );
+                                *      @brief This is the destructor.
+                                */
+                               virtual
+                               ~ListWx();
+                               // ----------------------------------------------------------------------------------
+                               /*! @fn void OnListEvent( wxCommandEvent& event );
+                                *  @brief This method calls the functor when
+                                *  an item of list is clicked.
+                                *      @param event
+                                */
+                               void
+                               OnListEvent(wxCommandEvent& event);
+                               // ----------------------------------------------------------------------------------
+                               /*! @fn void SetFunctorEnabled( wxCommandEvent& event );
+                                *  @brief This method set the state of Functor (enable or disable)
+                                *      @param enabled
+                                */
+                               void
+                               SetFunctorEnabled(const bool& enabled);
+                               // ----------------------------------------------------------------------------------
+                               /*! @fn bool OnListEvent( wxCommandEvent& event );
+                                *  @brief This method ask the state of functor.
+                                *      @return
+                                */
+                               bool
+                               IsFunctorEnabled() const;
+                               // ----------------------------------------------------------------------------------
+                               /*! @fn wxListBox* GetListBox() const;
+                                *      @brief This method returns the wxlistBox.
+                                *      @exception std::bad_alloc
+                                *      @return wxListBox
+                                */
+                               wxListBox*
+                               GetListBox() const;
+                               // ----------------------------------------------------------------------------------
+
+                       private:
+
+                               wxListBox* m_ListBox;                           //!< This is the Items List.
+                               TFunctor* m_Functor;                            //!< This is the functor.
+                               bool m_FunctorEnabled;                          //!< Disable or Enable Functor.
+
+               };
+       } //ecapseman
 } //ecapseman
 
 #endif // LISTWX_H