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.