![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: tmRubberBand.h,v $ $Revision: 1.24 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef TMRUBBERBAND_H 00013 #define TMRUBBERBAND_H 00014 00015 #include <QtCore/QObject> 00016 00017 #include "tmqt/tmViewportExtents.h" 00018 00019 #include <QtGui/QPen> 00020 #include <QtCore/QList> 00021 00022 #include "archiver/archiver.h" 00023 00024 class DtTMFactory; 00025 class DtTMMiniMap; 00026 class DtTMMapArea; 00027 class DtExtent; 00028 00029 //A rubber band is a rectangle on a minimap with an associated value 00030 //This 'class' is nothing more than a struct with the four default functions 00031 //defined (for deletion and default values) 00032 #include "tmqt/tmqtDefines.h" 00033 class DT_DLL_tmqt DtTMRubberBand : public DtArchivableObject 00034 { 00035 00036 Q_OBJECT 00037 00038 public: 00039 00041 DtTMRubberBand(); 00042 00044 virtual ~DtTMRubberBand(); 00045 00047 virtual bool init(const DtTMMiniMap* m, const DtTMMapArea* a); 00048 00051 virtual const QPen* activePen() const; 00052 00054 virtual void setActivePen(const QPen* p); 00055 00058 virtual const QPen* inactivePen() const; 00059 00061 virtual void setInactivePen(const QPen* p); 00062 00064 virtual void setPct 00065 ( 00066 const double pctX, 00067 const double pctY, 00068 const double pctW, 00069 const double pctH 00070 ); 00071 00072 virtual double pctX() const; 00073 virtual void setPctX(const double d); 00074 00075 virtual double pctY() const; 00076 virtual void setPctY(const double d); 00077 00078 virtual double pctW() const; 00079 virtual void setPctW(const double d); 00080 00081 virtual double pctH() const; 00082 virtual void setPctH(const double d); 00083 00085 virtual const DtTMViewportExtents* windowViewportExtents() const; 00086 00088 virtual void setWindowViewportExtents(const DtTMViewportExtents* v); 00089 00091 virtual const DtTMViewportExtents& viewportExtents() const; 00092 00093 public: 00094 00096 static DtTMRubberBand* create(); 00097 00098 signals: 00099 00101 void viewportExtentsSet(const DtTMViewportExtents* v); 00102 00104 void viewportExtentsChanged(const DtTMViewportExtents* v); 00105 00107 void rubberBandUpdated(); 00108 00110 void activePenChanged(const QPen*); 00111 00113 void inactivePenChanged(const QPen*); 00114 00117 void isActive(DtTMRubberBand*); 00118 00119 public slots: 00120 00122 virtual void setViewportExtents(const DtTMViewportExtents* v); 00123 00125 virtual void setMinimapExtents(const DtTMViewportExtents* v); 00126 00128 virtual void setActive(); 00129 00130 protected: 00131 00132 virtual void resizeRectToFitAspectRatio(DtExtent& ext, DtTMViewportExtents* extents); 00133 00135 DtTMRubberBand(const DtTMRubberBand& orig); 00136 00138 DtTMRubberBand& operator=(const DtTMRubberBand& rhs); 00139 00140 DtTMViewportExtents myViewportExtents; 00141 00142 const DtTMViewportExtents* myWindowViewportExtents; 00143 00144 QPen* myActivePen; 00145 QPen* myInactivePen; 00146 00147 double myPctX; 00148 double myPctY; 00149 double myPctW; 00150 double myPctH; 00151 00152 }; 00153 00154 typedef QList<DtTMRubberBand*> DtTMRubberBandList; 00155 00156 #endif 00157