X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FcreaPanelButtonContainer%2FbuttonContainerSettings.cxx;h=879be81aaddcb4dab32d4b01ff9cd0441abb9041;hb=19866c24e0c00120d0a40da4d03d6eebc3e031b6;hp=056158ad6a16658a0f92e228698a708b40f4205f;hpb=caeb4be1e91da63a8f9b3588967d67e81ce2c8a4;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 056158a..879be81 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx @@ -1,92 +1,303 @@ -/*************************************************************** - * Name: buttonContainerSettings.cxx - * Purpose: It is the ButtonGroupSettings - * Author: Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr) - * Modified: 2011-05-09 - * Copyright: Diego CACERES (http://www.creatis.insa-lyon.fr/~caceres/) - * License: - **************************************************************/ +/*# --------------------------------------------------------------------- +# +# 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-06-02 + */ + #include "buttonContainerSettings.h" -#include namespace creaPanelButtonContainer { - + // ---------------------------------------------------------------------------------- ButtonContainerSettings::ButtonContainerSettings( ) { } + // ---------------------------------------------------------------------------------- ButtonContainerSettings::~ButtonContainerSettings( ) { } - ButtonGroupMap + + // ---------------------------------------------------------------------------------- + ButtonContainerSettings::ButtonGroupMap ButtonContainerSettings::GetButtonGroupContainer( ) { return m_ButtonGroupContainer; } - - KeyMapList + // ---------------------------------------------------------------------------------- + ButtonContainerSettings::KeyMapList ButtonContainerSettings::GetGroupNameList( ) { return m_GroupNameList; } - - //GetButtonPanel returns the panel asociated to de buttonAction - PanelButton - ButtonContainerSettings::GetPanelButton( const std::string &buttonName ) + // ---------------------------------------------------------------------------------- + //GetButtonPanel returns the panel associated to the buttonAction + ButtonContainerSettings::PanelButton + ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) { - for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it - != this->m_GroupNameList.end( ); ++it ) + try { - ButtonList list = this->m_ButtonGroupContainer[ ( *it ) ]; - for( ButtonList::iterator it1 = list.begin( ); it1 != list.end( ); ++it1 ) + std::cout<<"MLER ButtonContainerSettings // GetPanelButton "<m_GroupNameList.begin( ); it + != this->m_GroupNameList.end( ); ++it ) { - if ( ( *it1 )->first->first.compare( buttonName ) == 0 ) + + std::cout<< std::endl<<"MLER ButtonContainerSettings // GetPanelButton :: it "<< *it<m_ButtonGroupContainer[ ( *it ) ]; + for( ButtonList::iterator it1 = list.begin( ); it1 != list.end( ); ++it1 ) { - return ( ( *it1 )->second->second ); - }//fi + if ( ( *it1 )->first->first.compare( buttonName ) == 0 ) + { + return ( ( *it1 )->second->second ); + }//fi + }//rof }//rof - }//rof + }//yrt + catch ( std::exception& e ) + { + std::cerr + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " + << "exception: " << e.what( ) << std::endl; + }//hctac return ( NULL ); } - ButtonGroupSettings* + // ---------------------------------------------------------------------------------- + ButtonContainerSettings::ButtonGroupSettings* ButtonContainerSettings::GetButtonGroupSettings( TFunctor* functor ) { - ButtonGroupSettings* settings = new ButtonGroupSettings( ); - for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it - != this->m_GroupNameList.end( ); ++it ) + ButtonGroupSettings* settings = NULL; + try { - ButtonList list = this->m_ButtonGroupContainer[ ( *it ) ]; - for( ButtonList::iterator it1 = list.begin( ); it1 != list.end( ); ++it1 ) + std::cout<< std::endl<<"MLER CLASS : ButtonContainerSettings" << std::endl; + std::cout<< std::endl<<"MLER ButtonContainerSettings // GetButtonGroupSettings "<m_GroupNameList.begin( ); it + != this->m_GroupNameList.end( ); ++it ) { - settings->AddButton( ( *it ), ( *it1 )->first->first, - ( *it1 )->first->second, ( *it1 )->second->first, functor ); + ButtonList list = this->m_ButtonGroupContainer[ ( *it ) ]; + + std::cout<<"MLER ButtonContainerSettings // GetButtonGroupSettings :: it "<< *it<AddButton( ( *it ), ( *it1 )->first->first, ( *it1 )->first->second, ( *it1 )->second->first, functor ); + }//rof }//rof - }//rof + }//yrt + catch ( std::exception& e ) + { + std::cerr + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " + << "exception: " << e.what( ) << std::endl; + }//hctac return ( settings ); } + // ---------------------------------------------------------------------------------- void ButtonContainerSettings::SetButtonGroupContainer( ButtonGroupMap m_ButtonGroupContainer ) { this->m_ButtonGroupContainer = m_ButtonGroupContainer; } - + // ---------------------------------------------------------------------------------- void ButtonContainerSettings::SetGroupNameList( KeyMapList m_GroupNameList ) { this->m_GroupNameList = m_GroupNameList; } + + // ---------------------------------------------------------------------------------- + void + ButtonContainerSettings::AddButton( const StringType & groupName, + const StringType &buttonName, const wxBitmap &icon, + const StringType &buttonDescription, PanelButton panel ) + { + try + { + std::cout<< std::endl<<"MLER ButtonContainerSettings // AddButton"<Show( false ); + ButtonPair* pair = new ButtonPair( + new ButtonInfo( buttonName, icon ), + new ActionButton( buttonDescription, panel ) ); + for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it + != this->m_GroupNameList.end( ); ++it ) + { + if ( ( *it ).compare( groupName ) == 0 ) + { + this->m_ButtonGroupContainer[ groupName ].push_back( pair ); + return; + }//fi + }//rof + this->m_GroupNameList.push_back( groupName ); + this->m_ButtonGroupContainer[ groupName ].push_back( pair ); + }//yrt + catch ( const std::exception& e ) + { + std::cerr + << "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( const std::string & groupName, - const std::string buttonName, const std::string iconpath, - const std::string buttonDescription, PanelButton panel ) + ButtonContainerSettings::AddButton( BCPSettingsStruct* info ) { - //builds the button information - ButtonPair* pair = new ButtonPair( new ButtonInfo( buttonName, iconpath ), - new ActionButton( buttonDescription, panel ) ); - panel->Show( false ); - this->m_ButtonGroupContainer[ groupName ].push_back( pair ); + try + { + //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 ); + ButtonPair* pair = new ButtonPair( + 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 ) + { + if ( ( *it ).compare( info->groupName ) == 0 ) + { + this->m_ButtonGroupContainer[ info->groupName ].push_back( pair ); + return; + }//fi + }//rof + this->m_GroupNameList.push_back( info->groupName ); + this->m_ButtonGroupContainer[ info->groupName ].push_back( pair ); + }//yrt + catch ( const std::exception& e ) + { + std::cerr + << "ButtonContainerSettings::AddButton( BCPSettingsStruct* info )" + << "exception: " << e.what( ) << std::endl; + exit( 1 ); + }//hctac + } + + // ---------------------------------------------------------------------------------- + void + ButtonContainerSettings::AddButtons( BCStructVectorType infoList ) + { + try + { + for( BCStructVectorType::iterator it = infoList.begin( ); it + != infoList.end( ); ++it ) + { + this->AddButton( *it ); + }//rof + }//yrt + catch ( std::exception& e ) + { + std::cerr + << "ButtonContainerSettings::AddButtons( BCStructVectorType infoList )" + << "exception: " << e.what( ) << std::endl; + }//hctac } + + +//EED-MLER +/* + void + ButtonContainerSettings::AddItem(BCPSettingsStruct* info) + { + if(info->panel == NULL) + { + std::cerr + << "ButtonContainerSettings::AddItem" + << "exception: NULL Pointer in panel" << std::endl; + exit(1); + } + + wxListItem item; + wxString myString((info->buttonName).c_str(),wxConvUTF8); + item.SetText(myString); + + try + { + for(KeyMapList::iterator it = this->m_GroupNameList.begin( ); it + != this->m_GroupNameList.end( ); ++it ) + { + if((*it).compare(info->groupName) == 0) + { + this->m_ListGroupContainer[info->groupName].push_back(item); + return; + } + }//rof + this->m_GroupNameList.push_back(info->groupName); + this->m_ListGroupContainer[info->groupName].push_back(item); + + }//yrt + catch ( const std::exception& e ) + { + std::cerr + << "ContainerSettings::AddButtons( BCStructVectorType infoList ) " + << "exception: " << e.what( ) << std::endl; + }//hctac + } + + void + ButtonContainerSettings::AddItems(BCStructVectorType infoList) + { + 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