![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: behaviorUi.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtBehaviorUi_H_ 00013 #define DtBehaviorUi_H_ 00014 00015 #include "vrfutil/rwList.h" 00016 #include <vlutil/vlString.h> 00017 #include <QtCore/QString> 00018 00019 #include "entityEditorImpl/uiElement.h" 00020 00021 class QWidget; 00022 class DtUiForParameter; 00023 class DtVrfObjectParameters; 00024 class DtlInputStream; 00025 class DtModelSetEntry; 00026 00027 #include "entityEditorImpl/entityEditorImplDefines.h" 00028 00029 class DT_DLL_entityeditorimpl DtBehaviorUi : public DtRwList 00030 { 00031 public: 00032 00034 DtBehaviorUi(); 00035 00036 DtBehaviorUi(const DtString& name, DtReaderWriterRegistry* 00037 parentRegistry = NULL); 00038 00040 virtual ~DtBehaviorUi(); 00041 00043 DtBehaviorUi(const DtBehaviorUi& orig, 00044 DtReaderWriterRegistry* parentRegistry = NULL); 00045 00047 DtBehaviorUi& operator=(const DtBehaviorUi& orig); 00048 00049 virtual bool load(const DtFilename&); 00050 00052 virtual bool load(const QString&); 00053 00054 virtual bool load(DtlInputStream* f); 00055 00056 virtual QWidget* createControlsFor(DtVrfObjectParameters*) const; 00057 virtual void setModelModified(DtModelSetEntry* m); 00058 00059 void setElementChangedCallback(DtElementChangedCallbackFcn f, void* u) { myElementChangedCallback = f; myUserVariable = u; }; 00060 virtual bool isModified() const; 00061 00063 virtual void mergeInto(DtUiForParameter*, const QString& intoParameter, 00064 const QString& nearReaderWriterType, bool after); 00065 00067 virtual QStringList uiSupportedParameters() const; 00068 static void addParameterType(const char* baseParameterType, const char* matchingType); 00069 00070 static DtBehaviorUi* create(const DtString&); 00071 00073 virtual DtUiForParameter* uiForParameter(DtVrfObjectParameters* parameters) const; 00074 virtual QMap<QString, QVariant> uiState() const; 00075 virtual void setUiState(const QMap<QString, QVariant>&); 00076 00077 DtUiForParameter* displaying() { return myDisplaying; }; 00078 00080 virtual void setUiStateFor(const DtString& param, const QMap<QString, QVariant>& uiState); 00081 virtual QMap<QString, QVariant> uiStateFor(const DtString& param) const; 00082 00083 virtual void clearContents(); 00084 00085 virtual void sendEvent(const DtUiElementEvent&); 00086 00087 protected: 00090 virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath, 00091 const DtVariableBindingsList& variableBindings); 00092 00093 virtual void emptyList(); 00094 00095 virtual void copyList(const DtBehaviorUi& orig); 00096 00097 virtual DtUiForParameter* uiForParameter(const DtString&) const; 00098 00099 virtual void mergeParameters(DtUiForParameter*) const; 00100 00101 virtual DtUiForParameter* createUiForParameter(const DtString& s); 00102 00103 protected: 00104 DtElementChangedCallbackFcn myElementChangedCallback; 00105 void* myUserVariable; 00106 mutable DtUiForParameter* myDisplaying; 00107 static QHash<QString, QString> theParameterMatches; 00108 00109 QHash<QString, QMap<QString, QVariant> > myUiStates; 00110 }; 00111 00112 #endif