/*************************************************************** * Name: CartoPanel.cxx * Purpose: Code for Application Frame * 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: **************************************************************/ #include "creaPanelButtonContainer.h" namespace creaPanelButtonContainer { //-------------------------------------------------------------------------------- typedef creaButtonContainer::model::TConcreteFunctor< PanelButtonContainer > TConcreteFunctor; PanelButtonContainer::PanelButtonContainer( wxWindow* parent, ButtonContainerSettings* bcSettings ) : wxPanel( parent, -1, wxDefaultPosition, wxSize( 300, 700 ), wxDEFAULT_FRAME_STYLE, _T("creaPanelButtonContainer") ) { this->m_ButtonContainerSettings = bcSettings; this->m_ButtonPanel = new wxPanel( this ); //Class that manages the cartobutton event!!! TConcreteFunctor* functor = new TConcreteFunctor( this, &PanelButtonContainer::GenericButtonEvent ); //end of the event definition this->m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ) ); //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)) ); //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->Update( ); //this->createGimmick(); } PanelButtonContainer::~PanelButtonContainer( ) { } 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( ); } void PanelButtonContainer::GenericButtonEvent( const std::string &buttonName ) { this->UpdatePanel( buttonName ); } }//ecapseman