X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_Icons_NDimensions%2FinterfMainPanel.cxx;h=83da40fc269afdd5f346003d8d53ba907185ceaf;hb=2ca0ae039a31c7aec93da7aadc5fa5e983e08045;hp=6bbd832e4b0305712b2bcb9d495e2f411a6bdc0a;hpb=6383d69864c69a97539b59d3e39406c79408577b;p=creaContours.git diff --git a/lib/Interface_Icons_NDimensions/interfMainPanel.cxx b/lib/Interface_Icons_NDimensions/interfMainPanel.cxx index 6bbd832..83da40f 100644 --- a/lib/Interface_Icons_NDimensions/interfMainPanel.cxx +++ b/lib/Interface_Icons_NDimensions/interfMainPanel.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# 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 "interfMainPanel.h" @@ -7,15 +32,14 @@ wxFrame* interfMainPanel::_newframe=NULL; interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtHandler * evtHandler, std::string datadir) : wxPanel(parent, -1, wxDefaultPosition, wxSize(sizex, sizey), wxBORDER_SUNKEN) { - PANEL = "New Contour"; PANEL1 = "I/O"; PANEL2 = "Edit"; PANEL3 = "Delete"; - PANEL4 = "Contour Tools"; + PANEL4 = "Contour Tools"; PANEL5 = "Segmentation"; //EED 07/07/2010 - PANEL6 = "Image Tools"; + PANEL6 = "Image Tools"; segmentPanel = NULL; segmentPanelITK = NULL; @@ -30,6 +54,7 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH colorImageLayerPanel = NULL; currentWindow = NULL; testPanel = NULL; + flipPanel = NULL; //CMRU 17-08-09 ------------------------------------------------------------------ infoPanelCalibration = NULL; @@ -42,7 +67,12 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH wxPanel* toolpanel = new wxPanel(splitterwindow, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_DOUBLE, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(6,2,1,1); +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(6,2,1,1); +#else + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(6); +#endif toolpanel->SetSizer(flexsizer, true); toolpanel->SetAutoLayout( true ); @@ -62,7 +92,6 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH wxButton* b6 = getButton(toolpanel); b6->SetClientData(&PANEL6); - wxPanel* mentex = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); wxPanel* mentex1 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); wxPanel* mentex2 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); @@ -71,35 +100,35 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH wxPanel* mentex5 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); //EED 07/07/2010 wxPanel* mentex6 = new wxPanel(toolpanel, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T(""))); - - menubar = new interfNewContourMenu (mentex, sizex, sizey, evtHandler, datadir); - menubar1 = new interfIOMenu (mentex1, sizex, sizey, evtHandler, datadir); - menubar2 = new interfEditMenu (mentex2, sizex, sizey, evtHandler, datadir); - menubar3 = new interfDeleteMenu (mentex3, sizex, sizey, evtHandler, datadir); + + menubar = new interfNewContourMenu (mentex, sizex, sizey, evtHandler, datadir); + menubar1 = new interfIOMenu (mentex1, sizex, sizey, evtHandler, datadir); + menubar2 = new interfEditMenu (mentex2, sizex, sizey, evtHandler, datadir); + menubar3 = new interfDeleteMenu (mentex3, sizex, sizey, evtHandler, datadir); menubar4 = new interfToolsMenu (mentex4, sizex ,sizey, evtHandler, datadir); menubar5 = new interfSegmentationMenu(mentex5, sizex, sizey, evtHandler, datadir); menubar6 = new interfImageToolsMenu(mentex6, sizex, sizey, evtHandler, datadir); - - statictext = getText(mentex, PANEL); - statictext1 = getText(mentex1, PANEL1); - statictext2 = getText(mentex2, PANEL2); - statictext3 = getText(mentex3, PANEL3); - statictext4 = getText(mentex4, PANEL4); - statictext5 = getText(mentex5, PANEL5); - statictext6 = getText(mentex6, PANEL6); - + + statictext = getText(mentex, PANEL); + statictext1 = getText(mentex1, PANEL1); + statictext2 = getText(mentex2, PANEL2); + statictext3 = getText(mentex3, PANEL3); + statictext4 = getText(mentex4, PANEL4); + statictext5 = getText(mentex5, PANEL5); + statictext6 = getText(mentex6, PANEL6); + flexsizer->Add(b, wxFIXED_MINSIZE); flexsizer->Add(setMenuTextSizer(mentex, menubar,statictext), wxFIXED_MINSIZE); flexsizer->Add(b1, wxFIXED_MINSIZE); flexsizer->Add(setMenuTextSizer(mentex1, menubar1,statictext1), wxFIXED_MINSIZE); - + flexsizer->Add(b2, wxFIXED_MINSIZE); flexsizer->Add(setMenuTextSizer(mentex2, menubar2,statictext2), wxFIXED_MINSIZE); - + flexsizer->Add(b3, wxFIXED_MINSIZE); flexsizer->Add(setMenuTextSizer(mentex3, menubar3,statictext3), wxFIXED_MINSIZE); - + flexsizer->Add(b4, wxFIXED_MINSIZE); flexsizer->Add(setMenuTextSizer(mentex4, menubar4,statictext4), wxFIXED_MINSIZE); @@ -112,15 +141,15 @@ interfMainPanel::interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtH toolpanel->Layout(); infoPanel = new wxPanel(splitterwindow, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_DOUBLE, wxString(_T(""))); - wxFlexGridSizer* infosizer = new wxFlexGridSizer(1,1,2,2); + wxFlexGridSizer* infosizer = new wxFlexGridSizer(1,1,2,2); infoPanel->SetSizer(infosizer, true); - infoPanel->SetAutoLayout( true ); + infoPanel->SetAutoLayout( true ); splitterwindow->Initialize(toolpanel); splitterwindow->SetSashGravity(1); - splitterwindow->SetSashPosition(500); +//EED splitterwindow->SetSashPosition(600); splitterwindow->SetSashSize(5); - splitterwindow->SplitHorizontally(toolpanel, infoPanel); + splitterwindow->SplitHorizontally(toolpanel, infoPanel,8*73); Connect(b->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); Connect(b1->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&interfMainPanel::onActionButtonPressed1); @@ -141,7 +170,7 @@ interfMainPanel::~interfMainPanel(void) interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, std::string datadir, wxEvtHandler * evtHandler) { _newframe = new wxFrame(parent, -1, wxT(" Contour Tools "), wxPoint(25,50), wxSize(350,900),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT); - + if(interfmainpanel == NULL){ interfmainpanel = new interfMainPanel(_newframe, 350, 900, evtHandler, datadir); } @@ -150,7 +179,7 @@ interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, std::string data } interfMainPanel* interfMainPanel::getInstance(wxWindow* parent, wxEvtHandler * evtHandler) -{ +{ _newframe = new wxFrame(parent, -1, wxT(" Contour Tools "), wxPoint(25,50), wxSize(350,900),wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT ); @@ -167,7 +196,7 @@ bool interfMainPanel::Show(bool show) } interfMainPanel* interfMainPanel::getInstance() -{ +{ return interfmainpanel; } @@ -200,7 +229,7 @@ wxPanel* interfMainPanel::initializeToolsPanel(wxWindow* parent, int sizex, int /** ** Adds a new checkbox to the scrolledwindow using the checkboxsizer ** @Params id of contour -** +** **/ void interfMainPanel::addContourCheckBox(std::string id) { @@ -210,7 +239,7 @@ void interfMainPanel::addContourCheckBox(std::string id) /** ** Removes a checkbox from the list of checkboxes in the flexsizer (checkboxsizer) ** @Params id of contour -** +** **/ void interfMainPanel::removeContourCheckBox(std::string id) { @@ -230,7 +259,7 @@ void interfMainPanel::onActionButtonPressed1( wxCommandEvent& event ) dmenu = menubar; text = statictext; }else if(dstring.compare(PANEL1)==0 ){ - dmenu = menubar1; + dmenu = menubar1; text = statictext1; }else if(dstring.compare(PANEL2)==0){ dmenu = menubar2; @@ -254,35 +283,35 @@ void interfMainPanel::onActionButtonPressed1( wxCommandEvent& event ) sizechange = 1; b->SetLabel(_T("-")); }else{ - dmenu->Show(false); + dmenu->Show(false); sizechange = -1; b->SetLabel(_T("+")); - } - - sizechange *= dmenu->GetSize().GetHeight(); + } + + sizechange *= (dmenu->GetSize().GetHeight()-10); splitterwindow->SetSashPosition(splitterwindow->GetSashPosition()+sizechange); - + this->Layout(); this->Refresh(); } wxStaticText* interfMainPanel::getText(wxWindow* parent, std::string nom) { - return new wxStaticText(parent, -1, wxString(nom.c_str(),wxConvUTF8), wxDefaultPosition, + return new wxStaticText(parent, -1, wxString(nom.c_str(),wxConvUTF8), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, wxString(nom.c_str(),wxConvUTF8)); } wxButton* interfMainPanel::getButton(wxWindow* parent) { - wxButton* b = new wxButton(parent, -1, wxString(_T("-")), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, - wxDefaultValidator, wxString(_T("-"))); + wxButton* b = new wxButton(parent, -1, wxString(_T("-")), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, + wxDefaultValidator, wxString(_T("-"))); return b; } wxPanel* interfMainPanel::setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxStaticText* text) { - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(2,1,2,2); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(2,1,2,2); parent->SetSizer(flexsizer, true); parent->SetAutoLayout( true ); @@ -294,7 +323,7 @@ wxPanel* interfMainPanel::setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxS } /** -** Shows the panel in the +** Shows the panel in the **/ void interfMainPanel::showPanel(wxWindow* panel) { @@ -303,8 +332,15 @@ void interfMainPanel::showPanel(wxWindow* panel) if(currentWindow != NULL){ currentWindow->Hide(); + /// \TODO fix warning: virtual bool wxSizer::Remove(wxWindow*) is deprecated +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 sizer->Remove(currentWindow); - } +#else + sizer->Detach(currentWindow); +#endif + + } sizer->Add(panel); currentWindow = panel; currentWindow->Show(true); @@ -328,7 +364,14 @@ void interfMainPanel::hidePanel( ) if(currentWindow != NULL){ currentWindow->Hide(); + /// \TODO fix warning: virtual bool wxSizer::Remove(wxWindow*) is deprecated +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 sizer->Remove(currentWindow); +#else + sizer->Detach(currentWindow); +#endif + } wxPanel * emptyPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); sizer->Add(emptyPanel); @@ -445,30 +488,31 @@ void interfMainPanel::onSave() wxContourMainFrame::getInstance()->onSave(); } -void interfMainPanel::onImport(){ +void interfMainPanel::onImport() +{ wxContourMainFrame::getInstance()->onImport(); } -void interfMainPanel::onTest(){ +void interfMainPanel::onTest() +{ + printf("EED interfMainPanel::onTest \n"); if(testPanel==NULL) { - testPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, + testPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); testPanel->SetSizer(flexsizer, true); - testPanel->SetAutoLayout( true ); + testPanel->SetAutoLayout( true ); panelTest = new interfTestPanel(testPanel); - - wxStaticText* stattext = new wxStaticText(mirrorPanel, -1, - wxString(_T(" Test Panel ")), - wxDefaultPosition, wxDefaultSize, + wxStaticText* stattext = new wxStaticText(testPanel, -1, + wxString(_T(" Test Panel ")), + wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); - flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); flexsizer->Add(panelTest, wxEXPAND); testPanel->Layout(); - showPanel(testPanel); - } + } + showPanel(testPanel); } void interfMainPanel::RefreshInterface() @@ -508,21 +552,21 @@ void interfMainPanel::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int } void interfMainPanel::setLabelSegmentationPanelVTK(wxString tmpString) -{ +{ ((interfSegmentationPanelVTK*)segmentationPanel)->setLabel(tmpString); } void interfMainPanel::onSegmentationPressed() { if(segmentPanel == NULL){ segmentPanel = new wxPanel(getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); segmentPanel->SetSizer(flexsizer, true); - segmentPanel->SetAutoLayout(true); + segmentPanel->SetAutoLayout(true); segmentPanel->SetEventHandler(this); - + //wxPanel* panel = contourevent->getSegmentationPanel(segmentPanel); segmentationPanel = new interfSegmentationPanelVTK(segmentPanel); - + wxStaticText* stattext = new wxStaticText(segmentPanel, -1, wxString(_T(" Automatic Segmentation ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); @@ -540,16 +584,16 @@ void interfMainPanel::onSegmentationPressedITK() { if(segmentPanelITK == NULL){ segmentPanelITK = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); - - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); segmentPanelITK->SetSizer(flexsizer, true); - segmentPanelITK->SetAutoLayout( true ); + segmentPanelITK->SetAutoLayout( true ); //segmentPanelITK->SetEventHandler(this->contourevent); - + //wxPanel* panel = contourevent->getSegmentationPanelITK(segmentPanelITK); wxPanel* panel = new interfSegmentationPanelITK(segmentPanelITK); - + wxStaticText* stattext = new wxStaticText(segmentPanelITK, -1, wxString(_T(" Automatic ITK Segmentation ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); @@ -568,7 +612,7 @@ void interfMainPanel::onRigidPressed() } void interfMainPanel::onWidthOfContour(double width) -{ +{ wxContourMainFrame::getInstance()->onWidthOfContour(width); } @@ -595,9 +639,9 @@ void interfMainPanel::onConfigurationPressed() { if(configPanel == NULL){ configPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); configPanel->SetSizer(flexsizer, true); - configPanel->SetAutoLayout( true ); + configPanel->SetAutoLayout( true ); //configPanel->SetEventHandler(this->contourevent); wxPanel* panel = new interfConfigurationPanel(configPanel); wxStaticText* stattext = new wxStaticText(configPanel, -1, wxString(_T(" Interface Configuration ")), wxDefaultPosition, @@ -614,14 +658,14 @@ void interfMainPanel::onSpreadPressed() if(spreadPanel==NULL){ spreadPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); spreadPanel->SetSizer(flexsizer, true); - spreadPanel->SetAutoLayout( true ); + spreadPanel->SetAutoLayout( true ); //spreadPanel->SetEventHandler(this->contourevent); - + //wxPanel* panel = contourevent->getSpreadPanel(spreadPanel); panelSpread = new interfSpreadPanel(spreadPanel); - + wxStaticText* stattext = new wxStaticText(spreadPanel, -1, wxString(_T(" Automatic Spread ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); @@ -629,7 +673,7 @@ void interfMainPanel::onSpreadPressed() flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); flexsizer->Add(panelSpread, wxEXPAND); spreadPanel->Layout(); - } + } showPanel(spreadPanel); //hideAxis(); } @@ -644,6 +688,12 @@ void interfMainPanel::onSpreadAdd() wxContourMainFrame::getInstance()->onSpreadAdd(); } +void interfMainPanel::onSpreadAddAll() +{ + wxContourMainFrame::getInstance()->onSpreadAddAll(); +} + + void interfMainPanel::appendStringSpread(std::string val) { panelSpread->appendStringSpread(val); @@ -661,12 +711,12 @@ void interfMainPanel::setStringSpread(std::string stringtemp) void interfMainPanel::onInformationPressed() { - + // Statistics frame if(infoWin ==NULL){ infoWin = new wxFrame (this, -1,_T(" Statistics "), wxDefaultPosition, wxDefaultSize, wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT | wxRESIZE_BORDER ); infoWin->SetSize( wxSize(825,650) ); - + wxSize sizepanel(825,675); informationPanel = new interfInformationPanel(infoWin);//contourevent->getInformationPanel(infoWin); @@ -687,57 +737,57 @@ void interfMainPanel::onInformationPressed() infoWin->Show(true); } } - -//CMRU 29-08-09----------------------------------------------------------------------------------------------- + +//CMRU 29-08-09----------------------------------------------------------------------------------------------- if(panelAux == NULL) { panelAux = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); - } + } //------------------------------------------------------------------------------------------------------------ // mask view control panel if(infoPanelMask == NULL){ infoPanelMask = new wxPanel(panelAux, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); infoPanelMask->SetSizer(flexsizer, true); - infoPanelMask->SetAutoLayout( true ); + infoPanelMask->SetAutoLayout( true ); //configPanel->SetEventHandler(this->contourevent); - wxPanel *panel = wxContourMainFrame::getInstance()->getMaskImageViewPanel( infoPanelMask ); + wxPanel *panel = wxContourMainFrame::getInstance()->getMaskImageViewPanel( infoPanelMask ); wxStaticText* stattext = new wxStaticText(infoPanelMask, -1, wxString(_T(" Mask segmentation ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); - + flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); - + flexsizer->Add(panel, wxEXPAND); infoPanelMask->Layout(); - + } - + //CMRU 29-08-09----------------------------------------------------------------------------------------------- //Calibration panel if(infoPanelCalibration == NULL) { infoPanelCalibration = new wxPanel(panelAux, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER , wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); infoPanelCalibration->SetSizer(flexsizer, true); - infoPanelCalibration->SetAutoLayout( true ); + infoPanelCalibration->SetAutoLayout( true ); wxPanel *panel = new interfCalibrationPanel(infoPanelCalibration); wxStaticText* stattext = new wxStaticText(infoPanelCalibration, -1, wxString(_T(" Calibration ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); - + flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); - + flexsizer->Add(panel, wxEXPAND); infoPanelCalibration->Layout(); } wxFlexGridSizer* sizer = new wxFlexGridSizer(1); panelAux->SetSizer(sizer, true); - panelAux->SetAutoLayout( true ); + panelAux->SetAutoLayout( true ); sizer->Add(infoPanelMask); sizer->Add(infoPanelCalibration); - + showPanel(panelAux); //------------------------------------------------------------------ @@ -794,13 +844,13 @@ void interfMainPanel::setColLableInfoPanel(int tmpIntB,wxString tmpTitleString) void interfMainPanel::SetScalarRange(int grayRangeMin,int grayRangeMax) { - wxContourMainFrame::getInstance()->SetScalarRange(grayRangeMin, grayRangeMax); + wxContourMainFrame::getInstance()->SetScalarRange(grayRangeMin, grayRangeMax); } -void interfMainPanel::onSaveResults(std::string directory,std::string namefile, std::string filename, +void interfMainPanel::onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup, int selection, int minZ, int maxZ ,bool XYZValues, bool contourImage, bool statistics) { - wxContourMainFrame::getInstance()->onSaveResults(directory, namefile, filename, + wxContourMainFrame::getInstance()->onSaveResults(directory, namefile, filename, typeContourGroup, selection, minZ,maxZ, XYZValues, contourImage, statistics); } @@ -820,11 +870,11 @@ void interfMainPanel::onMirrorPressed(){ { mirrorPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); mirrorPanel->SetSizer(flexsizer, true); - mirrorPanel->SetAutoLayout( true ); + mirrorPanel->SetAutoLayout( true ); panelMirror = new interfMirrorPanel(mirrorPanel); - + wxStaticText* stattext = new wxStaticText(mirrorPanel, -1, wxString(_T(" Mirroring Tool ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); @@ -834,7 +884,7 @@ void interfMainPanel::onMirrorPressed(){ refLineShown=true; wxContourMainFrame::getInstance()->referenceLine(); - } + } else { @@ -883,11 +933,11 @@ void interfMainPanel::onColorLayerImagePressed() // Color Image Layer view control panel if(colorImageLayerPanel == NULL){ colorImageLayerPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); colorImageLayerPanel->SetSizer(flexsizer, true); - colorImageLayerPanel->SetAutoLayout( true ); + colorImageLayerPanel->SetAutoLayout( true ); //configPanel->SetEventHandler(this->contourevent); - wxPanel *panel = wxContourMainFrame::getInstance()->getColorLayerImageViewPanel( colorImageLayerPanel ); + wxPanel *panel = wxContourMainFrame::getInstance()->getColorLayerImageViewPanel( colorImageLayerPanel ); wxStaticText* stattext = new wxStaticText(colorImageLayerPanel, -1, wxString(_T(" Color Image Layer ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); @@ -900,20 +950,20 @@ void interfMainPanel::onColorLayerImagePressed() //EED01 void interfMainPanel::onThresholdPressed() -{ +{ // Threshold view control panel if(thresholdPanel == NULL){ thresholdPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(_T(""))); - wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); thresholdPanel->SetSizer(flexsizer, true); - thresholdPanel->SetAutoLayout( true ); + thresholdPanel->SetAutoLayout( true ); //configPanel->SetEventHandler(this->contourevent); - wxPanel *panel = wxContourMainFrame::getInstance()->getThresholdImageViewPanel( thresholdPanel ); + wxPanel *panel = wxContourMainFrame::getInstance()->getThresholdImageViewPanel( thresholdPanel ); wxStaticText* stattext = new wxStaticText(thresholdPanel, -1, wxString(_T(" Threshold segmentation ")), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); flexsizer->Add(panel, wxEXPAND); - thresholdPanel->Layout(); + thresholdPanel->Layout(); } showPanel(thresholdPanel); wxContourMainFrame::getInstance()->changeInstant(); @@ -931,8 +981,40 @@ void interfMainPanel::SetContourGroup(int contourGroup) wxContourMainFrame::getInstance()->SetContourGroup( contourGroup); } + +void interfMainPanel::onFlipContours() +{ + printf("EED interfMainPanel::onFlipContours() \n"); + if(flipPanel==NULL) + { + flipPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, + wxDefaultSize, wxBORDER_STATIC, wxString(_T(""))); + wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1); + flipPanel->SetSizer(flexsizer, true); + flipPanel->SetAutoLayout( true ); + panelFlip = new interfFlipPanel(flipPanel); + wxStaticText* stattext = new wxStaticText(flipPanel, -1, + wxString(_T(" Flip Contours ")), + wxDefaultPosition, wxDefaultSize, + wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T(""))); + flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE); + flexsizer->Add(panelFlip, wxEXPAND); + flipPanel->Layout(); + } + showPanel(flipPanel); +} + + +void interfMainPanel::FlipContours(int typeContourFlip, int flipDirection) +{ + printf("EED interfMainPanel::FlipContours( %d , %d ) \n",typeContourFlip, flipDirection ); + wxContourMainFrame::getInstance()->FlipContours( typeContourFlip , flipDirection ); +} + + + //CMRU 17-08-09 --------------------------------------------- -void interfMainPanel::onPrintLabel () +void interfMainPanel::onPrintLabel () { wxString label; manualBaseModel* manualModel = wxContourMainFrame::getInstance()->getContour(); @@ -945,10 +1027,10 @@ void interfMainPanel::onPrintLabel () } wxTextEntryDialog* dialog = new wxTextEntryDialog(this,_T("Enter a tag name: ")) ; - + if (dialog->ShowModal() == wxID_OK) { - label = dialog->GetValue(); + label = dialog->GetValue(); if(label.Len()!=0) { @@ -967,15 +1049,15 @@ void interfMainPanel::onPrintLabel () void interfMainPanel::onCalibration(wxString size, int unit) { int type = 0; - double contourSize = 0.0; + double contourSize = 0.0; double realSizeDouble = 0.0; - type = wxContourMainFrame::getInstance()->getType(); + type = wxContourMainFrame::getInstance()->getType(); contourSize = wxContourMainFrame::getInstance()->getContourSizeInPixels(); - std::cout<<"Cata->Tamaño del contorno en pixeles:"<Tama�o del contorno en pixeles:"<ShowModal(); - } + } } - else + else { wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("Please select a line contour"), wxT("Warning"), wxOK | wxICON_EXCLAMATION); dial->ShowModal(); } - + wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("The calibration was made"), wxT("Information"), wxOK | wxICON_INFORMATION); dial->ShowModal(); std::cout<< "Cata-> Se ha realizado la calibracion" << endl ; } -double interfMainPanel::onePixelSize (double realSize,double sizePixel) +double interfMainPanel::onePixelSize (double realSize,double sizePixel) { _pixelValue = realSize/sizePixel; std::cout<< "Valor del un pixel = " << _pixelValue<< endl ;