![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: entityEditorWindow.h,v $ $Revision: 1.13 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DTENTITYEDITORWINDOW_H_ 00013 #define DTENTITYEDITORWINDOW_H_ 00014 00015 #include "tmqt/tmWindow.h" 00016 #include <vrfExtProtocol/objType.h> 00017 00018 #include <QtCore/QMap> 00019 #include <QtCore/QVariant> 00020 00021 class DtEntityEditorCanvas; 00022 class DtEntityEditorList; 00023 class DtVrfObjectParameters; 00024 class DtBehaviorUi; 00025 class DtFilename; 00026 class DtRwForces; 00027 class DtRwNLengthStringVector; 00028 class DtModelSetEntry; 00029 class DtUiElementEvent; 00030 class DtVrfSubObjectParameterList; 00031 00032 #include "entityEditorImpl/entityEditorImplDefines.h" 00033 00034 class DT_DLL_entityeditorimpl DtSelectedModelInfo 00035 { 00036 public: 00037 DtSelectedModelInfo() : mySelectedModel(0) {}; 00038 DtSelectedModelInfo(DtModelSetEntry* m, const QMap<QString, QVariant>& state) : 00039 mySelectedModel(m), myUiState(state) {}; 00040 DtSelectedModelInfo(const DtSelectedModelInfo& orig) : mySelectedModel(orig.mySelectedModel), 00041 myUiState(orig.myUiState) {}; 00042 00043 DtSelectedModelInfo& operator=(const DtSelectedModelInfo& rhs) { mySelectedModel = rhs.mySelectedModel; 00044 myUiState = rhs.myUiState; return *this; }; 00045 00046 void clear() { mySelectedModel = 0; myUiState.clear(); }; 00047 00048 DtModelSetEntry* mySelectedModel; 00049 QMap<QString, QVariant> myUiState; 00050 }; 00051 00052 class DT_DLL_entityeditorimpl DtEntityEditorWindow : public DtTMWindow 00053 { 00054 Q_OBJECT 00055 00056 public: 00057 00059 DtEntityEditorWindow(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00060 00062 virtual ~DtEntityEditorWindow(); 00063 00064 public: 00065 00067 static DtBaseWindow* create(QWidget* parent, const Qt::WindowFlags& flags); 00068 00069 virtual void setEntryModified(DtVrfObjectParameters*, bool b); 00070 virtual void setModelModified(DtModelSetEntry*); 00071 00072 virtual bool canCreateExisting() const; 00073 virtual bool canRevertExisting() const; 00074 virtual bool canDeleteExisting() const; 00075 00076 virtual DtObjectType selectedObjectType() const; 00077 00078 static void setBehaviorUiFile(const QString&); 00079 00080 DtBehaviorUi* behaviorUi(); 00081 00082 virtual void getCategorySelections(DtRwForces&, DtRwNLengthStringVector&); 00083 00084 virtual void selectModel(DtModelSetEntry*, 00085 const QMap<QString, QVariant>& uiState); 00086 00088 virtual void postSelectModel(DtModelSetEntry*, 00089 const QMap<QString, QVariant>& ); 00090 00092 virtual QMap<QString, QVariant> uiState() const; 00093 virtual void setUiState(const QMap<QString, QVariant>&); 00094 00095 virtual QString selectedCategory() const; 00096 00097 public slots: 00098 virtual void preSimulationModelSetSave(); 00099 virtual void deleteExisting(); 00100 virtual void revertExisting(); 00101 virtual void opdEntryAdded(DtVrfObjectParameters*, DtModelSetEntry*); 00102 virtual void parameterChanged(const DtVrfObjectParameters*, const DtObjectType&, const DtObjectType&); 00103 virtual void simulationModelSetLoaded(); 00104 virtual void selectEntity(); 00105 00106 protected slots: 00107 virtual void simulationModelSetSaved(); 00108 00109 protected: 00111 virtual void createOverlayBar(const DtTMFactory* f); 00112 virtual bool createMiniMap(const DtTMFactory* f); 00113 virtual bool init(const DtTMFactory* f, DtTMMiniMap* m, int mode = DtWindow_NoAction); 00114 virtual bool initToolbars(); 00115 virtual void createBehaviorUi(const DtFilename&); 00116 virtual void closeEvent(QCloseEvent* e); 00117 virtual bool initWindowName(); 00118 virtual void tick(); 00119 00120 virtual bool changeSubordinate(DtVrfSubObjectParameterList*, const DtObjectType& oldType, const DtObjectType& newType); 00121 00122 protected slots: 00123 virtual void itemStatusChanged(); 00124 virtual void categoriesModified(); 00125 virtual void updateUiSaveState(const DtUiElementEvent&); 00126 virtual void uiEvent(const DtUiElementEvent&); 00127 00128 protected: 00129 DtEntityEditorCanvas* myEntityEditorCanvas; 00130 DtEntityEditorList* myTree; 00131 DtBehaviorUi* myBehaviorUi; 00132 bool myFirstTick; 00133 DtSelectedModelInfo mySelectModel; 00134 bool myClosing; 00135 }; 00136 00137 inline DtBehaviorUi* DtEntityEditorWindow::behaviorUi() 00138 { 00139 return myBehaviorUi; 00140 } 00141 00142 #endif 00143