![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtQtDeMainWindow.h,v $ $Revision: 1.42 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCoreQt/vrvCoreQt.h> 00015 #include <vrvCore/DtDeMainWindow.h> 00016 #include <vrvCore/DtObserverObject.h> 00017 #include <vrvCore/DtSubjectObserver.h> 00018 #include <QtGui/QMainWindow> 00019 00020 class QAction; 00021 00022 namespace makVrv 00023 { 00024 00025 class DtDe; 00026 class DtQtKeyAdapter; 00027 class DtDriverManager; 00028 class DtInputDriver; 00029 class DtDriver; 00030 00035 class DT_DLL_VRVCOREQT DtQtDeMainWindow : public QMainWindow, 00036 public DtDeMainWindow 00037 { 00038 Q_OBJECT; 00039 00040 public: 00041 00042 static const char* ContainerPlaceHolderString; 00043 00044 friend class DtQtDeMainWindowProvider; 00045 00047 virtual ~DtQtDeMainWindow(); 00048 00050 virtual void setApplicationTitle(const std::string& appName); 00051 00053 virtual std::string applicationTitle() const; 00054 00056 virtual void setApplicationIcon(const std::string& iconName); 00057 00059 virtual void setShowQuitDialogOnClose(bool); 00060 00062 virtual QDockWidget* dockComponent(QWidget* component, 00063 Qt::DockWidgetArea area = Qt::LeftDockWidgetArea); 00064 00066 virtual QToolBar* dockComponent(QWidget* component, 00067 Qt::ToolBarArea area = Qt::LeftToolBarArea); 00068 00070 virtual void setMainWidget(QWidget* widget, DtQtKeyAdapter* keyAdapter = 0); 00071 00073 virtual void removeMainWidget(); 00074 00075 virtual QWidget* mainWidget(); 00076 00078 virtual void destroyWindow(); 00079 00081 virtual void quit(); 00082 00084 virtual bool isToggledAsFullScreen(); 00085 00089 virtual void toggleFullScreen(); 00090 00092 virtual void slot_onDisplayEngineConfigurationRealized( 00093 const std::string& igName, const std::string& displayName); 00094 00096 virtual int screenNumber() const; 00097 00098 signals: 00099 00102 void signal_fullScreenToggled(); 00103 00104 protected: 00105 00107 DtQtDeMainWindow(DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0); 00108 00109 virtual bool event(QEvent* event); 00110 00111 virtual void keyPressEvent( QKeyEvent* event ); 00112 virtual void keyReleaseEvent( QKeyEvent* event ); 00113 00116 virtual void closeEvent(QCloseEvent *event); 00117 00121 void slot_onWindowToBeDestroyed(); 00122 00125 void displayLabelInCentralWidget(); 00126 00130 void slot_onWindowCreated(); 00131 00133 void hideAllVisibleDockableWidgets(); 00134 00137 void showAllVisibleDockableWidgets(); 00138 00140 void configureTabbedDockComponents(); 00141 00142 protected: 00143 00144 DtQtKeyAdapter* myKeyAdapter; 00145 bool myFullScreen; 00146 QObjectList myVisibleButHiddenDockableWidgets; 00147 DtInputDriver* myInputDriver; 00148 bool myShowQuitDialogOnClose; 00149 }; 00150 00154 class DT_DLL_VRVCOREQT DtQtDeMainWindowProvider : public DtDeMainWindowProvider 00155 { 00156 00157 public: 00158 00160 DtQtDeMainWindowProvider(DtDe& de); 00161 00163 virtual ~DtQtDeMainWindowProvider(); 00164 00165 protected: 00166 00169 virtual DtDeMainWindow* createMainWindow(DtDe& de); 00170 00171 }; 00172 }