![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00014 #include <vrfGuiCoreQt/createAndEditObjectDialogInterface.h> 00015 #include <vrfGuiCore/DtVrfObjectManipulationManager.h> 00016 #include <vrfGuiCore/DtOrderedEntityTypeList.h> 00017 00018 #include <vrfExtProtocol/objType.h> 00019 00021 #include <vrvCore/DtUserInterfaceAssembler.h> 00022 #include <vrvCoreQt/DtQtDeMainWindow.h> 00023 #include <vrvUtil/signalslib.h> 00024 #include <vrvUtil/DtVirtualBaseClass.h> 00025 00027 #include <map> 00028 00029 class DtEntityType; 00030 class QWidget; 00031 class QMainWindow; 00032 00033 namespace makVrv 00034 { 00035 class DtDe; 00036 } 00037 00038 namespace makVrf 00039 { 00040 class DtPointObjectDefinitionDialog; 00041 class DtCreateAndEditObjectDialogInterface; 00042 class DtVrfObjectModifierDialogCreator; 00043 class DtObjectDefinitionDialogCreationParameters; 00044 00045 00046 00052 class DT_DLL_VRFGUICOREQT DtVrfObjectModifierDialogManager : public makVrv::DtVirtualBaseClass 00053 { 00054 typedef DtOrderedEntityTypeList<DtObjectDefinitionDialogCreationParameters*> VrfCreateAndEditDialogCreators; 00055 00056 public: 00057 00059 DtVrfObjectModifierDialogManager(makVrv::DtDe&, makVrv::DtQtDeMainWindow* mainWindow); 00060 00062 ~DtVrfObjectModifierDialogManager(); 00063 00065 static DtVrfObjectModifierDialogManager& instance(makVrv::DtDe& de); 00066 00068 virtual void connectToCreationManager(); 00069 00071 virtual void connectToEditingManager(); 00072 00074 virtual void disconnectFromCreationManager(); 00075 00077 virtual void disconnectFromEditingManager(); 00078 00081 virtual void setShowDialogs(bool flag); 00082 00084 virtual void populateDialogFromStmt(const DtCreateObjectCommand* cmd); 00085 00087 virtual void addDialogCreationFcnForKind(DtEntityType, DtObjectDefinitionDialogCreationParameters*); 00088 00090 virtual void removeDialogCreationFcnForKind(DtEntityType); 00091 00092 protected: 00093 00095 virtual void slot_creatingObject(const DtEntityType& type, int force, DtCreationSignalType signalCreate = DtNoCreationSignal); 00096 00098 virtual void slot_creatingTerrainProp(); 00099 00101 virtual void slot_creationStopped(); 00102 00104 virtual void slot_editingObject(const makVrv::DtUniqueID&, const DtVrfObjectManipulationManager::DtEditingType&); 00105 00107 virtual void slot_editingTerrainProp(const makVrv::DtUniqueID&, const DtVrfObjectManipulationManager::DtEditingType&); 00108 00110 virtual void slot_editingStopped(); 00111 00113 virtual void destroyPropertiesDlg(); 00114 00117 virtual DtObjectDefinitionDialogCreationParameters* lookupCreatorFromEntityType(const DtEntityType& ent); 00118 00119 virtual std::string findEntityTypeName(const DtEntityType& ent); 00120 00121 protected: 00122 00123 makVrv::DtDe& myDe; 00124 QMainWindow* myMainWindow; 00125 DtCreateAndEditObjectDialogInterface* myObjectPropertiesDlg; 00127 VrfCreateAndEditDialogCreators myDialogCreators; 00128 bool myManualEdit; 00129 bool myShowDialogs; 00130 }; 00131 00132 00134 //entity-specific flags important to the dialog creation process 00135 00136 class DT_DLL_VRFGUICOREQT DtObjectDefinitionDialogCreationParameters 00137 { 00138 public : 00139 00140 DtObjectDefinitionDialogCreationParameters(DtVrfObjectModifierDialogCreator* objectModifierDialogCreatorIn, bool forceDialogToAppearInPlansIn = false); 00141 00142 ~DtObjectDefinitionDialogCreationParameters(); 00143 00144 DtVrfObjectModifierDialogCreator* objectModifierDialogCreator(); 00145 00146 bool forceDialogToAppearInPlans(); 00147 00148 void setObjectModifierDialogCreator(DtVrfObjectModifierDialogCreator* inputObjectModifierDialogCreator); 00149 00150 void setForceDialogToAppearInPlans(bool inputForceDialogToAppearInPlans); 00151 00152 virtual DtObjectDefinitionDialogCreationParameters* clone(); 00153 00154 protected: 00155 00156 DtVrfObjectModifierDialogCreator* myObjectModifierDialogCreator; 00157 00158 //This flag overrides previous user input regarding whether the create autohide dialog 00159 //is closed in plan-based object creation and all kinds of object edits. 00160 //The default is "false" but control objects are generally set to "true" 00161 00162 bool myForceDialogToAppearInPlans; 00163 00164 }; 00165 00166 00167 00168 00169 }