Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

GUI/Client/vtkKWView.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Module:    $RCSfile: vtkKWView.h,v $
00004 
00005   Copyright (c) Kitware, Inc.
00006   All rights reserved.
00007   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE.  See the above copyright notice for more information.
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" // needed for RECT HDC
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   //BTX
00137   virtual vtkWindow *GetVTKWindow();
00138 
00140 
00141   virtual vtkViewport *GetViewport();
00142   //ETX
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   // In addition to the render mode, we have the render state - which
00233   // can be on or off. This allows a window to disable all its views 
00234   // while updating the GUI
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   //BTX
00296 
00299   virtual vtkRenderWindow* GetRenderWindow() { return NULL; }
00300   virtual vtkRenderer* GetRenderer() { return NULL; }
00301   virtual vtkRenderer* GetRenderer2D() { return NULL; }
00302   //ETX
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   //vtkRenderer            *Renderer;
00357   //vtkRenderWindow        *RenderWindow;
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   // internal methods used in printing
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&); // Not implemented
00388   void operator=(const vtkKWView&); // Not implemented
00389 };
00390 
00391 #endif
00392 

Generated on Tue May 30 12:31:38 2006 for ParaView by doxygen 1.3.5