00001 /*========================================================================= 00002 00003 Program: wxMaracas 00004 Module: $RCSfile: wxMaracas_ManualContour_Panel.cxx,v $ 00005 Language: C++ 00006 Date: $Date: 2009/05/14 13:54:54 $ 00007 Version: $Revision: 1.1 $ 00008 00009 Copyright: (c) 2002, 2003 00010 License: 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notice for more information. 00015 00016 =========================================================================*/ 00017 00018 00019 #include <wx/splitter.h> 00020 #include "widgets/pPlotter/mBarRange.h" 00021 #include "wxMaracas_ManualContour_Panel.h" 00022 00023 00024 BEGIN_EVENT_TABLE( wxMaracas_ManualContour_Panel, wxPanel ) 00025 EVT_MENU( 12121, wxMaracas_ManualContour_Panel::OnRefreshView ) 00026 END_EVENT_TABLE( ); 00027 00028 00029 wxMaracas_ManualContour_Panel::wxMaracas_ManualContour_Panel( wxWindow* parent ) 00030 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL) 00031 { 00032 // Create the main frame window 00033 00034 wxWindow *wxwindow = CreateViewerPanel(this); 00035 wxBoxSizer* szTop = new wxBoxSizer( wxVERTICAL ); 00036 szTop->Add( wxwindow, 1 , wxEXPAND | wxALL , 0 ); 00037 szTop->Fit( this ); 00038 szTop->SetSizeHints( this ); 00039 this->SetAutoLayout( true ); 00040 this->SetSizer( szTop ); 00041 this->Layout(); 00042 } 00043 //---------------------------------------------------------------------------- 00044 wxMaracas_ManualContour_Panel::~wxMaracas_ManualContour_Panel( ) 00045 { 00046 // Nothing 00047 } 00048 //---------------------------------------------------------------------------- 00049 void wxMaracas_ManualContour_Panel::ConfigureVTK( marImageData *marimagedata ) 00050 { 00051 vtkMPRBaseData *vtkmprbasedata = new vtkMPRBaseData(); 00052 vtkmprbasedata->SetMarImageData(marimagedata); 00053 vtkmprbasedata->SetX(5); 00054 vtkmprbasedata->SetY(5); 00055 vtkmprbasedata->SetZ(5); 00056 // _vtkplane2Dview->SetVtkBaseData( vtkmprbasedata ); 00057 // _vtkplane2Dview->Configure(); 00058 } 00059 00060 //---------------------------------------------------------------------------- 00061 void wxMaracas_ManualContour_Panel::OnRefreshView( wxCommandEvent & event) 00062 { 00063 _vtkplane2Dview->Refresh(); 00064 _vtkplane2Dview->RefreshView(); 00065 } 00066 00067 //---------------------------------------------------------------------------- 00068 00069 void wxMaracas_ManualContour_Panel::OnActualChange(wxCommandEvent& event) 00070 { 00071 // wxMessageDialog(this, _T("EED: OnActualChange")).ShowModal(); 00072 } 00073 00074 00075 //---------------------------------------------------------------------------- 00076 wxWindow* wxMaracas_ManualContour_Panel::CreateViewerPanel(wxWindow* parent) 00077 { 00078 wxPanel *panel = new wxPanel(parent,-1); 00079 /* 00080 // Panel Up Bar 00081 wxPanel *panelUpBar = new wxPanel(panel,-1); 00082 00083 int Tmin=0,Tmax=34; 00084 mBarRange *time_barrange = new mBarRange(panelUpBar,400,10); 00085 time_barrange -> setVisibleLabels(true); 00086 time_barrange -> setRepresentedValues (Tmin,Tmax); 00087 time_barrange -> setDeviceBlitStart (0,0); 00088 time_barrange -> SetActual((Tmin+Tmax)/2); 00089 time_barrange -> setActiveStateTo(true); 00090 time_barrange -> SetInRangeProperty(false); 00091 Connect(time_barrange->GetId(),wxEVT_TSBAR_ACTUAL , (wxObjectEventFunction) &wxMaracas_ManualContour_Panel::OnActualChange,NULL,this); 00092 00093 wxBoxSizer *sizerUpBar= new wxBoxSizer(wxHORIZONTAL); 00094 wxPanel *tmpPanel = new wxPanel(panel,-1, wxDefaultPosition , wxSize(50,50) ); 00095 sizerUpBar->Add( tmpPanel); 00096 sizerUpBar->Add( time_barrange , 1, wxEXPAND, 10 ); 00097 sizerUpBar->SetSizeHints( panelUpBar ); // set size hints to honour minimum size 00098 panelUpBar->SetSizer(sizerUpBar); 00099 panelUpBar->SetAutoLayout(true); 00100 panelUpBar->Layout(); 00101 00102 00103 // Down 00104 // Panel Down Bar 00105 wxPanel *panelDownBar = new wxPanel(panel,-1); 00106 00107 //z bar 00108 int Zmin = 0 , Zmax = 34; 00109 mBarRange *z_barrange = new mBarRange(panelDownBar,50,400); 00110 z_barrange -> SetBackgroundColour( wxColour(100,100,0) ); 00111 z_barrange -> SetOrientation(false); 00112 z_barrange -> setVisibleLabels(true); 00113 z_barrange -> setRepresentedValues (Zmin,Zmax); 00114 // z_barrange -> SetActual((min+max)/2); 00115 z_barrange -> setDeviceBlitStart (0,0); 00116 z_barrange -> setActiveStateTo(true); 00117 z_barrange -> SetInRangeProperty(false); 00118 Connect(z_barrange->GetId(),wxEVT_TSBAR_ACTUAL , (wxObjectEventFunction) &wxMaracas_ManualContour_Panel::OnActualChange,NULL,this); 00119 00120 00121 wxFlexGridSizer *sizerDownBar = new wxFlexGridSizer(5); 00122 sizerDownBar->AddGrowableCol(2); 00123 sizerDownBar->AddGrowableRow(0); 00124 00125 //tmp slider 00126 wxSlider *tmpSlider = new wxSlider(panelDownBar,-1,0,0,100,wxDefaultPosition,wxSize(50,50),wxSL_VERTICAL); 00127 sizerDownBar->Add( tmpSlider , 1 , wxEXPAND|wxALIGN_BOTTOM , 10 ); 00128 00129 sizerDownBar->Add( z_barrange , 1 , wxEXPAND| wxALIGN_BOTTOM, 10 ); 00130 00131 sizerDownBar->Add( CreateSplitePanel(panelDownBar) , 1 , wxGROW , 10 ); 00132 sizerDownBar->SetSizeHints( panelDownBar ); // set size hints to honour minimum size 00133 panelDownBar->SetSizer(sizerDownBar); 00134 panelDownBar->SetAutoLayout(true); 00135 panelDownBar->Layout(); 00136 00137 wxBoxSizer *sizer= new wxBoxSizer(wxVERTICAL); 00138 sizer->Add( panelUpBar , 0 , wxEXPAND , 10); 00139 sizer->Add( panelDownBar , 1 , wxEXPAND, 10 ); 00140 00141 sizer->SetSizeHints( panel ); // set size hints to honour minimum size 00142 panel->SetSizer(sizer); 00143 panel->SetAutoLayout(true); 00144 panel->Layout(); 00145 */ 00146 return panel; 00147 } 00148 00149 //---------------------------------------------------------------------------- 00150 wxWindow* wxMaracas_ManualContour_Panel::CreateSplitePanel(wxWindow *parent) 00151 { 00152 // Spliter 00153 wxSplitterWindow *splitter = new wxSplitterWindow(parent,-1); 00154 00155 // Plane Widget 00156 _vtkplane2Dview = new vtkPlane2DView( splitter ); 00157 _vtkplane2Dview->SetImgSize( 350 ); 00158 wxWindow *pA = _vtkplane2Dview->GetWxVTKRenderWindowInteractor (); 00159 00160 wxPanel *pB = new wxPanel(splitter,-1); 00161 pA->SetBackgroundColour( wxColour(255,0,0) ); 00162 pB->SetBackgroundColour( wxColour(0,0,255) ); 00163 splitter->SplitVertically( pA , pB ); 00164 return splitter; 00165 } 00166 00167 //---------------------------------------------------------------------------- 00168 //---------------------------------------------------------------------------- 00169 //---------------------------------------------------------------------------- 00170 00171 00172 00173 00174 00175 // EOF - wxMaracas_ManualContour_Panel.cxx