From: davila Date: Wed, 27 May 2015 14:05:57 +0000 (+0200) Subject: #2647 creaMaracasVisu Feature New Normal - Merge creaButtonContainer BRANCH X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=8eebd53dcbe07edf0569621003178ee37d69a39b;hp=bbd33bbb0f352d14d7068d87fcd50e02341004a9;p=creaMaracasVisu.git #2647 creaMaracasVisu Feature New Normal - Merge creaButtonContainer BRANCH --- diff --git a/appli/BasicViewer/main.cxx b/appli/BasicViewer/main.cxx index 462a57e..b71b668 100644 --- a/appli/BasicViewer/main.cxx +++ b/appli/BasicViewer/main.cxx @@ -29,6 +29,9 @@ #include "OpenImageDialog.h" #include "vtkImageData.h" +#include +#include +#include class MyApp:public wxApp { @@ -66,10 +69,11 @@ bool MyApp::OnInit() MyFrame *frame = new MyFrame(wxT("CREATIS basic")); const int width = 600; + const int height = 250; frame->SetSize(width,height); - + frame->Show(true); return true; diff --git a/appli/CMakeLists.txt b/appli/CMakeLists.txt index 197b3c5..7f47881 100644 --- a/appli/CMakeLists.txt +++ b/appli/CMakeLists.txt @@ -24,7 +24,7 @@ # ------------------------------------------------------------------------ */ #ADD_SUBDIRECTORY(ManualPaint) -#ADD_SUBDIRECTORY(BasicViewer) +##ADD_SUBDIRECTORY(BasicViewer) IF(QT_USE_QTUITOOLS) ADD_SUBDIRECTORY(QtVTKViewer) diff --git a/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx b/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx index de5de6e..160795d 100644 --- a/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx +++ b/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx @@ -41,7 +41,7 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ColorLayerImageView,bbtk::WxBlackBox); //===== void ColorLayerImageView::Process() { - + ColorLayerImageViewPanel *clivp = (ColorLayerImageViewPanel*)bbGetOutputWidget(); clivp->SetActive( bbGetInputActive() ); diff --git a/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx b/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx index 3386357..fcc9903 100644 --- a/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx +++ b/bbtk/src/bbcreaMaracasVisuPanelButtonContainer.cxx @@ -42,11 +42,7 @@ PanelButtonContainer::Process( ) { ButtonContainerSettings* settings = new ButtonContainerSettings( ); printf("EED PanelButtonContainer::Process %d\n", bbGetInputIn( ).size() ); - - settings->AddButtons(bbGetInputIn( ), bbGetInputType()); - - PBContainer* panel = new PBContainer( myPanel, settings, bbGetInputType() ); wxBoxSizer* sizer = new wxBoxSizer( wxHORIZONTAL ); sizer->Add( panel, 1, wxEXPAND, 0 ); @@ -65,8 +61,8 @@ void PanelButtonContainer::CreateWidget( wxWindow* parent ) this->myPanel = new wxPanel( parent, -1 ); /// \TODO fix warning: unused variable ww wxWindow* ww = bbCreateWidgetOfInput( "In", this->myPanel ); - bbSetOutputWidget( myPanel); - + ww=NULL; + bbSetOutputWidget( myPanel ); } //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.cxx index 515784a..61bb9bb 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.cxx @@ -82,8 +82,6 @@ void ColorLayerImageView::SetZ2(int z2) _z2 = z2; } - - //---------------------------------------------------------------------------- int ColorLayerImageView::GetX() // virtual { @@ -208,17 +206,17 @@ void ColorLayerImageView::SetDefaultGreyLevelBoundary() } // Grey level extrema are set by default to the image grey level extrema. - int minTot = floor (_range[0]); - int maxTot = ceil (_range[1]); + double minTot = _range[0]; + double maxTot = _range[1]; - _grey_level_boundary.push_back((double)minTot); + _grey_level_boundary.push_back(minTot); // By default, the histogram is split into BaseColorNb areas of equal width. double delta = (maxTot - minTot)/GetBaseColorNb(); for (int i = 1; i <= GetBaseColorNb() ; i ++) { - _grey_level_boundary.push_back((double)minTot + i * delta); - } + _grey_level_boundary.push_back(minTot + i * delta); + } // for } //---------------------------------------------------------------------------- @@ -247,152 +245,165 @@ void ColorLayerImageView::SetDefaultBaseColorAndGreyLevelBoundary() _range[1]=255; } - int minTot = floor (_range[0]); - int maxTot = ceil (_range[1]); + double minTot = floor (_range[0]); + double maxTot = ceil (_range[1]); - _grey_level_boundary.push_back((double)minTot); + _grey_level_boundary.push_back(minTot); // By default, the histogram is split into three areas of equal width. double delta = (maxTot - minTot)/3.0; _grey_level_boundary.push_back(minTot + delta); _grey_level_boundary.push_back(minTot + 2*delta); - _grey_level_boundary.push_back((double)maxTot); + _grey_level_boundary.push_back(maxTot); } //---------------------------------------------------------------------------- void ColorLayerImageView::ConfigLookupTable() // virtual { - // CM + // CM 2014 + // EED 28/01/2015 + // Grey level extrema retrieved from the image grey level extrema. - GetImage()->GetScalarRange(_range); - - + double minRange = _range[0]; + double maxRange = _range[1]; // ------------------ Setting Default Values // Checks the size consistency of vectors _base_color and _grey_level_boundary. // In case of inconsistency, an exception should be thrown. Instead, the default values are set. if (GetBaseColorNb() == 0) - SetDefaultBaseColorAndGreyLevelBoundary(); - - // If at least one color has been set, set the grey level boundaries to build an equipartition of the image grey levels, keeping the base colors defined. - else - if (GetBaseColorNb() != (_grey_level_boundary.size() - 1) ) + { + SetDefaultBaseColorAndGreyLevelBoundary(); + } + else { // If at least one color has been set, set the grey level boundaries to build an equipartition of the image grey levels, keeping the base colors defined. + if (GetBaseColorNb() != ((int)_grey_level_boundary.size() - 1) ) { - std::cout << "CM ColorLayerImageView::ConfigLookupTable : ERROR!!! Inconsistency between the sizes of vectors _base_color and _grey_level_boundary. _base_color.size()/3 (=" <<_base_color.size()/3 << ") should be equal to _grey_level_boundary.size() - 1 (=" << _grey_level_boundary.size() - 1 << ")." << std::endl; - std::cout << "CM The default values for the base colors and the grey level boundaries will be set." << std::endl; - SetDefaultGreyLevelBoundary(); + std::cout << "CM ColorLayerImageView::ConfigLookupTable : ERROR!!! Inconsistency between the sizes of vectors _base_color and _grey_level_boundary. _base_color.size()/3 (=" <<_base_color.size()/3 << ") should be equal to _grey_level_boundary.size() - 1 (=" << _grey_level_boundary.size() - 1 << ")." << std::endl; + std::cout << "CM The default values for the base colors and the grey level boundaries will be set." << std::endl; + SetDefaultGreyLevelBoundary(); } + } // ------------------ End Of Setting Default Values - // ------------------ Defining the Threshold Table vtkLookupTable* thresholdTable = GetThresholdTable(); + double thresholdTable_range[2]; + double r1,r2,g1,g2,b1,b2; + int start,end; // CM Number of table values consistent with the effective number of values (see loop below). - double thresholdTable_range[2]; - thresholdTable_range[1]= std::max( GetGreyLevelBoundaries( GetBaseColorNb() ), ceil(_range[1]) ); - thresholdTable_range[0]= std::min( GetGreyLevelBoundaries(0), floor(_range[0]) ); - thresholdTable->SetNumberOfTableValues(thresholdTable_range[1] - thresholdTable_range[0] + 1); + thresholdTable_range[1]= std::max( GetGreyLevelBoundaries( _grey_level_boundary.size()-1 ) , ceil(_range[1]) ); + thresholdTable_range[0]= std::min( GetGreyLevelBoundaries(0) , floor(_range[0]) ); + thresholdTable->SetTableRange(thresholdTable_range); thresholdTable->SetAlphaRange(0, 1); thresholdTable->SetValueRange(0, 1); - thresholdTable->SetSaturationRange(0, 0); thresholdTable->SetRampToLinear( ); + maxColorsThresholdTable = 1000; + thresholdTable->SetNumberOfTableValues( maxColorsThresholdTable ); + + // Defines the lookup table. // If the image has a degradation in one (or both) extremum (lower or higher), // sets the corresponding grey levels as transparent white in the lookup table. - for (int i = floor(_range[0]); i <= GetGreyLevelBoundaries(0); i++) - { - thresholdTable -> SetTableValue( i, 0, 0, 0, 0); - } - for (int i = GetGreyLevelBoundaries( GetBaseColorNb() ) + 1 ; i <= ceil(_range[1]); i++) - { - thresholdTable -> SetTableValue( i, 0, 0, 0, 0); - } - - int delta; // _color_type true, i.e. plain colors. // Sets the plain color for each grey level interval. if (_color_type) - { - for (int i = 0; i < GetBaseColorNb(); i++) - { - delta = GetGreyLevelBoundaries(i+1) - GetGreyLevelBoundaries(i); - for (int ii = 1; ii <= delta; ii++) - { - thresholdTable->SetTableValue(GetGreyLevelBoundaries(i) + ii, - GetBaseColors(i*3), - GetBaseColors(i*3 + 1), - GetBaseColors(i*3 + 2), - 1); - } - } - } // End Of if (_color_type) + { + + if ( minRangeGetGreyLevelBoundaries( _grey_level_boundary.size()-1 ) ) + { + start = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries( _grey_level_boundary.size()-1 ) ); + end = GrayLevel_TO_colorTableIndex( maxRange ); + FillColorTable(start,end, 0,0,0, 0,0,0); + } + + for (int iColor = 0; iColor < GetBaseColorNb(); iColor++) + { + r1 = GetBaseColors(iColor*3+0); + g1 = GetBaseColors(iColor*3+1); + b1 = GetBaseColors(iColor*3+2); + start = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor) ); + end = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor+1) ); + FillColorTable(start,end, r1,g1,b1,r1,g1,b1); + } // for i + } // End Of if (_color_type) - // _color_type false, i.e. gradient color else - { - // First color: - // Creates a linear range from white to the first color. - delta = GetGreyLevelBoundaries(1) - GetGreyLevelBoundaries(0); - for (int ii = 1; ii <= delta ; ii++) - { - thresholdTable->SetTableValue( (GetGreyLevelBoundaries(0) + ii), GetBaseColors(0) * ii/delta, - GetBaseColors(1) * ii/delta, GetBaseColors(2) * ii/delta, 1); - } - - // If other colors exist: - // Creates linear ranges between one color and the following in the color vector. + { +//EED 28/01/2015 if (GetBaseColorNb() > 1) - { - for (int i = 1; i < GetBaseColorNb(); i++) - { - delta = GetGreyLevelBoundaries(i+1) - GetGreyLevelBoundaries(i); - for (int ii = 1; ii <= delta; ii++) { - // Color computation : previous_color + (current_color - previous_color)/delta * ii - thresholdTable->SetTableValue((GetGreyLevelBoundaries(i) + ii), - GetBaseColors((i-1)*3) + (GetBaseColors(i*3) - GetBaseColors((i-1)*3)) / delta * ii , - GetBaseColors((i-1)*3 + 1) + (GetBaseColors(i*3 + 1) - GetBaseColors((i-1)*3 + 1)) / delta * ii , - GetBaseColors((i-1)*3 + 2) + (GetBaseColors(i*3 + 2) - GetBaseColors((i-1)*3 + 2)) / delta * ii , - 1); - } - } - } - } // End Of if (!_color_type) - - - - thresholdTable->SetRange(_range[0], _range[1]); // image intensity range - thresholdTable->SetValueRange(0.0, 1.0); // from black to white - + for (int iColor = 0; iColor < GetBaseColorNb(); iColor++) + { + if (iColor==0) + { + r1 = 0; + g1 = 0; + b1 = 0; + } else { + r1 = GetBaseColors((iColor-1)*3+0); + g1 = GetBaseColors((iColor-1)*3+1); + b1 = GetBaseColors((iColor-1)*3+2); + } // if iColor == 0 + + r2 = GetBaseColors(iColor*3+0); + g2 = GetBaseColors(iColor*3+1); + b2 = GetBaseColors(iColor*3+2); + start = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor) ); + end = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor+1) ); + FillColorTable( start,end, r1,g1,b1, r2,g2,b2 ); + }// for + } //if + } // End Of if (!_color_type) + + thresholdTable->SetRange( minRange, maxRange ); + thresholdTable->SetValueRange( 0.0, 1.0 ); thresholdTable->Build( ); + //EO CM EED +} +//---------------------------------------------------------------------------- +int ColorLayerImageView::GrayLevel_TO_colorTableIndex( double VALUE ) +{ + GetImage()->GetScalarRange(_range); + double minRange = _range[0]; + double maxRange = _range[1]; + return maxColorsThresholdTable * (VALUE-minRange) / (maxRange-minRange); +} -/* -// Create a greyscale lookup table +//---------------------------------------------------------------------------- +void ColorLayerImageView::FillColorTable(int start, int end, double r1, double g1, double b1, double r2, double g2, double b2) +{ vtkLookupTable* thresholdTable = GetThresholdTable(); - thresholdTable->SetRange(0.5, 0.75); // image intensity range - thresholdTable->SetValueRange(0.0, 1); // from black to white - thresholdTable->SetHueRange(0.0, 1.0); // from black to white - thresholdTable->SetSaturationRange(0.0, 1.0); // no color saturation - thresholdTable->SetRampToLinear(); - thresholdTable->Build(); -*/ + int iTable; + double delta = end-start; + double dr = (r2-r1)/delta; + double dg = (g2-g1)/delta; + double db = (b2-b1)/delta; + for (iTable=0; iTable<=delta; iTable++) + { + thresholdTable->SetTableValue( iTable+start , r1+dr*iTable, g1+dg*iTable, b1+db*iTable,1); + } // for iTable - // ------------------ End Of Defining the Threshold Table + if (start==0) thresholdTable->SetTableValue( start , r1, g1, b1,0); // The first color in the table is transparent - //EO CM } // EOF diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.h index e9adb4f..75c6e1a 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.h @@ -91,6 +91,12 @@ class ColorLayerImageView : public LayerImageBase */ int GetBaseColorNb(); + + void FillColorTable(int start, int end, double r1, double g1, double b1, double r2, double g2, double b2); + + int GrayLevel_TO_colorTableIndex( double VALUE ); + + private: int _x2, _y2, _z2; @@ -98,6 +104,8 @@ class ColorLayerImageView : public LayerImageBase void SetDefaultGreyLevelBoundary(); void SetDefaultBaseColorAndGreyLevelBoundary(); virtual void ConfigLookupTable(); + int maxColorsThresholdTable; + //! Range values in the colored image. double _range[2]; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx index ffabba1..d6efc91 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.cxx @@ -59,7 +59,6 @@ void wxDlgTransformByDimensionBySpacingByPixel::GetTransformType(wxWindow *paren wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,45), 3 , lstOptOperation, 3, wxRA_SPECIFY_COLS); dialSizer->Add( new wxStaticText(dial,-1,message) , 0, wxGROW ); - // dialSizer->Add( new wxStaticText(dial,-1,_T("selected Roi file. Do you want to tranform it?")) , 0, wxGROW ); dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW ); dialSizer->Add(radioOpts,0,wxGROW); dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW ); @@ -90,12 +89,10 @@ void wxDlgTransformByDimensionBySpacingByPixel::GetTransformType(wxWindow *paren ColorLayerImageViewPanel::ColorLayerImageViewPanel(wxWindow* parent, int min, int max, int type) : wxPanel(parent, -1, wxDefaultPosition, wxSize(600,100), wxBORDER_SUNKEN) { - printf("EED ColorLayerImageViewPanel::ColorLayerImageViewPanel start \n"); _spcBase[0] = _spcBase[1] = _spcBase[2] = 0; _dimBase[0] = _dimBase[1] = _dimBase[2] = 0; -//EED01 _colorLayerImageView = new ColorLayerImageView(); _colorLayerImageViewManager = new ColorLayerImageViewManager(); _btn_ReadImage = new wxButton(this, wxID_ANY, _T("Read Image") ); @@ -189,26 +186,14 @@ ColorLayerImageViewPanel::~ColorLayerImageViewPanel() } -//EED01 -//EED01 //---------------------------------------------------------------------------- -//EED01 void ColorLayerImageViewPanel::SetColorLayerImageView(ColorLayerImageView* colorLayerImageView) -//EED01 { -//EED01 _colorLayerImageView = colorLayerImageView; -//EED01 } -//EED01 -//EED01 //---------------------------------------------------------------------------- -//EED01 ColorLayerImageView* ColorLayerImageViewPanel::GetColorLayerImageView() -//EED01 { -//EED01 return _colorLayerImageView; -//EED01 } - - +//---------------------------------------------------------------------------- ColorLayerImageViewManager* ColorLayerImageViewPanel::GetColorLayerImageViewManager() { return _colorLayerImageViewManager; } +//---------------------------------------------------------------------------- // This is the new spacing of the background image (1,1,1) void ColorLayerImageViewPanel::SetBaseSpacing(double spc[3]) { @@ -221,6 +206,7 @@ void ColorLayerImageViewPanel::SetBaseSpacing(double spc[3]) _spcBase[2] = 1; } +//---------------------------------------------------------------------------- // This is the Original spacing of the background image void ColorLayerImageViewPanel::SetOriginalSpacing(double spc[3]) { @@ -229,6 +215,7 @@ void ColorLayerImageViewPanel::SetOriginalSpacing(double spc[3]) _spcOrg[2] = spc[2]; } +//---------------------------------------------------------------------------- // This is the size in pixels of the background image void ColorLayerImageViewPanel::SetBaseDimension(int dim[3]) { @@ -278,9 +265,6 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img) else typeOfTransformation = _fitting_mode; //EO CM - - printf("EED ColorLayerImageViewPanel::onReadImage call dialog spc size,dim...???\n"); - if (typeOfTransformation==1) // make dimensions equals { printf("EED ColorLayerImageViewPanel::onReadImage ...WARNNING.... dif size image spc*dim ofnew image ...???\n"); @@ -306,15 +290,11 @@ void ColorLayerImageViewPanel::SetImage(vtkImageData *img) img->SetSpacing(spc); } // spc !_spcBase dim!__dimBase -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { -//EED01 _colorLayerImageView->onThreshold(); if (_active==true) { _colorLayerImageViewManager->onThreshold(); RefreshView(); } -//EED01 } } @@ -362,72 +342,51 @@ void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event) //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onThresholdChange(wxCommandEvent& event) { -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { if (_thresholdGo) { -//EED01 _colorLayerImageView->onThresholdChange(); _colorLayerImageViewManager->onThresholdChange(); RefreshView(); //std::cout<< "Valor Min: " << minVal << " & Valor Max: " << maxVal << std::endl; } // _thresholdGo -//EED01 }//_colorLayerImageView } //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onThresholdShow(wxCommandEvent& event) { -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { _thresholdGo = _cb_ShowHide->GetValue(); if (_thresholdGo) { -//EED01 _colorLayerImageView->onThreshold(); _colorLayerImageViewManager->onThreshold(); }else{ -//EED01 _colorLayerImageView->onThresholdRemove( ); _colorLayerImageViewManager->onThresholdRemove( ); } RefreshView(); -//EED01 }//_colorLayerImageView } //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onThresholdStop() { -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { if (_thresholdGo) { -//EED01 _colorLayerImageView->onThresholdRemove( ); _colorLayerImageViewManager->onThresholdRemove( ); _thresholdGo=false; } -//EED01 }//_colorLayerImageView } //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onThresholdInterpolation(wxCommandEvent& event) { -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { -//EED01 _colorLayerImageView->onThresholdInterpolation(_interpolationCheckBox->GetValue()); _colorLayerImageViewManager->onThresholdInterpolation(_interpolationCheckBox->GetValue()); RefreshView(); -//EED01 }//_colorLayerImageView } //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event) { -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { bool fixdin = _cb_SliceFixDinamic->GetValue(); -//EED01 _colorLayerImageView->SetSliceFixDynamic( fixdin ); _colorLayerImageViewManager->SetSliceFixDynamic( fixdin ); if (fixdin==false) { -//EED01 _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() ); _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() ); _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() ); _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() ); @@ -435,38 +394,26 @@ void ColorLayerImageViewPanel::onSliceFixDinamic(wxCommandEvent& event) _sl_SliceImageX->Enable(!fixdin); _sl_SliceImageY->Enable(!fixdin); _sl_SliceImageZ->Enable(!fixdin); -//EED01 _colorLayerImageView->onThreshold(); _colorLayerImageViewManager->onThreshold(); RefreshView(); -//EED01 }//_colorLayerImageView } //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onSliceImage(wxScrollEvent& event) { -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { -//EED01 _colorLayerImageView->SetZ2( _sl_SliceImage->GetValue() ); -//EED01 _colorLayerImageView->onThreshold(); -//EED01 RefreshView(); - _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() ); - _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() ); - _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() ); - _colorLayerImageViewManager->onThreshold(); + _colorLayerImageViewManager->SetX2( _sl_SliceImageX->GetValue() ); + _colorLayerImageViewManager->SetY2( _sl_SliceImageY->GetValue() ); + _colorLayerImageViewManager->SetZ2( _sl_SliceImageZ->GetValue() ); + _colorLayerImageViewManager->onThreshold(); RefreshView(); -//EED01 }//_colorLayerImageView } //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onChangeOpacity(wxScrollEvent& event) { -//EED01 if (_colorLayerImageView!=NULL) -//EED01 { int opacity = _opacity->GetValue(); -//EED01 _colorLayerImageView->onThresholdChangeOpacity(opacity); _colorLayerImageViewManager->onThresholdChangeOpacity(opacity); RefreshView(); -//EED01 }//_colorLayerImageView } diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx index 1ac95c8..a7c1102 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/controller/buttonContainerController.cxx @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 buttonContainerController.cxx @@ -37,112 +37,105 @@ namespace creaButtonContainer namespace controller { // ---------------------------------------------------------------------------------- - ButtonContainerController::ButtonContainerController( BCPanel* panel ) + ButtonContainerController::ButtonContainerController(BCPanel* panel) { - std::cout<< "MLER | ButtonContainerController::ButtonContainerController( BCPanel* panel )" << std::endl; this->m_BCPanel = panel; } // ---------------------------------------------------------------------------------- - ButtonContainerController::~ButtonContainerController( ) + ButtonContainerController::~ButtonContainerController() { } // ---------------------------------------------------------------------------------- - void - ButtonContainerController::AddEvents( ) + void ButtonContainerController::AddEvents() { try { - std::cout<< "MLER | ButtonContainerController:: AddEvents( )" << std::endl; //Adding ButtonManagerEvents - for( GroupManagerList::iterator it = - this->m_BCPanel->m_GroupManagerList.begin( ); it - != this->m_BCPanel->m_GroupManagerList.end( ); ++it ) + for (GroupManagerList::iterator it = + this->m_BCPanel->m_GroupManagerList.begin(); + it != this->m_BCPanel->m_GroupManagerList.end(); ++it) { - this->Connect( - ( *it ).first, - wxEVT_COMMAND_BUTTON_CLICKED, - (wxObjectEventFunction) &ButtonContainerController::ButtonExpEvent ); - }//rof + this->Connect((*it).first, wxEVT_COMMAND_BUTTON_CLICKED, + (wxObjectEventFunction) + & ButtonContainerController::ButtonExpEvent); + } //rof //Adding ButtonEvents - for( ButtonGroupList::iterator it = - this->m_BCPanel->m_ButtonGroupList.begin( ); it - != this->m_BCPanel->m_ButtonGroupList.end( ); ++it ) + for (ButtonGroupList::iterator it = + this->m_BCPanel->m_ButtonGroupList.begin(); + it != this->m_BCPanel->m_ButtonGroupList.end(); ++it) { - KeyList keylist = ( *it )->GetButtonIdContainer( ); - for( KeyList::iterator it2 = keylist.begin( ); it2 != keylist.end( ); ++it2 ) + KeyList keylist = (*it)->GetButtonIdContainer(); + for (KeyList::iterator it2 = keylist.begin(); it2 != keylist.end(); + ++it2) { - this->Connect( ( *it2 ), wxEVT_COMMAND_BUTTON_CLICKED, - (wxObjectEventFunction) &ButtonContainerController::ButtonEvent ); - }//rof - }//rof - }//yrt - catch ( const std::exception& e ) + this->Connect((*it2), wxEVT_COMMAND_BUTTON_CLICKED, + (wxObjectEventFunction) + & ButtonContainerController::ButtonEvent); + } //rof + } //rof + } //yrt + catch (const std::exception& e) { std::cerr << "ButtonContainerController::AddEvents( ) exception: " - << e.what( ) << std::endl; - }//hctac + << e.what() << std::endl; + } //hctac } // ---------------------------------------------------------------------------------- - void - ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) + void ButtonContainerController::ButtonExpEvent(wxCommandEvent& event) { - long id = event.GetId( ); - std::cout<< "MLER | ButtonContainerController:: ButtonExpEvent( wxCommandEvent& event )" << std::endl; + long id = event.GetId(); try { //changing the button label when its clicked and then hide the buttons of the group. - if ( this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->GetLabel( ).Cmp( - _( "+" ) ) == 0 ) + if (this->m_BCPanel->m_GroupManagerList[id]->GetButton()->GetLabel().Cmp( + _("+")) == 0) { - this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->SetLabel( - _( "-" ) ); - this->m_BCPanel->m_GroupManagerList[ id ]->HideSubPanel( false ); - }//fi - else if ( this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->GetLabel( ).Cmp( - _( "-" ) ) == 0 ) + this->m_BCPanel->m_GroupManagerList[id]->GetButton()->SetLabel( + _("-")); + this->m_BCPanel->m_GroupManagerList[id]->HideSubPanel(false); + } //fi + else if (this->m_BCPanel->m_GroupManagerList[id]->GetButton()->GetLabel().Cmp( + _("-")) == 0) { - this->m_BCPanel->m_GroupManagerList[ id ]->GetButton( )->SetLabel( - _( "+" ) ); - this->m_BCPanel->m_GroupManagerList[ id ]->HideSubPanel( true ); - }//fi esle - this->m_BCPanel->FitSizer( ); - }//yrt - catch ( const std::exception& e ) + this->m_BCPanel->m_GroupManagerList[id]->GetButton()->SetLabel( + _("+")); + this->m_BCPanel->m_GroupManagerList[id]->HideSubPanel(true); + } //fi esle + this->m_BCPanel->FitSizer(); + } //yrt + catch (const std::exception& e) { std::cerr - << "ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) exception: " - << e.what( ) << std::endl; - }//hctac + << "ButtonContainerController::ButtonExpEvent( wxCommandEvent& event ) exception: " + << e.what() << std::endl; + } //hctac } // ---------------------------------------------------------------------------------- - void - ButtonContainerController::ButtonEvent( wxCommandEvent& event ) + void ButtonContainerController::ButtonEvent(wxCommandEvent& event) { - std::cout<< "MLER | ButtonContainerController:: ButtonEvent( wxCommandEvent& event )" << std::endl; try { - for( ButtonGroupList::iterator it = - this->m_BCPanel->m_ButtonGroupList.begin( ); it - != this->m_BCPanel->m_ButtonGroupList.end( ); ++it ) + for (ButtonGroupList::iterator it = + this->m_BCPanel->m_ButtonGroupList.begin(); + it != this->m_BCPanel->m_ButtonGroupList.end(); ++it) { - if ( ( *it )->GetButton( event.GetId( ) ) != NULL ) + if ((*it)->GetButton(event.GetId()) != NULL) { - ( *it )->GetButton( event.GetId( ) )->Execute( ); - }//fi - }//rof - }//yrt - catch ( const std::exception& e ) + (*it)->GetButton(event.GetId())->Execute(); + } //fi + } //rof + } //yrt + catch (const std::exception& e) { std::cerr - << "ButtonContainerController::ButtonEvent( wxCommandEvent& event ) exception: " - << e.what( ) << std::endl; - }//hctac + << "ButtonContainerController::ButtonEvent( wxCommandEvent& event ) exception: " + << e.what() << std::endl; + } //hctac } // ---------------------------------------------------------------------------------- - }//ecapsename -}//ecapsename +} //ecapsename diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx index eb29cf0..e871e85 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.cxx @@ -39,7 +39,6 @@ namespace creaButtonContainer // ---------------------------------------------------------------------------------- ButtonGroupFactory::ButtonGroupFactory( ) { - std::cout<< "MLER | ButtonGroupFactory::ButtonGroupFactory( )" << std::endl; } // ---------------------------------------------------------------------------------- ButtonGroupFactory::~ButtonGroupFactory( ) @@ -52,7 +51,6 @@ namespace creaButtonContainer ButtonGroupContainer groupView; try { - std::cout<< "MLER | ButtonGroupFactory::CreateButtonGroupContainer()" << std::endl; ButtonGroupMap map = settings->GetButtonGroupContainer( ); for( ButtonGroupMap::iterator it = map.begin( ); it != map.end( ); ++it ) { @@ -77,7 +75,6 @@ namespace creaButtonContainer { ButtonContainer buttonList; - std::cout<< "MLER | ButtonGroupFactory::GetButtons()" << std::endl; try { for( ButtonList::iterator it = buttonModel.begin( ); it diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.h index a349df6..bafea13 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/buttonGroupFactory.h @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 buttonGroupFactory.h @@ -79,26 +79,26 @@ namespace creaButtonContainer /*! @typedef std::list< ButtonGroup* > ButtonGroupContainer; * @brief Defines the ButtonGroupContainer type. */ - typedef std::list< ButtonGroup* > ButtonGroupContainer; + typedef std::list ButtonGroupContainer; // ---------------------------------------------------------------------------------- /*! @typedef std::map< long, Button* > ButtonContainer; * @brief Defines the ButtonContainer type. */ - typedef std::map< long, Button* > ButtonContainer; + typedef std::map ButtonContainer; // ---------------------------------------------------------------------------------- //end of typedef definition public: /*! @fn ButtonGroupFactory::ButtonGroupFactory( ); * @brief This is the default constructor. */ - ButtonGroupFactory( ); + ButtonGroupFactory(); // ------------------------------------------------------------------------------- /*! @fn virtual ButtonGroupFactory::~ButtonGroupFactory( ); * @brief This is the destructor. */ virtual - ~ButtonGroupFactory( ); - + ~ButtonGroupFactory(); + /*! @fn ButtonGroupContainer ButtonGroupFactory::CreateButtonGroupContainer( wxWindow* parent, ButtonGroupModel* settings ); * @brief This method creates the ButtonGroupContainer. * @param parent the wxWindow* parent to be attached. @@ -107,10 +107,9 @@ namespace creaButtonContainer * @return ButtonGroupContainer The wx button group container. */ ButtonGroupContainer - CreateButtonGroupContainer( wxWindow* parent, - ButtonGroupModel* settings ); + CreateButtonGroupContainer(wxWindow* parent, + ButtonGroupModel* settings); private: - /*! @fn ButtonContainer ButtonGroupFactory::GetButtons( wxWindow* parent, ButtonList buttonModel ); * @brief This method creates a wx button container for a group. @@ -120,9 +119,9 @@ namespace creaButtonContainer * @return ButtonContainer The wx button container. */ ButtonContainer - GetButtons( wxWindow* parent, ButtonList buttonModel ); + GetButtons(wxWindow* parent, ButtonList buttonModel); }; - }//ecapseman -}//ecapseman + } //ecapseman +} //ecapseman #endif // CARTOBUTTONFACTORY_H diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx index 45d2932..0b6b21c 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.cxx @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 containerSettings.cxx @@ -37,134 +37,118 @@ namespace creaButtonContainer namespace model { // ---------------------------------------------------------------------------------- - ContainerSettings::ContainerSettings( ) + ContainerSettings::ContainerSettings() { } // ---------------------------------------------------------------------------------- - ContainerSettings::~ContainerSettings( ) + ContainerSettings::~ContainerSettings() { } - + // ---------------------------------------------------------------------------------- - ButtonGroupMap - ContainerSettings::GetButtonGroupContainer( ) + ButtonGroupMap ContainerSettings::GetButtonGroupContainer() { - std::cout<< "MLER | ContainerSettings::GetButtonGroupContainer( )" << std::endl; - return ( this->m_ButtonGroupContainer ); + return (this->m_ButtonGroupContainer); } // ---------------------------------------------------------------------------------- - KeyMapList - ContainerSettings::GetGroupNameList( ) + KeyMapList ContainerSettings::GetGroupNameList() { - std::cout<< "MLER | ContainerSettings::GetGroupNameList( )" << std::endl; - return ( this->m_GroupNameList ); + return (this->m_GroupNameList); } - + // ---------------------------------------------------------------------------------- - void - ContainerSettings::SetButtonGroupContainer(ButtonGroupMap bgContainer) + void ContainerSettings::SetButtonGroupContainer(ButtonGroupMap bgContainer) { - std::cout<< "MLER | ContainerSettings:: SetButtonGroupContainer(ButtonGroupMap bgContainer)" << std::endl; this->m_ButtonGroupContainer = bgContainer; } // ---------------------------------------------------------------------------------- - void - ContainerSettings::SetGroupNameList( KeyMapList gNameList ) + void ContainerSettings::SetGroupNameList(KeyMapList gNameList) { - std::cout<< "MLER | ContainerSettings::SetGroupNameList" << std::endl; this->m_GroupNameList = gNameList; } - - // ---------------------------------------------------------------------------------- - + // ---------------------------------------------------------------------------------- - void - ContainerSettings::AddButton( const StringType & groupName, - const StringType &buttonName, const wxBitmap &icon, - const StringType &buttonDescription, FunctionEventType event ) + void ContainerSettings::AddButton(const StringType & groupName, + const StringType &buttonName, const wxBitmap &icon, + const StringType &buttonDescription, FunctionEventType event) { - std::cout<< "MLER | ContainerSettings::AddButton( const StringType & groupName," << std::endl; - ButtonPair* pair = new ButtonPair( - new ButtonInfo( buttonName, icon ), - new ButtonAction( buttonDescription, event ) ); + ButtonPair* pair = new ButtonPair(new ButtonInfo(buttonName, icon), + new ButtonAction(buttonDescription, event)); try { - for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it - != this->m_GroupNameList.end( ); ++it ) + for (KeyMapList::iterator it = this->m_GroupNameList.begin(); + it != this->m_GroupNameList.end(); ++it) { - if ( ( *it ).compare( groupName ) == 0 ) + if ((*it).compare(groupName) == 0) { - std::cout<<"MLER ContainerSettings // AddButton : it "<<*it <m_ButtonGroupContainer[ groupName ].push_back( pair ); + 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 ) + } //fi + } //rof + this->m_GroupNameList.push_back(groupName); + this->m_ButtonGroupContainer[groupName].push_back(pair); + } //yrt + catch (const std::exception& e) { std::cerr - << "ContainerSettings::AddButton( const std::string & groupName," - << "const std::string buttonName, const std::string iconpath," - << "const std::string buttonDescription, FunctionEventType event ) exception: " - << e.what( ) << std::endl; - }//hctac + << "ContainerSettings::AddButton( const std::string & groupName," + << "const std::string buttonName, const std::string iconpath," + << "const std::string buttonDescription, FunctionEventType event ) exception: " + << e.what() << std::endl; + } //hctac } // ---------------------------------------------------------------------------------- - void - ContainerSettings::AddButton( BCSettingsStruct* info ) + void ContainerSettings::AddButton(BCSettingsStruct* info) { - std::cout<< "MLER | ContainerSettings::AddButton( BCSettingsStruct* info )" << std::endl; + ButtonPair* pair = new ButtonPair( - new ButtonInfo( info->buttonName, info->icon ), - new ButtonAction( info->buttonDescription, info->eventFunction ) ); + new ButtonInfo(info->buttonName, info->icon), + new ButtonAction(info->buttonDescription, info->eventFunction)); try { - for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it - != this->m_GroupNameList.end( ); ++it ) + for (KeyMapList::iterator it = this->m_GroupNameList.begin(); + it != this->m_GroupNameList.end(); ++it) { - if ( ( *it ).compare( info->groupName ) == 0 ) + if ((*it).compare(info->groupName) == 0) { - this->m_ButtonGroupContainer[ info->groupName ].push_back( pair ); + 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 ) + } //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 - << "void ContainerSettings::AddButton( BCSettingsStruct* info ) " - << "exception: " << e.what( ) << std::endl; - }//hctac + << "void ContainerSettings::AddButton( BCSettingsStruct* info ) " + << "exception: " << e.what() << std::endl; + } //hctac } // ---------------------------------------------------------------------------------- - void - ContainerSettings::AddButtons( BCStructVectorType infoList ) + void ContainerSettings::AddButtons(BCStructVectorType infoList) { - std::cout<< "MLER | ContainerSettings::AddButtons( BCStructVectorType infoList )" << std::endl; + try { - for( BCStructVectorType::iterator it = infoList.begin( ); it - != infoList.end( ); ++it ) + for (BCStructVectorType::iterator it = infoList.begin(); + it != infoList.end(); ++it) { - this->AddButton( *it ); - }//rof - }//yrt - catch ( const std::exception& e ) + this->AddButton(*it); + } //rof + } //yrt + catch (const std::exception& e) { std::cerr - << "ContainerSettings::AddButtons( BCStructVectorType infoList ) " - << "exception: " << e.what( ) << std::endl; - }//hctac + << "ContainerSettings::AddButtons( BCStructVectorType infoList ) " + << "exception: " << e.what() << std::endl; + } //hctac } // ---------------------------------------------------------------------------------- }//ecapseman -}//ecapseman +} //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h index 05c326f..2e359a2 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/containerSettings.h @@ -35,7 +35,6 @@ #include #include -//EED-MLER #include #include "structBCSettings.h" #include "system.h" @@ -160,7 +159,6 @@ namespace creaButtonContainer ButtonGroupMap m_ButtonGroupContainer; //! - TConcreteFunctor< TClass >::TConcreteFunctor( TClass* _pt2Object, void - (TClass::*_fpt)( const ButtonIDType &buttonName ) ) - { - this->pt2Object = _pt2Object; - this->fpt = _fpt; - } - // ------------------------------------------------------------------------------- - // override operator "()" // execute member functions - template< typename TClass > - void - TConcreteFunctor< TClass >::operator()( const ButtonIDType &buttonName ) - {std::cout << "MLER - TConcreteFunctor< TClass >::operator():" << buttonName << std::endl; - try - { - ( *pt2Object.*fpt )( buttonName ); - }//yrt - catch ( const std::exception& e ) - { - std::cerr<< "TConcreteFunctor< TClass >::operator()( const ButtonIDType &buttonName )" - <<" exception: " << e.what( ) << std::endl; - }//hctac - } - // ------------------------------------------------------------------------------- - // override function "Call" // execute member function - template< typename TClass > - void - TConcreteFunctor< TClass >::Call( const ButtonIDType &buttonName ) - { - std::cout << "MLER - TConcreteFunctor< TClass >::Call " << buttonName << std::endl; - try - { - ( *pt2Object.*fpt )( buttonName ); - }//yrt - catch ( const std::exception& e ) - { - std::cerr<< "TConcreteFunctor< TClass >::Call( const ButtonIDType &buttonName )" - <<" exception: " << e.what( ) << std::endl; - }//hctac - } - }//ecapseman -}//ecapseman + namespace model + { + // constructor - takes pointer to an object and pointer to a member and stores + // them in two private variables + // ------------------------------------------------------------------------------- + template + TConcreteFunctor::TConcreteFunctor(TClass* _pt2Object, + void (TClass::*_fpt)(const ButtonIDType &buttonName)) + { + this->pt2Object = _pt2Object; + this->fpt = _fpt; + } + // ------------------------------------------------------------------------------- + // override operator "()" // execute member functions + template + void TConcreteFunctor::operator()(const ButtonIDType &buttonName) + { + try + { + (*pt2Object.*fpt)(buttonName); + } //yrt + catch (const std::exception& e) + { + std::cerr + << "TConcreteFunctor< TClass >::operator()( const ButtonIDType &buttonName )" + << " exception: " << e.what() << std::endl; + } //hctac + } + // ------------------------------------------------------------------------------- + // override function "Call" // execute member function + template + void TConcreteFunctor::Call(const ButtonIDType &buttonName) + { + try + { + (*pt2Object.*fpt)(buttonName); + } //yrt + catch (const std::exception& e) + { + std::cerr + << "TConcreteFunctor< TClass >::Call( const ButtonIDType &buttonName )" + << " exception: " << e.what() << std::endl; + } //hctac + } + } //ecapseman +} //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listConfig.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listConfig.cxx deleted file mode 100644 index b96741c..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listConfig.cxx +++ /dev/null @@ -1,97 +0,0 @@ -/*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ - -#include "listConfig.h" - -namespace creaButtonContainer -{ - namespace model - { - - ListConfig::ListConfig(ItemsMap items) - { - m_itemsMap = items; - - } - - ListConfig::~ListConfig() - { - - } - - ListConfig::ItemsMap - ListConfig::AddFinalItems(std::string name) - { - std::cout<< "MLER | ListConfig::AddFinalItems(std::string name)" << std::endl; - - ItemsMap::iterator it1 = m_finalItems.find(name); - - if(it1 == m_finalItems.end()) - { - for(ItemsMap::iterator it=this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it) - { - if((it->first).compare(name) != 0 ) - { - std::cout << "Item en finalItems: "<< name << std::endl; - m_finalItems[name] = it->second; - } - } - } - std::cout << "FinalItems Add" << m_finalItems.size() << std::endl; - - return (m_finalItems); - } - - ListConfig::ItemsMap - ListConfig::DelFinalItems(std::string name) - { - std::cout<< "MLER | ListConfig::DelFinalItems(std::string name)" << std::endl; - ItemsMap::iterator it1; - - //if(m_finalItems.empty()) - std::cout<<"name item -----test A"<< name <m_finalItems.begin(); it!=this->m_finalItems.end();++it) - { - if((it->first).compare(name) == 0 ) - { - std::cout << "Item a borrar: "<< name << std::endl; - - it1 = m_finalItems.find(name); - m_finalItems.erase(it1); - - } - } - } - - std::cout<< "si borre tengo --- test 2 "<< m_finalItems.size() << std::endl; - - return (m_finalItems); - } - - }//namespace model -}//namespace creaButtonContainer diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listConfig.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listConfig.h deleted file mode 100644 index 0c8edcc..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listConfig.h +++ /dev/null @@ -1,76 +0,0 @@ -/*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ - -#ifndef LISTCONFIG_H -#define LISTCONFIG_H - -#include - -#include -#include -#include - -//#include "listWx.h" -//#include "listConfigPanel.h" -#include "functor.h" - -namespace creaButtonContainer -{ - namespace model - { - class ListConfig - { - public: - //typedef creaButtonContainer::model::TFunctor TFunctor; - typedef std::map ItemsMap; - - - - //ListConfig(ItemsMap items, TFunctor* functor); - ListConfig(ItemsMap items); - ~ListConfig(); - - //ItemsMap - //GetItemsMap(); - - ItemsMap - AddFinalItems(std::string name); - - ItemsMap - DelFinalItems(std::string name); - - private: - - ItemsMap m_itemsMap; - TFunctor* functor; - ItemsMap m_finalItems; - - - }; - - } -} - -#endif // LISTCONFIG_H diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.cxx deleted file mode 100644 index 91df61b..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.cxx +++ /dev/null @@ -1,94 +0,0 @@ -/*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ - - -/*#include "listGroupFactory.h" - -namespace creaButtonContainer -{ - namespace model - { - // ---------------------------------------------------------------------------------- - ListGroupFactory::ListGroupFactory( ) - { - } - // ---------------------------------------------------------------------------------- - ListGroupFactory::~ListGroupFactory( ) - { - } - - // ---------------------------------------------------------------------------------- - ListGroupFactory::ButtonGroupContainer ListGroupFactory::CreateButtonGroupContainer( wxWindow* parent, ButtonGroupModel* settings ) - { - ButtonGroupContainer groupView; - try - { - std::cout<< std::endl << " MLER listGroupFactory.cxx / CreateButtonGroupContainer(): " << std::endl; - ButtonGroupMap map = settings->GetButtonGroupContainer( ); - for( ButtonGroupMap::iterator it = map.begin( ); it != map.end( ); ++it ) - { - wxString groupNameAux( ( *it ).first.c_str( ), wxConvUTF8 ); - wxStaticText* wxGroupName = new wxStaticText( parent, -1, groupNameAux, wxDefaultPosition, wxDefaultSize, 0, _T("GroupText") ); - ButtonGroup* group = new ButtonGroup( wxGroupName, this->GetButtons( parent, ( *it ).second ) ); - groupView.push_back( group ); - }//rof - }//yrt - catch ( const std::exception& e ) - { - std::cerr - << "ButtonGroupFactory::CreateButtonGroupContainer( wxWindow* parent, ButtonGroupModel* settings )" - << " exception: " << e.what( ) << std::endl; - }//chtac - return ( groupView ); - } - - - // ---------------------------------------------------------------------------------- - ListGroupFactory::ButtonContainer ListGroupFactory::GetButtons( wxWindow* parent, ButtonList buttonModel ) - { - ButtonContainer buttonList; - try - { - for( ButtonList::iterator it = buttonModel.begin( ); it - != buttonModel.end( ); ++it ) - { - long id = wxNewId( ); - buttonList[ id ] = new Button( parent, id, *it ); - } - } - catch ( const std::exception& e ) - { - std::cerr - << "ButtonGroupFactory::GetButtons( wxWindow* parent, ButtonList buttonModel )" - << "exception: " << e.what( ) << std::endl; - }//chtac - - return ( buttonList ); // JPR - } - // ---------------------------------------------------------------------------------- - }//ecapseman -}//ecapseman*/ - - diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.h deleted file mode 100644 index aece2e4..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/listGroupFactory.h +++ /dev/null @@ -1,82 +0,0 @@ -/*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ - -/*#ifndef LISTGROUPFACTORY_H -#define LISTGROUPFACTORY_H - -#include - -#include "system.h" -#include "button.h" -#include "listGroup.h" -#include "containerSettings.h" - - -namespace creaButtonContainer -{ - - namespace model - { - - class ListGroupFactory - { - public: - - typedef creaButtonContainer::view::ListWx Button; - // ---------------------------------------------------------------------------------- - - typedef creaButtonContainer::view::ListGroup ButtonGroup; - // ---------------------------------------------------------------------------------- - - typedef creaButtonContainer::model::ContainerSettings ButtonGroupModel; - // ---------------------------------------------------------------------------------- - - typedef std::list< ButtonGroup* > ButtonGroupContainer; - // ---------------------------------------------------------------------------------- - - typedef std::map< long, Button* > ButtonContainer; - // ---------------------------------------------------------------------------------- - //end of typedef definition - public: - - ListGroupFactory( ); - // ------------------------------------------------------------------------------- - - virtual - ~ListGroupFactory( ); - - ButtonGroupContainer - CreateButtonGroupContainer( wxWindow* parent, - ButtonGroupModel* settings ); - private: - - - ButtonContainer - GetButtons( wxWindow* parent, ButtonList buttonModel ); - }; - }//ecapseman -}//ecapseman - -#endif // LISTGROUPFACTORY_H*/ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/structBCSettings.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/structBCSettings.h index de3a304..033f29b 100755 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/structBCSettings.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/model/structBCSettings.h @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 structBCSettings.h @@ -56,11 +56,8 @@ namespace creaButtonContainer StringType iconpath; //! - StringType itemsList; }; } //ecapseman } //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx index 7c81882..69d72c1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/button.cxx @@ -39,8 +39,6 @@ namespace creaButtonContainer // ---------------------------------------------------------------------------------- Button::Button( wxWindow* parent, long id, ButtonPair* pair ) { - std::cout<< "MLER | Button::Button()" << std::endl; - this->m_ButtonPair = pair; StringType wXbuttonName = this->m_ButtonPair->first->first; BitmapType wXicon = this->m_ButtonPair->first->second; @@ -63,7 +61,6 @@ namespace creaButtonContainer StringType Button::GetButtonName( ) { - std::cout<< "MLER | Button::GetButtonName( )" << std::endl; return ( this->m_ButtonPair->first->first ); } @@ -71,7 +68,6 @@ namespace creaButtonContainer BitmapType Button::GetIcon( ) { - std::cout<< "MLER | Button::GetIcon( )" << std::endl; return ( this->m_ButtonPair->first->second ); } @@ -86,7 +82,6 @@ namespace creaButtonContainer StringType Button::GetDescription( ) { - std::cout<< "MLER | Button::GetDescription( )" << std::endl; return ( this->m_ButtonPair->second->first ); } @@ -94,14 +89,12 @@ namespace creaButtonContainer void Button::Execute( ) { - std::cout<< "MLER | Button::Execute( )" << std::endl; try { TFunctor* vTable[ ] = { this->m_ButtonPair->second->second }; vTable[ 0 ]->Call( this->m_ButtonPair->first->first ); - std::cout<< "Call Button: " << this->m_ButtonPair->first->first <SetButtonGroupContainer( factory.CreateButtonGroupContainer( this, settings ) ); - this->PanelInit( ); this->m_ButtonCController = new BCController( this ); this->m_ButtonCController->AddEvents( ); this->SetEventHandler( this->m_ButtonCController ); } - + // ---------------------------------------------------------------------------------- - ButtonContainerPanel::~ButtonContainerPanel( ) + ButtonContainerPanel::~ButtonContainerPanel() { } - + // ---------------------------------------------------------------------------------- - void ButtonContainerPanel::SetButtonGroupContainer(ButtonGroupList groupContainer ) + void ButtonContainerPanel::SetButtonGroupContainer( + ButtonGroupList groupContainer) { - std::cout<< "MLER | ButtonContainerPanel::SetButtonGroupContainer()" << std::endl; + this->m_ButtonGroupList = groupContainer; } + // ---------------------------------------------------------------------------------- - /*void ButtonContainerPanel::SetListGroupContainer(ListGroupList groupContainer ) - { - this->m_ListGroupList = groupContainer; - }*/ - - // ---------------------------------------------------------------------------------- - void ButtonContainerPanel::PanelInit( ) + void ButtonContainerPanel::PanelInit() { - std::cout<< "MLER | ButtonContainerPanel::PanelInit( )" << std::endl; try { - + // EED 20/01/2012 flag 01 - this->m_Sizer = new Sizer( 0, 1, 0, 0 ); + this->m_Sizer = new Sizer(0, 1, 0, 0); - for( ButtonGroupList::iterator it = this->m_ButtonGroupList.begin( ); it != this->m_ButtonGroupList.end( ); ++it ) - { - GroupManager* manager = new GroupManager( this, *it ); - this->m_GroupManagerList[ manager->GetButtonID( ) ] = manager; - this->m_Sizer->Add( manager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - } + for (ButtonGroupList::iterator it = this->m_ButtonGroupList.begin(); + it != this->m_ButtonGroupList.end(); ++it) + { + GroupManager* manager = new GroupManager(this, *it); + this->m_GroupManagerList[manager->GetButtonID()] = manager; + this->m_Sizer->Add(manager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5); + } - this->SetSizer( this->m_Sizer ); - this->Layout( ); - this->FitSizer( ); - }//yrt - catch ( const std::exception& e ) + this->SetSizer(this->m_Sizer); + this->Layout(); + this->FitSizer(); + } //yrt + catch (const std::exception& e) { std::cerr << "ButtonContainerPanel::PanelInit( ) " << "exception: " - << e.what( ) << std::endl; - }//hctac + << e.what() << std::endl; + } //hctac } - + // ---------------------------------------------------------------------------------- - void ButtonContainerPanel::FitSizer( ) + void ButtonContainerPanel::FitSizer() { - std::cout<< "MLER | ButtonContainerPanel::FitSizer( )" << std::endl; - this->m_Sizer->Fit( this ); - this->m_Sizer->FitInside( this ); - this->SetScrollRate( 20, 20 ); - this->m_Sizer->SetSizeHints( this ); + this->m_Sizer->Fit(this); + this->m_Sizer->FitInside(this); + this->SetScrollRate(20, 20); + this->m_Sizer->SetSizeHints(this); } // ---------------------------------------------------------------------------------- }//ecapseman -}//ecapseman +} //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h index f16da5e..86dd513 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonContainerPanel.h @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 buttonContainerController.h @@ -46,8 +46,6 @@ #include "buttonGroupFactory.h" #include "containerSettings.h" #include "buttonContainerController.h" -//EED-MLER #include "listGroup.h" -//EED-MLER #include "listGroupFactory.h" /*! @namespace * @brief Contains the creaButtonContainer library included in creaMaracasVisu. @@ -80,7 +78,7 @@ namespace creaButtonContainer * @bug The scrolled it doesn't work! (to be changed soon) * @see wxScrolledWindow */ - class ButtonContainerPanel : public wxScrolledWindow + class ButtonContainerPanel: public wxScrolledWindow { public: //typedef definition @@ -98,12 +96,12 @@ namespace creaButtonContainer /*! @typedef std::list< ButtonGroup* > ButtonGroupList; * @brief Defines the ButtonGroupList type. */ - typedef std::list< ButtonGroup* > ButtonGroupList; + typedef std::list ButtonGroupList; // ---------------------------------------------------------------------------------- /*! @typedef std::map< long, GroupManager* > GroupManagerList; * @brief Defines the GroupManagerList type. */ - typedef std::map< long, GroupManager* > GroupManagerList; + typedef std::map GroupManagerList; // ---------------------------------------------------------------------------------- /*! @typedef wxFlexGridSizer Sizer; * @brief Defines the Sizer type. @@ -113,35 +111,22 @@ namespace creaButtonContainer /*! @typedef std::list< long > KeyList; * @brief Defines the KeyList type. */ - typedef std::list< long > KeyList; + typedef std::list KeyList; // ---------------------------------------------------------------------------------- /*! @typedef creaButtonContainer::model::ContainerSettings ButtonGroupSettings; * @brief Defines the ButtonGroupSettings type. */ - typedef creaButtonContainer::model::ContainerSettings - ButtonGroupSettings; + typedef creaButtonContainer::model::ContainerSettings ButtonGroupSettings; // ---------------------------------------------------------------------------------- /*! @typedef creaButtonContainer::model::ButtonGroupFactory ButtonGroupFactory; * @brief Defines the ButtonGroupFactory type. */ - typedef creaButtonContainer::model::ButtonGroupFactory - ButtonGroupFactory; + typedef creaButtonContainer::model::ButtonGroupFactory ButtonGroupFactory; // ---------------------------------------------------------------------------------- /*! creaButtonContainer::controller::ButtonContainerController BCController; * @brief Defines the BCController type. */ - typedef creaButtonContainer::controller::ButtonContainerController - BCController; - - - //typedef creaButtonContainer::model::ListGroupFactory ListGroupFactory; - - //typedef creaButtonContainer::view::ListGroup ListGroup; - - //typedef std::list< ListGroup* > ListGroupList; - - //typedef creaButtonContainer::model::ListGroupFactory ListGroupFactory; - + typedef creaButtonContainer::controller::ButtonContainerController BCController; // ---------------------------------------------------------------------------------- //end of typedef definition @@ -151,27 +136,27 @@ namespace creaButtonContainer * @param parent wxWindow pointer to parent. * @param settings ButtonGroupSettings Pointer to button container settings. */ - ButtonContainerPanel( wxWindow* parent, ButtonGroupSettings* settings); + ButtonContainerPanel(wxWindow* parent, ButtonGroupSettings* settings); // ---------------------------------------------------------------------------------- /*! @fn ~ButtonContainerPanel( ); * @brief This is the destructor. */ virtual - ~ButtonContainerPanel( ); + ~ButtonContainerPanel(); // ---------------------------------------------------------------------------------- /*! @fn SetGroupContainer( ButtonGroupList groupContainer ); * @brief This method sets the settings to the container. * @param groupContainer */ void - SetButtonGroupContainer( ButtonGroupList groupContainer ); + SetButtonGroupContainer(ButtonGroupList groupContainer); // ---------------------------------------------------------------------------------- /*! @fn PanelInit( ); * This method initializes the panel. * @exception std::bad_alloc */ void - PanelInit( ); + PanelInit(); // ---------------------------------------------------------------------------------- //void @@ -181,22 +166,20 @@ namespace creaButtonContainer * This method fits and organizes the sizer. */ void - FitSizer( ); + FitSizer(); // ---------------------------------------------------------------------------------- public: friend class creaButtonContainer::controller::ButtonContainerController; private: - GroupManagerList m_GroupManagerList; //!m_GroupName = groupName; this->m_Buttons = cartoButtons; } - + // ---------------------------------------------------------------------------------- - ButtonGroup::~ButtonGroup( ) + ButtonGroup::~ButtonGroup() { } - + // ---------------------------------------------------------------------------------- - ButtonGroup::ButtonContainer - ButtonGroup::GetButtonContainer( ) + ButtonGroup::ButtonContainer ButtonGroup::GetButtonContainer() { - std::cout<< "MLER | ButtonGroup::GetButtonContainer( )" << std::endl; - return ( this->m_Buttons ); + return (this->m_Buttons); } - + // ---------------------------------------------------------------------------------- wxStaticText* - ButtonGroup::GetGroupName( ) + ButtonGroup::GetGroupName() { - return ( this->m_GroupName ); + return (this->m_GroupName); } - + // ---------------------------------------------------------------------------------- - ButtonGroup::IdButtonContainer - ButtonGroup::GetButtonIdContainer( ) + ButtonGroup::IdButtonContainer ButtonGroup::GetButtonIdContainer() { - std::cout<< "MLER | ButtonGroup::GetButtonIdContainer( )" << std::endl; IdButtonContainer idContainer; try { - for( ButtonContainer::iterator it = this->m_Buttons.begin( ); it - != this->m_Buttons.end( ); ++it ) + for (ButtonContainer::iterator it = this->m_Buttons.begin(); + it != this->m_Buttons.end(); ++it) { - idContainer.push_back( ( *it ).first ); - }//rof - }//yrt - catch ( std::exception& e ) + idContainer.push_back((*it).first); + } //rof + } //yrt + catch (std::exception& e) { std::cerr << "ButtonGroup::GetButtonIdContainer( )" << "exception: " - << e.what( ) << std::endl; - }//hctac - return ( idContainer ); + << e.what() << std::endl; + } //hctac + return (idContainer); } - + // ---------------------------------------------------------------------------------- Button* - ButtonGroup::GetButton( long id ) + ButtonGroup::GetButton(long id) { - std::cout<< "MLER | ButtonGroup::GetButton( long id )" << std::endl; try { //return ( this->m_Buttons[ id ] ); // JPR - }//yrt - catch ( std::exception& e ) + } //yrt + catch (std::exception& e) { std::cerr << "ButtonGroup::GetButton( long id )" << "exception: " - << e.what( ) << std::endl; - }//hctac - return ( this->m_Buttons[ id ] );// JPR + << e.what() << std::endl; + } //hctac + return (this->m_Buttons[id]); // JPR } // ---------------------------------------------------------------------------------- }//ecapseman -}//ecapseman +} //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx index 4454d0c..952cb65 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.cxx @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 buttonManager.cxx @@ -37,121 +37,74 @@ namespace creaButtonContainer namespace view { // ---------------------------------------------------------------------------------- - ButtonManager::ButtonManager( ) : - wxFlexGridSizer( 0, 1, 0, 0 ) + ButtonManager::ButtonManager() + : wxFlexGridSizer(0, 1, 0, 0) { - std::cout<< "MLER | ButtonManager::ButtonManager( )" << std::endl; } - + //EED 20/01/2012 Flag03 // ---------------------------------------------------------------------------------- - ButtonManager::ButtonManager( ButtonGroup* buttonGroup ) : - wxFlexGridSizer( 0, 1, 0, 0 ) + ButtonManager::ButtonManager(ButtonGroup* buttonGroup) + : wxFlexGridSizer(0, 1, 0, 0) { try { - std::cout<< "MLER | ButtonManager::ButtonManager( ButtonGroup* buttonGroup )" << std::endl; - this->SetGroupName( buttonGroup->GetGroupName( ) ); - this->SetButtonManager( buttonGroup->GetButtonContainer( ) ); - }//yrt - catch ( const std::exception& e ) + this->SetGroupName(buttonGroup->GetGroupName()); + this->SetButtonManager(buttonGroup->GetButtonContainer()); + } //yrt + catch (const std::exception& e) { - std::cerr << "Button::Execute( ) exception: " << e.what( ) << std::endl; - }//hctac + std::cerr << "Button::Execute( ) exception: " << e.what() << std::endl; + } //hctac } + // ---------------------------------------------------------------------------------- - //MLER - /*ButtonManager::ButtonManager (ListGroup* buttonGroup): - wxFlexGridSizer( 0, 1, 0, 0 ) - { - try - { - std::cout << " MLER buttonManager.cxx / ButtonManager(ListGroup* buttonGroup) " << std::endl; - this->SetGroupName( buttonGroup->GetGroupName( ) ); - this->SetListManager(buttonGroup->GetButtonContainer( ) ); - }//yrt - catch ( const std::exception& e ) - { - std::cerr << "Button::Execute( ) exception: " << e.what( ) << std::endl; - }//hctac - }*/ - // ---------------------------------------------------------------------------------- - ButtonManager::~ButtonManager( ) + ButtonManager::~ButtonManager() { } - + // ---------------------------------------------------------------------------------- - void ButtonManager::SetGroupName( wxStaticText* groupName ) + void ButtonManager::SetGroupName(wxStaticText* groupName) { - std::cout<< "MLER | ButtonManager::SetGroupName( wxStaticText* groupName )" << std::endl; this->m_GroupName = groupName; - this->Add( this->m_GroupName, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); + this->Add(this->m_GroupName, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5); } - + // ---------------------------------------------------------------------------------- - void ButtonManager::SetButtonManager( ButtonContainer buttonContainer ) + void ButtonManager::SetButtonManager(ButtonContainer buttonContainer) { - std::cout<< "MLER | ButtonManager::SetButtonManager( ButtonContainer buttonContainer )" << std::endl; try { - if ( this->m_GroupName != NULL ) + if (this->m_GroupName != NULL) { - this->m_GridSizer = new wxGridSizer( 0, 3, 0, 0 ); - for( ButtonContainer::iterator it = buttonContainer.begin( ); it!= buttonContainer.end( ); ++it ) + this->m_GridSizer = new wxGridSizer(0, 3, 0, 0); + for (ButtonContainer::iterator it = buttonContainer.begin(); + it != buttonContainer.end(); ++it) { - this->m_GridSizer->Add( ( *it ).second, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); + this->m_GridSizer->Add((*it).second, -1, + wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5); } - this->Add( m_GridSizer, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - }//fi - }//yrt - catch ( const std::exception& e ) + this->Add(m_GridSizer, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5); + } //fi + } //yrt + catch (const std::exception& e) { std::cerr - << "ButtonManager::SetButtonManager( ButtonContainer buttonContainer )" - << "exception: " << e.what( ) << std::endl; - }//hctac + << "ButtonManager::SetButtonManager( ButtonContainer buttonContainer )" + << "exception: " << e.what() << std::endl; + } //hctac } // ---------------------------------------------------------------------------------- - /*void ButtonManager::SetListManager(ListContainer buttonContainer ) - { - try - { - if ( this->m_GroupName != NULL ) - { - this->m_GridSizer = new wxGridSizer( 0, 3, 0, 0 ); - for( ListContainer::iterator it = buttonContainer.begin( ); it!= buttonContainer.end( ); ++it ) - { - this->m_GridSizer->Add( ( *it ).second, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - } - this->Add( m_GridSizer, -1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - }//fi - }//yrt - catch ( const std::exception& e ) - { - std::cerr - << "ButtonManager::SetButtonManager( ButtonContainer buttonContainer )" - << "exception: " << e.what( ) << std::endl; - }//hctac - }*/ - // ---------------------------------------------------------------------------------- - - - - - void - ButtonManager::ShowButtonManager( ) + void ButtonManager::ShowButtonManager() { - std::cout<< "MLER | ButtonManager::ShowButtonManager( )" << std::endl; - this->Show( this->m_GridSizer, true, false ); + this->Show(this->m_GridSizer, true, false); } // ---------------------------------------------------------------------------------- - void - ButtonManager::HideButtonManager( ) + void ButtonManager::HideButtonManager() { - std::cout<< "MLER | ButtonManager::HideButtonManager( )" << std::endl; - this->Show( this->m_GridSizer, false, false ); + this->Show(this->m_GridSizer, false, false); } // ---------------------------------------------------------------------------------- }//ecapseman -}//ecapseman +} //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h index 7edb9bc..57c105f 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/buttonManager.h @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 buttonManager.h @@ -43,8 +43,6 @@ #include "button.h" #include "buttonGroup.h" -#include "listWx.h" -#include "listGroup.h" /*! @namespace * @brief Contains the creaButtonContainer library included in creaMaracasVisu. @@ -62,7 +60,7 @@ namespace creaButtonContainer * @details This class describes a wxFlexGridSizer with the button manager. * @see wxFlexGridSizer */ - class ButtonManager : public wxFlexGridSizer + class ButtonManager: public wxFlexGridSizer { public: //typedef definition. @@ -80,11 +78,8 @@ namespace creaButtonContainer /*! @typedef std::map< long, Button* > ButtonContainer; * @brief Defines the ButtonContainer type. */ - typedef std::map< long, Button* > ButtonContainer; + typedef std::map ButtonContainer; // ---------------------------------------------------------------------------------- - //MLER - //typedef creaButtonContainer::view::ListGroup ListGroup; - //typedef std::map ListContainer; //end of typedef definition. public: @@ -93,44 +88,42 @@ namespace creaButtonContainer * @brief This is the default constructor. * @exception std::bad_alloc */ - ButtonManager( ); + ButtonManager(); // ---------------------------------------------------------------------------------- /*! @fn ButtonManager( ButtonGroup* buttonGroup ); * @brief This is the parameterized constructor * @param buttonGroup The group of buttons. */ - ButtonManager( ButtonGroup* buttonGroup ); - // ---------------------------------------------------------------------------------- - //MLER - //ButtonManager (ListGroup* buttonGroup); + ButtonManager(ButtonGroup* buttonGroup); + // ---------------------------------------------------------------------------------- /*! @fn ~ButtonManager( ); * @brief This is the destructor. */ virtual - ~ButtonManager( ); + ~ButtonManager(); // ---------------------------------------------------------------------------------- /*! @fn SetGroupName( wxStaticText* groupName ); * @details Sets the groupName. * @param groupName */ void - SetGroupName( wxStaticText* groupName ); + SetGroupName(wxStaticText* groupName); // ---------------------------------------------------------------------------------- /*! @fn ShowButtonManager( ); * @brief This method shows the ButtonManager */ void - ShowButtonManager( ); + ShowButtonManager(); // ---------------------------------------------------------------------------------- /*! @fn HideButtonManager( ); * @brief This method hides the ButtonManager. * @exception std::bad_alloc */ void - HideButtonManager( ); + HideButtonManager(); // ---------------------------------------------------------------------------------- private: // ---------------------------------------------------------------------------------- @@ -139,19 +132,14 @@ namespace creaButtonContainer * @param buttonContainer */ void - SetButtonManager( ButtonContainer buttonContainer ); + SetButtonManager(ButtonContainer buttonContainer); // ---------------------------------------------------------------------------------- - //MLER - /*void - SetListManager( ListContainer buttonContainer );*/ - // ---------------------------------------------------------------------------------- - private: wxStaticText* m_GroupName; //!m_IDExpButton = wxNewId( ); - this->m_ExpansionButton = new ExpansionButton( parent, this->m_IDExpButton, _("-"), wxDefaultPosition, wxSize( 20, 20 ), 0, wxDefaultValidator, _T("EXPBUTTON") ); - this->Add( m_ExpansionButton, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - this->m_ButtonManager = new ButtonManager( buttonGroup ); - this->Add( this->m_ButtonManager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); + this->m_IDExpButton = wxNewId(); + this->m_ExpansionButton = new ExpansionButton(parent, this->m_IDExpButton, + _("-"), wxDefaultPosition, wxSize(20, 20), 0, wxDefaultValidator, + _T("EXPBUTTON")); + this->Add(m_ExpansionButton, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5); + this->m_ButtonManager = new ButtonManager(buttonGroup); + this->Add(this->m_ButtonManager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, + 5); } - - /*GroupManager::GroupManager(wxWindow* parent, ListGroup* buttonGroup ): - wxFlexGridSizer( 1, 0, 0, 0 ) - { - std::cout << " MLER groupManager.cxx / GroupManager(ListGroup* buttonGroup) " << std::endl; - this->m_IDExpButton = wxNewId( ); - this->m_ExpansionButton = new ExpansionButton( parent, this->m_IDExpButton, _("-"), wxDefaultPosition, wxSize( 20, 20 ), 0, wxDefaultValidator, _T("EXPBUTTON") ); - this->Add( m_ExpansionButton, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - this->m_ButtonManager = new ButtonManager( buttonGroup ); - this->Add( this->m_ButtonManager, 1, wxALL | wxALIGN_LEFT | wxALIGN_TOP, 5 ); - }//MLER*/ // ---------------------------------------------------------------------------------- - GroupManager::~GroupManager( ) + GroupManager::~GroupManager() { } - + // ---------------------------------------------------------------------------------- - long - GroupManager::GetButtonID( ) + long GroupManager::GetButtonID() { - std::cout<< "MLER | GroupManager::GetButtonID( )" << std::endl; - return ( this->m_IDExpButton ); + return (this->m_IDExpButton); } - + // ---------------------------------------------------------------------------------- GroupManager::ExpansionButton* - GroupManager::GetButton( ) + GroupManager::GetButton() { - std::cout<< "MLER | GroupManager::GetButton( )" << std::endl; - return ( this->m_ExpansionButton ); + return (this->m_ExpansionButton); } - + // ---------------------------------------------------------------------------------- ButtonManager* - GroupManager::GetButtonManager( ) + GroupManager::GetButtonManager() { - return ( this->m_ButtonManager ); + return (this->m_ButtonManager); } - + // ---------------------------------------------------------------------------------- - void - GroupManager::SetButtonID( long id ) + void GroupManager::SetButtonID(long id) { this->m_IDExpButton = id; } - + // ---------------------------------------------------------------------------------- - void - GroupManager::SetButton( ExpansionButton* button ) + void GroupManager::SetButton(ExpansionButton* button) { this->m_ExpansionButton = button; } - + // ---------------------------------------------------------------------------------- - void - GroupManager::SetButtonManager( ButtonManager* container ) + void GroupManager::SetButtonManager(ButtonManager* container) { this->m_ButtonManager = container; } - + // ---------------------------------------------------------------------------------- - void - GroupManager::HideSubPanel( bool hide ) + void GroupManager::HideSubPanel(bool hide) { - std::cout<< "MLER | GroupManager::HideSubPanel( bool hide )" << std::endl; - if ( hide == true ) + if (hide == true) { - this->m_ButtonManager->HideButtonManager( ); - }//fi + this->m_ButtonManager->HideButtonManager(); + } //fi else { - this->m_ButtonManager->ShowButtonManager( ); - }//esle + this->m_ButtonManager->ShowButtonManager(); + } //esle } // ---------------------------------------------------------------------------------- }//ecapseman -}//ecapseman +} //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h index ab69ab4..7c9539d 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/groupManager.h @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 groupManager.h @@ -43,7 +43,6 @@ #include "buttonManager.h" #include "buttonGroup.h" -#include "listGroup.h" /*! @namespace * @brief Contains the creaButtonContainer library included in creaMaracasVisu. @@ -61,7 +60,7 @@ namespace creaButtonContainer * @details This class describes a wxFlexGridSizer with the group manager. * @see wxFlexGridSizer */ - class GroupManager : public wxFlexGridSizer + class GroupManager: public wxFlexGridSizer { public: //typedef definition @@ -76,8 +75,6 @@ namespace creaButtonContainer */ typedef wxButton ExpansionButton; // ---------------------------------------------------------------------------------- - //MLER - //typedef creaButtonContainer::view::ListGroup ListGroup; //end of typedef definition. public: @@ -87,75 +84,70 @@ namespace creaButtonContainer * @param parent The wxWindow* parent * @param buttonGroup The pointer to the ButtonGroup. */ - GroupManager( wxWindow* parent, ButtonGroup* buttonGroup ); + GroupManager(wxWindow* parent, ButtonGroup* buttonGroup); // ---------------------------------------------------------------------------------- - - //MLER - //GroupManager( wxWindow* parent, ListGroup* listGroup ); /*! @fn ~GroupManager( ); * @brief This is the destructor. - */ + */ virtual - ~GroupManager( ); + ~GroupManager(); // ---------------------------------------------------------------------------------- /*! @fn GetButtonID( ); * @brief This method returns the Button ID. * @return */ long - GetButtonID( ); + GetButtonID(); // ---------------------------------------------------------------------------------- /*! @fn GetButton( ); * @brief This method returns the expansion button. * @return */ ExpansionButton* - GetButton( ); + GetButton(); // ---------------------------------------------------------------------------------- /*! @fn GetButtonManager( ); * @brief This method returns the manager of the buttons. * @return */ ButtonManager* - GetButtonManager( ); + GetButtonManager(); // ---------------------------------------------------------------------------------- /*! @fn SetButtonID( long id ); * @brief This method sets the ID of the expansion button. * @param id */ void - SetButtonID( long id ); + SetButtonID(long id); // ---------------------------------------------------------------------------------- /*! @fn SetButton( ExpansionButton* button ); * @brief This method sets the expansion button. * @param button */ void - SetButton( ExpansionButton* button ); + SetButton(ExpansionButton* button); // ---------------------------------------------------------------------------------- /*! @fn SetButtonManager( ButtonManager* manager ); * @brief This method Sets the ButtonManager * @param manager A pointer with the manager. */ void - SetButtonManager( ButtonManager* manager ); + SetButtonManager(ButtonManager* manager); // ---------------------------------------------------------------------------------- /*! @fn HideSubPanel( bool hide ); * @brief This method hides the subPanel (Hides the buttons). * @param hide True if you need to hide the buttons. */ void - HideSubPanel( bool hide ); + HideSubPanel(bool hide); private: long m_IDExpButton; //!m_GroupName = groupName; - this->m_Buttons = cartoButtons; - } - - // ---------------------------------------------------------------------------------- - ListGroup::~ListGroup( ) - { - } - - // ---------------------------------------------------------------------------------- - ListGroup::ButtonContainer - ListGroup::GetButtonContainer( ) - { - return ( this->m_Buttons ); - } - - // ---------------------------------------------------------------------------------- - wxStaticText* - ListGroup::GetGroupName( ) - { - return ( this->m_GroupName ); - } - - // ---------------------------------------------------------------------------------- - ListGroup::IdButtonContainer - ListGroup::GetButtonIdContainer( ) - { - IdButtonContainer idContainer; - try - { - for( ButtonContainer::iterator it = this->m_Buttons.begin( ); it - != this->m_Buttons.end( ); ++it ) - { - idContainer.push_back( ( *it ).first ); - }//rof - }//yrt - catch ( std::exception& e ) - { - std::cerr << "ButtonGroup::GetButtonIdContainer( )" << "exception: " - << e.what( ) << std::endl; - }//hctac - return ( idContainer ); - } - - // ---------------------------------------------------------------------------------- - ListGroup::Button* - ListGroup::GetButton( long id ) - { - try - { - //return ( this->m_Buttons[ id ] ); // JPR - }//yrt - catch ( std::exception& e ) - { - std::cerr << "ButtonGroup::GetButton( long id )" << "exception: " - << e.what( ) << std::endl; - }//hctac - return ( this->m_Buttons[ id ] );// JPR - } - // ---------------------------------------------------------------------------------- - }//ecapseman -}//ecapseman*/ - - diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.h deleted file mode 100644 index 494fe33..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listGroup.h +++ /dev/null @@ -1,84 +0,0 @@ -/*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ - -#ifndef LISTGROUP_H -#define LISTGROUP_H - -/*//Library Definition -#include - -#include -#include -#include - -#include "listWx.h" - -namespace creaButtonContainer -{ - - namespace view - { - - class ListGroup - { - public: - - typedef creaButtonContainer::view::ListWx Button; - - typedef std::map< long, Button* > ButtonContainer; - - typedef std::list< long > IdButtonContainer; - public: - - ListGroup( wxStaticText* groupName, ButtonContainer buttons ); - // ---------------------------------------------------------------------------------- - - virtual - ~ListGroup( ); - // ---------------------------------------------------------------------------------- - - Button* - GetButton( long id ); - // ---------------------------------------------------------------------------------- - - ButtonContainer - GetButtonContainer( ); - // ---------------------------------------------------------------------------------- - - IdButtonContainer - GetButtonIdContainer( ); - // ---------------------------------------------------------------------------------- - - wxStaticText* - GetGroupName( ); - // ---------------------------------------------------------------------------------- - private: - wxStaticText* m_GroupName; //!m_itemsMap = iMap; + this->m_Functor = functor; - this->functor = functor; + wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL); - wxFlexGridSizer* sizer = new wxFlexGridSizer(1); - sizer->Add( new wxStaticText(this,-1, _("Lista"))); - sizer->AddGrowableCol(0); this->SetSizer(sizer); - listBox = new wxListBox(this,-1); - m_functorEnabled = true; - - std::cout << "is ListBox"<< listBox->GetId()<< std::endl; - // this->Connect( -1,wxEVT_COMMAND_CHOICE_SELECTED, - // (wxObjectEventFunction) (void (wxPanel::*)(wxEvent&))(&ListWx::ListEvent) ); - //this->Connect(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, - // wxCommandEventHandler(ListWx::ListEvent)); + this->m_ListBox = new wxListBox(this, -1); + this->m_FunctorEnabled = true; this->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, - wxCommandEventHandler(ListWx::ListEvent)); + wxCommandEventHandler(ListWx::OnListEvent)); - //FillList(0); - - - sizer->Add(listBox,1,wxGROW); + if (!iVector.empty()) + { + for (ItemsVector::iterator it = iVector.begin(); it != iVector.end(); + ++it) + { + std::string key = it->first; + this->m_ListBox->Append(wxString(key.c_str(), wxConvUTF8)); + } + } + sizer->Add(this->m_ListBox, 1, wxGROW); } - // ---------------------------------------------------------------------------------- - ListWx::ListWx( wxWindow* parent, wxWindowID id, ItemsMap iMap,TFunctor* functor, - std::string c) : wxPanel(parent,id) + ListWx::ListWx(wxWindow* parent, wxWindowID id, TFunctor* functor) + : wxPanel(parent, id) { - std::cout<< "MLER | ListWx::ListWx" << std::endl; + this->m_Functor = functor; - this->m_itemsMap = iMap; - this->functor = functor; + wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL); - wxFlexGridSizer* sizer = new wxFlexGridSizer(1); - - sizer->Add( new wxStaticText(this,-1, _("Lista Configurable"))); - sizer->AddGrowableCol(0); this->SetSizer(sizer); - listBox = new wxListBox(this,-1); - - std::cout << "is ListBox"<< listBox->GetId()<< std::endl; - - button = new wxButton(this, 1, _("Configurar"), - wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxString(c.c_str(), wxConvUTF8)); + this->m_ListBox = new wxListBox(this, -1); + this->m_FunctorEnabled = true; - sizer->Add(listBox,1,wxGROW); - sizer->Add(button,2,wxGROW); - - // m_listConfigPanel = new ListConfigPanel(this,1,_("Configuracion"),m_itemsMap); - m_listConfig = new ListConfig(m_itemsMap); - - //wxEVT_COMMAND_LISTBOX_SELECTED this->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, - wxCommandEventHandler(ListWx::ListEvent)); + wxCommandEventHandler(ListWx::OnListEvent)); - //FillList(); + sizer->Add(this->m_ListBox, 1, wxGROW); } - // ---------------------------------------------------------------------------------- - ListWx::~ListWx( ) + ListWx::~ListWx() { - } - // ---------------------------------------------------------------------------------- - void - ListWx::FillList() - { - this->listBox->Clear(); - std::cout<<"clear"<m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it) - { - std::string key = it->first; - int v = listBox->FindString(wxString(key.c_str(), wxConvUTF8)); - if(v == -1) - listBox->Append( wxString(key.c_str(), wxConvUTF8)); - } - listBox->Update(); - this->Update(); } + // ---------------------------------------------------------------------------------- - void - ListWx::ListEvent( wxCommandEvent& event ) + void ListWx::OnListEvent(wxCommandEvent& event) { - if(!this->IsFunctorEnabled()) + if (!this->IsFunctorEnabled()) return; - else{ - try + else { - std::cout<< "MLER | ListWx::ListEvent( wxListEvent& event )" << std::endl; - - int iSelection; - iSelection = listBox->GetSelection(); + try + { + std::cout << "MLER | ListWx::OnListEvent( wxListEvent& event )" + << std::endl; - wxString itemNom = listBox->GetString(iSelection); - std::string itemNomC = std::string(itemNom.mb_str()); + int iSelection; + iSelection = this->m_ListBox->GetSelection(); - this->functor->Call(itemNomC); - std::cout<<"mmmmmmmmmmmmmmmmmmmmmmm"<m_ListBox->GetString(iSelection); + std::string itemNomC = std::string(itemNom.mb_str()); + this->m_Functor->Call(itemNomC); - }//yrt - catch ( const std::exception& e ) - { - std::cerr - << "ButtonContainerController::ButtonEvent( wxCommandEvent& event ) exception: " - << e.what( ) << std::endl; - }//hctac + } //yrt + catch (const std::exception& e) + { + std::cerr + << "ButtonContainerController::ButtonEvent( wxCommandEvent& event ) exception: " + << e.what() << std::endl; + } //hctac } } // ---------------------------------------------------------------------------------- - - - ListWx::ItemsMap - ListWx::GetItemsMap() - { - return m_itemsMap; - } - void ListWx::SetFunctorEnabled(const bool& enabled) { - m_functorEnabled = enabled; + this->m_FunctorEnabled = enabled; } - + // ---------------------------------------------------------------------------------- bool ListWx::IsFunctorEnabled() const { - return m_functorEnabled; - } - - ListWx::TFunctor* - ListWx::GetWxListFunctor() - { - return this->functor; - } - - void ListWx::AddItemToMap(std::string key, wxPanel* panel) - { - this->m_itemsMap[key] = panel; + return this->m_FunctorEnabled; } + // ---------------------------------------------------------------------------------- wxListBox* - ListWx::GetListBox() const - { - return this->listBox; - } - - - void ListWx::DeleteItemFromMap(std::string key) - { - std::cout<< "MLER | ListConfig::DelFinalItems(std::string name)" << std::endl; - ItemsMap::iterator it1; - - //if(m_finalItems.empty()) - std::cout<<"name item -----test A"<< key <m_itemsMap.empty()) - { - for(ItemsMap::iterator it= this->m_itemsMap.begin(); it!=this->m_itemsMap.end();++it) + ListWx::GetListBox() const { - if((it->first).compare(key) == 0 ) - { - std::cout << "Item a borrar: "<< key << std::endl; - it1 = m_itemsMap.find(key); - m_itemsMap.erase(it1); - - } + return this->m_ListBox; } - } - std::cout<< "si borre tengo --- test 2 "<< m_itemsMap.size() << std::endl; - } - - - }//ecapseman -}//ecapseman + } //ecapseman +} //ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h index 3465529..9eb6235 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaButtonContainer/view/listWx.h @@ -23,88 +23,135 @@ # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ +/*! + * @file listWx.h + * @brief This contains the ListWx class. + * @author Monica ESPINOSA (espinosa[AT]creatis.insa-lyon.fr) + * @date 2015-01-02 + */ + #ifndef LISTWX_H #define LISTWX_H //#include #include -#include #include -#include -//#include -#include -#include #include #include +#include -#include #include -#include "functor.h" -#include +#include +#include +#include "functor.h" #include "system.h" -#include "listConfig.h" -//#include "listConfigPanel.h" - -namespace creaButtonContainer { - -namespace view { - -class ListWx: public wxPanel { -public: - - typedef creaButtonContainer::model::TFunctor TFunctor; - typedef std::map ItemsMap; - typedef creaButtonContainer::model::ListConfig ListConfig; - -public: - - ListWx(wxWindow* parent, wxWindowID id, ItemsMap iMap, TFunctor* functor); - ListWx(wxWindow* parent, wxWindowID id, ItemsMap iMap, TFunctor* functor, - std::string c); - // ---------------------------------------------------------------------------------- - - virtual - ~ListWx(); - // ---------------------------------------------------------------------------------- - long - GetID(); - - void - FillList(); - - void - ListEvent(wxCommandEvent& event); - - ItemsMap - GetItemsMap(); - - TFunctor* - GetWxListFunctor(); - - void SetFunctorEnabled(const bool& enabled); - - void AddItemToMap(std::string key, wxPanel* panel); - - void DeleteItemFromMap(std::string key); - - bool IsFunctorEnabled() const; - - wxListBox* - GetListBox() const; - - // ---------------------------------------------------------------------------------- -private: - ItemsMap m_itemsMap; //! - TFunctor* functor; - wxListBox* listBox; - wxFlexGridSizer* sizer; - wxButton* button; - bool m_functorEnabled; - ListConfig* m_listConfig; -}; -} //ecapseman +/*! @namespace + * @brief Contains the creaButtonContainer library included in creaMaracasVisu. + */ +namespace creaButtonContainer +{ + /*! @namespace + * @brief Contains the implementation of the view in creaButtonContainer library. + * @see MVC Software Architecture + */ + namespace view + { + /*! @class ListWx listWx.h "listWx.h" + * @brief This class contains the list in the panel. + * @details This class contains the information of a list, it derives from wxPanel. + * @see wxPanel + */ + class ListWx: public wxPanel + { + public: + //typedef definition. + // ---------------------------------------------------------------------------------- + /*! typedef creaButtonContainer::model::TFunctor TFunctor; + * @brief Defines the TFunctor type. + */ + typedef creaButtonContainer::model::TFunctor TFunctor; + // ---------------------------------------------------------------------------------- + /*! @typedef std::pair ListAction; + * @brief Defines the ListAction type. + * First is the button name(item list), Second FunctionEventType + */ + typedef std::pair ListAction; + // ---------------------------------------------------------------------------------- + /*! @typedef std::vector ItemsVector; + * @brief Defines the Items Vector type. + */ + typedef std::vector ItemsVector; + // ---------------------------------------------------------------------------------- + //end of typedef definition. + + public: + // ---------------------------------------------------------------------------------- + /*! @fn ListWx( wxWindow* parent, wxWindowID id, ItemsVector iVector, + TFunctor* functor ); + * @brief This is the parameterized constructor. + * @param parent The wxWindow pointer to parent. + * @param id The wxID of the button. + * @param ItemsVector //The items Vector (name, wxPanel). + * @param TFunctor //The functor of items list. + */ + ListWx(wxWindow* parent, wxWindowID id, ItemsVector iVector, + TFunctor* functor); + // ---------------------------------------------------------------------------------- + /*! @fn ListWx( wxWindow* parent, wxWindowID id, TFunctor* functor ); + * @brief This is the parameterized constructor. + * @param parent The wxWindow pointer to parent. + * @param id The wxID of the button. + * @param TFunctor //The functor of items list. + */ + ListWx(wxWindow* parent, wxWindowID id, TFunctor* functor); + // ---------------------------------------------------------------------------------- + /*! @fn virtual ~Button( ); + * @brief This is the destructor. + */ + virtual + ~ListWx(); + // ---------------------------------------------------------------------------------- + /*! @fn void OnListEvent( wxCommandEvent& event ); + * @brief This method calls the functor when + * an item of list is clicked. + * @param event + */ + void + OnListEvent(wxCommandEvent& event); + // ---------------------------------------------------------------------------------- + /*! @fn void SetFunctorEnabled( wxCommandEvent& event ); + * @brief This method set the state of Functor (enable or disable) + * @param enabled + */ + void + SetFunctorEnabled(const bool& enabled); + // ---------------------------------------------------------------------------------- + /*! @fn bool OnListEvent( wxCommandEvent& event ); + * @brief This method ask the state of functor. + * @return + */ + bool + IsFunctorEnabled() const; + // ---------------------------------------------------------------------------------- + /*! @fn wxListBox* GetListBox() const; + * @brief This method returns the wxlistBox. + * @exception std::bad_alloc + * @return wxListBox + */ + wxListBox* + GetListBox() const; + // ---------------------------------------------------------------------------------- + + private: + + wxListBox* m_ListBox; //!< This is the Items List. + TFunctor* m_Functor; //!< This is the functor. + bool m_FunctorEnabled; //!< Disable or Enable Functor. + + }; + } //ecapseman } //ecapseman #endif // LISTWX_H diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx index 66ba48e..130b81b 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.cxx @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 @@ -35,292 +35,257 @@ namespace creaPanelButtonContainer { // ---------------------------------------------------------------------------------- - ButtonContainerSettings::ButtonContainerSettings( ) + ButtonContainerSettings::ButtonContainerSettings() { } // ---------------------------------------------------------------------------------- - ButtonContainerSettings::~ButtonContainerSettings( ) + ButtonContainerSettings::~ButtonContainerSettings() { } - + // ---------------------------------------------------------------------------------- - ButtonContainerSettings::ButtonGroupMap - ButtonContainerSettings::GetButtonGroupContainer( ) + ButtonContainerSettings::ButtonGroupMap ButtonContainerSettings::GetButtonGroupContainer() { - std::cout<< "MLER | ButtonContainerSettings:: GetButtonGroupContainer( ) " << std::endl; return m_ButtonGroupContainer; } // ---------------------------------------------------------------------------------- - ButtonContainerSettings::KeyMapList - ButtonContainerSettings::GetGroupNameList( ) + 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 StringType &buttonName ) + ButtonContainerSettings::PanelButton 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 ) - { - if ( ( *it1 )->first->first.compare( buttonName ) == 0 ) - { - return ( ( *it1 )->second->second ); - }//fi - }//rof - }//rof - }//yrt - catch ( std::exception& e ) - { - std::cerr - << "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 { - - for( ItemsMap::iterator it= this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it ) + for (KeyMapList::iterator it = this->m_GroupNameList.begin(); + it != this->m_GroupNameList.end(); ++it) { - if( (*it).first.compare(buttonName) == 0 ) + ButtonList list = this->m_ButtonGroupContainer[(*it)]; + for (ButtonList::iterator it1 = list.begin(); it1 != list.end(); ++it1) { - std::cout<<"debe retornar" << std::endl; - return ( (*it).second ); - } - } - - - }catch ( std::exception& e ) + if ((*it1)->first->first.compare(buttonName) == 0) + return ((*it1)->second->second); + } //rof + } //rof + } //yrt + catch (std::exception& e) { std::cerr - << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " - << "exception: " << e.what( ) << std::endl; - }//hctac + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " + << "exception: " << e.what() << std::endl; + } //hctac return (NULL); - } - // ---------------------------------------------------------------------------------- ButtonContainerSettings::ButtonGroupSettings* - ButtonContainerSettings::GetButtonGroupSettings( TFunctor* functor ) + ButtonContainerSettings::GetButtonGroupSettings(TFunctor* functor) { ButtonGroupSettings* settings = NULL; try { - std::cout<< "MLER | ButtonContainerSettings:: GetButtonGroupSettings() " << std::endl; - settings = new ButtonGroupSettings( ); + settings = new ButtonGroupSettings(); - for( KeyMapList::iterator it = this->m_GroupNameList.begin( ); it - != this->m_GroupNameList.end( ); ++it ) + for (KeyMapList::iterator it = this->m_GroupNameList.begin(); + it != this->m_GroupNameList.end(); ++it) { - ButtonList list = this->m_ButtonGroupContainer[ ( *it ) ]; + ButtonList list = this->m_ButtonGroupContainer[(*it)]; - for( ButtonList::iterator it1 = list.begin( ); it1 != list.end( ); ++it1 ) + for (ButtonList::iterator it1 = list.begin(); it1 != list.end(); ++it1) { - std::cout<<"MLER ButtonContainerSettings // GetButtonGroupSettings :: groupName "<< *it<first->first <AddButton( ( *it ), ( *it1 )->first->first, ( *it1 )->first->second, ( *it1 )->second->first, functor ); - }//rof - }//rof - }//yrt - catch ( std::exception& e ) + settings->AddButton((*it), (*it1)->first->first, + (*it1)->first->second, (*it1)->second->first, functor); + } //rof + } //rof + } //yrt + catch (std::exception& e) { std::cerr - << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " - << "exception: " << e.what( ) << std::endl; - }//hctac - return ( settings ); + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " + << "exception: " << e.what() << std::endl; + } //hctac + return (settings); } // ---------------------------------------------------------------------------------- - void - ButtonContainerSettings::SetButtonGroupContainer( - ButtonGroupMap m_ButtonGroupContainer ) + void ButtonContainerSettings::SetButtonGroupContainer( + ButtonGroupMap m_ButtonGroupContainer) { - std::cout<< "MLER | ButtonContainerSettings:: SetButtonGroupContainer() " << std::endl; this->m_ButtonGroupContainer = m_ButtonGroupContainer; } // ---------------------------------------------------------------------------------- - void - ButtonContainerSettings::SetGroupNameList( KeyMapList m_GroupNameList ) + void ButtonContainerSettings::SetGroupNameList(KeyMapList m_GroupNameList) { - std::cout<< "MLER | ButtonContainerSettings:: SetGroupNameList() " << std::endl; this->m_GroupNameList = m_GroupNameList; } - + // ---------------------------------------------------------------------------------- - void - ButtonContainerSettings::AddButton( const StringType & groupName, - const StringType &buttonName, const wxBitmap &icon, - const StringType &buttonDescription, PanelButton panel ) + void 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 ) + if (panel == NULL) { std::cerr << "ButtonContainerSettings::AddButton" - << "exception: NULL Pointer in panel " << std::endl; - exit( 1 ); + << "exception: NULL Pointer in panel " << std::endl; + exit(1); } - panel->Show( false ); + panel->Show(false); - ButtonPair* pair = new ButtonPair( - new ButtonInfo( buttonName, icon ), - new ActionButton( buttonDescription, panel ) ); + 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 ) + for (KeyMapList::iterator it = this->m_GroupNameList.begin(); + it != this->m_GroupNameList.end(); ++it) { - if ( ( *it ).compare( groupName ) == 0 ) + if ((*it).compare(groupName) == 0) { - this->m_ButtonGroupContainer[ groupName ].push_back( pair ); + 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 ) + } //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 + << "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 ) + 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 ) + if (info->panel == NULL) { std::cerr << "ButtonContainerSettings::AddButton" - << "exception: NULL Pointer in panel " << std::endl; - exit( 1 ); + << "exception: NULL Pointer in panel " << std::endl; + exit(1); } - info->panel->Show( false ); + 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 ) + 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 ) + if ((*it).compare(info->groupName) == 0) { - this->m_ButtonGroupContainer[ info->groupName ].push_back( pair ); + 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 ) + } //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 + << "ButtonContainerSettings::AddButton( BCPSettingsStruct* info )" + << "exception: " << e.what() << std::endl; + exit(1); + } //hctac } - + // ---------------------------------------------------------------------------------- - void - ButtonContainerSettings::AddButtons( BCStructVectorType infoList, int type ) + void ButtonContainerSettings::InitModel(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 ) + for (BCStructVectorType::iterator it = infoList.begin(); + it != infoList.end(); ++it) { - if( type == 0 ) - this->AddButton( *it ); - else if( type == 1 || type == 2) + if (type == 0) + this->AddButton(*it); + else if (type == 1 || type == 2 || type == 3) this->AddItems(*it); - }//rof - }//yrt - catch ( std::exception& e ) + + } //rof + } //yrt + catch (std::exception& e) { std::cerr - << "ButtonContainerSettings::AddButtons( BCStructVectorType infoList )" - << "exception: " << e.what( ) << std::endl; - }//hctac + << "ButtonContainerSettings::AddButtons( BCStructVectorType infoList )" + << "exception: " << e.what() << std::endl; + } //hctac } - void - ButtonContainerSettings::AddItems(BCPSettingsStruct* info) + // ---------------------------------------------------------------------------------- + //MLER + void ButtonContainerSettings::AddItems(BCPSettingsStruct* info) { try { - std::cout<< "MLER | ButtonContainerSettings:: AddItems(BCPSettingsStruct* info)" << std::endl; - //builds the button information + //build the button information //I don't know the try catch doesn't work!! - if ( info->panel == NULL ) + if (info->panel == NULL) { std::cerr << "ButtonContainerSettings::AddItems" - << "exception: NULL Pointer in panel " << std::endl; - exit( 1 ); + << "exception: NULL Pointer in panel " << std::endl; + exit(1); } + info->panel->Show(false); + std::string key = info->groupName + ":" + info->buttonName; + m_ItemsVector.push_back(ListAction(key, info->panel)); - info->panel->Show( false ); - - std::string mapKey = info->groupName + ":" + info->buttonName; - m_itemsMap[mapKey] = info->panel; - - }//yrt - catch ( const std::exception& e ) + } //yrt + catch (const std::exception& e) { std::cerr - << "ButtonContainerSettings::AddButton( BCPSettingsStruct* info )" - << "exception: " << e.what( ) << std::endl; - exit( 1 ); - }//hctac + << "ButtonContainerSettings::AddButton( BCPSettingsStruct* info )" + << "exception: " << e.what() << std::endl; + exit(1); + } //hctac + } + // ---------------------------------------------------------------------------------- + ButtonContainerSettings::ItemsVector ButtonContainerSettings::GetItemsVector() + { + return this->m_ItemsVector; } - ButtonContainerSettings::ItemsMap - ButtonContainerSettings::GetItemsMap() + // ---------------------------------------------------------------------------------- + wxPanel* + ButtonContainerSettings::GetPanelList(const StringType &buttonName) { - std::cout<< "MLER | ButtonContainerSettings:: GetItemsMap()" << std::endl; + try + { + for (ItemsVector::iterator it = this->m_ItemsVector.begin(); + it != this->m_ItemsVector.end(); ++it) + { + if ((*it).first.compare(buttonName) == 0) + return ((*it).second); - return m_itemsMap; - } + } + } catch (std::exception& e) + { + std::cerr + << "ButtonContainerSettings::GetPanelButton( const StringType &buttonName ) " + << "exception: " << e.what() << std::endl; + } //hctac + return (NULL); + + } +//MLER // ---------------------------------------------------------------------------------- }//ecapseman diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h index ccd01c5..4bd2ce5 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/buttonContainerSettings.h @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 @@ -35,7 +35,7 @@ #include #include -#include +//#include #include #include @@ -46,7 +46,6 @@ #include "containerSettings.h" #include "functor.h" - /*! @namespace * @brief Contains the creaPanelButtonContainer library included in creaMaracasVisu. */ @@ -82,79 +81,87 @@ namespace creaPanelButtonContainer // ---------------------------------------------------------------------------------- /*! @typedef std::pair< std::string, PanelButton > ActionButton; * @brief Defines the ActionButton type. - * First is the button description, Second FunctionEventType + * First is the button name, Second FunctionEventType */ - typedef std::pair< std::string, PanelButton > ActionButton; - + typedef std::pair ActionButton; + // ---------------------------------------------------------------------------------- /*! @typedef std::pair< std::string, wxBitmap > ButtonInfo; * @brief Defines the ButtonInfo type. * First is the ButtonName, Second is the ImageIcon */ - typedef std::pair< std::string, wxBitmap > ButtonInfo; - + typedef std::pair ButtonInfo; + // ---------------------------------------------------------------------------------- /*! @typedef std::pair< ButtonInfo*, ActionButton* > ButtonPair; * @brief Defines the ButtonPair type. */ - typedef std::pair< ButtonInfo*, ActionButton* > ButtonPair; + typedef std::pair ButtonPair; // ---------------------------------------------------------------------------------- /*! @typedef std::list< std::string > KeyMapList; * @brief Defines the KeyMapList type. */ - typedef std::list< std::string > KeyMapList; - + typedef std::list KeyMapList; + // ---------------------------------------------------------------------------------- /*! @typedef std::list< ButtonPair* > ButtonList; * @brief Defines the ButtonList type. */ - typedef std::list< ButtonPair* > ButtonList; - + typedef std::list ButtonList; + // ---------------------------------------------------------------------------------- /*! @typedef std::map< std::string, ButtonList > ButtonGroupMap; * @brief Defines the ButtonGroupMap type. */ - typedef std::map< std::string, ButtonList > ButtonGroupMap; + typedef std::map ButtonGroupMap; // ---------------------------------------------------------------------------------- /*! @typedef std::vector< BCPSettingsStruct* > BCStructVectorType; * @brief Defines the BCStructVectorType type. */ - typedef std::vector< BCPSettingsStruct* > BCStructVectorType; - //end typedef definition + typedef std::vector BCStructVectorType; + //MLER // ---------------------------------------------------------------------------------- - /*! @class ButtonContainerSettings buttonContainerSettings.h "buttonContainerSettings.h" - * @brief This class contains the settings of the button container. + /*! @typedef std::pair ListAction; + * @brief Defines the ListAction type. + * First is the button name(item list), Second FunctionEventType */ + typedef std::pair ListAction; + // ---------------------------------------------------------------------------------- + /*! @typedef std::vector ItemsVector; + * @brief Defines the Items Vector type. + */ + typedef std::vector ItemsVector; + //MLER + //end typedef definition + // ---------------------------------------------------------------------------------- - typedef std::map< std::string, wxPanel* > ItemsMap; - - public: + public: // ---------------------------------------------------------------------------------- /*! @fn ButtonContainerSettings( ); * @brief This is the default constructor. */ - ButtonContainerSettings( ); + ButtonContainerSettings(); // ---------------------------------------------------------------------------------- /*! @fn virtual ~ButtonContainerSettings( ); * @brief This is the destructor. */ virtual - ~ButtonContainerSettings( ); - + ~ButtonContainerSettings(); + // ---------------------------------------------------------------------------------- /*! @fn ButtonGroupMap GetButtonGroupContainer( ); * @brief This method returns ButtonGroupMap with all buttons. * @return */ ButtonGroupMap - GetButtonGroupContainer( ); + GetButtonGroupContainer(); // ---------------------------------------------------------------------------------- /*! @fn KeyMapList GetGroupNameList( ); * @brief This method returns a KeyMapsList with the name of the groups. * @return */ KeyMapList - GetGroupNameList( ); + GetGroupNameList(); // ---------------------------------------------------------------------------------- /*! @fn PanelButton GetPanelButton( const std::string &buttonName ); * @brief This method returns the panel of a button. @@ -163,7 +170,7 @@ namespace creaPanelButtonContainer * @return */ PanelButton - GetPanelButton( const std::string &buttonName ); + GetPanelButton(const std::string &buttonName); // ---------------------------------------------------------------------------------- /*! @fn ButtonGroupSettings* GetButtonGroupSettings( TFunctor* functor ); * @brief this method return the settings the generic settings for creaButtonContainer. @@ -172,32 +179,22 @@ namespace creaPanelButtonContainer * @return */ ButtonGroupSettings* - GetButtonGroupSettings( TFunctor* functor ); + GetButtonGroupSettings(TFunctor* functor); // ---------------------------------------------------------------------------------- /*! @fn void SetButtonGroupContainer( ButtonGroupMap bGroupContainer ); * @brief This method sets the button group container. * @param bGroupContainer */ - // ---------------------------------------------------------------------------------- - - ButtonGroupSettings* - GetListGroupSettings(); - - // ---------------------------------------------------------------------------------- - - - void - SetButtonGroupContainer( ButtonGroupMap bGroupContainer ); + SetButtonGroupContainer(ButtonGroupMap bGroupContainer); // ---------------------------------------------------------------------------------- /*! @fn void SetGroupNameList( KeyMapList gNameList ); * @brief this method sets the groupName list * @param gNameList */ void - SetGroupNameList( KeyMapList gNameList ); - + SetGroupNameList(KeyMapList gNameList); // ---------------------------------------------------------------------------------- /*! @fn void AddButton( const std::string &groupName, const std::string &buttonName, const std::string &iconpath, const std::string &buttonDescription, @@ -211,10 +208,9 @@ namespace creaPanelButtonContainer * @exception std::bad_alloc */ void - AddButton( const std::string &groupName, const std::string &buttonName, - const wxBitmap &icon, const std::string &buttonDescription, - PanelButton panel ); - + AddButton(const std::string &groupName, const std::string &buttonName, + 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. @@ -222,34 +218,52 @@ namespace creaPanelButtonContainer * @exception std::bad_alloc */ void - AddButton( BCPSettingsStruct* info ); - + AddButton(BCPSettingsStruct* info); // ---------------------------------------------------------------------------------- - /*! @fn void AddButtons( BCStructVectorType infoList ); - * @brief This method adds new buttons into the container. + /*! @fn void InitModel( BCStructVectorType infoList, int type ); + * @brief This method adds new buttons or items into the container (Depends type). * @param infoList The BCStructVectorType + * @param type If 1:Buttons 2:List 3:Configurable List * @exception std::bad_alloc */ void - AddButtons( BCStructVectorType infoList, int type ); - + InitModel(BCStructVectorType infoList, int type); + // ---------------------------------------------------------------------------------- + //MLER + /*! @fn void AddItems( BCPSettingsStruct* info ); + * @brief This method adds a new item into a list. + * @param info The pointer to BCPSettingsStruct. + * @exception std::bad_alloc + */ void AddItems(BCPSettingsStruct* info); - - ItemsMap - GetItemsMap(); - - PanelButton - GetPanelList( const StringType &buttonName ); - - + // ---------------------------------------------------------------------------------- + /*! @fn PanelButton GetPanelList( const std::string &buttonName ); + * @brief This method returns the panel of a list. + * @param buttonName (item element) + * @exception std::bad_alloc + * @return + */ + ItemsVector + GetItemsVector(); + // ---------------------------------------------------------------------------------- + /*! @fn PanelButton GetPanelList( const std::string &buttonName ); + * @brief This method returns the panel of a list. + * @param buttonName (item element) + * @exception std::bad_alloc + * @return + */ + wxPanel* + GetPanelList(const StringType &buttonName); + //MLER // ---------------------------------------------------------------------------------- private: ButtonGroupMap m_ButtonGroupContainer; //! TConcreteFunctor; - // ---------------------------------------------------------------------------------- - PanelButtonContainer::PanelButtonContainer( wxWindow* parent, ButtonContainerSettings* bcSettings, int type ) - : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("creaPanelButtonContainer") ) +//(*EventTable(ButtonContainerPanel) +//*) + END_EVENT_TABLE () +// ---------------------------------------------------------------------------------- + typedef creaButtonContainer::model::TConcreteFunctor TConcreteFunctor; +// ---------------------------------------------------------------------------------- + PanelButtonContainer::PanelButtonContainer(wxWindow* parent, + ButtonContainerSettings* bcSettings, int type) + : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, + wxDEFAULT_FRAME_STYLE, _T("creaPanelButtonContainer")) { - std::cout<< "MLER | creaPanelButtonContainer:: PanelButtonContainer() " << std::endl; - this->m_ButtonContainerSettings = bcSettings; - - //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 - - TConcreteFunctor* lFunctor = new TConcreteFunctor( this, &PanelButtonContainer::GenericListEvent ); - //MLER - //Using AuiManager to Manage the Panels - this->m_AuiManager = new wxAuiManager( this, wxAUI_MGR_DEFAULT ); - + this->m_AuiManager = new wxAuiManager(this, + wxAUI_MGR_DEFAULT | wxFULL_REPAINT_ON_RESIZE); - if(type == 0) + if (type == 0) { - this->m_ButtonPanel = new wxPanel( this ); - std::cout << "tipo 0; new ButtonContainerPanel"<m_ButtonContainerPanel = new ButtonContainerPanel( this, this->m_ButtonContainerSettings->GetButtonGroupSettings( functor ) ); - - this->m_AuiManager->AddPane( this->m_ButtonContainerPanel,wxAuiPaneInfo( ).Name( _T("ButtonContainerPanel") ).Caption(_("ButtonContainerPanel") ). CaptionVisible( true ).CloseButton(false ).Center( ).Resizable( true ) ); - this->m_AuiManager->AddPane(this->m_ButtonPanel, wxAuiPaneInfo( ).Name( _T("ButtonPanel") ).Caption( _("ButtonPanel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) ); + //Class that manages the event!!! + //EED 20/01/2012 + TConcreteFunctor* functor = new TConcreteFunctor(this, + &PanelButtonContainer::GenericButtonEvent); + //end of the event definition + this->m_EventPanel = new wxPanel(this); + this->m_ButtonContainerPanel = new ButtonContainerPanel(this, + this->m_ButtonContainerSettings->GetButtonGroupSettings(functor)); + //Bottom Panel + this->m_AuiManager->AddPane(this->m_EventPanel, + wxAuiPaneInfo().Name(_T("EventPanel")).Caption(_("EventPanel")).CaptionVisible( + true).MinimizeButton().MaximizeButton().CloseButton(false).Center().Resizable( + true)); + //Top Panel + this->m_AuiManager->AddPane(this->m_ButtonContainerPanel, + wxAuiPaneInfo().Name(_T("ButtonContainerPanel")).DefaultPane().Caption( + _("ButtonContainerPanel")).PinButton().CaptionVisible(true).CloseButton( + false).Center().Resizable(true)); } - else if( type == 1) + else if (type == 1) { - this->m_ListPanel = new wxPanel(this); - std::cout << "tipo 1; new LIstWx"<mylist = new ListWx(this, -1,this->m_ButtonContainerSettings->GetItemsMap(), lFunctor); - mylist->FillList(); - this->m_AuiManager->AddPane( this->mylist,wxAuiPaneInfo( ).Name( _T("ListContainerPanel") ).Caption(_("ListContainerPanel") ). CaptionVisible( true ).CloseButton(false ).Center( ).Resizable( true ) ); - this->m_AuiManager->AddPane(this->m_ListPanel, wxAuiPaneInfo( ).Name( _T("ListPanel") ).Caption( _("ListPanel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) ); + //MLER + TConcreteFunctor* lFunctor = new TConcreteFunctor(this, + &PanelButtonContainer::GenericListEvent); + + this->m_EventPanel = new wxPanel(this); + std::cout << "tipo 1; new LIstWx" << std::endl; + + this->m_ListWxPanel = new ListWx(this, -1, + this->m_ButtonContainerSettings->GetItemsVector(), lFunctor); + + //Bottom Panel + this->m_AuiManager->AddPane(this->m_EventPanel, + wxAuiPaneInfo().Name(_T("EventPanel")).Caption(_("EventPanel")).CaptionVisible( + true).MinimizeButton().MaximizeButton().CloseButton(false).Center().Resizable( + true)); + //Top Panel + this->m_AuiManager->AddPane(this->m_ListWxPanel, + wxAuiPaneInfo().Name(_T("ListContainerPanel")).DefaultPane().Caption( + _("ListContainerPanel")).PinButton().CaptionVisible(true).CloseButton( + false).Center().Resizable(true)); } - else if( type == 2) + else if (type == 2) { + TConcreteFunctor* lFunctor = new TConcreteFunctor(this, + &PanelButtonContainer::GenericListEvent); + + this->m_EmptyPanel = new wxPanel(this); + this->m_EventPanel = this->m_EmptyPanel; + + this->m_PanelUp = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, + wxTAB_TRAVERSAL, _T("ListConfigContainerPanel")); + wxGridBagSizer* mainSizer = new wxGridBagSizer(0, 0); + mainSizer->AddGrowableCol(1); + mainSizer->AddGrowableRow(0); + + //======= + //Original List + this->m_ListWxPanel = new ListWx(this->m_PanelUp, -1, + this->m_ButtonContainerSettings->GetItemsVector(), lFunctor); + this->m_ListWxPanel->Show(false); + //Configurable list + this->m_CurrentWxPanel = new ListWx(this->m_PanelUp, -1, lFunctor); + + mainSizer->Add(this->m_ListWxPanel, wxGBPosition(0, 0), wxDefaultSpan, + wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL + | wxALIGN_CENTER_VERTICAL, 5); + mainSizer->Add(this->m_CurrentWxPanel, wxGBPosition(0, 1), wxDefaultSpan, + wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL + | wxALIGN_CENTER_VERTICAL, 5); + + wxBitmap btmSettings(Settings_xpm); //Icon of Button + + this->m_ConfigButton = new wxBitmapButton(this->m_PanelUp, -1, + btmSettings, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW, + wxDefaultValidator, _T("Config")); + + mainSizer->Add(this->m_ConfigButton, wxGBPosition(1, 2), wxDefaultSpan, + wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5); + + //======= + + this->m_PanelUp->SetSizer(mainSizer); + mainSizer->Fit(this->m_PanelUp); + mainSizer->SetSizeHints(this->m_PanelUp); + + //Bottom Panel + this->m_AuiManager->AddPane(this->m_EventPanel, + wxAuiPaneInfo().Name(_T("EventPanel")).Caption(_("EventPanel")).CaptionVisible( + true).MinimizeButton().MaximizeButton().CloseButton(false).Center().Resizable( + true)); + //Top Panel + this->m_AuiManager->AddPane(this->m_PanelUp, + wxAuiPaneInfo().Name(_T("ListContainerPanel")).DefaultPane().Caption( + _("ListContainerPanel")).PinButton().CaptionVisible(true).CloseButton( + false).Center().Resizable(true)); + + this->Connect(wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(PanelButtonContainer::OnConfigButton)); - this->m_ListPanel = new wxPanel(this); - - panelUp = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ListConfigContainerPanel")); - wxBoxSizer* mainSizer = new wxBoxSizer(wxHORIZONTAL); - - //======= - wxBoxSizer* listSizer = new wxBoxSizer(wxVERTICAL); - - this->mylist = new ListWx(panelUp,-1,this->m_ButtonContainerSettings->GetItemsMap(),lFunctor); - this->mylist->Show(false); - ItemsMap empty; - this->myConfiglist = new ListWx(panelUp,-1, empty,lFunctor); - listSizer->Add(this->myConfiglist,0,wxEXPAND); - listSizer->Add(this->mylist,0,wxEXPAND); - mainSizer->Add(listSizer,0,wxEXPAND|wxALL,7); - - //======= - wxBoxSizer* buttonSizer = new wxBoxSizer(wxVERTICAL); - - button = new wxButton(panelUp, -1, _("Configurar"), - wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _("Configurar")); - - buttonSizer->Add(button,0,wxEXPAND); - mainSizer->Add(buttonSizer,0,wxEXPAND|wxALL,14); - //======= - - panelUp->SetSizer(mainSizer); - - this->m_AuiManager->AddPane( panelUp,wxAuiPaneInfo( ).Name( _T("ListConfigContainerPanel") ).Caption(_("ListConfigContainerPanel") ). CaptionVisible( true ).CloseButton(false ).Center( ).Resizable( true ) ); - this->m_AuiManager->AddPane(this->m_ListPanel, wxAuiPaneInfo( ).Name( _T("ListPanel") ).Caption( _("ListPanel") ). CaptionVisible(true ).CloseButton( false ).Bottom( ).Resizable( true ) ); } + else if (type == 3) + { + //MLER + TConcreteFunctor* lFunctor = new TConcreteFunctor(this, + &PanelButtonContainer::GenericListEvent); + + this->m_EventPanel = new wxPanel(this); + std::cout << "MLER Type 3; new ComboBox" << std::endl; + + this->m_ComboBoxPanel = new ComboBox(this, -1, + this->m_ButtonContainerSettings->GetItemsVector(), lFunctor); + + //Bottom Panel + this->m_AuiManager->AddPane(this->m_EventPanel, + wxAuiPaneInfo().Name(_T("EventPanel")).Caption(_("EventPanel")).CaptionVisible( + true).MinimizeButton().MaximizeButton().CloseButton(false).Center().Resizable( + true)); + //Top Panel + this->m_AuiManager->AddPane(this->m_ComboBoxPanel, + wxAuiPaneInfo().Name(_T("ComboBoxContainerPanel")).DefaultPane().Caption( + _("ComboBoxContainerPanel")).PinButton().CaptionVisible(true).CloseButton( + false).Center().Resizable(true)); + } + //End MLER - - //MLER - - this->m_AuiManager->Update( ); - //m_listConfigPanel = new ListConfigPanel(this,1,_("Configuracion"),mylist); - - this->Connect(wxEVT_COMMAND_BUTTON_CLICKED, - wxCommandEventHandler(PanelButtonContainer::ButtonEvent)); - + this->m_AuiManager->Update(); } - // ---------------------------------------------------------------------------------- - PanelButtonContainer::~PanelButtonContainer( ) +// ---------------------------------------------------------------------------------- + PanelButtonContainer::~PanelButtonContainer() { } - // ---------------------------------------------------------------------------------- - void - PanelButtonContainer::UpdatePanel( const std::string &buttonName ) +// ---------------------------------------------------------------------------------- + void PanelButtonContainer::UpdatePanel(const std::string &buttonName) { try { - std::cout<< "MLER | creaPanelButtonContainer:: UpdatePanel() " << std::endl; - //Hiding the last CartoSettingsPanel - this->m_ButtonPanel->Show( false ); + this->m_EventPanel->Show(false); //Finding the CartoSettingsPanel of the ButtonClicket - this->m_ButtonPanel = this->m_ButtonContainerSettings->GetPanelButton(buttonName ); - std::cout<< buttonName << "---testEvento 2 "<m_EventPanel = this->m_ButtonContainerSettings->GetPanelButton( + buttonName); //changing the parent of the panel! - if ( this->m_ButtonPanel->GetParent( ) != this ) + if (this->m_EventPanel->GetParent() != this) { - this->m_ButtonPanel->Reparent( this ); - }//fi - //Panel Management - this->m_AuiManager->GetPane( _T("ButtonPanel") ).window = this->m_ButtonPanel; + this->m_EventPanel->Reparent(this); + } //fi + //Panel Management + this->m_AuiManager->GetPane(_T("EventPanel")).window = this->m_EventPanel; //Updating the manager - this->m_AuiManager->Update( ); - }//yrt - catch ( const std::exception& e ) + this->m_AuiManager->Update(); + } //yrt + catch (const std::exception& e) { std::cerr - << "PanelButtonContainer::UpdatePanel( const std::string &buttonName )" - << "exception: " << e.what( ) << std::endl; + << "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 + exit(1); + } //hctac } - // ---------------------------------------------------------------------------------- - void - PanelButtonContainer::GenericButtonEvent( const std::string &buttonName ) +// ---------------------------------------------------------------------------------- + void PanelButtonContainer::GenericButtonEvent(const std::string &buttonName) { - std::cout<< "MLER | creaPanelButtonContainer:: GenericButtonEvent() " << std::endl; - std::cout<< buttonName << "---testEvento 1 "<UpdatePanel( buttonName ); + this->UpdatePanel(buttonName); } -// ---------------------------------------------------------------------------------- - void - PanelButtonContainer::UpdateListPanel( const std::string &buttonName ) + // ---------------------------------------------------------------------------------- + //MLER + void PanelButtonContainer::GenericListEvent(const std::string &buttonName) { - try{ - - std::cout<< "MLER | creaPanelButtonContainer:: UpdateListPanel() " << std::endl; - std::cout<< buttonName << " --- test 2 "<m_ListPanel->Show( false ); + this->UpdateListPanel(buttonName); + } - this->m_ListPanel = this->m_ButtonContainerSettings->GetPanelList(buttonName ); + // ---------------------------------------------------------------------------------- + void PanelButtonContainer::UpdateListPanel(const std::string &buttonName) + { + try + { + this->m_EventPanel->Show(false); + this->m_EventPanel = this->m_ButtonContainerSettings->GetPanelList( + buttonName); - if ( this->m_ListPanel->GetParent( ) != this ) + if (this->m_EventPanel->GetParent() != this) { - this->m_ListPanel->Reparent( this ); - }//fi - //Panel Management - this->m_AuiManager->GetPane( _T("ListPanel") ).window = this->m_ListPanel; - //Updating the manager - this->m_AuiManager->Update( ); - - }catch( const std::exception& e ) + this->m_EventPanel->Reparent(this); + } //fi + //Panel Management + this->m_AuiManager->GetPane(_T("EventPanel")).window = this->m_EventPanel; + //Updating the manager + this->m_AuiManager->Update(); + + } catch (const std::exception& e) { std::cerr - << "PanelButtonContainer::UpdatePanel( const std::string &buttonName )" - << "exception: " << e.what( ) << std::endl; + << "PanelButtonContainer::UpdatePanel( const std::string &buttonName )" + << "exception: " << e.what() << std::endl; std::cout << "Maybe the panel of the list is NULL" << std::endl; - exit( 1 ); - }//hctac + exit(1); + } //hctac } - void - PanelButtonContainer::GenericListEvent( const std::string &buttonName ) +// ---------------------------------------------------------------------------------- + void PanelButtonContainer::OnConfigButton(wxCommandEvent& event) { - std::cout<< "MLER | creaPanelButtonContainer:: GenericListEvent() " << std::endl; - std::cout<< buttonName << " --- test 3 "<UpdateListPanel( buttonName ); - } - void - PanelButtonContainer::ButtonEvent ( wxCommandEvent& event ) - { + this->m_ListConfigDialog = new ListConfigDialog(this, -1, _("Settings"), + this->m_ListWxPanel, this->m_CurrentWxPanel); - m_listConfigPanel = new ListConfigPanel(this,-1,_("Configuracion"), mylist, myConfiglist); + std::cout << "Button Event" << std::endl; - std::cout<< "BUtton Event"<m_EventPanel->Show(false); - m_listConfigPanel->ShowModal(); - this->myConfiglist->Reparent(panelUp); - this->myConfiglist->Show(true); - this->myConfiglist->SetFunctorEnabled(true); - this->myConfiglist->Update(); - this->m_AuiManager->Update( ); - this->m_ListPanel->Show(false); - } + this->m_ListConfigDialog->ShowModal(); //Show Dialog + this->m_CurrentWxPanel->Reparent(this->m_PanelUp); + this->m_CurrentWxPanel->Show(true); + this->m_CurrentWxPanel->SetFunctorEnabled(true); + this->m_CurrentWxPanel->GetListBox()->Deselect( + this->m_CurrentWxPanel->GetListBox()->GetSelection()); //Deselected item + this->m_CurrentWxPanel->Update(); + this->m_ListWxPanel->Show(false); + this->m_EventPanel->Show(false); + this->m_EventPanel = this->m_EmptyPanel; //Management Empty Panel + this->m_AuiManager->GetPane(_T("EventPanel")).window = this->m_EventPanel; + this->m_AuiManager->Update(); + } + //End MLER +// ---------------------------------------------------------------------------------- }//ecapseman - diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h index 6677627..71ec045 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/creaPanelButtonContainer.h @@ -1,27 +1,27 @@ /*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ + # + # 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 PanelButtonContainer @@ -37,13 +37,17 @@ #include #include #include +#include +#include +#include "listConfigDialog.h" #include "containerSettings.h" #include "buttonContainerPanel.h" #include "buttonContainerSettings.h" #include "functor.h" #include "listWx.h" -#include "listConfigPanel.h" +#include "Settings.xpm" +#include "comboBox.h" /*! @namespace * @brief Contains the creaPanelButtonContainer library included in creaMaracasVisu. @@ -54,7 +58,7 @@ namespace creaPanelButtonContainer * @brief This class contains the PanelButtonContainer. It derives from wxPanel. * @see wxPanel */ - class PanelButtonContainer : public wxPanel + class PanelButtonContainer: public wxPanel { public: //typedef definition. @@ -62,20 +66,29 @@ namespace creaPanelButtonContainer /*! typedef creaPanelButtonContainer::ButtonContainerSettings ButtonContainerSettings; * @brief Defines the ButtonContainerSettings type. */ - typedef creaPanelButtonContainer::ButtonContainerSettings - ButtonContainerSettings; + typedef creaPanelButtonContainer::ButtonContainerSettings ButtonContainerSettings; /*! typedef creaButtonContainer::view::ButtonContainerPanel ButtonContainerPanel; * @brief Defines the ButtonContainerPanel type. */ - typedef creaButtonContainer::view::ButtonContainerPanel - ButtonContainerPanel; + typedef creaButtonContainer::view::ButtonContainerPanel ButtonContainerPanel; + + //MLER + /*! typedef creaButtonContainer::view::ListWx ListWx; + * @brief Defines a ListWx for (Configurable) List Container. + * This class inherits from wxPanel and contains a wxListBox. + */ typedef creaButtonContainer::view::ListWx ListWx; - typedef creaPanelButtonContainer::ListConfigPanel - ListConfigPanel; - typedef std::map ItemsMap; + /*! typedef creaPanelButtonContainer::ListConfigDialog ListConfigDialog; + * @brief Defines a ListConfigPanel to configure. + * This class inherits from wxDialog and contains the wxListBox and wxButton. + */ + typedef creaButtonContainer::view::ListConfigDialog ListConfigDialog; + + typedef creaButtonContainer::view::ComboBox ComboBox; // ---------------------------------------------------------------------------------- - //end of typedef definition. + //End MLER + //end of typedef definition. public: // ---------------------------------------------------------------------------------- /*! @fn PanelButtonContainer( wxWindow* parent, ButtonContainerSettings* bcSettings ); @@ -83,65 +96,82 @@ namespace creaPanelButtonContainer * @param parent The wxWindow pointer to parent * @param bcSettings //The buttonContainerSettings */ - PanelButtonContainer( wxWindow* parent, - ButtonContainerSettings* bcSettings, int type ); + PanelButtonContainer(wxWindow* parent, + ButtonContainerSettings* bcSettings, int type); // ---------------------------------------------------------------------------------- /*! @fn virtual PanelButtonContainer( ); * @brief This is the destructor. */ virtual - ~PanelButtonContainer( ); + ~PanelButtonContainer(); // ---------------------------------------------------------------------------------- /*! @fn void UpdatePanel( const std::string &buttonName ); - * @brief This method Updates the m_ButtonPanel to a panel + * @brief This method Updates the m_EventPanel to a panel * of the clicked button in creaButtonContainer. * @param buttonName */ void - UpdatePanel( const std::string &buttonName ); + UpdatePanel(const std::string &buttonName); // ---------------------------------------------------------------------------------- /*! @fn void GenericButtonEvent( const std::string &buttonName ); - * @brief This method is the function that calls the panels contained in the buttons + * @brief This method is the function that calls the panels contained in the buttons. * (in creaButtonContainer is the function contained in the functors to be called back. * @param buttonName The name of the button */ void - GenericButtonEvent( const std::string &buttonName ); - + GenericButtonEvent(const std::string &buttonName); // ---------------------------------------------------------------------------------- - void - UpdateListPanel( const std::string &buttonName ); - - void - GenericListEvent( const std::string &buttonName ); - //MLER - + /*! @fn void GenericListEvent( const std::string &buttonName ); + * @brief This method is the function that calls the panels contained in the items list. + * (in creaButtonContainer is the function contained in the functors to be called back. + * @param buttonName The name of the button (item list) + */ void - ButtonEvent ( wxCommandEvent& event ); - + GenericListEvent(const std::string &buttonName); + // ---------------------------------------------------------------------------------- + /*! @fn void UpdateListPanel( const std::string &buttonName ); + * @brief This method Updates the m_EventPanel to a panel + * of the clicked an item in creaButtonContainer. + * @param buttonName The name of the button (item list) + */ void - ListEvent( wxCommandEvent& event ); - + UpdateListPanel(const std::string &buttonName); + // ---------------------------------------------------------------------------------- + /*! @fn void OnConfigButton( wxCommandEvent& event ); + * @brief This method calls the wxDialog when + * the config button is clicked. + * @param event + */ + void + OnConfigButton(wxCommandEvent& event); + //End MLER // ---------------------------------------------------------------------------------- private: //Settings ButtonContainerSettings* m_ButtonContainerSettings; //!Reparent(this); - m_listWx->Show(true); - m_listWx->SetFunctorEnabled(false); - m_listWx->FillList(); - - m_finalListWx = currentList; - m_finalListWx->Reparent(this); - m_finalListWx->SetFunctorEnabled(false); - m_finalListWx->Show(true); - m_finalListWx->FillList(); - - wxFlexGridSizer* sizer = new wxFlexGridSizer(2,1,0,0); - //sizer->Add( new wxStaticText(this,-1, _("Lista Configurable"))); - this->SetSizer(sizer); - - - wxBoxSizer* sizerUp = new wxBoxSizer(wxHORIZONTAL); - - //wxPanel* panel1 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, - // _T("Panel 1")); - - //wxBoxSizer* sizerList1 = new wxBoxSizer(wxVERTICAL); - - //panel1->Add(m_listWx,0,wxEXPAND); - //listBox = new wxListBox(panel1,-1,wxDefaultPosition,wxDefaultSize, 0, 0, 0, - // wxDefaultValidator, _("ListBox")); - - //sizerList1->Add(panel1,0,wxEXPAND); - - //panel1->SetSizer(sizerList1); - //sizerList1->Fit(panel1); - //sizerList1->SetSizeHints(panel1); - - sizerUp->Add(m_listWx, 0, wxEXPAND); - //======== - - wxPanel* panel2 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 2")); - wxBoxSizer* sizerList2 = new wxBoxSizer(wxVERTICAL); - - buttonAdd = new wxButton(panel2, 1, _(">"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("Add")); - sizerList2->Add(buttonAdd, 0, wxEXPAND); - - buttonDel = new wxButton(panel2, 2, _("<"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("Delete")); - sizerList2->Add(buttonDel, 0, wxEXPAND); - - panel2->SetSizer(sizerList2); - sizerList2->Fit(panel2); - sizerList2->SetSizeHints(panel2); - - sizerUp->Add(panel2, 0, wxEXPAND); - - //======== - - //wxPanel* panel3 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 3")); - //wxBoxSizer* sizerList3 = new wxBoxSizer(wxHORIZONTAL); - - //finalListBox = new wxListBox(panel3, -1, wxDefaultPosition, wxDefaultSize, 0, 0, 0, - // wxDefaultValidator, _T("finalListBox")); - //sizerList3->Add(m_finalListWx, 0, wxEXPAND); - - //panel3->SetSizer(sizerList3); - //sizerList3->Fit(panel3); - //sizerList3->SetSizeHints(panel3); - - sizerUp->Add(m_finalListWx, 0, wxEXPAND); - //sizer->Add(sizerUp, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - - //FillList(); - - //======= - wxPanel* panel5 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 5")); - wxBoxSizer* sizerList4 = new wxBoxSizer(wxVERTICAL); - - upButton = new wxButton(panel5, 3, _("/\\"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("upButton")); - sizerList4->Add(upButton, 0, wxEXPAND); - - downButton = new wxButton(panel5, 4, _("V"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("downButton")); - sizerList4->Add(downButton, 0, wxEXPAND); - - panel5->SetSizer(sizerList4); - sizerList4->Fit(panel5); - sizerList4->SetSizeHints(panel5); - sizerUp->Add(panel5, 0, wxEXPAND); - - //======== - wxBoxSizer* sizerBotones = new wxBoxSizer(wxHORIZONTAL); - wxPanel* panel4 = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("Panel 4")); - - okButton = new wxButton(panel4, 5, _("Ok"), wxPoint(0,8), wxDefaultSize, 0, wxDefaultValidator, _T("Ok")); - cancelButton = new wxButton(panel4, 6, _("Cancel"), wxPoint(88,8), wxDefaultSize, 0, wxDefaultValidator, _T("Cancel")); - - sizerBotones->Add(panel4, 0, wxEXPAND); - - sizer->Add(sizerUp,0,wxEXPAND); - sizer->Add(sizerBotones, 1, wxALL|wxALIGN_CENTER_HORIZONTAL); - - - // SetSizer(sizer); - //SetSizer(sizer); - //Layout(); - - //--------------------------------------------------------------------------------------------- - // Manejo de Eventos - - //Evento Cancel - Connect(6,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnQuit); - - //EventoSeleccionarLista - //Connect(wxEVT_COMMAND_LISTBOX_SELECTED,wxCommandEventHandler(ListConfigPanel::ListItemEvent)); - - //EventoAdd - Connect(1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnAdd); - - //EventoOk - Connect(5,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OkEvent); - - //EventoDelete - Connect(2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&ListConfigPanel::OnDelete); - - } - - ListConfigPanel::~ListConfigPanel() - { - - } - - ListConfigPanel::ItemsMap - ListConfigPanel::GetFinalItemsMap() - { - return m_finalItems; - } - - void - ListConfigPanel::SetFinalItems(ItemsMap finalItems) - { - m_finalItems = finalItems; - } - - void - ListConfigPanel::FillList(int i) - { - /*if(i == 0) - { - m_itemsMap = m_listWx->GetItemsMap(); - - for (ItemsMap::iterator it=this->m_itemsMap.begin(); it!=this->m_itemsMap.end(); ++it) - { - std::string key = it->first; - listBox->Append( wxString(key.c_str(), wxConvUTF8)); - } - } - if(i == 1) - { - std::cout << "ListConfigPanel::FillList items : "<< m_finalItems.size()<Clear(); - - if(!m_finalItems.empty()) - { - for (ItemsMap::iterator it=this->m_finalItems.begin(); it!=this->m_finalItems.end(); ++it) - { - std::string key = it->first; - int v = finalListBox->FindString(wxString(key.c_str(), wxConvUTF8)); - - if(v == -1) - finalListBox->Append( wxString(key.c_str(), wxConvUTF8)); - } - } - - - }*/ - } - - void - ListConfigPanel::OnQuit(wxCommandEvent& event) - { - std::cout<<"Onquit"<GetSelection(); - - wxString itemNom = listBox->GetString(iSelection); - std::string itemNomC = std::string(itemNom.mb_str());*/ - - } - - - void - ListConfigPanel::OnAdd(wxCommandEvent& event) - { - std::cout<<"MLER |ListConfigPanel::OnAdd"<GetListBox()->GetStringSelection(); - std::string item = std::string(itSel.mb_str()); - - - if(!itSel.empty()) - { - wxPanel* mPanel = m_listWx->GetItemsMap()[item]; - m_finalListWx->AddItemToMap(item, mPanel); - m_finalListWx->FillList(); - } - - //wxMessageBox( _("Seleccione un elemento"), wxOK | wxICON_INFORMATION ); - - std::cout << "FinalItemsAdd" << m_finalItems.size() << std::endl; - } - - void - ListConfigPanel::OnDelete(wxCommandEvent& event) - { - std::cout<<"MLER |ListConfigPanel::OnDelete"<GetListBox()->GetStringSelection(); - std::string item = std::string(itSel.mb_str()); - if(!itSel.empty()) - { - m_finalListWx->DeleteItemFromMap(item); - m_finalListWx->FillList(); - } - - std::cout << "FinalItems Delete" << m_finalItems.size() << std::endl; - } - - void - ListConfigPanel::OkEvent(wxCommandEvent& event) - { - std::cout<<"MLER |ListConfigPanel::OkEvent"<EndModal(1); - } - - void - ListConfigPanel::UpEvent(wxCommandEvent& event) - { - std::cout<<"Up Event"<m_finalListWx; - } - -} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/listConfigPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/listConfigPanel.h deleted file mode 100644 index 5e03947..0000000 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/creaPanelButtonContainer/listConfigPanel.h +++ /dev/null @@ -1,130 +0,0 @@ -/*# --------------------------------------------------------------------- -# -# 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. -# ------------------------------------------------------------------------ */ - -#ifndef LISTCONFIGPANEL_H -#define LISTCONFIGPANEL_H - -#include -#include -#include - - -#include -#include -#include - -#include "functor.h" -#include "listConfig.h" -#include "listWx.h" - - -namespace creaPanelButtonContainer -{ - /*namespace controller - { - //class ButtonContainerController; - }*/ - - - class ListConfigPanel : public wxDialog - { - public: - - typedef std::map ItemsMap; - typedef creaButtonContainer::model::TFunctor TFunctor; - typedef creaButtonContainer::model::ListConfig ListConfig; - typedef creaButtonContainer::view::ListWx ListWx; - //typedef std::vector NomItem; - - - ListConfigPanel(wxWindow* parent, wxWindowID id,const wxString& title, ListWx* modelList, ListWx* currentList); - - ~ListConfigPanel(); - - ItemsMap - GetFinalItemsMap(); - - void - SetFinalItems(ItemsMap finalItems); - - void - FillList(int i); - - void - OnQuit(wxCommandEvent& event); - - void - ListItemEvent(wxCommandEvent& event); - - void - OnAdd(wxCommandEvent& event); - - void - OnDelete(wxCommandEvent& event); - - void - OkEvent(wxCommandEvent& event); - - void - UpEvent(wxCommandEvent& event); - - void - DownEvent(wxCommandEvent& event); - - void - RefreshViewEvent(wxCommandEvent& event); - - ListWx* - GetFinalListWx(); - - - //public: - //friend class creaButtonContainer::controller::ButtonContainerController; - - private: - ItemsMap m_itemsMap; - //TFunctor* functor; - ItemsMap m_finalItems; - //NomItem m_itemsVector; - - wxButton* buttonAdd; - wxButton* buttonDel; - - wxButton* okButton; - wxButton* cancelButton; - - wxButton* upButton; - wxButton* downButton; - - ListWx* m_listWx; - ListWx* m_finalListWx; - ListConfig* m_listConfig; - - }; - - -} - -#endif // LISTCONFIGPANEL_H