00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00022 #ifndef __vtkKWView_h
00023 #define __vtkKWView_h
00024
00025 #define VTK_KW_INTERACTIVE_RENDER 0
00026 #define VTK_KW_STILL_RENDER 1
00027 #define VTK_KW_DISABLED_RENDER 2
00028 #define VTK_KW_SINGLE_RENDER 3
00029
00030 #define VTK_KW_VIEW_MENU_INDEX 10
00031
00032 #include "vtkPVTracedWidget.h"
00033 #include "vtkWindows.h"
00034
00035 class vtkKWApplication;
00036 class vtkKWChangeColorButton;
00037 class vtkKWCheckButton;
00038 class vtkKWEntry;
00039 class vtkKWFrame;
00040 class vtkKWFrameWithLabel;
00041 class vtkKWFrameWithScrollbar;
00042 class vtkKWLabel;
00043 class vtkKWMenu;
00044 class vtkKWMenuButton;
00045 class vtkKWNotebook;
00046 class vtkKWSegmentedProgressGauge;
00047 class vtkKWText;
00048 class vtkKWWindow;
00049 class vtkKWWindow;
00050 class vtkPVCornerAnnotationEditor;
00051 class vtkRenderWindow;
00052 class vtkRenderer;
00053 class vtkTextActor;
00054 class vtkTextMapper;
00055 class vtkViewport;
00056 class vtkViewport;
00057 class vtkWindow;
00058
00059 class VTK_EXPORT vtkKWView : public vtkPVTracedWidget
00060 {
00061 public:
00062 static vtkKWView* New();
00063 vtkTypeRevisionMacro(vtkKWView,vtkPVTracedWidget);
00064 void PrintSelf(ostream& os, vtkIndent indent);
00065
00068 virtual void SetupBindings();
00069
00071
00072 vtkSetMacro(InExpose,int);
00073 vtkGetMacro(InExpose,int);
00075
00077
00078 virtual void AButtonPress(int vtkNotUsed(num), int vtkNotUsed(x),
00079 int vtkNotUsed(y)) {}
00080 virtual void AButtonRelease(int vtkNotUsed(num), int vtkNotUsed(x),
00081 int vtkNotUsed(y)) {}
00082 virtual void AShiftButtonPress(int vtkNotUsed(num), int vtkNotUsed(x),
00083 int vtkNotUsed(y)) {}
00084 virtual void AShiftButtonRelease(int vtkNotUsed(num), int vtkNotUsed(x),
00085 int vtkNotUsed(y)) {}
00086 virtual void AControlButtonPress(int vtkNotUsed(num), int vtkNotUsed(x),
00087 int vtkNotUsed(y)) {}
00088 virtual void AControlButtonRelease(int vtkNotUsed(num), int vtkNotUsed(x),
00089 int vtkNotUsed(y)) {}
00090 virtual void AKeyPress(char vtkNotUsed(key), int vtkNotUsed(x),
00091 int vtkNotUsed(y)) {}
00092 virtual void Button1Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00093 virtual void Button2Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00094 virtual void Button3Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00095 virtual void ShiftButton1Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00096 virtual void ShiftButton2Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00097 virtual void ShiftButton3Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00098 virtual void ControlButton1Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00099 virtual void ControlButton2Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00100 virtual void ControlButton3Motion(int vtkNotUsed(x), int vtkNotUsed(y)) {}
00101 virtual void Exposed() {}
00102 virtual void Enter(int x, int y);
00104
00106 virtual void EditCopy();
00107
00109
00110 virtual void SaveAsImage();
00111 virtual void SaveAsImage(const char* filename);
00113
00115
00116 virtual void PrintView();
00117 #ifdef _WIN32
00118 void SetupPrint(RECT &rcDest, HDC ghdc,
00119 int printerPageSizeX, int printerPageSizeY,
00120 int printerDPIX, int printerDPIY,
00121 float scaleX, float scaleY,
00122 int screenSizeX, int screenSizeY);
00124 #endif
00125 int GetPrinting() {return this->Printing;};
00126 vtkSetMacro(Printing,int);
00127
00129
00131 vtkGetObjectMacro(ParentWindow,vtkKWWindow);
00132 void SetParentWindow(vtkKWWindow *);
00134
00135
00137 virtual vtkWindow *GetVTKWindow();
00138
00140
00141 virtual vtkViewport *GetViewport();
00142
00144
00146
00147 virtual void SetupMemoryRendering(int width,int height, void *cd);
00148 virtual void ResumeScreenRendering();
00149 virtual unsigned char *GetMemoryData();
00150 virtual void *GetMemoryDC();
00152
00154
00157 virtual vtkKWFrame *GetPropertiesParent();
00158 void SetPropertiesParent(vtkKWFrame*);
00160
00163 void CreateDefaultPropertiesParent();
00164
00166 virtual void PackProperties();
00167
00169
00170 virtual void Render();
00171 virtual void Reset() {};
00173
00176 vtkKWWidget *GetVTKWidget() {return this->VTKWidget;};
00177
00179
00180 virtual void Select(vtkKWWindow *);
00181 virtual void Deselect(vtkKWWindow *);
00182 virtual void MakeSelected();
00184
00186 virtual void ShowViewProperties();
00187
00189 virtual void UnRegister(vtkObjectBase *o);
00190
00192 virtual void SetTitle(const char *);
00193
00195
00196 vtkGetObjectMacro(Notebook,vtkKWNotebook);
00198
00201 virtual void Close();
00202
00204 virtual void CreateViewProperties();
00205
00207
00208 vtkGetObjectMacro(CornerAnnotation,vtkPVCornerAnnotationEditor);
00210
00211 vtkSetMacro( InteractiveUpdateRate, float );
00212 vtkGetMacro( InteractiveUpdateRate, float );
00213
00214 void SetStillUpdateRates( int count, float *rates );
00215 vtkGetMacro( NumberOfStillUpdates, int );
00216 float *GetStillUpdateRates() { return this->StillUpdateRates; };
00217 float GetStillUpdateRate(int i) { return this->StillUpdateRates[i]; };
00218
00219 vtkSetClampMacro( RenderMode, int,
00220 VTK_KW_INTERACTIVE_RENDER,
00221 VTK_KW_DISABLED_RENDER );
00222 vtkGetMacro( RenderMode, int );
00223 void SetRenderModeToInteractive()
00224 { this->RenderMode = VTK_KW_INTERACTIVE_RENDER; };
00225 void SetRenderModeToStill()
00226 { this->RenderMode = VTK_KW_STILL_RENDER; };
00227 void SetRenderModeToSingle()
00228 { this->RenderMode = VTK_KW_SINGLE_RENDER; };
00229 void SetRenderModeToDisabled()
00230 { this->RenderMode = VTK_KW_DISABLED_RENDER; };
00231
00232
00233
00234
00235 vtkGetMacro( RenderState, int );
00236 vtkSetClampMacro( RenderState, int, 0, 1 );
00237 vtkBooleanMacro( RenderState, int );
00238
00240
00241 virtual void SetCornerTextColor( double rgb[3] );
00242 virtual double *GetCornerTextColor();
00244
00246
00248 void InteractOn();
00249 void InteractOff();
00251
00253
00254 virtual void SetRendererBackgroundColor(double r, double g, double b);
00255 virtual void GetRendererBackgroundColor(double *r, double *g, double *b);
00257
00259
00261 vtkSetStringMacro(MenuEntryName);
00262 vtkGetStringMacro(MenuEntryName);
00263 vtkSetStringMacro(MenuEntryHelp);
00264 vtkGetStringMacro(MenuEntryHelp);
00265 vtkSetMacro(MenuEntryUnderline, int);
00266 vtkGetMacro(MenuEntryUnderline, int);
00268
00270
00272 vtkSetMacro( SupportSaveAsImage, int );
00273 vtkGetMacro( SupportSaveAsImage, int );
00274 vtkBooleanMacro( SupportSaveAsImage, int );
00276
00277 vtkSetMacro( SupportPrint, int );
00278 vtkGetMacro( SupportPrint, int );
00279 vtkBooleanMacro( SupportPrint, int );
00280
00281 vtkSetMacro( SupportCopy, int );
00282 vtkGetMacro( SupportCopy, int );
00283 vtkBooleanMacro( SupportCopy, int );
00284
00285 vtkSetMacro( SupportControlFrame, int );
00286 vtkGetMacro( SupportControlFrame, int );
00287 vtkBooleanMacro( SupportControlFrame, int );
00288
00290
00291 vtkGetObjectMacro( ControlFrame, vtkKWFrame );
00293
00294
00296
00299 virtual vtkRenderWindow* GetRenderWindow() { return NULL; }
00300 virtual vtkRenderer* GetRenderer() { return NULL; }
00301 virtual vtkRenderer* GetRenderer2D() { return NULL; }
00302
00304
00307 int ShouldIAbort();
00308
00310
00312 vtkSetMacro(UseProgressGauge, int);
00313 vtkGetMacro(UseProgressGauge, int);
00314 vtkBooleanMacro(UseProgressGauge, int);
00316
00317 vtkGetObjectMacro(ProgressGauge, vtkKWSegmentedProgressGauge);
00318
00320 virtual int CheckForOtherAbort() { return 0; }
00321
00328 virtual void UpdateEnableState();
00329
00330 protected:
00331 vtkKWView();
00332 ~vtkKWView();
00333
00334 vtkPVCornerAnnotationEditor *CornerAnnotation;
00335
00336 vtkKWNotebook *Notebook;
00337 int InExpose;
00338 int SharedPropertiesParent;
00339 float Center[2];
00340 vtkKWWindow *ParentWindow;
00341 vtkKWFrame *PropertiesParent;
00342 vtkKWWidget *VTKWidget;
00343 vtkKWLabel *Label;
00344 int UseProgressGauge;
00345 vtkKWSegmentedProgressGauge *ProgressGauge;
00346 vtkKWFrame *Frame;
00347 vtkKWFrame *Frame2;
00348 vtkKWFrame *ControlFrame;
00349
00350 vtkKWFrameWithScrollbar *AnnotationPropertiesFrame;
00351
00352 vtkKWFrameWithScrollbar *GeneralPropertiesFrame;
00353 vtkKWFrameWithLabel *ColorsFrame;
00354 vtkKWChangeColorButton *RendererBackgroundColor;
00355
00356
00357
00358
00359 int PropertiesCreated;
00360
00361 float InteractiveUpdateRate;
00362 float *StillUpdateRates;
00363 int NumberOfStillUpdates;
00364 int RenderMode;
00365 int RenderState;
00366
00367 char *MenuEntryName;
00368 char *MenuEntryHelp;
00369 int MenuEntryUnderline;
00370
00371 int Printing;
00372
00373 int SupportSaveAsImage;
00374 int SupportPrint;
00375 int SupportCopy;
00376 int SupportControlFrame;
00377
00378 #ifdef _WIN32
00379
00380 void Print(HDC ghdc, HDC adc);
00381 void Print(HDC ghdc, HDC adc, int printerPageSizeX, int printerPageSizeY,
00382 int printerDPIX, int printerDPIY,
00383 float minX, float minY, float scaleX, float scaleY);
00384 #endif
00385
00386 private:
00387 vtkKWView(const vtkKWView&);
00388 void operator=(const vtkKWView&);
00389 };
00390
00391 #endif
00392