![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtObserverSettingsPage.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCoreQt/vrvCoreQt.h> 00015 #include <vrvCoreQt/DtPage.h> 00016 #include <vrvCoreQt/DtObserverSettingsInterface.h> 00017 00018 class QComboBox; 00019 class QTreeWidget; 00020 class QTreeWidgetItem; 00021 class QSlider; 00022 class QDoubleSpinBox; 00023 00024 namespace makVrv 00025 { 00026 class DtDe; 00027 class DtSelectInstanceWidget; 00028 class DtObserverSettingsLogic; 00029 class DtPersistenceToolbarWidget; 00030 00033 class DT_DLL_VRVCOREQT DtObserverSettingsPage : public DtPage 00034 , public DtObserverSettingsInterface 00035 { 00036 Q_OBJECT 00037 00038 public: 00039 00041 DtObserverSettingsPage(DtDe& de, QWidget* parent, Qt::WindowFlags f = 0); 00042 00044 virtual ~DtObserverSettingsPage(); 00045 00047 virtual QIcon icon(); 00048 00050 virtual QString title(); 00051 00053 virtual const std::string& pageClassName() const; 00054 00056 static const std::string& thePageClassName(); 00057 00060 virtual int currentObserverIndex() const; 00061 00064 virtual std::string currentObserverName() const; 00065 00068 virtual int findObserverInstanceIndex(const std::string& instanceName); 00069 00071 virtual void setObserverInstanceNames(const std::list<std::string>& instanceNames); 00072 00075 virtual void setCurrentObserverIndex(int i); 00076 00080 virtual void setCurrentObserverInstanceName(const std::string& instanceName) ; 00081 00086 virtual void addObserverInstance(std::string name, int index = -1); 00087 00093 virtual void removeObserverInstance(int i); 00094 00096 virtual void setDeleteObserverEnabled( bool enabled ); 00097 00100 virtual int currentObserverModeIndex() const; 00101 00104 virtual std::string currentObserverModeName() const; 00105 00108 virtual int findObserverModeInstanceIndex( const std::string& instanceName ); 00109 00111 virtual void setObserverModeInstanceNames( const std::list<std::string>& instanceNames ); 00112 00115 virtual void setCurrentObserverModeIndex( int i ); 00116 00120 virtual void setCurrentObserverModeInstanceName( const std::string& instanceName ); 00121 00126 virtual void addObserverModeInstance( std::string name, int index = -1 ); 00127 00128 00134 virtual void removeObserverModeInstance( int i ); 00135 00136 virtual void observerCreateRequestFailed( const std::string& observerName ); 00137 00138 virtual void addModelSet( int modelSet, const std::string& displayName ); 00139 virtual void setCurrentProjection( const std::string& projectionName ); 00140 00141 virtual void setCurrentModelSet( int modelSet ); 00142 virtual void addProjection( const std::string& displayName ); 00143 00144 virtual void addKeyMap( const std::string& displayName ); 00145 virtual void setCurrentKeyMap( const std::string& keyMapName ); 00146 00147 virtual void setOrbitSpeedGainSlider( int gain ); 00148 virtual void setRotationSpeedGainSlider( int gain ); 00149 virtual void setLinearSpeedGainSlider( int gain ); 00150 virtual void setSliderGainPrecision( int precision ); 00151 00152 virtual void setModelScaleFactorSlider( int factor ); 00153 virtual void enableModelScaleFactorSlider( bool enable ); 00154 virtual void setModelScaleFactorSliderMaximum( int maximum ); 00155 00156 virtual void setModelScaleTypeSelector( DtObserverObject::ScaleType scaleType ); 00157 virtual void enableModelScaleTypeSelector( bool enable ); 00158 00159 virtual void setMaxModelScaleFactorSpinBox( double maxScaleFactor ); 00160 virtual void enableMaxModelScaleFactorSpinBox( bool enable ); 00161 00162 virtual void clearObserverSettings(); 00163 virtual void addObserverSetting( int key, const std::string& displayName ); 00164 virtual void setObserverSetting(const std::string& displayName, bool checked ); 00165 00166 protected: 00167 00169 void setupGui(); 00170 00172 virtual void activate(); 00173 00175 virtual void deactivate(); 00176 00178 QString askForObserverModeName(QString initial, const QString& title); 00179 00181 QString askForObserverName(QString initial, const QString& title); 00182 00183 // ** boost signal receivers (from selectObserverInstanceWidget) 00184 00185 virtual void onObserverChanged( int index, const std::string& observerName ); 00186 00187 virtual void onRenameObserverRequested(); 00188 00189 virtual void onNewObserverRequested(); 00190 00191 virtual void onDeleteObserverRequested(); 00192 00193 // ** boost signal receivers (from selectObserverModeInstanceWidget) 00194 00195 virtual void onObserverModeChanged( int index, const std::string& modeName ); 00196 00197 virtual void onRenameObserverModeRequested(); 00198 00199 virtual void onNewObserverModeRequested(); 00200 00201 virtual void onDeleteObserverModeRequested(); 00202 00203 // ** Qt signal receivers (from other Qt components) 00204 00205 protected slots: 00206 00207 virtual void onModelSetChanged( int index ); 00208 virtual void onKeyMapChanged( int index ); 00209 virtual void onProjectionChanged( int index ); 00210 virtual void onTreeItemChanged( QTreeWidgetItem* item, int column ); 00211 virtual void onLinearSpeedGainSliderChanged( int value ); 00212 virtual void onRotationSpeedGainSliderChanged( int value ); 00213 virtual void onOrbitSpeedGainSliderChanged( int value ); 00214 virtual void onModelScaleFactorSliderChanged( int value ); 00215 virtual void onModelScaleTypeChanged( int index ); 00216 virtual void onMaxModelScaleFactorSpinBoxChanged( double value ); 00217 00218 00219 protected: 00220 00221 DtDe& myDe; 00222 DtObserverSettingsLogic* myLogic; 00223 00224 DtSelectInstanceWidget* myObserverSelectInstanceWidget; 00225 DtSelectInstanceWidget* myObserverModeSelectInstanceWidget; 00226 DtPersistenceToolbarWidget* myPersistenceToolbar; 00227 00228 QComboBox* myProjectionComboBox; 00229 QComboBox* myKeyMapComboBox; 00230 QComboBox* myModelSetComboBox; 00231 QSlider* myLinearSpeedGainSlider; 00232 QSlider* myRotationSpeedGainSlider; 00233 QSlider* myOrbitSpeedGainSlider; 00234 QSlider* myModelScaleFactorSlider; 00235 QComboBox* myModelScaleTypeComboBox; 00236 QDoubleSpinBox* myMaxModelScaleFactorSpinBox; 00237 00238 QTreeWidget* myVariableSettingsWidget; 00239 }; 00240 00243 typedef DtPageCreatorTemplate<DtObserverSettingsPage> 00244 DtObserverSettingsPageCreator; 00245 } 00246