1 /*=========================================================================
4 Module: $RCSfile: wxMaracasRendererView.cxx,v $
7 =========================================================================*/
9 #include "wxMaracasRendererView.h"
11 #include <wx/colordlg.h>
12 #include <wx/bmpbuttn.h>
14 #include <OpenImage.xpm>
17 wxMaracasRendererView* wxMaracasRendererView::instance=NULL;
22 wxMaracasRendererView::wxMaracasRendererView(wxWindow* parent,std::string path)
23 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
25 wxauimanager = new wxAuiManager(this);
29 wxtabs = new wxMaracasRenderTabbedPanel(this);
31 std::string iconsdir = path;
32 iconsdir+="/data/Icons";
33 this->_toolb = new ToolBarRenderer(this,iconsdir);
34 wxStaticText* txt = new wxStaticText(this, -1, wxString(_T(" Open File ")));
35 wxAuiPaneInfo paneinfo;
36 wxauimanager->AddPane(txt,paneinfo.ToolbarPane().Top());
37 wxauimanager->AddPane(_toolb,paneinfo.ToolbarPane().Top());
39 wxauimanager->Update();
45 wxMaracasRendererView::~wxMaracasRendererView( )
53 std::string wxMaracasRendererView::getPath()
61 wxMaracasRendererView* wxMaracasRendererView::getInstance(wxWindow* parent,std::string path)
65 instance = new wxMaracasRendererView(parent,path);
73 wxMaracasRendererView* wxMaracasRendererView::getInstance()
81 void wxMaracasRendererView::setRenderer(vtkRenderer* renderer)
83 wxtabs->setRenderer(renderer);
87 ** Adds or removes a volume rendering actor
89 void wxMaracasRendererView::addRemoveActorVol(int id, bool addremove)
91 wxtabs->addRemoveActorV(id, addremove);
95 ** Adds or removes a surface rendering actor
97 void wxMaracasRendererView::addRemoveSurf1Actor(int id, bool addremove)
99 wxtabs->addRemoveActorSA(id, addremove);
103 ** Adds or removes a surface rendering actor
105 void wxMaracasRendererView::addRemoveSurf2Actor(int id, bool addremove)
107 wxtabs->addRemoveActorSB(id, addremove);
111 ** Adds or removes a surface rendering actor
113 void wxMaracasRendererView::addRemoveSurf3Actor(int id, bool addremove)
115 wxtabs->addRemoveActorSC(id, addremove);
119 ** Called when an image file is opened
121 void wxMaracasRendererView::onLoadImageFile()
123 wxString mhd(_T("mhd"));
125 wxFileDialog* fildial = new wxFileDialog(this, wxString(_T("Select a MHD file")),wxString(_T("")),
126 wxString(_T("")),wxString(_T("MHD files (*.mhd)|*.mhd")) );
128 if(fildial->ShowModal()==wxID_OK)
130 wxString filename = fildial->GetFilename();
131 wxString pathfile(fildial->GetDirectory() + _T("/") + filename);
132 if(filename.EndsWith(mhd))
134 addPanels(pathfile, filename);
141 ** Constructs and adds internal panel
143 void wxMaracasRendererView::addPanels(wxString pathfile, wxString filename)
145 wxString s(filename.c_str(),wxConvUTF8);
147 wxtabs->createControls(pathfile, filename);
148 wxAuiPaneInfo paneinfo;
149 wxauimanager->AddPane(wxtabs, paneinfo.DefaultPane().Centre().DestroyOnClose().Caption(s));
150 wxauimanager->Update();
154 ** Returns internal panel
156 wxMaracasRenderTabbedPanel* wxMaracasRendererView::getTabbedPanel()
162 ** Deletes current volume
164 void wxMaracasRendererView::deleteVolume(int volid)
166 wxtabs->deleteVolume(volid);
172 ToolBarRenderer::ToolBarRenderer(wxWindow * parent,std::string iconsdir)
173 : wxToolBar(parent, -1, wxDefaultPosition, wxDefaultSize)
175 std::string iconfil = iconsdir;
177 //iconfil+= "/OpenImage.png";
178 //wxBitmap* bitmap0 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
179 wxBitmap bitmap0(OpenImage_xpm);
180 this->AddTool(1, wxString(_T("test")),bitmap0, NULL, wxITEM_NORMAL, wxString(_T("Open File")));
182 /*iconfil+= "/Open.png";
183 wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
184 this->AddTool(2, wxString(_T("test")),*bitmap2); */
186 /*iconfil = iconsdir;
187 iconfil+= "/Open.png";
188 wxBitmap* bitmap30 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
189 this->AddTool(30, wxString(_T("test")),*bitmap30);*/
193 _evthand = new ToolBarEventHandlerRenderer();
194 this->SetEventHandler(_evthand);
198 ToolBarRenderer::~ToolBarRenderer(void){
201 ToolBarEventHandlerRenderer::ToolBarEventHandlerRenderer()
204 ToolBarEventHandlerRenderer::~ToolBarEventHandlerRenderer(){
207 void ToolBarEventHandlerRenderer::onLoadImageFile(wxCommandEvent& event){
208 wxMaracasRendererView::getInstance()->onLoadImageFile();
212 BEGIN_EVENT_TABLE(ToolBarEventHandlerRenderer, wxEvtHandler)
213 EVT_MENU(1, ToolBarEventHandlerRenderer::onLoadImageFile)