Program: wxMaracas
Module: $RCSfile: wxMaracasIRMView.cxx,v $
Language: C++
- Date: $Date: 2009/04/09 13:58:38 $
- Version: $Revision: 1.2 $
+ Date: $Date: 2009/06/16 13:25:58 $
+ Version: $Revision: 1.11 $
Copyright: (c) 2002, 2003
License:
// EOF - wxMaracasMPR.cxx
#include "wxMaracasIRMView.h"
+//#include "wxMaracasIRMViewPanel.h"
+#include "wxMaracasIRMViewProp3DMHD.h"
+#include "wxMaracasIRMViewProp3D.h"
#include <wx/colordlg.h>
#include <wx/bmpbuttn.h>
+#include <OpenImage.xpm>
+#include <Color.xpm>
+
wxMaracasIRMView* wxMaracasIRMView::instance=NULL;
-wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent,std::string path)
-: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
-
- irmmanager = new wxMaracasIRMViewManager();
+wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent,std::string path)
+: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
+
+ irmmanager = new wxMaracasIRMViewManager();
- wxauimanager = new wxAuiManager(this);
+ wxauimanager = new wxAuiManager(this);
_path = path;
std::string iconsdir = path;
- iconsdir+="/Data/Icons";
- wxToolBar* toolbar = new ToolBar(this,iconsdir);
- wxAuiPaneInfo paneinfo;
- wxauimanager->AddPane(toolbar,paneinfo.ToolbarPane().Top());
+ iconsdir+="/data/Icons";
+ this->_toolb = new ToolBar(this,iconsdir);
+ wxAuiPaneInfo paneinfo;
+ wxauimanager->AddPane(_toolb,paneinfo.ToolbarPane().Top());
wxauimanager->Update();
createFileChooser();
}
wxMaracasIRMView::~wxMaracasIRMView( ){
+ delete _toolb;
}
void wxMaracasIRMView::createFileChooser(){
-
+
}
wxMaracasIRMView* wxMaracasIRMView::getInstance(wxWindow* parent,std::string path){
irmmanager->changeOpacity(_propid,value);
}
-void wxMaracasIRMView::changeIsoValue(int propid, int value){
+void wxMaracasIRMView::changeIsoValue(int propid, double value){
irmmanager->changeIsoValue(propid, value);
}
}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;
}
}
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();
- wxString pathfile(fildial->GetDirectory() + _T("/") + filename);
-
+ wxString pathfile(fildial->GetDirectory() + _T("/") + filename);
+
- if(filename.EndsWith(mhd)){
+ if(filename.EndsWith(mhd)){
loadPropMHD(pathfile,filename);
}else if(filename.EndsWith(stl)){
loadProp3D(pathfile,filename);
delete fildial;
}
-void wxMaracasIRMView::loadPropMHD(wxString filename, wxString dataname){
-
-
- vtkImageData* img = irmmanager->getImageData(filename.c_str());
+void wxMaracasIRMView::loadPropMHD(wxString filename, wxString dataname){
+
+ 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);
}
-
-
+
+
}
void wxMaracasIRMView::addPropMHD(vtkImageData* imgdata, std::string dataname){
try{
- int id = irmmanager->addPropMHD(imgdata,dataname);
+ int id = irmmanager->addPropMHD(imgdata,dataname);
if(id!=-1){
-
+
wxMaracasIRMViewPanel* controlpan = new wxMaracasIRMViewProp3DMHD(this, id);
int maxiso = irmmanager->getMaxIsoValue(id);
((wxMaracasIRMViewProp3DMHD*)controlpan)->createControls(maxiso);
}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());
+void wxMaracasIRMView::loadProp3D(wxString filename, wxString dataname){
+ 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
}
-
-
-
+
+
+
}
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);
- diag->ShowModal();
+ 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());
- wxAuiPaneInfo paneinfo;
+ 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 wxMaracasIRMView::deleteActor(int propid){
+ try{
+ irmmanager->deleteActor(propid);
+ }catch(char* e){
-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;
-
- 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());
-
-}
/**
**
**/
ToolBar::ToolBar(wxWindow * parent,std::string iconsdir)
: wxToolBar(parent, -1, wxDefaultPosition, wxDefaultSize)
-{
+{
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(1, wxString(_T("test")),bitmap0);
/*iconfil+= "/Open.png";
wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
- this->AddTool(2, wxString(_T("test")),*bitmap2); */
+ this->AddTool(2, wxString(_T("test")),*bitmap2); */
/*iconfil = iconsdir;
iconfil+= "/Open.png";
wxBitmap* bitmap30 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
this->AddTool(30, wxString(_T("test")),*bitmap30);*/
-
+
this->Realize();
-
-
+
+ _evthand = new ToolBarEventHandler();
+ this->SetEventHandler(_evthand);
+
}
ToolBar::~ToolBar(void){
}
-void ToolBar::onLoadImageFile(wxCommandEvent& event){
+
+ToolBarEventHandler::ToolBarEventHandler()
+: wxEvtHandler(){
+}
+ToolBarEventHandler::~ToolBarEventHandler(){
+}
+
+void ToolBarEventHandler::onLoadImageFile(wxCommandEvent& event){
wxMaracasIRMView::getInstance()->onLoadImageFile();
}
-BEGIN_EVENT_TABLE(ToolBar, wxToolBar)
- EVT_MENU(0, ToolBar::onLoadImageFile)
-
+BEGIN_EVENT_TABLE(ToolBarEventHandler, wxEvtHandler)
+ EVT_MENU(1, ToolBarEventHandler::onLoadImageFile)
END_EVENT_TABLE()
+
+