VR-Forces 4.0.4 Class Documentation
include/vrvCoreQt/DtObserverSettingsItems.h
Go to the documentation of this file.
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 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)