![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2012 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/DtCircleObjectDefinitionWidgetUi.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 DtCircleObjectDefinitionDialog; 00026 00030 class DT_DLL_VRFGUICOREQT DtCircleObjectDefinitionDialogLogic 00031 { 00032 00033 public: 00034 00036 DtCircleObjectDefinitionDialogLogic(makVrv::DtDe& de, DtCircleObjectDefinitionDialog* iface); 00037 00039 ~DtCircleObjectDefinitionDialogLogic(); 00040 00042 virtual void createConnections(); 00043 00045 virtual void terminateConnections(); 00046 00048 virtual void processObjectCreation(); 00049 00051 virtual void processObjectUpdate(); 00052 00054 virtual void processDoneRequest(); 00055 00057 virtual void processCloseRequest(); 00058 00060 virtual void processHeadingChanged(double value); 00061 00063 virtual void processXRadiusChanged(double value); 00064 00066 virtual void processYRadiusChanged(double value); 00067 00069 virtual void processReviewMouseClicks(bool flag); 00070 00072 virtual void processNamePrefixEdited(const std::string& name); 00073 00075 virtual void processPopulateDialogWithCurrentSelection(); 00076 00078 virtual void populateOverlays(); 00079 00081 virtual void populateForces(); 00082 00084 virtual void setForce(int); 00085 00087 virtual void processLocationChanged(); 00088 00090 virtual void setupGui(); 00091 00093 virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd); 00094 00095 protected: 00096 00098 virtual void cancelDialog(); 00099 00101 virtual void closeDialog(); 00102 00104 virtual void updateValues(); 00105 00107 virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler); 00108 00110 virtual void slot_onPlacement(const DtVector& loc); 00111 00113 virtual void slot_onLocationSet(const DtVector& loc); 00114 00116 virtual void slot_onOverlayNameChanged(const std::string& name); 00117 00119 virtual void slot_onForceChanged(int); 00120 00122 virtual void slot_displayUnitChanged(makVrv::DtUnitConverterCollection::DisplayUnitType type, int unit, int oldUnit); 00123 00126 virtual void slot_displayUnitDecimalsChanged( 00127 makVrv::DtUnitConverterCollection::DisplayUnitType, int, int); 00128 00129 virtual void updateButtons(); 00130 00131 protected: 00132 makVrv::DtDe& myDe; 00133 DtCircleObjectDefinitionDialog* myInterface; 00134 makVrv::DtSignalConnectionManager myConnections; 00135 int myNameCounter; 00136 }; 00137 00138 00142 class DT_DLL_VRFGUICOREQT DtCircleObjectDefinitionDialog : public DtAutoHideDock, public DtCreateAndEditObjectDialogInterface 00143 { 00144 00145 Q_OBJECT 00146 00147 public: 00148 00150 DtCircleObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const std::string title="", DtDialogInteractionMode mode=DtCreationMode); 00151 00153 virtual ~DtCircleObjectDefinitionDialog(); 00154 00156 void init(const DtEntityType&, const std::string& title, bool forPlan, 00157 DtCreateAndEditObjectDialogInterface::DtDialogInteractionMode, const DtVrfObjectManipulationManager::DtEditingType&); 00158 00160 virtual void closeDialog(); 00161 00163 virtual QString getName(); 00164 00166 virtual double getHeading() const; 00167 00169 virtual double getXRadius() const; 00170 00172 virtual double getYRadius() const; 00173 00175 virtual DtVector getLocation() const; 00176 00178 virtual void setHeading(double heading); 00179 00181 virtual void setXRadius(double); 00182 00184 virtual void setYRadius(double); 00185 00187 virtual void setLocation(const DtVector& pt); 00188 00190 virtual void setName(const QString& name); 00191 00193 virtual void addOverlay(const QString& name); 00194 00196 virtual void setOverlay(const QString& name); 00197 00199 virtual void clearOverlays(); 00200 00202 virtual void setNameVisible(bool flag); 00203 00205 virtual void setHeadingDecimalPlaces(int decimalPlaces); 00206 00208 virtual void setDistanceDecimalPlaces(int); 00209 00211 virtual void setDistanceUnits(const makVrv::DtUnicode&); 00212 00214 virtual void setHeadingStep(double); 00215 00217 virtual void setAllowOverlaySelection(bool flag); 00218 00220 virtual void setTitle(const QString& title); 00221 00223 virtual void setCreateButtonEnabled(bool flag); 00224 00226 virtual void setHeadingEnabled(bool flag); 00227 00229 virtual void setXRadiusEnabled(bool flag); 00230 00232 virtual void setYRadiusEnabled(bool flag); 00233 00235 virtual void setCreateButtonText(const QString& text); 00236 00238 virtual void setCreateButtonVisible(bool flag); 00239 00241 virtual void setYRadiusVisible(bool); 00242 00244 virtual void setUpdateButtonEnabled(bool flag); 00245 00247 virtual void setUpdateButtonText(const QString& text); 00248 00250 virtual void setUpdateButtonVisible(bool flag); 00251 00253 virtual void setCancelButtonEnabled(bool flag); 00254 00256 virtual void setCancelButtonVisible(bool flag); 00257 00259 virtual void setCancelButtonText( const QString& text ); 00260 00262 virtual DtDialogInteractionMode interactionMode(); 00263 00265 virtual void populate(const makVrv::DtUniqueID&); 00266 00268 virtual void hideDialog(); 00269 00271 virtual void populate(const DtCreateObjectCommand* cmd); 00272 00274 virtual bool blockSignals(bool); 00275 00277 virtual void populateOverlays(); 00278 00280 virtual void populateForces(); 00281 00283 virtual void setForce(int); 00284 00286 virtual void addForce(const QString&, int force); 00287 00289 virtual void hideForces(); 00290 00292 virtual void showForces(); 00293 00295 virtual void clearForces(); 00296 00298 virtual void setReadOnly(bool); 00299 00301 virtual void addExtension(QWidget*); 00302 00304 virtual void removeExtension(QWidget*); 00305 00307 virtual void showPropertiesDialog(bool); 00308 00310 virtual void setAttachObjectToMouse(bool); 00311 00312 protected: 00313 00315 virtual void setupGui(); 00316 00318 virtual void setupConnections(); 00319 00321 virtual void closeEvent(QCloseEvent *event); 00322 00324 virtual DtCircleObjectDefinitionDialogLogic* createLogic(); 00325 00326 protected slots: 00327 00328 virtual void slot_attachObjectToMouseClicked(bool flag); 00329 virtual void slot_onCreateButtonClicked(); 00330 virtual void slot_onUpdateButtonClicked(); 00331 virtual void slot_onDoneButtonClicked(); 00332 virtual void slot_onNamePrefixEdited(); 00333 virtual void slot_onOverlaysComboCurrentIndexChanged(int index); 00334 virtual void slot_onForceComboCurrentIndexChanged(int index); 00335 virtual void slot_onHeadingChanged(double value); 00336 virtual void slot_onXRadiusChanged(const QString&); 00337 virtual void slot_onYRadiusChanged(const QString&); 00338 virtual void slot_closePressed(); 00339 virtual void slot_onLocationChanged(); 00340 00341 public: 00342 00343 Ui_DtCircleObjectDefinitionWidgetUi myUiImpl; 00344 00345 protected: 00346 00347 DtLocationEntryWidget* myLocationWidget; 00348 DtCircleObjectDefinitionDialogLogic* myLogic; 00349 DtDialogInteractionMode myInteractionMode; 00350 QString myDefaultName; 00351 QWidget* myParent; 00352 bool mySettingGuiUp; 00353 bool myBlockSignals; 00354 }; 00355 00356 class DT_DLL_VRFGUICOREQT DtCircleObjectDefinitionDialogCreator : public DtVrfObjectModifierDialogCreator 00357 { 00358 public: 00359 virtual DtCreateAndEditObjectDialogInterface* create(makVrv::DtDe& de, QWidget* parent, 00360 DtEntityType entityType, const std::string title="", DtCreationSignalType signalCreate = DtNoCreationSignal, 00361 DtCreateAndEditObjectDialogInterface::DtDialogInteractionMode mode=DtCreateAndEditObjectDialogInterface::DtCreationMode, 00362 const DtVrfObjectManipulationManager::DtEditingType& editType=DtVrfObjectManipulationManager::Context); 00363 }; 00364 }