![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2003 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: locationEntryWidget.h,v $ $Revision: 1.21 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef LOCATIONENTRYWIDGET_H_ 00013 #define LOCATIONENTRYWIDGET_H_ 00014 00015 #include "tmqt/ui_locationEntryWidgetUi.h" 00016 #include "drawerNative/convUtils.h" 00017 #include "drawerNative/coordUtils.h" 00018 00019 #include <QtGui/QValidator> 00020 00021 class QLayout; 00022 class DtPoint; 00023 class DtCoordinateSystemCollection; 00024 class DtUnitDisplayManager; 00025 00029 00030 #include "tmqt/tmqtDefines.h" 00031 class DT_DLL_tmqt DtLocationEntryWidget : public QWidget 00032 { 00033 00034 Q_OBJECT 00035 00036 public: 00037 00039 DtLocationEntryWidget(QWidget* parent = NULL, const Qt::WindowFlags& f = 0); 00040 00042 virtual ~DtLocationEntryWidget(); 00043 00044 static DtLocationEntryWidget* create(QWidget* parent = NULL, const Qt::WindowFlags& f = 0); 00045 00047 virtual void clearPointEdit(); 00048 00050 virtual void hideZ(); 00051 00053 virtual void showZ(); 00054 00056 virtual void getValues(double& x, double& y, double& z); 00057 virtual void setValues(double x, double y, double z); 00058 virtual void setValues(const DtStringLocation& loc); 00059 00061 virtual bool zIsVisible() const; 00062 00067 virtual QString xText(bool keepSingleLine = true) const; 00068 virtual QString yText() const; 00069 virtual QString zText() const; 00070 00073 virtual void setFromSource(const DtPoint& pnt); 00074 00076 virtual QString xLabel() const; 00077 virtual QString yLabel() const; 00078 virtual QString zLabel() const; 00079 00080 virtual QLabel* xLabelWidget() const; 00081 virtual QLabel* yLabelWidget() const; 00082 virtual QLabel* zLabelWidget() const; 00083 00085 virtual void setXLabel(const QString&); 00086 virtual void setYLabel(const QString&); 00087 virtual void setZLabel(const QString&); 00088 00089 virtual void setXText(QString x); 00090 virtual void setYText(QString y); 00091 virtual void setZText(QString z); 00092 00093 virtual void setReadOnly(bool b); 00094 00096 virtual bool init(const DtCoordinateSystemCollection* c, 00097 const DtUnitDisplayManager* units, const DtCoordSys& system); 00098 00101 virtual void initConnections(); 00102 00106 virtual void convertFromSource(const DtPoint& pnt, const DtCoordSys& newSys, DtStringLocation& out); 00107 00110 virtual void convertToSource(const DtStringLocation& in, double& x, double& y, double& z); 00111 00113 virtual void setSingleLine(bool b); 00114 00117 virtual void setSignalChanges(bool b); 00118 00121 virtual void setUseAltitudeSelection(bool, bool update = true); 00122 bool useAltitudeSelection() const; 00123 00124 virtual void setShowHeightAboveTerrain(bool, double t = -1); 00125 bool showHeightAboveTerrain() const; 00126 virtual double heightAboveTerrain() const; 00127 virtual bool useHeightAboveTerrain() const; 00128 virtual bool useAltitude() const; 00129 virtual double altitude() const; 00130 00131 void setCalculateOffset(bool); 00132 bool calculateOffset() const; 00133 00136 //@ 00137 virtual double convertAltitudeToDisplay(double z) const; 00138 virtual double convertAltitudeFromDisplay(double z) const; 00139 //@ 00140 public slots: 00142 virtual void updateUnits(const DtUnitDisplayManager* u); 00143 00145 virtual void updateCoordinateSystem(const DtCoordSys& system); 00146 virtual void updateCoordinateSystem(const QString& system); 00147 virtual void updateUnitDisplay(const QString&, const QString&, const QString&); 00148 00150 virtual void pointChanged(); 00151 00152 virtual void updateLabels(); 00153 00154 signals: 00156 void locationChanged(DtLocationEntryWidget* wgt, const DtPoint& pnt); 00157 00159 void unitsUpdated(); 00160 00161 void altitudeSelectionChanged(int, double); 00162 00163 protected: 00164 virtual void hideLayout(QLayout* layout); 00165 00166 virtual void updateDistanceValues(const QString& oldUnits, const QString& newUnits); 00167 virtual void updateAltitudeValue(const QString& oldUnits, const QString& newUnits); 00168 virtual void updateValuesForNewCoordinateSystem(const DtCoordSys& oldSys, const DtCoordSys& newSys); 00169 00170 virtual QString localZText() const; 00171 00172 public: 00173 Ui::LocationEntryWidgetUi myUiImpl; 00174 00175 protected: 00176 QDoubleValidator myDoubleValidator; 00177 DtCoordSys myCoordinateSystem; 00178 bool mySingleLineMode; 00179 const DtCoordinateSystemCollection* myCoordinateSystemCollection; 00180 const DtUnitDisplayManager* myUnitDisplayManager; 00181 bool myUseAltitudeSelection; 00182 bool myShowHeightAboveTerrain; 00183 bool myCalculateOffset; 00184 double myHeightAboveTerrain; 00185 bool myZIsHidden; 00186 }; 00187 00188 inline bool DtLocationEntryWidget::useAltitudeSelection() const 00189 { 00190 return myUseAltitudeSelection; 00191 } 00192 00193 inline bool DtLocationEntryWidget::showHeightAboveTerrain() const 00194 { 00195 return myShowHeightAboveTerrain; 00196 } 00197 00198 inline double DtLocationEntryWidget::heightAboveTerrain() const 00199 { 00200 return myHeightAboveTerrain; 00201 } 00202 00203 inline void DtLocationEntryWidget::setCalculateOffset(bool b) 00204 { 00205 myCalculateOffset = b; 00206 } 00207 00208 inline bool DtLocationEntryWidget::calculateOffset() const 00209 { 00210 return myCalculateOffset; 00211 } 00212 00213 #endif