]> Creatis software - bbtk.git/blob - packages/kw/src/vtkKWSlicer.h
4f537a1220965b27bb439c80de3b1215db284fa8
[bbtk.git] / packages / kw / src / vtkKWSlicer.h
1 #ifdef USE_KWWIDGETS
2
3 #ifndef __vtkKWSlicer_h
4 #define __vtkKWSlicer_h
5
6
7 #include "vtkKWCompositeWidget.h"
8
9 class vtkImageData;
10 class vtkKWRenderWidget;
11 class vtkImageViewer2;
12 class vtkKWScale;
13 class vtkKWWindowLevelPresetSelector;
14 class vtkKWSimpleAnimationWidget;
15 class vtkKWMenu;
16 class vtkKWSplitFrame;
17 class vtkKWCornerAnnotationEditor;
18 //namespace bbkw {
19
20 class vtkKWSlicer : public vtkKWCompositeWidget
21 {
22 public:
23   static vtkKWSlicer* New();
24   vtkTypeRevisionMacro(vtkKWSlicer,vtkKWCompositeWidget);
25
26   void SetImage(vtkImageData*);
27   void UpdateImage();
28
29   // Description:
30   // Callbacks
31   virtual void SetSliceFromScaleCallback(double value);
32   virtual void SetSliceCallback(int slice);
33   virtual int  GetSliceCallback();
34   virtual int  GetSliceMinCallback();
35   virtual int  GetSliceMaxCallback();
36   virtual void SetSliceOrientationToXYCallback();
37   virtual void SetSliceOrientationToXZCallback();
38   virtual void SetSliceOrientationToYZCallback();
39   virtual void WindowLevelPresetApplyCallback(int id);
40   virtual int  WindowLevelPresetAddCallback();
41   virtual void WindowLevelPresetUpdateCallback(int id);
42   virtual void WindowLevelPresetHasChangedCallback(int id);
43
44   void ProcessCallbackCommandEvents(vtkObject *caller, 
45                                     unsigned long event, 
46                                     void *calldata);
47 protected:
48   vtkKWSlicer();
49   ~vtkKWSlicer();
50
51   // Description:
52   // Create the widget.
53   virtual void CreateWidget();
54   vtkKWSplitFrame                     *Frame;
55   vtkImageData                   *Image;
56   vtkImageViewer2                *ImageViewer; 
57   vtkKWScale                     *SliceScale;
58   vtkKWWindowLevelPresetSelector *WindowLevelPresetSelector;
59   vtkKWRenderWidget              *RenderWidget;
60   vtkKWSimpleAnimationWidget     *AnimationWidget;
61   vtkKWMenu                      *OrientationMenu;
62   vtkKWCornerAnnotationEditor    *AnnotationEditor;
63
64   virtual void UpdateSliceRanges();
65
66 private:
67   vtkKWSlicer(const vtkKWSlicer&);   // Not implemented.
68   void operator=(const vtkKWSlicer&);  // Not implemented.
69 };
70
71 //}
72 #endif
73 #endif