![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00009 00010 #pragma once 00011 00012 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00013 #include <vrfGuiCoreQt/createAndEditObjectDialogInterface.h> 00014 #include <vrfGuiCoreQt/autoHideDock.h> 00015 #include <vrfGuiCoreQt/pointObjectDefinitionWidgetUi.hpp> 00016 #include <vrfGuiCoreQt/DtLocationEntryWidget.h> 00017 #include <vrvUtil/DtSignalConnectionManager.h> 00018 00020 #include <vrvUtil/DtUnitConverterCollection.h> 00021 00022 namespace makVrf 00023 { 00024 class DtVrfObjectManipulationHandlerBaseClass; 00025 class DtPointObjectDefinitionDialog; 00026 00030 class DT_DLL_VRFGUICOREQT DtPointObjectDefinitionDialogLogic 00031 { 00032 00033 public: 00034 00036 DtPointObjectDefinitionDialogLogic(makVrv::DtDe& de, DtPointObjectDefinitionDialog* iface); 00037 00039 virtual ~DtPointObjectDefinitionDialogLogic(); 00040 00042 virtual void createConnections(); 00043 00045 virtual void terminateConnections(); 00046 00048 virtual void processObjectCreation(); 00049 00051 virtual void processAltitudeSelectionTypeChanged(const DtAltitudeClampType&); 00052 00054 virtual void processObjectUpdate(); 00055 00057 virtual void processDoneRequest(); 00058 00060 virtual void processCloseRequest(); 00061 00063 virtual void processHeadingChanged(double value); 00064 00066 virtual void processReviewMouseClicks(bool flag); 00067 00069 virtual void processNamePrefixEdited(const std::string& name); 00070 00072 virtual void processPopulateDialogWithCurrentSelection(); 00073 00075 virtual void populateOverlays(); 00076 00078 virtual void populateForces(); 00079 00081 virtual void setForce(int); 00082 00084 virtual void processLocationChanged(); 00085 00087 virtual void processAltitudeAboveSeaLevelEdited(double); 00088 00090 virtual void processAltitudeAboveGroundLevelEdited(double); 00091 00093 virtual void processClampSelectionChanged(double); 00094 00096 virtual void setupGui(); 00097 00099 virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd); 00100 00101 virtual void forceHandlerUpdate(const DtVector& location); 00102 00103 protected: 00104 00106 virtual void cancelDialog(); 00107 00109 virtual void closeDialog(); 00110 00112 virtual void slot_onMouseLocationChanged(const DtVector& loc); 00113 00115 virtual void slot_onMouseHeadingChanged(double heading); 00116 00118 virtual void slot_onMouseAltitudeChanged(double heading); 00119 00121 virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler); 00122 00124 virtual void slot_onPlacement(const DtVector& loc); 00125 00127 virtual void slot_onLocationSet(const DtVector& loc); 00128 00130 virtual void slot_onOverlayNameChanged(const std::string& name); 00131 00133 virtual void slot_onForceChanged(int); 00134 00136 virtual void slot_onStateViewUpdated(); 00137 00139 virtual void slot_displayUnitChanged(makVrv::DtUnitConverterCollection::DisplayUnitType type, int unit, int oldUnit); 00140 00142 virtual void slot_overlayAdded(const std::string&); 00143 00145 virtual void slot_overlayRemoved(const std::string&); 00146 00148 virtual void slot_overlayRenamed(const std::string&, const std::string&); 00149 00152 virtual void slot_displayUnitDecimalsChanged( 00153 makVrv::DtUnitConverterCollection::DisplayUnitType, int, int); 00154 00155 protected: 00156 00157 makVrv::DtDe& myDe; 00158 DtPointObjectDefinitionDialog* myInterface; 00159 int myNameCounter; 00160 makVrv::DtSignalConnectionManager myConnectionManager; 00161 }; 00162 00163 00167 class DT_DLL_VRFGUICOREQT DtPointObjectDefinitionDialog : public DtAutoHideDock, public DtCreateAndEditObjectDialogInterface 00168 { 00169 00170 Q_OBJECT 00171 00172 public: 00173 00175 DtPointObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const std::string title="", DtDialogInteractionMode mode=DtCreationMode); 00176 00178 virtual ~DtPointObjectDefinitionDialog(); 00179 00181 void init(); 00182 00184 virtual void closeDialog(); 00185 00187 virtual QString getName(); 00188 00190 virtual double getHeading(); 00191 00193 virtual DtVector getLocation(); 00194 00196 virtual double getAltitudeAboveSeaLevel() const; 00197 00199 virtual double getAltitudeAboveGroundLevel() const; 00200 00202 virtual void setHeading(double heading); 00203 00205 virtual void setAltitudeAboveTerrain(double altitude); 00206 00208 virtual void setAltitudeAboveSeaLevel( double altitude ); 00209 00211 virtual void setLocation(const DtVector& pt, bool resetAltitude=true); 00212 00214 virtual void setName(const QString& name); 00215 00217 virtual void addOverlay(const QString& name); 00218 00220 virtual void removeOverlay(const QString& name); 00221 00223 virtual void renameOverlay(const QString& oldName, const QString& newName); 00224 00226 virtual void setOverlay(const QString& name); 00227 00229 virtual void clearOverlays(); 00230 00232 virtual void setNameVisible(bool flag); 00233 00235 virtual void setHeadingVisible(bool flag); 00236 00239 virtual void setHeadingDecimalPlaces(int decimalPlaces); 00240 00242 virtual void setHeadingStep(double); 00243 00245 virtual void setAllowOverlaySelection(bool flag); 00246 00248 virtual void setTitle(const QString& title); 00249 00251 virtual void setCreateButtonEnabled(bool flag); 00252 00254 virtual void setCreateButtonText(const QString& text); 00255 00257 virtual void setCreateButtonVisible(bool flag); 00258 00260 virtual void setUpdateButtonEnabled(bool flag); 00261 00263 virtual void setUpdateButtonText(const QString& text); 00264 00266 virtual void setUpdateButtonVisible(bool flag); 00267 00269 virtual void setCancelButtonEnabled(bool flag); 00270 00272 virtual void setCancelButtonVisible(bool flag); 00273 00275 virtual void setCancelButtonText( const QString& text ); 00276 00278 virtual void setAttachObjectToMouseVisible(bool flag); 00279 00281 virtual void setAttachObjectToMouseChecked(bool flag); 00282 00284 virtual bool attachObjectToMouseEnabled(); 00285 00287 virtual void setAttachObjectToMouseEnabled( bool flag ); 00288 00290 virtual DtDialogInteractionMode interactionMode(); 00291 00293 virtual void populate(const makVrv::DtUniqueID&); 00294 00296 virtual void hideDialog(); 00297 00299 DtAltitudeClampType currentAltitudeTypeSelection() const; 00300 00302 virtual void setCurrentAltitudeTypeSelection(const DtAltitudeClampType &); 00303 00305 virtual void setAltitudeAllowed(bool); 00306 00308 virtual void populate(const DtCreateObjectCommand* cmd); 00309 00311 virtual bool blockSignals(bool); 00312 00314 virtual void populateOverlays(); 00315 00317 virtual void populateForces(); 00318 00320 virtual void setForce(int); 00321 00323 virtual void addForce(const QString&, int force); 00324 00326 virtual void hideForces(); 00327 00329 virtual void showForces(); 00330 00332 virtual void clearForces(); 00333 00335 virtual void setReadOnly(bool); 00336 00338 virtual void addExtension(QWidget*); 00339 00341 virtual void removeExtension(QWidget*); 00342 00344 virtual void showPropertiesDialog(bool); 00345 00346 DtLocationEntryWidget* locationEntryWidget() 00347 { 00348 return myLocationWidget; 00349 } 00350 00351 protected: 00352 00354 virtual void setupGui(); 00355 00357 virtual void setupConnections(); 00358 00360 virtual void closeEvent(QCloseEvent *event); 00361 00363 virtual DtPointObjectDefinitionDialogLogic* createLogic(); 00364 00365 protected slots: 00366 00367 virtual void slot_attachObjectToMouseClicked(bool flag); 00368 virtual void slot_onCreateButtonClicked(); 00369 virtual void slot_onUpdateButtonClicked(); 00370 virtual void slot_onDoneButtonClicked(); 00371 virtual void slot_onNamePrefixEdited(); 00372 virtual void slot_onOverlaysComboCurrentIndexChanged(int index); 00373 virtual void slot_onForceComboCurrentIndexChanged(int index); 00374 virtual void slot_onHeadingChanged(double value); 00375 virtual void slot_closePressed(); 00376 virtual void slot_onAltitudeSelectionTypeChanged(const DtAltitudeClampType&); 00377 virtual void slot_onLocationChanged(); 00378 virtual void slot_onAltitudeAboveSeaLevelEdited(double value); 00379 virtual void slot_onAltitudeAboveGroundLevelEdited(double value); 00380 00381 public: 00382 00383 Ui_PointObjectDefinitionWidgetUi myUiImpl; 00384 00385 protected: 00386 00387 DtLocationEntryWidget* myLocationWidget; 00388 DtPointObjectDefinitionDialogLogic* myLogic; 00389 DtDialogInteractionMode myInteractionMode; 00390 QString myDefaultName; 00391 QWidget* myParent; 00392 bool mySettingGuiUp; 00393 bool myBlockSignals; 00394 }; 00395 00396 class DT_DLL_VRFGUICOREQT DtPointObjectDefinitionDialogCreator : public DtVrfObjectModifierDialogCreator 00397 { 00398 public: 00399 virtual DtCreateAndEditObjectDialogInterface* create(makVrv::DtDe& de, QWidget* parent, 00400 DtEntityType entityType, const std::string title="", DtCreationSignalType signalCreate = DtNoCreationSignal, 00401 DtCreateAndEditObjectDialogInterface::DtDialogInteractionMode mode=DtCreateAndEditObjectDialogInterface::DtCreationMode, 00402 const DtVrfObjectManipulationManager::DtEditingType& editType=DtVrfObjectManipulationManager::Context); 00403 }; 00404 }