![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: uiMultiSystemElement.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef uiMultiSystemElement_h 00015 #define uiMultiSystemElement_h 00016 00017 #include "entityEditorImpl/uiSystemElement.h" 00018 #include "ui_systemSelectionDialogUi.h" 00019 #include "entityEditorImpl/entityEditorImplDefines.h" 00020 #include "entityEditorImpl/systemPropertyEditDialog.h" 00021 00022 class QListWidget; 00023 class DtComponentSystemDescriptor; 00024 class QAbstractButton; 00025 class QFrame; 00026 class DtSystemSelectionDialog; 00027 00028 class DT_DLL_entityeditorimpl DtUiMultiSystemElement : public DtUiSystemElement 00029 { 00030 public: 00031 00033 DtUiMultiSystemElement(const DtString& name, 00034 DtReaderWriterRegistry* const parentRegistry = NULL); 00035 00037 virtual ~DtUiMultiSystemElement(); 00038 00040 DtUiMultiSystemElement(const DtUiMultiSystemElement& orig); 00041 00043 DtUiMultiSystemElement& operator=(const DtUiMultiSystemElement& orig); 00044 00046 virtual void chooseSystemToAdd(); 00047 00049 virtual void addSystem(const DtSystemDefinitionInfo& sysDefInfo); 00050 00052 virtual void removeSystem(); 00053 00054 virtual void openPropertyEditWindow(); 00055 00056 virtual bool isModified() const; 00057 00058 virtual void decorateElement(); 00059 00061 virtual void onSelectionChanged(); 00062 00063 protected: 00064 virtual void setFromParameters(DtReaderWriter* parentRw); 00065 virtual DtReaderWriterRegistryData* value(DtReaderWriter* parentRw); 00066 virtual void processUiEvent(const DtUiElementEvent&); 00067 00068 virtual QWidget* createLabelWidget(QWidget* parent) {return 0;}; 00069 00070 virtual QWidget* createControls(QWidget*); 00071 00072 virtual void createSystemSignalHandler(); 00073 00074 virtual void elementChanged(); 00075 00077 virtual QString uniqueDisplayName(const QString& baseName); 00078 00079 virtual DtSystemSelectionDialog* createSystemSelectionDialog(QWidget* p); 00080 00082 virtual QString getOpdEditorArguments() const; 00083 virtual void dialogDone(bool); 00084 00085 protected: 00086 virtual DtUiElement* clone(); 00087 00088 protected: 00089 DtSystemPropertyEditDialogShdPtr myCurrentDialog; 00090 QListWidget* myList; 00091 QAbstractButton* myAddButton; 00092 QAbstractButton* myRemoveButton; 00093 QAbstractButton* myPropertiesButton; 00094 QAbstractButton* myLaunchOpdEditor; 00095 typedef std::list<DtComponentSystemDescriptor*> DtSystemDescriptorList; 00098 DtSystemDescriptorList mySystemDescriptors; 00099 QFrame* myFrame; 00100 QLabel* myLabel; 00101 }; 00102 00104 00105 class DT_DLL_entityeditorimpl DtSystemSelectionDialog : public QDialog 00106 { 00107 Q_OBJECT 00108 public: 00109 DtSystemSelectionDialog(QWidget* parent, Qt::WindowFlags f = 0); 00110 virtual ~DtSystemSelectionDialog(); 00111 00112 virtual void setAvailableSystems(const DtSystemDefinitionInfoList& availableSystems); 00113 00114 protected slots: 00115 virtual void selectionChanged(QListWidgetItem* current, QListWidgetItem* previous); 00116 virtual void accept(); 00117 virtual void itemDoubleClicked(QListWidgetItem* item); 00118 00119 signals: 00120 void addSystem(const DtSystemDefinitionInfo&); 00121 00122 protected: 00123 Ui::DtSystemSelectionDialogUi myUiImpl; 00124 }; 00125 00126 00127 class DtUiMultiSystemElementSignalHandler : public DtUiSystemElementSignalHandler 00128 { 00129 Q_OBJECT 00130 00131 public: 00132 DtUiMultiSystemElementSignalHandler(); 00133 00134 public slots: 00135 virtual void chooseSystemToAdd(); 00136 virtual void addSystem(const DtSystemDefinitionInfo& systemDefInfo); 00137 virtual void removeSystem(); 00138 virtual void onSelectionChanged(); 00139 virtual void onItemDoubleClicked(QListWidgetItem* item); 00140 00141 }; 00142 00143 Q_DECLARE_METATYPE(DtSystemDefinitionInfo); 00144 Q_DECLARE_METATYPE(DtComponentSystemDescriptor*); 00145 00146 00147 #endif