Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Txq2dPlotFrame.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------
00002 //
00003 // File:    Txq2dPlotFrame.h
00004 //
00005 // Purpose: A Txq2dPlotFrame is an extension of Txq2dFrame
00006 //          for 2 dimensional scientific plotting using a TxAttributeSet
00007 //          as input data.
00008 //
00009 // Version: $Id: Txq2dPlotFrame.h,v 1.7 2002/03/07 00:19:07 kgl Exp $
00010 //
00011 // Copyright (c) 2000 by Tech-X Corporation.  All rights reserved.
00012 //
00013 // Author:  Kelly G. Luetkemeyer
00014 //
00015 //--------------------------------------------------------------------
00016 
00017 #ifndef TXQ2D_PLOT_FRAME_H
00018 #define TXQ2D_PLOT_FRAME_H
00019 
00020 #if defined(_MSC_VER)
00021 #include <stdlib.h>
00022 #endif
00023 
00024 // Tx includes
00025 #include <TxAttributeSet.h>
00026  
00027 // Qt includes
00028 #include <qclipboard.h>
00029 #include <qdatetime.h>
00030 #include <qscrollbar.h>
00031 #include <qsizegrip.h>
00032 #include <qmessagebox.h>
00033 
00034 // Txq includes
00035 #include <Txq2dFrame.h>
00036 #include <Txq2dAxis.h>
00037 #include <Txq2dPointArray.h>
00038 #include <Txq2dPolygonArray.h>
00039 #include <Txq2dLine.h>
00040 #include <Txq2dLineArray.h>
00041 #include <Txq2dPolygon.h>
00042 #include "TxqEditorDlog.h"
00043 #include "TxqAttribDrawable.h"
00044 
00045 // std includes
00046 #include <vector>
00047 
00063 class Txq2dPlotFrame: public Txq2dFrame
00064 {
00065   Q_OBJECT
00066 
00067 public:
00068 
00084   Txq2dPlotFrame( TxAttributeSet *windowAttrib,
00085                     TxAttributeSet *dataAttrib,
00086                     QWidget* parent=0, const char *nm=0, 
00087                     WFlags f = WType_TopLevel);
00088 
00092   virtual ~Txq2dPlotFrame();
00093 
00098   virtual void setWindowAttrib(TxAttributeSet *windowAttrib);
00099 
00104   virtual void setDataAttrib(TxAttributeSet *dataAttrib);
00105 
00109   virtual void addAxes();
00110 
00114   virtual void addColorMap();
00115 
00121   virtual void addDrawables();
00122 
00126   virtual void addFileMenuItems();
00127 
00131   virtual void addEditMenuItems();
00132 
00136   virtual void addViewMenuItems();
00137 
00141    virtual void addScrollBarMenuItem();
00142 
00146   virtual void addTraceMenuItem();
00147 
00153   virtual void plot(bool updateFlag);
00154 
00158   virtual void plotTxqAttribDrawable();
00159 
00164   void updateDataRange();
00165 
00171   void setDataRange();
00172 
00176   void saveGeometry();
00177 
00183   virtual void setTxqAttribDrawable(TxAttributeSet *a);
00184 
00189   void setTrace(bool traceFlag);
00190 
00195   bool getTrace();
00196 
00197 signals:
00198 
00202   void stopModelSignal();
00203 
00207   void zoomSignal();
00208 
00212   void zoomOffSignal();
00213 
00214 public slots:
00215 
00220   virtual void polish();
00221 
00222 
00227   virtual void editPlotAttributes(int number);
00228 
00233   virtual void editDataAttributes(int number);
00234 
00238   virtual void cancelPlotEditor();
00239 
00243   virtual void revertPlotAttrib();
00244 
00248   virtual void applyPlotAttrib();
00249 
00253   virtual void applyClosePlotAttrib();
00254 
00255 
00259   virtual void cancelDataEditor();
00260 
00264   virtual void revertDataAttrib();
00265 
00269   virtual void applyDataAttrib();
00270 
00274   virtual void applyCloseDataAttrib();
00275 
00276 
00281   virtual void crossHair(int number);
00282 
00288   virtual void show();
00289 
00294   void setTrace(int number);
00295 
00301   void applyOptions();
00302 
00308   void writeStatus(double x, double y);
00309 
00313   void stopModel();
00314 
00318   virtual void closeWindow();
00319 
00324   virtual void closeWindow(int index);
00325 
00326 protected:
00327 
00331   virtual void addMenuBarItems();
00332 
00338   virtual void addWidgets();
00339 
00343   void addScrollBars();
00344 
00348   void applyAxesAttribs();
00349 
00356   void applyAxisAttribs(Txq2dAxis *a, TxqAxisAttribs &p, string axisName);
00357 
00361   void updateOptions();
00362 
00368   void updateAxisOptions(TxqAxisAttribs &a, string axisName);
00369 
00374   void moveEvent( QMoveEvent *event);
00375 
00380   void resizeEvent( QResizeEvent *event);
00381  
00385   void setPlotAttribs();
00386 
00390   QPopupMenu *scrollBarMenu;
00391 
00395   QScrollBar hbar;
00396 
00400   QScrollBar vbar;
00401 
00405   QSizeGrip *resizer;
00406 
00407 protected slots:
00412   bool close( bool forceKill = FALSE) ;
00413 
00418   void setHScrollBar(int num);
00419 
00424   void setVScrollBar(int num);
00425 
00430   void zoomIn(int id);
00431  
00436   void zoomOut(int id);
00437 
00441   void zoomOutFinished();
00442 
00446   void setOptionsZoomTrace(); 
00447 
00448 
00453   void dumpData();
00454 
00459   void vslide(int);
00460 
00465   void hslide(int);
00466  
00467 
00468 private:
00469 
00473   void init();
00474 
00475 
00479   void checkMinMax();
00480 
00484   Txq2dCanvas* canvas;
00485 
00489   Txq2dAxis *xAxis;
00490 
00494   Txq2dAxis *yAxis;
00495 
00499   TxqColorMap *colorMap;
00500 
00504   std::vector<QColor> colors;
00505 
00509   bool vScrollBar;
00510 
00514   bool hScrollBar;
00515 
00519   bool trace;
00520 
00525   QString thisName;
00526 
00530   QString inputFileName;
00531 
00535   TxAttributeSet *window;
00536 
00540   TxAttributeSet *data;
00541 
00545   bool isValid;
00546 
00550   std::vector<Txq2dDrawable*> drawAbles;
00551 
00555   int hbarMinValue;
00556 
00560   int hbarMaxValue;
00561 
00565   int vbarMinValue;
00566 
00570   int vbarMaxValue;
00571 
00575   double xmin;
00576 
00580   double xmax;
00581 
00585   double ymin;
00586 
00590   double ymax;
00591 
00595   double scrollWindowSize;
00596 
00601   double scrollWindowStepSize;
00602 
00606   double scrollXmin;
00607 
00611   double scrollXmax;
00612 
00616   double scrollYmin;
00617 
00621   double scrollYmax;
00622 
00626   int xPos;
00627 
00631   int yPos;
00632 
00636   TxqEditorDlog *plotEditor;
00637 
00641   TxqEditorDlog *dataEditor;
00642 
00646   int plotEditorId;
00647 
00651   int dataEditorId;
00652 
00656   int traceId;
00657 
00661   bool saveTraceState;
00662 
00666   std::vector<TxqAttribDrawable*> attribDrawables;
00667 
00668 
00669 };
00670 
00671 
00672 #endif
Copyright Tech-X Corporation, all rights reserved.