X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FcreaPanelButtonContainer%2FbuttonContainerSettings.h;h=cdb3207783c62ad3a1a171201293cfa65abd2231;hb=b2ac7f59e78e33f8e11065cffa2f2072aa9a9ee5;hp=ff61b632ec557618d10371a7cee18e9444555a36;hpb=de7a931d43b373fdbaba530ae326a64d45148ae9;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h index ff61b63..cdb3207 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h @@ -1,22 +1,52 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + /*! * @file buttonContainerSettings.h * @brief This contains the ButtonContainerSettings class. * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr) - * @date 2011-05-24 + * @date 2011-06-02 */ #ifndef BUTTONCONTAINERSETTINGS_H_ #define BUTTONCONTAINERSETTINGS_H_ +#include +#include +#include + #include #include -#include #include +#include #include "structBCPSettings.h" #include "containerSettings.h" #include "functor.h" + /*! @namespace * @brief Contains the creaPanelButtonContainer library included in creaMaracasVisu. */ @@ -29,6 +59,12 @@ namespace creaPanelButtonContainer { public: //typedef definition. + // ---------------------------------------------------------------------------------- + /*! @typedef std::string* StringType; + * @brief Defines the StringType type. + */ + typedef std::string StringType; + // ---------------------------------------------------------------------------------- /*! typedef creaButtonContainer::model::TFunctor TFunctor; * @brief Defines the TFunctor type. */ @@ -49,12 +85,14 @@ namespace creaPanelButtonContainer * First is the button description, Second FunctionEventType */ typedef std::pair< std::string, PanelButton > ActionButton; + // ---------------------------------------------------------------------------------- - /*! @typedef std::pair< std::string, std::string > ButtonInfo; + /*! @typedef std::pair< std::string, wxBitmap > ButtonInfo; * @brief Defines the ButtonInfo type. - * First is the ButtonName, Second is the ImageIconPath + * First is the ButtonName, Second is the ImageIcon */ - typedef std::pair< std::string, std::string > ButtonInfo; + typedef std::pair< std::string, wxBitmap > ButtonInfo; + // ---------------------------------------------------------------------------------- /*! @typedef std::pair< ButtonInfo*, ActionButton* > ButtonPair; * @brief Defines the ButtonPair type. @@ -65,11 +103,13 @@ namespace creaPanelButtonContainer * @brief Defines the KeyMapList type. */ typedef std::list< std::string > KeyMapList; + // ---------------------------------------------------------------------------------- /*! @typedef std::list< ButtonPair* > ButtonList; * @brief Defines the ButtonList type. */ - typedef std::list< ButtonPair* > ButtonList; + typedef std::list< ButtonPair* > ButtonList; + // ---------------------------------------------------------------------------------- /*! @typedef std::map< std::string, ButtonList > ButtonGroupMap; * @brief Defines the ButtonGroupMap type. @@ -85,6 +125,12 @@ namespace creaPanelButtonContainer /*! @class ButtonContainerSettings buttonContainerSettings.h "buttonContainerSettings.h" * @brief This class contains the settings of the button container. */ + + typedef wxListItem Item; + typedef std::list < tList* > ItemsList; + typedef std::map< StringType, ListLst > ListGroupMap; + + public: // ---------------------------------------------------------------------------------- /*! @fn ButtonContainerSettings( ); @@ -97,6 +143,7 @@ namespace creaPanelButtonContainer */ virtual ~ButtonContainerSettings( ); + // ---------------------------------------------------------------------------------- /*! @fn ButtonGroupMap GetButtonGroupContainer( ); * @brief This method returns ButtonGroupMap with all buttons. @@ -123,7 +170,7 @@ namespace creaPanelButtonContainer // ---------------------------------------------------------------------------------- /*! @fn ButtonGroupSettings* GetButtonGroupSettings( TFunctor* functor ); * @brief this method return the settings the generic settings for creaButtonContainer. - * @param functor + * @param functor The function to be called in the action button. * @exception std::bad_alloc * @return */ @@ -134,6 +181,16 @@ namespace creaPanelButtonContainer * @brief This method sets the button group container. * @param bGroupContainer */ + + // ---------------------------------------------------------------------------------- + + ButtonGroupSettings* + GetListGroupSettings(); + + // ---------------------------------------------------------------------------------- + + + void SetButtonGroupContainer( ButtonGroupMap bGroupContainer ); // ---------------------------------------------------------------------------------- @@ -143,42 +200,54 @@ namespace creaPanelButtonContainer */ void SetGroupNameList( KeyMapList gNameList ); + // ---------------------------------------------------------------------------------- /*! @fn void AddButton( const std::string &groupName, const std::string &buttonName, const std::string &iconpath, const std::string &buttonDescription, PanelButton panel ); * @brief This method adds a new button into a group of buttons. - * @param groupName - * @param buttonName - * @param iconpath - * @param buttonDescription - * @param panel + * @param groupName The button groupName + * @param buttonName The buttonName + * @param iconpath The path of the icon + * @param buttonDescription The button tooltip + * @param panel The panel to be called when the button is clicked * @exception std::bad_alloc */ void AddButton( const std::string &groupName, const std::string &buttonName, - const std::string &iconpath, const std::string &buttonDescription, + const wxBitmap &icon, const std::string &buttonDescription, PanelButton panel ); + // ---------------------------------------------------------------------------------- /*! @fn void AddButton( BCPSettingsStruct* info ); * @brief This method adds a new button into a group of buttons. - * @param info + * @param info The pointer to BCPSettingsStruct. * @exception std::bad_alloc */ void AddButton( BCPSettingsStruct* info ); + // ---------------------------------------------------------------------------------- /*! @fn void AddButtons( BCStructVectorType infoList ); * @brief This method adds new buttons into the container. - * @param infoList + * @param infoList The BCStructVectorType * @exception std::bad_alloc */ void AddButtons( BCStructVectorType infoList ); + + void + AddItem (BCPSettingsStruct* info); + + void + AddItems( BCStructVectorType infoList ); + // ---------------------------------------------------------------------------------- private: ButtonGroupMap m_ButtonGroupContainer; //!