X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxMaracasIRMView.cxx;h=dba00aaf5bfb70c7cf363ce522d6bdf5cf553d52;hb=ee118ae73c6f194eb37fa239289388a65a5c154b;hp=3355f76d85462b697083efc78e3102736f81d9c6;hpb=21c2226cf3dcad1daf3fb04818583b559694fa81;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx index 3355f76..dba00aa 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx @@ -3,8 +3,8 @@ Program: wxMaracas Module: $RCSfile: wxMaracasIRMView.cxx,v $ Language: C++ - Date: $Date: 2009/04/09 13:58:38 $ - Version: $Revision: 1.2 $ + Date: $Date: 2009/05/29 13:39:56 $ + Version: $Revision: 1.9 $ Copyright: (c) 2002, 2003 License: @@ -20,10 +20,16 @@ // EOF - wxMaracasMPR.cxx #include "wxMaracasIRMView.h" +//#include "wxMaracasIRMViewPanel.h" +#include "wxMaracasIRMViewProp3DMHD.h" +#include "wxMaracasIRMViewProp3D.h" #include #include +#include +#include + wxMaracasIRMView* wxMaracasIRMView::instance=NULL; wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent,std::string path) @@ -36,7 +42,7 @@ wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent,std::string path) _path = path; std::string iconsdir = path; - iconsdir+="/Data/Icons"; + iconsdir+="/data/Icons"; wxToolBar* toolbar = new ToolBar(this,iconsdir); wxAuiPaneInfo paneinfo; wxauimanager->AddPane(toolbar,paneinfo.ToolbarPane().Top()); @@ -84,7 +90,7 @@ void wxMaracasIRMView::changeOpacity(int _propid, int value){ irmmanager->changeOpacity(_propid,value); } -void wxMaracasIRMView::changeIsoValue(int propid, int value){ +void wxMaracasIRMView::changeIsoValue(int propid, double value){ irmmanager->changeIsoValue(propid, value); } @@ -94,9 +100,10 @@ void wxMaracasIRMView::changeColor(int propid, double red, double green, double }catch(char* str){ - std::cout << "Exception : " << str << '\n'; - wxMessageDialog* diag = new wxMessageDialog(this, wxString(str), wxString(str), wxICON_ERROR); + wxString s( str,wxConvUTF8 ); + wxMessageDialog* diag = new wxMessageDialog(this, s, s, wxICON_ERROR); diag->ShowModal(); + delete diag; } } @@ -107,7 +114,7 @@ void wxMaracasIRMView::onLoadImageFile(){ wxString stl(_T("stl")); wxFileDialog* fildial = new wxFileDialog(this, wxString(_T("Select a STL file")),wxString(_T("")), - wxString(_T("")),"STL files (*.stl)|*.stl|MHD files (*.mhd)|*.mhd" ); + wxString(_T("")),wxString(_T("STL files (*.stl)|*.stl|MHD files (*.mhd)|*.mhd")) ); if(fildial->ShowModal()==wxID_OK){ wxString filename = fildial->GetFilename(); @@ -125,10 +132,11 @@ void wxMaracasIRMView::onLoadImageFile(){ } void wxMaracasIRMView::loadPropMHD(wxString filename, wxString dataname){ - - vtkImageData* img = irmmanager->getImageData(filename.c_str()); + std::string s = std::string(filename.mb_str()); + vtkImageData* img = irmmanager->getImageData(s); if(img!=NULL){ - addPropMHD(img, dataname.c_str()); + s = std::string(dataname.mb_str()); + addPropMHD(img, s); } @@ -149,17 +157,18 @@ void wxMaracasIRMView::addPropMHD(vtkImageData* imgdata, std::string dataname){ }catch(char* str){ std::cout << "Exception : " << str << '\n'; - wxMessageDialog* diag = new wxMessageDialog(this, wxString(str), wxString(str), wxICON_ERROR); + wxMessageDialog* diag = new wxMessageDialog(this, wxString( str,wxConvUTF8 ), wxString( str,wxConvUTF8 ), wxICON_ERROR); diag->ShowModal(); } } void wxMaracasIRMView::loadProp3D(wxString filename, wxString dataname){ - - vtkProp3D* prop3D = irmmanager->getProp3D(filename.c_str()); + std::string s = std::string(filename.mb_str()); + vtkProp3D* prop3D = irmmanager->getProp3D(s); if(prop3D != NULL){ - this->addProp3D(prop3D,dataname.c_str()); + s = std::string(dataname.mb_str() ); + this->addProp3D(prop3D,s); }else{ //TODO msj to the user indicating error in file } @@ -177,128 +186,33 @@ void wxMaracasIRMView::addProp3D(vtkProp3D* prop3D, std::string dataname){ } }catch(char* str){ std::cout << "Exception : " << str << '\n'; - wxMessageDialog* diag = new wxMessageDialog(this, wxString(str), wxString(str), wxICON_ERROR); + wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR); diag->ShowModal(); } } void wxMaracasIRMView::addIRMViewPanel(wxMaracasIRMViewPanel* irmview, std::string dataname){ - wxString s(dataname.c_str()); + wxString s(dataname.c_str(),wxConvUTF8 ); wxAuiPaneInfo paneinfo; wxauimanager->AddPane(irmview, paneinfo.DefaultPane().Centre().DestroyOnClose().Caption(s)); wxauimanager->Update(); - -} - -/** -** Implementation of viewProp3D -**/ - -wxMaracasIRMViewProp3D::wxMaracasIRMViewProp3D(wxWindow* parent,int propid) -:wxMaracasIRMViewPanel(parent, propid){ - createControls(); -} - -wxMaracasIRMViewProp3D::~wxMaracasIRMViewProp3D(){ - wxMaracasIRMView::getInstance()->addRemoveActor(_propid, false); -} - -void wxMaracasIRMViewProp3D::createControls(){ - - wxString choices[2]; - choices[0] = "On"; - choices[1] = "Off"; - checkbox = new wxCheckBox(this,-1,wxString(_T("Show Actor"))); - this->addControl(checkbox); - Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onCheckBoxChange); - checkbox->SetValue(true); - - wxBoxSizer* sizercolor = new wxBoxSizer(wxVERTICAL); - std::string iconfile = wxMaracasIRMView::getInstance()->getPath(); - iconfile+= "/Data/Icons/Color.png"; - wxBitmap* bitmap = new wxBitmap(wxString(iconfile.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); - _colorchoose = new wxBitmapButton(this, -1, *bitmap); - sizercolor->Add(_colorchoose,wxFIXED_MINSIZE); - Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onColorChange); - - this->addControl(sizercolor); - - wxBoxSizer* sizeropacity = new wxBoxSizer(wxVERTICAL); - wxStaticText* label = new wxStaticText(this, -1, wxString(_T("Opacity"))); - sizeropacity->Add(label,wxFIXED_MINSIZE); - opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS); - sizeropacity->Add(opacity,wxFIXED_MINSIZE); - Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onOpacityRelease); - - this->addControl(sizeropacity); - - - /*isovalue = new wxSlider(this, -1,0,0,100); - this->addControl(isovalue); - Connect(isovalue->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onIsoValueRelease); */ -} -void wxMaracasIRMViewProp3D::onCheckBoxChange(wxCommandEvent& event){ - wxMaracasIRMView::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue()); } -void wxMaracasIRMViewProp3D::onColorChange(wxCommandEvent& event){ - wxColourDialog* colourdiag = new wxColourDialog(this); - if(colourdiag->ShowModal()==wxID_OK){ - wxColour colour = colourdiag->GetColourData().GetColour(); - _colorchoose->SetBackgroundColour(colour); - - float r = colour.Red()/255; - float g = colour.Green()/255; - float b = colour.Blue()/255; + +void wxMaracasIRMView::deleteActor(int propid){ + try{ + irmmanager->deleteActor(propid); + }catch(char* e){ - wxMaracasIRMView::getInstance()->changeColor(this->getPropId(),r,g,b); } - delete colourdiag; -} -/*void wxMaracasIRMViewProp3D::onActionButtonPressedEliminate( wxCommandEvent& event ){ - -}*/ - -void wxMaracasIRMViewProp3D::onOpacityRelease(wxScrollEvent& event ){ - - wxMaracasIRMView::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue()); - -} - - -/** -** IRM viewProp3DMHD implementation -**/ -wxMaracasIRMViewProp3DMHD::wxMaracasIRMViewProp3DMHD(wxWindow* parent, int propid) -: wxMaracasIRMViewProp3D(parent, propid) -{ - -} -wxMaracasIRMViewProp3DMHD::~wxMaracasIRMViewProp3DMHD(){ - } -void wxMaracasIRMViewProp3DMHD::createControls(int maxisovalue){ - wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); - wxStaticText* label = new wxStaticText(this, -1, wxString(_T("IsoValue"))); - sizer->Add(label, wxGROW); - //this->addControl(label); - isovalue = new wxSlider(this, -1,maxisovalue,0,maxisovalue,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS); - sizer->Add(isovalue, wxGROW); - //this->addControl(isovalue); - this->addControl(sizer); - Connect(isovalue->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3DMHD::onIsoValueRelease); -} -void wxMaracasIRMViewProp3DMHD::onIsoValueRelease(wxScrollEvent& event ){ - wxMaracasIRMView::getInstance()->changeIsoValue(this->getPropId(), isovalue->GetValue()); - -} /** ** **/ @@ -310,9 +224,10 @@ ToolBar::ToolBar(wxWindow * parent,std::string iconsdir) std::string iconfil = iconsdir; - iconfil+= "/OpenImage.png"; - wxBitmap* bitmap0 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); - this->AddTool(0, wxString(_T("test")),*bitmap0); + //iconfil+= "/OpenImage.png"; + //wxBitmap* bitmap0 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); + wxBitmap bitmap0(OpenImage_xpm); + this->AddTool(0, wxString(_T("test")),bitmap0); /*iconfil+= "/Open.png"; wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); @@ -340,3 +255,5 @@ BEGIN_EVENT_TABLE(ToolBar, wxToolBar) EVT_MENU(0, ToolBar::onLoadImageFile) END_EVENT_TABLE() + +