00001 /* $Id: ssMultibeamApplication.h,v 1.13 2005/10/26 10:18:11 pfb Exp $ */ 00002 00003 #ifndef _ssMultibeamApplication_h 00004 #define _ssMultibeamApplication_h 00005 00010 #include "vtkKWApplication.h" 00011 00012 class ssMultibeamProcessModule; 00013 class ssMultibeamAlertWindow; 00014 class ssMultibeamRenderModule; 00015 class ssMultibeamWindow; 00016 00022 class VTK_EXPORT ssMultibeamApplication : public vtkKWApplication 00023 { 00024 //**************************************************************************** 00025 public: 00026 00032 static ssMultibeamApplication *New(); 00033 00037 vtkTypeMacro(ssMultibeamApplication, vtkKWApplication); 00038 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00056 static Tcl_Interp *InitializeTcl(int argc, char *argv[], ostream *err = 0); 00057 00064 bool ParseCommandLineArguments(int argc, char*argv[]); 00065 00070 void SetProcessModule(ssMultibeamProcessModule *module); 00071 00076 ssMultibeamProcessModule *GetProcessModule(); 00077 00083 virtual void Start(int argc, char *argv[]); 00084 00088 virtual void Start(); 00089 00094 virtual void Start(char *arg); 00095 00101 virtual int Exit(); 00102 00107 ssMultibeamWindow *MainWindow(); 00108 00109 //BTX 00116 void BroadcastScript(char *eventString, ...); 00117 //ETX 00118 00123 void BroadcastSimpleScript(const char *str); 00124 00129 ssMultibeamRenderModule *RenderModule() const; 00130 00137 vtkObject *MakeTclObject(const char *className, 00138 const char *tclName); 00139 00145 vtkObject *TclToVTKObject(const char *tclName); 00146 00147 //**************************************************************************** 00148 protected: 00149 00153 ssMultibeamApplication(); 00154 00158 virtual ~ssMultibeamApplication(); 00159 00164 void RenderModule(ssMultibeamRenderModule *module); 00165 00166 ssMultibeamProcessModule *processModule; 00167 ssMultibeamAlertWindow *alertWindow; 00168 ssMultibeamRenderModule *renderModule; 00169 00170 //BTX 00171 static const char *const LoadComponentProc; 00172 static const char *const ExitProc; 00173 //ETX 00174 00175 //**************************************************************************** 00176 private: 00177 00181 ssMultibeamApplication(const ssMultibeamApplication& ); 00182 ssMultibeamApplication& operator=(const ssMultibeamApplication& ); 00183 }; 00184 00185 00189 #endif 00190 00191 /* 00192 * $Log: ssMultibeamApplication.h,v $ 00193 * Revision 1.13 2005/10/26 10:18:11 pfb 00194 * Fixed doxygen tags. 00195 * 00196 * Revision 1.12 2005/10/19 05:28:49 pfb 00197 * Some changes which accomodate the changes to ParaView 2.2.1 00198 * 00199 * Revision 1.11 2005/05/10 17:08:00 pfb 00200 * Added module info. 00201 * 00202 * Revision 1.10 2004/02/21 14:07:44 pfb 00203 * Added MainWindow(). 00204 * 00205 * Revision 1.9 2004/02/15 16:08:36 pfb 00206 * Moved from MultibeamApplication to ssMultibeamApplication. 00207 * 00208 * Revision 1.8 2004/02/02 20:06:01 pfb 00209 * Added LoadComponentProc and ExitProc. 00210 * 00211 * Revision 1.7 2004/02/01 16:46:59 pfb 00212 * Work in progress. 00213 * 00214 * Revision 1.6 2004/01/06 13:31:19 pfb 00215 * Work in progress. More functionality added. 00216 * 00217 * Revision 1.5 2004/01/02 16:02:06 pfb 00218 * Working towards basic runnable state. 00219 * 00220 * Revision 1.4 2003/12/30 12:59:13 pfb 00221 * Added Exit(). 00222 * 00223 * Revision 1.3 2003/12/29 14:45:58 pfb 00224 * Work in progress. 00225 * 00226 * Revision 1.2 2003/12/27 14:27:50 pfb 00227 * Work in progress. 00228 * 00229 * Revision 1.1 2003/12/22 14:46:47 pfb 00230 * Initial rev. 00231 * 00232 * 00233 */ 00234