VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/vrfObjectModifierDialogManager.h
Go to the documentation of this file.
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 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)