![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 * Copyright (c) 2010 MAK Technologies, Inc. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 /****************************************************************************** 00006 * $RCSfile: DtObserverSettingsItems.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 *****************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrvCoreQt/vrvCoreQt.h> 00016 #include <vrvCoreQt/DtMenu.h> 00017 #include <vrvCoreQt/DtWidgetBuilder.h> 00018 #include <vrvCoreQt/DtCheckedItem.h> 00019 #include <vrvCore/DtSubjectObserver.h> 00020 #include <QtGui/QToolButton> 00021 #include <QtGui/QMenu> 00022 #include <map> 00023 00024 namespace makVrv 00025 { 00026 00027 class DtInputDriver; 00028 class DtObserver; 00029 class DtObserverModeItem; 00030 class DtObserverModeSettingItem; 00031 class DtObserverAdvancedItem; 00032 class DtObserverModelSetItem; 00033 class DtObserverQMenu; 00034 class DtSetModelSetMenu; 00035 00038 class DT_DLL_VRVCOREQT DtObserverModeSettingItem : public DtMenuItem 00039 { 00040 Q_OBJECT; 00041 public: 00042 DtObserverModeSettingItem(DtDe& de); 00043 00044 virtual ~DtObserverModeSettingItem(); 00045 00047 virtual QAction* createAction(DtDe&, QWidget* parent); 00048 00049 QAction* qAction(); 00050 00052 virtual void on_aboutToShow(); 00053 00054 protected: 00055 00057 virtual void on_triggered(); 00058 00059 protected: 00060 DtDe& myDe; 00061 QAction* myQAction; 00062 }; 00063 00064 00067 class DT_DLL_VRVCOREQT DtSetObserverModeMenu : public DtMenu, 00068 public DtDeObserver 00069 { 00070 public: 00071 DtSetObserverModeMenu(DtDe& de); 00072 00073 virtual ~DtSetObserverModeMenu(); 00074 00076 virtual QMenu* createMenu( DtDe&, QWidget* parent ); 00077 00078 protected: 00079 virtual void setMenuTitle( const QString& observerName ); 00080 00081 // For Display Engine subject observer 00082 virtual void slot_activate( DtDe* subject ); 00083 virtual void slot_deactivate( DtDe* ) {} 00084 00085 virtual void slot_currentObserverChanged( DtInputDriver* inputDriver, 00086 DtObserver* observer ); 00087 virtual void slot_observerDestroyed( DtInputDriver* inputDriver, 00088 DtObserver* observer ); 00089 virtual void slot_observerCreated( DtInputDriver* inputDriver, 00090 DtObserver* observer ); 00091 00092 virtual void slot_observerModeAdded( int modeId ); 00093 virtual void slot_observerModeNameChanged( int modeId ); 00094 virtual void slot_observerModeToBeRemoved( int modeId ); 00095 00096 protected: 00097 typedef std::map<int, DtObserverModeItem*> ItemMap; 00098 00099 QMenu* myMenu; 00100 ItemMap myMenuItems; 00101 }; 00102 00105 class DT_DLL_VRVCOREQT DtObserverModeItem : public DtMenuItem 00106 { 00107 Q_OBJECT; 00108 public: 00109 DtObserverModeItem(DtDe& de); 00110 00111 virtual ~DtObserverModeItem(); 00112 00114 virtual QAction* createAction(DtDe&, QWidget* parent); 00115 00116 QAction* qAction(); 00117 00118 protected: 00119 00121 virtual void on_triggered(); 00122 00124 virtual void on_aboutToShow(); 00125 00126 protected: 00127 DtDe& myDe; 00128 QAction* myQAction; 00129 }; 00130 00131 00134 class DT_DLL_VRVCOREQT DtObserverAdvancedItem : public DtMenuItem 00135 { 00136 Q_OBJECT; 00137 public: 00138 DtObserverAdvancedItem(DtDe& de); 00139 00140 virtual ~DtObserverAdvancedItem(); 00141 00143 virtual QAction* createAction(DtDe&, QWidget* parent); 00144 00145 QAction* qAction(); 00146 00147 protected: 00148 00150 virtual void on_triggered(); 00151 00152 protected: 00153 DtDe& myDe; 00154 QAction* myQAction; 00155 }; 00156 00159 class DT_DLL_VRVCOREQT DtSetModelSetAction 00160 : public QAction 00161 , public DtDeObserver 00162 { 00163 Q_OBJECT; 00164 00165 public: 00166 DtSetModelSetAction( DtDe& de, QWidget* parent ); 00167 virtual ~DtSetModelSetAction(); 00168 00169 protected slots: 00170 00172 virtual void on_aboutToShow(); 00173 00174 protected: 00175 00176 virtual void setIconFromModelSet( int modelSet ); 00177 00178 // Notification that the current observer has changed modes 00179 virtual void slot_observerModeChanged( DtObserver*, int newObserverMode ); 00180 00181 virtual void slot_currentObserverChanged( DtInputDriver*, 00182 DtObserver* observer ); 00183 00184 virtual void slot_observerAboutToBeDestroyed( DtInputDriver*, 00185 DtObserver* observer ); 00186 00187 virtual void slot_observerModeModelSetChanged( int modeId ); 00188 00189 virtual void slot_activate( DtDe* subject ); 00190 00191 virtual void slot_deactivate( DtDe* ) {} 00192 00193 protected: 00194 DtDe& myDe; 00195 DtSetModelSetMenu* mySetModelSetMenu; 00196 DtObserver* myCurrentObserver; 00197 }; 00198 00201 class DT_DLL_VRVCOREQT DtSetModelSetToolButton : public QToolButton 00202 { 00203 public: 00204 DtSetModelSetToolButton( DtDe& de, QWidget * parent = 0 ); 00205 }; 00206 00209 class DT_DLL_VRVCOREQT DtSetModelSetToolButtonBuilder : public DtWidgetBuilder 00210 { 00211 public: 00212 00213 DtSetModelSetToolButtonBuilder(); 00214 virtual ~DtSetModelSetToolButtonBuilder(); 00215 virtual QWidget* create( DtDe& de, QWidget* parent, const Qt::WindowFlags& flags); 00216 }; 00217 00221 class DT_DLL_VRVCOREQT DtObserverMenuModelSetItem : public DtMenuItem 00222 { 00223 Q_OBJECT; 00224 public: 00225 DtObserverMenuModelSetItem(DtDe& de); 00226 00227 virtual ~DtObserverMenuModelSetItem(); 00228 00230 virtual QAction* createAction(DtDe&, QWidget* parent); 00231 00232 QAction* qAction(); 00233 00234 protected: 00235 DtDe& myDe; 00236 QAction* myQAction; 00237 00238 }; 00239 00242 class DT_DLL_VRVCOREQT DtSetModelSetMenu : public DtMenu, public DtDeObserver 00243 { 00244 public: 00245 DtSetModelSetMenu(DtDe& de); 00246 00247 virtual ~DtSetModelSetMenu(); 00248 00250 virtual QMenu* createMenu( DtDe&, QWidget* parent ); 00251 00254 virtual void setCurrentModelSet( int modelSet ); 00255 00256 protected: 00257 virtual void setIconFromModelSet( QAction* action, int modelSet ); 00258 00259 virtual void slot_activate(DtDe* de); 00260 virtual void slot_deactivate(DtDe* de) {} 00261 00262 protected: 00263 // map of model set to item 00264 typedef std::map<int, DtObserverModelSetItem*> ItemMap; 00265 00266 QMenu* myMenu; 00267 ItemMap myMenuItems; 00268 }; 00269 00272 class DT_DLL_VRVCOREQT DtObserverModelSetItem : public DtMenuItem 00273 { 00274 Q_OBJECT; 00275 public: 00276 DtObserverModelSetItem(DtDe& de); 00277 00278 virtual ~DtObserverModelSetItem(); 00279 00281 virtual QAction* createAction(DtDe&, QWidget* parent); 00282 00283 QAction* qAction(); 00284 00285 protected: 00286 00288 virtual void on_triggered(); 00289 00290 protected: 00291 DtDe& myDe; 00292 QAction* myQAction; 00293 }; 00294 00297 class DT_DLL_VRVCOREQT DtObserverSettingItem : public DtCheckedItem, 00298 public DtDeObserver 00299 { 00300 public: 00301 DtObserverSettingItem(DtDe& de, const std::string& itemName, int settingKey ); 00302 00303 virtual ~DtObserverSettingItem(); 00304 00305 //Override create action to connecto to DtDe signals. 00306 QAction* createAction(DtDe& de, QWidget* parent); 00307 00308 protected: 00309 00310 //Set the value due to being triggered. 00311 virtual void setValue(bool value); 00312 00313 //Get the current value. 00314 virtual bool getValue() const; 00315 00316 // Notification that the current observer has changed modes 00317 virtual void slot_observerModeChanged( DtObserver*, int newObserverMode ); 00318 00319 virtual void slot_observerModeModelSetOrIs2DChanged( int modeId ); 00320 00321 virtual void slot_observerModeSettingChanged( int modeId, int settingId ); 00322 00323 virtual void slot_currentObserverChanged( DtInputDriver*, 00324 DtObserver* observer ); 00325 00326 virtual void slot_observerAboutToBeDestroyed( DtInputDriver*, 00327 DtObserver* observer ); 00328 00329 virtual void updateEnabled(); 00330 00331 // For Display Engine subject observer 00332 virtual void slot_activate( DtDe* subject ); 00333 virtual void slot_deactivate( DtDe* ) {} 00334 00335 00336 protected: 00337 DtObserver* myCurrentObserver; 00338 QAction* myQAction; 00339 bool myHasBeenInitialized; 00340 00341 int mySettingKey; 00342 }; 00343 }