00001 //-------------------------------------------------------------------- 00002 // 00003 // File: Txq2dFrame.h 00004 // 00005 // Purpose: Implementation of a Qt Widget to create a window 00006 // for 2 dimensional scientific plotting. 00007 // 00008 // Version: $Id: Txq2dFrame.h,v 1.35 2001/10/12 18:58:11 kgl Exp $ 00009 // 00010 // Copyright (c) 2000 by Tech-X Corporation. All rights reserved. 00011 // 00012 // Author: Kelly G. Luetkemeyer 00013 // 00014 //-------------------------------------------------------------------- 00015 00016 #ifndef TXQ2D_FRAME_H 00017 #define TXQ2D_FRAME_H 00018 00019 // Qt includes 00020 #include <qcursor.h> 00021 #include <qpaintdevicemetrics.h> 00022 00023 // Txq includes 00024 #include <TxqFrame.h> 00025 #include <TxqSciNumberPattern.h> 00026 #include <TxqSciNumberFormat.h> 00027 #include <TxqPlotAttribs.h> 00028 #include <TxqOptionsDlog.h> 00029 00030 // Txq2d includes 00031 #include "Txq2dCanvas.h" 00032 #include "Txq2dAxis.h" 00033 #include "Txq2dPrintCanvas.h" 00034 #include "Txq2dPrintFrame.h" 00035 #include "TxqZoom.h" 00036 00048 class Txq2dFrame : public TxqFrame 00049 { 00050 Q_OBJECT 00051 00052 public: 00053 00064 Txq2dFrame(QWidget* parent=0, const char *nm=0, WFlags f = WType_TopLevel); 00065 00069 virtual ~Txq2dFrame(); 00070 00075 void addCanvas(Txq2dCanvas* newCanvas); 00076 00081 Txq2dCanvas* getCanvas() {return canvas;} 00082 00087 virtual void plot(bool updateFlag) {canvas->repaint(false);} 00088 00093 void setCrossHair(bool flag); 00094 00101 void setOptionsClearPixmap(bool f) {optionsClearPixmap = f;} 00102 00108 void writeImage(QString fileName, QString ext); 00109 00110 public slots: 00111 00119 virtual void setGeometry(int x, int y, int w, int h); 00120 00124 virtual void setGeometry(const QRect& r) {QWidget::setGeometry(r);} 00125 00130 virtual void crossHair(int number); 00131 00137 virtual void writeStatus(double x, double y); 00138 00139 protected: 00140 00144 void createTxq2dCanvas(); 00145 00149 void resizeEvent( QResizeEvent *event); 00150 00155 void createPlotAttribs(); 00156 00160 virtual void addFileMenuItems(); 00161 00165 void addEditMenuItems(); 00166 00170 void addViewMenuItems(); 00171 00175 void addCrossHairMenuItem(); 00176 00180 void addOptionsMenuItem(); 00181 00185 virtual void addZoomMenuItem(); 00186 00192 virtual void addWidgets(); 00193 00197 void createOptionsMenu(); 00198 00202 bool getCrossHair(); 00203 00207 void setCrossHair(int id); 00208 00209 // protected data 00210 00214 int ziId; 00218 int zoId; 00219 00224 bool zi; 00225 00230 bool zo; 00231 00235 int crossHairId; 00236 00240 bool optionsClearPixmap; 00241 00242 signals: 00243 00248 virtual void setOptionsSignal(); 00249 00250 protected slots: 00251 00255 bool copy(); 00256 00262 void applyOptions(); 00263 00267 void setOptions(); 00268 00272 void saveAs(); 00273 00278 void dumpData(); 00279 00283 void print(); 00284 00288 void printPreview(); 00289 00294 virtual void zoomIn(int id); 00295 00300 virtual void zoomOut(int id); 00301 00305 virtual void zoomOutFinished(); 00306 00307 protected: 00308 00312 TxqPlotAttribs *plotAttribs; 00313 00317 TxqOptionsDlog *optionsDlog; 00318 00319 00320 private: 00321 00325 Txq2dCanvas* canvas; 00326 00330 std::vector<Txq2dCanvas*> canvasVector; 00331 00332 00333 }; 00334 00335 00336 #endif
Copyright Tech-X Corporation, all rights reserved.