X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FcreaPanelButtonContainer%2FcreaPanelButtonContainer.cxx;h=70a5a6973533dc796852dbf26fcdd1e3614f325c;hb=b2ac7f59e78e33f8e11065cffa2f2072aa9a9ee5;hp=133a214ddbd67baad7e14875ea08dd0500ccce8f;hpb=de7a931d43b373fdbaba530ae326a64d45148ae9;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx index 133a214..70a5a69 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.cxx @@ -1,46 +1,69 @@ +/*# --------------------------------------------------------------------- +# +# 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 creaPanelButtonContainer.h * @brief implements PanelButtonContainer class * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr) - * @date 2011-05-24 + * @date 2011-06-02 */ #include "creaPanelButtonContainer.h" namespace creaPanelButtonContainer { + BEGIN_EVENT_TABLE(PanelButtonContainer,wxPanel) + //(*EventTable(ButtonContainerPanel) + //*) + END_EVENT_TABLE() // ---------------------------------------------------------------------------------- - typedef creaButtonContainer::model::TConcreteFunctor< PanelButtonContainer > - TConcreteFunctor; + typedef creaButtonContainer::model::TConcreteFunctor< PanelButtonContainer > TConcreteFunctor; // ---------------------------------------------------------------------------------- - PanelButtonContainer::PanelButtonContainer( wxWindow* parent, - ButtonContainerSettings* bcSettings ) : - wxPanel( parent, -1, wxDefaultPosition, wxSize( 300, 700 ), - wxDEFAULT_FRAME_STYLE, _T("creaPanelButtonContainer") ) + PanelButtonContainer::PanelButtonContainer( wxWindow* parent, ButtonContainerSettings* bcSettings, std::string type ) + : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("creaPanelButtonContainer") ) { + std::cout<< std::endl << " MLER creaPanelButtonContainer.cxx / PanelButtonContainer() " << std::endl; + this->m_ButtonContainerSettings = bcSettings; this->m_ButtonPanel = new wxPanel( this ); - //Class that manages the cartobutton event!!! - TConcreteFunctor* functor = new TConcreteFunctor( this, - &PanelButtonContainer::GenericButtonEvent ); + + //Class that manages the event!!! + //EED 20/01/2012 + TConcreteFunctor* functor = new TConcreteFunctor( this, &PanelButtonContainer::GenericButtonEvent ); +// TConcreteFunctor* functor = new TConcreteFunctor( this->m_ButtonPanel, &PanelButtonContainer::GenericButtonEvent ); //end of the event definition - this->m_ButtonContainerPanel = new ButtonContainerPanel( this, - this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ) ); + + this->m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ),type ); + //Using AuiManager to Manage the Panels this->m_AuiManager = new wxAuiManager( this, wxAUI_MGR_DEFAULT ); - // CartoSettingsPanel Management - this->m_AuiManager->AddPane( - this->m_ButtonPanel, - wxAuiPaneInfo( ).Name( _T("ButtonPanel") ).Caption( _("Panel") ). CaptionVisible( ).CloseButton( - false ).Left( ).MinSize( wxSize( 300, 300 ) ) ); + + this->m_AuiManager->AddPane(this->m_ButtonPanel, wxAuiPaneInfo( ).Name( _T("ButtonPanel") ).Caption( _("Panel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) ); //CartoButtonPanel Management - this->m_AuiManager->AddPane( - this->m_ButtonContainerPanel, - wxAuiPaneInfo( ).Name( _T("creaButtonContainer") ).Caption( - _("creaButtonContainer") ). CaptionVisible( ).CloseButton( false ).Left( ) .MinSize( - wxSize( 300, 300 ) ) ); + this->m_AuiManager->AddPane( this->m_ButtonContainerPanel,wxAuiPaneInfo( ).Name( _T("creaButtonContainer") ).Caption(_("creaButtonContainer") ). CaptionVisible( false ).CloseButton(false ).Center( ).Resizable( true ) ); this->m_AuiManager->Update( ); - //this->createGimmick(); } // ---------------------------------------------------------------------------------- PanelButtonContainer::~PanelButtonContainer( ) @@ -50,16 +73,30 @@ namespace creaPanelButtonContainer void PanelButtonContainer::UpdatePanel( const std::string &buttonName ) { - //Hiding the last CartoSettingsPanel - this->m_ButtonPanel->Show( false ); - //Finding the CartoSettingsPanel of the ButtonClicket - this->m_ButtonPanel = this->m_ButtonContainerSettings->GetPanelButton( - buttonName ); - //CartoSettingsPanel Management - this->m_AuiManager->GetPane( _T("ButtonPanel") ).window - = this->m_ButtonPanel; - //Updating the manager - this->m_AuiManager->Update( ); + try + { + //Hiding the last CartoSettingsPanel + this->m_ButtonPanel->Show( false ); + //Finding the CartoSettingsPanel of the ButtonClicket + this->m_ButtonPanel = this->m_ButtonContainerSettings->GetPanelButton(buttonName ); + //changing the parent of the panel! + if ( this->m_ButtonPanel->GetParent( ) != this ) + { + this->m_ButtonPanel->Reparent( this ); + }//fi + //CartoSettingsPanel Management + this->m_AuiManager->GetPane( _T("ButtonPanel") ).window = this->m_ButtonPanel; + //Updating the manager + this->m_AuiManager->Update( ); + }//yrt + catch ( const std::exception& e ) + { + std::cerr + << "PanelButtonContainer::UpdatePanel( const std::string &buttonName )" + << "exception: " << e.what( ) << std::endl; + std::cout << "Maybe the panel of the button is NULL" << std::endl; + exit( 1 ); + }//hctac } // ---------------------------------------------------------------------------------- void