]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxQuantificationWidget_base.h
5c2add72aa87fc084f405fa866fc42fc9b0ccffe
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxQuantificationWidget_base.h
1 /*=========================================================================
2
3   Program:   wxMaracas
4   Module:    $RCSfile: wxQuantificationWidget_base.h,v $
5   Language:  C++
6   Date:      $Date: 2008/10/31 16:32:43 $
7   Version:   $Revision: 1.1 $
8
9   Copyright: (c) 2002, 2003
10   License:
11   
12      This software is distributed WITHOUT ANY WARRANTY; without even 
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14      PURPOSE.  See the above copyright notice for more information.
15
16 =========================================================================*/
17
18 #ifndef __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
19 #define __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
20
21
22 #include "vtk3DQuantSurfaceWidget.h"
23 #include "vtk2DQuantSliceWidget.h"
24 #include "wxImageViewerWidget.h"
25
26 #include "wxChart.h"
27
28 #include <wx/wx.h>
29 #include <wx/slider.h>
30 #include <wx/panel.h>
31 #include <wx/minifram.h>
32 #include <wx/splitter.h>
33 #include <kernel/marInterface.h>
34
35
36 //------------------------------------------------------------------------
37 //------------------------------------------------------------------------
38
39
40 //------------------------------------------------------------------------
41 //------------------------------------------------------------------------
42 //------------------------------------------------------------------------
43
44
45
46 class wxQuantificationWidget_base : public wxPanel, public InterfaceVtkPanelWidgets
47 {
48 public:
49
50         // Constructor &  Destructor
51         wxQuantificationWidget_base(wxWindow* parent, wxWindowID id,
52                                                const wxPoint& pos, const wxSize& size, long style,
53                                                const wxString& name);
54   
55         virtual ~wxQuantificationWidget_base();
56
57         virtual void SetManualContour_ReplaceContour();
58         virtual void SetManualContour_2DWorld(bool ok);
59     virtual void SetManualContour_AddPoint_2DWorld();
60         virtual void SetAnalysisTypeStenosis(int analysisTypeStenosis);
61         virtual int  GetActualSlice();
62         virtual void SetHealthySlice(int healthySlice=-1);      
63         virtual void GetSliceLimites(int type, int &sliceStart,int &sliceEnd);
64         virtual void Set3DStartRegionSliceActor( int type, int k );
65         virtual void RefreshAxis( );
66         virtual kVolume *GetVolumeAxisExtended(int wz1,int wz2);
67         virtual int  GetMaxActualSlice();
68         virtual void Set3DRegionSliceActor( int type, int k1,int k2 );
69         virtual void DetectHealthySickSlice( bool minSurf , bool maxSurf );
70         virtual void Show3DStartRegionSliceActor(int type );
71         virtual void Set3DEndRegionSliceActor( int type, int k );
72         virtual void Show3DEndRegionSliceActor(int type );
73         virtual void Hide3DStartRegionSliceActor(int type );
74         virtual void Hide3DEndRegionSliceActor(int type );
75         virtual int  GetSizeHealthyRegion();
76         virtual void SetSizeHealthyRegion(int size);
77         virtual int  GetHealthySlice();
78         virtual void OnContourWall();
79         virtual void OnContourLumen();
80         virtual void OnContourHypo();
81         virtual void OnContourCalc();
82         virtual void OnReplaceContourWall();
83         virtual void OnReplaceContourLumen();
84         virtual void OnReplaceContourHypo();
85         virtual void OnReplaceContourCalc();
86         virtual void OnSliderDiscontinuityScroll(int percentage);
87         virtual void OnSliderLumenPercentageScroll(int percentage);
88         virtual void OnSliderCalcPercentageScroll(int percentage);
89         virtual void OnCalibration(); 
90         virtual void OnFile();
91         virtual void OnShowAll(bool value); 
92         virtual void OnShowWall(bool value);
93         virtual void OnShowLumen(bool value);
94         virtual void OnShowCalc(bool value);
95         virtual void OnShowHypo(bool value);
96         
97
98 private:
99
100
101
102 };
103
104 //------------------------------------------------------------------------
105 //------------------------------------------------------------------------
106 class wxPnlSearchStenosisAutomatic: public wxPanel{
107 public:
108         wxPnlSearchStenosisAutomatic(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
109         void OnBtHealthySlice(wxCommandEvent& event);
110         void OnBtEndRegion(wxCommandEvent& event);
111         void OnBtStart(wxCommandEvent& event);
112         void OnBtPlus(wxCommandEvent& event);
113         void OnBeginSlider(wxScrollEvent& event);
114         void OnEndSlider(wxScrollEvent& event);
115         void OnBtMaxSurf(wxCommandEvent& event);
116         void OnRbArea(wxCommandEvent& event);
117         void OnRbDiameter(wxCommandEvent& event);
118         void OnBtAxisMPR(wxCommandEvent& event);
119
120         void SetRange(int min, int max);
121
122 private:
123         wxQuantificationWidget_base                             *_quantificationWidget_base;
124
125 //    wxStaticText      *_st1_blank;
126     wxStaticText        *_st1_text1;
127     wxStaticText        *_st1_next1;
128     wxStaticText        *_st1_next2;
129     wxStaticText        *_st1_next3;
130     wxStaticText        *_st1_cero;
131     wxStaticText        *_st1_one;
132     wxStaticText        *_st1_two;
133     wxStaticText        *_st1_three;
134     wxButton            *_bt1_HealthySlice;
135     wxButton            *_bt1_EndRegion;
136     wxButton            *_bt1_Start;
137
138         // Special Panel
139         wxButton                *_bt_plus;
140         wxPanel                 *_panelSpecial;
141         wxStaticText    *_st_BeginRegion;
142         wxStaticText    *_st_EndRegion;
143         wxSlider                *_sl_BeginRegion;
144         wxSlider                *_sl_EndRegion;
145     wxRadioButton       *_rb_diameter;
146     wxRadioButton       *_rb_surface;
147         wxButton                *_bt_MaxSurface;
148
149 }; 
150 //------------------------------------------------------------------------
151 //------------------------------------------------------------------------
152 class wxPnlSearchStenosisManual : public wxPanel{
153 public:
154         wxPnlSearchStenosisManual(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
155         void OnBtHealthySlice(wxCommandEvent& event);
156
157 private:
158         wxQuantificationWidget_base                             *_quantificationWidget_base;
159 //    wxStaticText      *_st2_blank;
160     wxStaticText        *_st2_text1;
161     wxStaticText        *_st2_text2;
162     wxStaticText        *_st2_next1;
163     wxStaticText        *_st2_next2;
164     wxStaticText        *_st2_cero;
165     wxStaticText        *_st2_one;
166     wxStaticText        *_st2_two;
167     wxButton            *_bt2_HealthySlice;
168 }; 
169 //------------------------------------------------------------------------
170 //------------------------------------------------------------------------
171 class wxPnlSearchStenosis : public wxPanel{
172 public:
173         wxPnlSearchStenosis(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
174         void OnRbAutomatic(wxCommandEvent& event);
175         void OnRbManual(wxCommandEvent& event);
176         wxPnlSearchStenosisAutomatic* GetPanelAutomatic();
177
178 private:
179         wxQuantificationWidget_base     *_quantificationWidget_base;
180         // Automatic Stenosis Quantification Panel
181         wxPnlSearchStenosisAutomatic    *_panelAutomatic;
182         // Manual Stenosis Quantification Panel
183         wxPanel                                                 *_panelManual;
184 }; 
185 //------------------------------------------------------------------------
186 //------------------------------------------------------------------------
187
188 class wxPanelSizeHealthyRegion : public wxPanel {
189 public :
190         wxPanelSizeHealthyRegion(wxWindow* parent, wxQuantificationWidget_base *quantificationWidget_base);
191 private:
192         wxQuantificationWidget_base     *_quantificationWidget_base;
193         wxSlider                                        *_sl_Size;
194
195         void OnButtonRefresh(wxScrollEvent& event);
196 };
197 //------------------------------------------------------------------------
198 //------------------------------------------------------------------------
199 class wxPnlModifyContour : public wxPanel{
200 public:
201         wxPnlModifyContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
202         void OnNewContour(wxCommandEvent& event);
203         void OnFixContour(wxCommandEvent& event);
204
205         
206 private:
207     wxQuantificationWidget_base                         *_quantificationWidget_base;
208         wxButton                *_newContour;
209         wxButton                *_editContour;
210         wxButton                *_fixContour;
211         wxButton                *_cancelContour;
212         wxRadioButton   *_insert;
213         wxRadioButton   *_erase;
214         wxRadioButton   *_move;
215
216         wxStaticText    *_one;
217         wxStaticText    *_two;
218         wxStaticText    *_three;
219         wxStaticText    *_msg;
220
221 }; 
222
223
224 //------------------------------------------------------------------------
225 //------------------------------------------------------------------------
226 //------------------------------------------------------------------------
227 class wxPanelControlsHealthySickSlice2 : public wxPanel{
228 public:
229         wxPanelControlsHealthySickSlice2(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
230         wxPnlSearchStenosis *GetPnlSearStenosis();
231 private: 
232         wxPnlSearchStenosis                     *wxpnlsearchstenosis;
233 };  
234
235 //------------------------------------------------------------------------
236 //------------------------------------------------------------------------
237 //------------------------------------------------------------------------
238 class wxPnlContourControl : public wxPanel{
239 public:
240
241
242         wxPnlContourControl(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
243         void OnSliderDiscontinuityScroll(wxScrollEvent& event);
244         void OnSliderLumenPercentageScroll(wxScrollEvent& event);
245         void OnSliderCalcPercentageScroll(wxScrollEvent& event);
246         void OnCalibration(wxScrollEvent& event);
247         void OnFile(wxScrollEvent& event);
248
249 private:
250         wxQuantificationWidget_base     *_quantificationWidget_base;
251         wxSlider                                        *_sl_Discontinuity;
252         wxSlider                                        *_sl_LumenPercentage;
253         wxSlider                                        *_sl_CalcPercentage;
254         wxButton                                        *btnCalibration;
255         wxButton                                        *btnFile;
256
257         wxStaticText                            *_st_Discontinuity;
258         wxStaticText                            *_st_LumenPercentage;
259         wxStaticText                            *_st_CalcPercentage;
260 };
261
262 //------------------------------------------------------------------------
263 //------------------------------------------------------------------------
264 //------------------------------------------------------------------------
265 class wxPanelControlsHealthySickSliceCT : public wxPanel{
266 public:
267         wxPanelControlsHealthySickSliceCT(wxWindow* parent , wxQuantificationWidget_base *quantificationWidget_base);
268 private: 
269 };
270
271
272 //------------------------------------------------------------------------
273 //------------------------------------------------------------------------
274 //------------------------------------------------------------------------
275 class wxPnlManualContour : public wxPanel{
276 public:
277         wxPnlManualContour(wxWindow* parent,wxQuantificationWidget_base *quantificationWidget_base);
278         void OnContourWall(wxCommandEvent& event);
279         void OnContourLumen(wxCommandEvent& event);
280         void OnContourHypo(wxCommandEvent& event);
281         void OnContourCalc(wxCommandEvent& event);
282         void OnReplaceContourWall(wxCommandEvent& event);
283         void OnReplaceContourLumen(wxCommandEvent& event);
284         void OnReplaceContourHypo(wxCommandEvent& event);
285         void OnReplaceContourCalc(wxCommandEvent& event);
286         void OnShowAll(wxCommandEvent& event);
287         void OnShowWall(wxCommandEvent& event);
288         void OnShowLumen(wxCommandEvent& event);
289         void OnShowCalc(wxCommandEvent& event);
290         void OnShowHypo(wxCommandEvent& event);
291
292 private:
293         wxQuantificationWidget_base     *_quantificationWidget_base;
294         wxButton                                        *btnContourWall;
295         wxButton                                        *btnContourLumen;
296         wxButton                                        *btnContourCalc;
297         wxButton                                        *btnContourHypo;
298         wxButton                                        *btnContourAB;
299         wxButton                                        *fixContourWall;
300         wxButton                                        *fixContourLumen;
301         wxButton                                        *fixContourCalc;
302         wxButton                                        *fixContourHypo;
303         wxCheckBox                                      *cbShowAllManual; 
304         wxCheckBox                                      *cbShowWall;
305         wxCheckBox                                      *cbShowLumen;
306         wxCheckBox                                      *cbShowCalc;
307         wxCheckBox                                      *cbShowHypo;
308         
309 };
310
311 #endif // __WX__MARACAS__QUANTIF__WDG__BASE__HXX__
312