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

GUI/Client/vtkPVApplication.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkPVApplication.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00022 #ifndef __vtkPVApplication_h
00023 #define __vtkPVApplication_h
00024 
00025 #include "vtkKWApplication.h"
00026 class vtkPVProcessModule;
00027 
00028 class vtkDataSet;
00029 class vtkKWMessageDialog;
00030 class vtkKWPushButton;
00031 class vtkMapper;
00032 class vtkMultiProcessController;
00033 class vtkSocketController;
00034 class vtkPVOutputWindow;
00035 class vtkPVSource;
00036 class vtkPVWindow;
00037 class vtkPVRenderView;
00038 class vtkPolyDataMapper;
00039 class vtkProbeFilter;
00040 class vtkProcessObject;
00041 class vtkPVApplicationObserver;
00042 class vtkPVProgressHandler;
00043 class vtkKWLoadSaveDialog;
00044 class vtkSMApplication;
00045 class vtkPVGUIClientOptions;
00046 class vtkPVOptions;
00047 class vtkSMRenderModuleProxy;
00048 
00049 class VTK_EXPORT vtkPVApplication : public vtkKWApplication
00050 {
00051 public:
00052   static vtkPVApplication* New();
00053   vtkTypeRevisionMacro(vtkPVApplication,vtkKWApplication);
00054   void PrintSelf(ostream& os, vtkIndent indent);
00055 
00057 
00060   int ParseCommandLineArguments();
00061   virtual void SetOptions(vtkPVGUIClientOptions* op);
00063 
00065 
00066   vtkGetObjectMacro(SMApplication, vtkSMApplication);
00068 
00070 
00072   void SetProcessModule(vtkPVProcessModule *module);
00073   vtkPVProcessModule* GetProcessModule() { return this->ProcessModule;}
00075 
00077 
00078   void SetRenderModuleProxy(vtkSMRenderModuleProxy*);
00079   vtkGetObjectMacro(RenderModuleProxy, vtkSMRenderModuleProxy);
00081 
00083   int SetupRenderModule();
00084 
00086   virtual vtkKWLoadSaveDialog* NewLoadSaveDialog();
00087 
00088 
00090 
00091   virtual void Start(int argc, char *argv[]);
00092   virtual void Start()
00093     { this->vtkKWApplication::Start(); }
00095 
00098   vtkMultiProcessController *GetController();
00099   
00103   vtkSocketController *GetSocketController();
00104 //ETX
00105 
00107 
00108   int AcceptLicense();
00109   int AcceptEvaluation();
00111 
00114   virtual int RemoveWindow(vtkKWWindowBase *);
00115 
00119   virtual int Exit();
00120 
00124   virtual void DestroyGUI();
00125   
00127 
00129   static Tcl_Interp *InitializeTcl(int argc, char *argv[], ostream *err = 0);
00130   //ETX
00132   
00134   void Initialize();
00135 
00136 //BTX
00137 #ifdef PV_HAVE_TRAPS_FOR_SIGNALS
00138 
00139 
00140   void SetupTrapsForSignals(int nodeid);
00141   static void TrapsForSignals(int signal);
00143 
00145 
00146   static void ErrorExit();
00147 #endif // PV_HAVE_TRAPS_FOR_SIGNALS
00148 
00149 //ETX
00150 
00152 
00161   void StartRecordingScript(char *filename);
00162   void StopRecordingScript();
00164 
00166 
00168   vtkPVWindow *GetMainWindow();
00169   vtkPVRenderView *GetMainView();
00171 
00174   void DisplayHelpDialog(vtkKWWindowBase* master);
00175 
00177 
00180   vtkSetMacro(StartGUI, int);
00181   vtkGetMacro(StartGUI, int);
00183 
00184   //BTX
00185   static const char* const ExitProc;
00186   //ETX
00187 
00188   void DisplayTCLError(const char* message);
00189 
00191 
00194   vtkSetClampMacro(Display3DWidgets, int, 0, 1);
00195   vtkBooleanMacro(Display3DWidgets, int);
00196   vtkGetMacro(Display3DWidgets, int);
00198 
00200 
00203   vtkSetMacro(NumberOfPipes, int);
00204   vtkGetMacro(NumberOfPipes, int);
00206 
00208 
00210   vtkGetStringMacro(Argv0);
00211   vtkSetStringMacro(Argv0);
00213 
00215 
00216   vtkGetStringMacro(TraceFileName);
00218 
00221   ofstream *GetTraceFile() {return this->TraceFile;}
00222 
00223   // Descrition:
00224   // Show/Hide the sources long help.
00225   virtual void SetShowSourcesLongHelp(int);
00226   vtkGetMacro(ShowSourcesLongHelp, int);
00227   vtkBooleanMacro(ShowSourcesLongHelp, int);
00228 
00229   // Descrition:
00230   // Show/Hide the sources long help.
00231   virtual void SetSourcesBrowserAlwaysShowName(int);
00232   vtkGetMacro(SourcesBrowserAlwaysShowName, int);
00233   vtkBooleanMacro(SourcesBrowserAlwaysShowName, int);
00234 
00235   // Descrition:
00236   // Get those application settings that are stored in the registry
00237   // Should be called once the application name is known (and the registry
00238   // level set).
00239   virtual void RestoreApplicationSettingsFromRegistry();
00240 
00242 
00244   void EnableTestErrors();
00245   void DisableTestErrors();
00247 
00249   static void Abort();
00250 
00252   void ExecuteEvent(vtkObject *o, unsigned long event, void* calldata);
00253 
00255   int GetNumberOfPartitions();
00256   
00258   void PlayDemo(int fromDashboard);
00259   
00263   char* GetTextRepresentation(vtkPVSource* comp);
00264 
00266 
00270   virtual int SendStringToClient(const char*);
00271   virtual int SendStringToClientAndServer(const char*);
00272   virtual int SendStringToClientAndServerRoot(const char*);
00273   virtual int SendStringToServer(const char*);
00274   virtual int SendStringToServerRoot(const char*);
00276 
00278 
00281   virtual const char* GetStringFromServer();
00282   virtual const char* GetStringFromClient();
00284 
00285   //BTX
00287 
00288   vtkPVGUIClientOptions* GetGUIClientOptions();
00289   vtkPVOptions* GetOptions();
00290   //ETX
00292 
00294 
00296   void SetGarbageCollectionGlobalDebugFlag(int flag);
00297   int GetGarbageCollectionGlobalDebugFlag();
00299 
00301 
00302   void DeferredGarbageCollectionPush();
00303   void DeferredGarbageCollectionPop();
00305 
00308   void SaveRuntimeInformation();
00309 
00311   int SelfTest();
00312 
00313 protected:
00314   vtkPVApplication();
00315   ~vtkPVApplication();
00316 
00317   virtual void CreateSplashScreen();
00318   virtual void ConfigureAboutDialog();
00319   virtual void AddAboutText(ostream &);
00320 
00321   vtkKWPushButton *SaveRuntimeInfoButton;
00322 
00323   void CreateButtonPhotos();
00324   void CreatePhoto(const char *name, 
00325                    const unsigned char *data, 
00326                    int width, int height, int pixel_size, 
00327                    unsigned long buffer_length = 0,
00328                    const char *filename = 0);
00329   int CheckRegistration();
00330   int PromptRegistration(char *,char *);
00331 
00332   virtual void FindInstallationDirectory();
00333 
00334   vtkPVProcessModule *ProcessModule;
00335 
00336   // For running with SGI pipes.
00337   int NumberOfPipes;
00338 
00339   int Display3DWidgets;
00340 
00341   int StartGUI;
00342 
00343   vtkPVOutputWindow *OutputWindow;
00344 
00345   static int CheckForExtension(const char* arg, const char* ext);
00346   char* CreateHelpString();
00347   int CheckForTraceFile(char* name, unsigned int len);
00348   void DeleteTraceFiles(char* name, int all);
00349   void SaveTraceFile(const char* fname);
00350 
00351   vtkSetStringMacro(TraceFileName);
00352   char* TraceFileName;
00353   ofstream *TraceFile;
00354   char* Argv0;
00355 
00356   //BTX
00357   enum
00358   {
00359     NUM_ARGS=100
00360   };
00361   static const char ArgumentList[vtkPVApplication::NUM_ARGS][128];
00362   //ETX
00363 
00364   static vtkPVApplication* MainApplication;  
00365 
00366   int ShowSourcesLongHelp;
00367   int SourcesBrowserAlwaysShowName;
00368 
00369   vtkPVApplicationObserver* Observer;
00370 
00371   int ApplicationInitialized;
00372 
00373   vtkSMApplication* SMApplication;
00374 
00375   vtkPVGUIClientOptions* Options;
00376 
00377   vtkSMRenderModuleProxy* RenderModuleProxy;
00378   char* RenderModuleProxyName;
00379   vtkSetStringMacro(RenderModuleProxyName);
00380   
00381 private:  
00382   vtkPVApplication(const vtkPVApplication&); // Not implemented
00383   void operator=(const vtkPVApplication&); // Not implemented
00384 };
00385 
00386 #endif
00387 
00388 

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