X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FcreaPanelButtonContainer%2FbuttonContainerSettings.cxx;h=721e82f1b7f70dbf7a6c65889140d172b9771e74;hb=412ca8c0300bc76e1a5e50a6de58840efc0d71b1;hp=8ca88d0e7200ab5d08dd1d66ab7e38f80aaa4754;hpb=978a6b69b838cd857d997d53e1392573853ae702;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx index 8ca88d0..721e82f 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx @@ -1,8 +1,33 @@ +/*# --------------------------------------------------------------------- +# +# 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.cxx * @brief Implements the ButtonContainerSettings class. * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr) - * @date 2011-05-24 + * @date 2011-06-02 */ #include "buttonContainerSettings.h" @@ -12,33 +37,42 @@ namespace creaPanelButtonContainer // ---------------------------------------------------------------------------------- ButtonContainerSettings::ButtonContainerSettings( ) { + } // ---------------------------------------------------------------------------------- ButtonContainerSettings::~ButtonContainerSettings( ) { } + // ---------------------------------------------------------------------------------- ButtonContainerSettings::ButtonGroupMap ButtonContainerSettings::GetButtonGroupContainer( ) { + std::cout<< "MLER | ButtonContainerSettings:: GetButtonGroupContainer( ) " << std::endl; return m_ButtonGroupContainer; } // ---------------------------------------------------------------------------------- ButtonContainerSettings::KeyMapList ButtonContainerSettings::GetGroupNameList( ) { + std::cout<< "MLER | ButtonContainerSettings:: GetGroupNameList( ) " << std::endl; return m_GroupNameList; } // ---------------------------------------------------------------------------------- //GetButtonPanel returns the panel associated to the buttonAction ButtonContainerSettings::PanelButton - ButtonContainerSettings::GetPanelButton( const std::string &buttonName ) + ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) { try { + std::cout<< "MLER | ButtonContainerSettings:: GetPanelButton " << std::endl; + for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it != this->m_GroupNameList.end( ); ++it ) { + + //std::cout<< std::endl<<"MLER ButtonContainerSettings // GetPanelButton :: it "<< *it<m_ButtonGroupContainer[ ( *it ) ]; for( ButtonList::iterator it1 = list.begin( ); it1 != list.end( ); ++it1 ) { @@ -52,58 +86,100 @@ namespace creaPanelButtonContainer catch ( std::exception& e ) { std::cerr - << "ButtonContainerSettings::GetPanelButton( const std::string &buttonName ) " + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " << "exception: " << e.what( ) << std::endl; }//hctac return ( NULL ); } +/* + // ---------------------------------------------------------------------------------- + ButtonContainerSettings::PanelButton + ButtonContainerSettings::GetPanelList( const StringType &buttonName ) + { + std::cout<< "MLER | ButtonContainerSettings:: GetPanelList " << std::endl; + + + try { + if(m_itemsMap.empty()) + std::cout<< "no tengo nada "<< std::endl; + + for( ItemsMap::iterator it= this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it ) + { + if( (*it).first.compare(buttonName) == 0 ) + return ( (*it).second ); + } + + + }catch ( std::exception& e ) + { + std::cerr + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " + << "exception: " << e.what( ) << std::endl; + }//hctac + return (NULL); + + } +*/ + // ---------------------------------------------------------------------------------- ButtonContainerSettings::ButtonGroupSettings* ButtonContainerSettings::GetButtonGroupSettings( TFunctor* functor ) { + ButtonGroupSettings* settings = NULL; try { - ButtonGroupSettings* settings = new ButtonGroupSettings( ); + std::cout<< "MLER | ButtonContainerSettings:: GetButtonGroupSettings() " << std::endl; + + settings = new ButtonGroupSettings( ); + for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it != this->m_GroupNameList.end( ); ++it ) { ButtonList list = this->m_ButtonGroupContainer[ ( *it ) ]; + for( ButtonList::iterator it1 = list.begin( ); it1 != list.end( ); ++it1 ) { - settings->AddButton( ( *it ), ( *it1 )->first->first, - ( *it1 )->first->second, ( *it1 )->second->first, functor ); + std::cout<<"MLER ButtonContainerSettings // GetButtonGroupSettings :: groupName "<< *it<first->first <AddButton( ( *it ), ( *it1 )->first->first, ( *it1 )->first->second, ( *it1 )->second->first, functor ); }//rof }//rof - return ( settings ); }//yrt catch ( std::exception& e ) { std::cerr - << "ButtonContainerSettings::GetPanelButton( const std::string &buttonName ) " + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " << "exception: " << e.what( ) << std::endl; }//hctac + return ( settings ); } // ---------------------------------------------------------------------------------- void ButtonContainerSettings::SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer ) { + std::cout<< "MLER | ButtonContainerSettings:: SetButtonGroupContainer() " << std::endl; this->m_ButtonGroupContainer = m_ButtonGroupContainer; } // ---------------------------------------------------------------------------------- void ButtonContainerSettings::SetGroupNameList( KeyMapList m_GroupNameList ) { + std::cout<< "MLER | ButtonContainerSettings:: SetGroupNameList() " << std::endl; this->m_GroupNameList = m_GroupNameList; } + // ---------------------------------------------------------------------------------- void - ButtonContainerSettings::AddButton( const std::string & groupName, - const std::string &buttonName, const std::string &iconpath, - const std::string &buttonDescription, PanelButton panel ) + ButtonContainerSettings::AddButton( const StringType & groupName, + const StringType &buttonName, const wxBitmap &icon, + const StringType &buttonDescription, PanelButton panel ) { try { + std::cout<< "MLER | ButtonContainerSettings:: AddButton( const StringType & groupName ..) " << std::endl; + //builds the button information //I don't know the try catch doesn't work!! if ( panel == NULL ) @@ -112,10 +188,13 @@ namespace creaPanelButtonContainer << "exception: NULL Pointer in panel " << std::endl; exit( 1 ); } + panel->Show( false ); + ButtonPair* pair = new ButtonPair( - new ButtonInfo( buttonName, iconpath ), + new ButtonInfo( buttonName, icon ), new ActionButton( buttonDescription, panel ) ); + for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it != this->m_GroupNameList.end( ); ++it ) { @@ -131,18 +210,21 @@ namespace creaPanelButtonContainer catch ( const std::exception& e ) { std::cerr - << "ButtonContainerSettings::AddButton( const std::string & groupName," - << "const std::string &buttonName, const std::string &iconpath," - << "const std::string &buttonDescription, PanelButton panel ) " + << "ButtonContainerSettings::AddButton( const StringType & groupName," + << "const StringType &buttonName, const StringType &iconpath," + << "const StringType &buttonDescription, PanelButton panel ) " << "exception: " << e.what( ) << std::endl; }//hctac } + // ---------------------------------------------------------------------------------- void ButtonContainerSettings::AddButton( BCPSettingsStruct* info ) { try { + std::cout<< "MLER | ButtonContainerSettings:: AddButton( BCPSettingsStruct* info )" << std::endl; + //builds the button information //I don't know the try catch doesn't work!! if ( info->panel == NULL ) @@ -153,7 +235,7 @@ namespace creaPanelButtonContainer } info->panel->Show( false ); ButtonPair* pair = new ButtonPair( - new ButtonInfo( info->buttonName, info->iconpath ), + new ButtonInfo( info->buttonName, info->icon ), new ActionButton( info->buttonDescription, info->panel ) ); for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it != this->m_GroupNameList.end( ); ++it ) @@ -175,16 +257,21 @@ namespace creaPanelButtonContainer exit( 1 ); }//hctac } + // ---------------------------------------------------------------------------------- void - ButtonContainerSettings::AddButtons( BCStructVectorType infoList ) + ButtonContainerSettings::AddButtons( BCStructVectorType infoList, int type ) { + std::cout<< "MLER | ButtonContainerSettings:: AddButtons( BCStructVectorType infoList, int type )" << std::endl; try { for( BCStructVectorType::iterator it = infoList.begin( ); it != infoList.end( ); ++it ) { - this->AddButton( *it ); + if( type == 0 ) + this->AddButton( *it ); +// else if( type == 1 ) +// this->AddItems(*it); }//rof }//yrt catch ( std::exception& e ) @@ -194,6 +281,51 @@ namespace creaPanelButtonContainer << "exception: " << e.what( ) << std::endl; }//hctac } + + +//EED-MLER +/* + void + ButtonContainerSettings::AddItems(BCPSettingsStruct* info) + { + try + { + std::cout<< "MLER | ButtonContainerSettings:: AddItems(BCPSettingsStruct* info)" << std::endl; + //builds the button information + //I don't know the try catch doesn't work!! + if ( info->panel == NULL ) + { + std::cerr << "ButtonContainerSettings::AddButton" + << "exception: NULL Pointer in panel " << std::endl; + exit( 1 ); + } + + info->panel->Show( false ); + + std::string mapKey = info->groupName + ":" + info->buttonName; + m_itemsMap[mapKey] = info->panel; + + }//yrt + catch ( const std::exception& e ) + { +<<<<<<< HEAD + try + { + for( BCStructVectorType::iterator it = infoList.begin( ); it + != infoList.end( ); ++it ) + { + this->AddItem(*it); + }//rof + }//yrt + catch ( const std::exception& e ) + { + std::cerr + << "ContainerSettings::AddButtons( BCStructVectorType infoList ) " + << "exception: " << e.what( ) << std::endl; + }//hctac + } +*/ + // ---------------------------------------------------------------------------------- }//ecapseman