00001 //-------------------------------------------------------------------- 00002 // 00003 // File: TxqPlotTrol.h: 00004 // 00005 // Purpose: Controls the opening and closing of 2d and 3d plot windows 00006 // 00007 // Copyright 2002 Tech-X Corporation 00008 // 00009 // CVS: $Id: TxqPlotTrol.h,v 1.7 2002/01/17 21:02:57 kgl Exp $ 00010 // 00011 // Author: Kelly G. Luetkemeyer 00012 // 00013 //-------------------------------------------------------------------- 00014 00015 #ifndef TXQ_PLOT_TROL_H 00016 #define TXQ_PLOT_TROL_H 00017 00018 // Borland needs this 00019 #ifdef __BCPLUSPLUS__ 00020 #define CINTERFACE 00021 #endif 00022 00023 #ifdef UNIX 00024 #include <config.h> 00025 #endif 00026 00027 // qt includes 00028 #include <qobject.h> 00029 #include <qfileinfo.h> 00030 00031 // Txq Includes 00032 #include <TxModelDefines.h> 00033 #include <Txq2dFrame.h> 00034 #include <Txq3dFrame.h> 00035 00036 // txmath includes 00037 #include <txc_vector.h> 00038 #include <TxAttributeSet.h> 00039 #include <TxHierAttribSet.h> 00040 00041 // stl includes 00042 #include <cassert> 00043 00055 class TxqPlotTrol : public QObject 00056 { 00057 00058 Q_OBJECT 00059 00060 public: 00061 00072 TxqPlotTrol( const QString &fileName = QString::null, 00073 const bool readFlag=false, 00074 int numWindows=0); 00075 00079 virtual ~TxqPlotTrol(); 00080 00084 virtual void writeConfig(); 00085 00090 virtual void begin(); 00091 00096 virtual void setFileName(const QString &name); 00097 00102 virtual void setNumberWindows(int n) {numberOfWindows = n;} 00103 00108 virtual void add2dWindow(int i); 00109 00114 virtual void add3dWindow(int i); 00115 00119 virtual void closeAll(); 00120 00125 virtual void closeWindow(int index); 00126 00132 virtual void move(int type, int index); 00133 00137 TXSTD::vector<Txq2dFrame *> plot2dWindows; 00138 00139 #ifdef HAVE_OPENGL 00140 00144 TXSTD::vector<Txq3dFrame *> plot3dWindows; 00145 00146 #endif 00147 00151 TXSTD::vector<int> plotType; 00152 00156 TXSTD::vector<int> openFlag; 00157 00162 TXSTD::vector<int> plotIndex; 00163 00169 TXSTD::map<int,int> plot2dIndexMap; 00170 00176 TXSTD::map<int,int> plot3dIndexMap; 00177 00181 TXSTD::vector<TXSTD::string> plotLabel; 00182 00186 TXSTD::vector<QPoint> plotPos; 00187 00191 TXSTD::vector<int> plotWidth; 00192 00196 TXSTD::vector<int> plotHeight; 00197 00198 signals: 00199 00204 void close2dSignal(int windex); 00205 00210 void close3dSignal(int windex); 00211 00215 void stopModelSignal(); 00216 00220 void startModelSignal(); 00221 00222 public slots: 00223 00229 void remove2dWindow(int index); 00230 00236 void remove3dWindow(int index); 00237 00241 void stopModel(); 00242 00246 void startModel(); 00247 00248 protected: 00249 00255 virtual void remove2dWindow(int i, int wi); 00256 00262 virtual void remove3dWindow(int i, int wi); 00263 00267 virtual void readConfig(); 00268 00276 virtual void appendData(int index, int flag, TXSTD::string label, int type); 00277 00284 virtual int getType(int index) =0; 00285 00290 virtual TXSTD::string getLabel(int index) =0; 00291 00296 virtual int getOpenFlag(int index) =0; 00297 00302 virtual int getModelState() =0; 00303 00308 virtual void appendAuxData(int index) {} 00309 00315 virtual Txq2dFrame* create2dWindow(int index, int pltIndex); 00316 00322 virtual Txq3dFrame* create3dWindow(int index, int pltIndex); 00323 00327 int numberOfWindows; 00328 00332 QString inputFileName; 00333 00334 private: 00335 00344 int getOption(const TxAttributeSet &config, TXSTD::string optionName); 00345 00351 void appendNewData(int index, int flag, TXSTD::string label, int type); 00352 00356 void updateGeometry(); 00357 00361 int indexNumber; 00362 00366 int plot2dIndexNumber; 00367 00371 int plot3dIndexNumber; 00372 00376 int numberOfOpenPlotWindows; 00377 00381 int sx, sy; 00382 00386 QString configFileName; 00387 00391 TxHierAttribSet *configSet; 00392 00396 bool haveConfig; 00397 00398 }; 00399 00400 00401 #endif
Copyright Tech-X Corporation, all rights reserved.