![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2000 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: tmWindow.h,v $ $Revision: 1.84 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef TMWINDOW_H 00013 #define TMWINDOW_H 00014 00015 #include "tmqt/tmqtDefines.h" 00016 #include "tmqt/baseWindow.h" 00017 #include "drawerNative/convUtils.h" 00018 00019 #include <QtCore/QDateTime> 00020 00021 class QBoxLayout; 00022 class DtMenuWidget; 00023 class DtNavigationWidget; 00024 class DtTMMapArea; 00025 class DtTMMiniMap; 00026 class DtTMRubberBand; 00027 class QContextMenuEvent; 00028 class DtTMFactory; 00029 class DtTMDisplayOptions; 00030 class QPushButton; 00031 class DtModelData; 00032 class QColor; 00033 class DtUtilityBar; 00034 class DtFilter; 00035 class QAction; 00036 class DtTMWatermark; 00037 class QVBoxLayout; 00038 class QHBoxLayout; 00039 class DtToolbarFactoryManager; 00040 class DtOutputAreaWidget; 00041 class DtMsgGuiPrinter; 00042 00043 class DT_DLL_tmqt DtTMWindow : public DtBaseWindow 00044 { 00045 00046 friend class DtFactory; 00047 00048 Q_OBJECT 00049 00050 public: 00051 00053 DtTMWindow(QWidget* parent = NULL, const Qt::WindowFlags& flags = 0); 00054 00056 virtual ~DtTMWindow(); 00057 00059 virtual bool init(const DtTMFactory* f, DtTMMiniMap* m = 0, int mode = DtWindow_NoAction); 00060 00061 virtual void setMouseOverActive(bool b); 00062 00065 virtual void setObjectSelectionMode(const DtFilter* f = NULL); 00066 00067 public: 00068 00070 static DtBaseWindow* create(QWidget* parent, const Qt::WindowFlags& f); 00071 00072 signals: 00073 00075 00076 void isActive(); 00077 00078 void navigationAction(int); 00079 00082 void selectionModeChanged(DtBaseWindow*); 00083 00084 public: 00086 00094 virtual QDockWidget* addUtilityToolbar(QWidget* w, const QString& tab); 00095 virtual QDockWidget* addToolbar(QWidget* w, const Qt::DockWidgetArea&); 00096 00098 virtual void setWindowName(const QString&); 00099 00104 virtual QAction* addViewToolbar(QWidget*, const QString& itemName, const QString& addToMenu, DtMenuItemType& retId); 00105 00106 virtual QAction* addMenuItem(const QString& itemName, 00107 const QString& addToMenu, DtMenuItemType& retId, 00108 bool isToggle = false, QObject* actionReceiver = NULL, 00109 const char* slot = NULL, 00110 QObject* validatorReceiver = NULL, const char* validator = NULL, 00111 const QString& tooltip = QString::null, 00112 const QString& accelerator = QString::null, bool addSep = false); 00113 00115 virtual void appendMenuValidator(const QString& menuName, const QString& itemName, 00116 QObject* validatorReceiver, char* validator); 00117 00120 virtual void addViewToolbarMapping(int, QWidget*); 00121 00122 virtual DtOutputAreaWidget* outputArea(); 00123 00124 DtToolbarFactoryManager* toolbarFactoryManager(); 00125 DtToolbarFactoryManager* backupToolbarFactoryManager(); 00126 00128 virtual void mergeToolbarManager(const DtToolbarFactoryManager&, bool removeMissingToolbars = true); 00129 00132 virtual void revertToolbars(); 00133 00134 public slots: 00135 virtual void setRubberBandColor(); 00136 virtual void setActiveRubberBandColor(); 00137 virtual void setInactiveRubberBandColor(); 00138 virtual void setGlobalActiveRubberBandColor(); 00139 virtual void setGlobalInactiveRubberBandColor(); 00140 00142 virtual void updateFilenameInUse(const QString& s); 00143 00144 virtual void setZoomToExtentsNavigationConnection(); 00145 00146 protected slots: 00147 virtual void navWidgetDestroyed(); 00148 virtual void toolbarDestroyed(); 00149 virtual void toolbarContextMenu(QWidget* bar, QContextMenuEvent*); 00150 00151 protected: 00152 00154 virtual bool initCaption(); 00155 00157 virtual bool initStatusBar(); 00158 00160 virtual bool initWindowName(); 00161 00163 virtual bool initFromFactory(const DtTMFactory* f); 00164 00166 virtual bool initMiniMap(const DtTMFactory* f, QDockWidget* parent = 0); 00167 00168 virtual void initOutputBar(); 00169 00171 virtual bool createFromFactory(const DtTMFactory* f); 00172 00174 virtual unsigned createMapArea(const DtTMFactory* f); 00175 00177 virtual bool initToolbars(); 00178 00180 virtual bool initConnections(); 00181 00182 virtual bool event( QEvent * e); 00183 00184 virtual void enterEvent( QEvent * e); 00185 00186 virtual void initViewMenuToolbarMap(); 00187 00189 virtual void setFullScreenMode(bool b); 00190 00192 virtual QTextStream& read(QTextStream& ts); 00193 00195 virtual void setRubberBandColor(DtTMMiniMap* mini); 00196 virtual void setRubberBandColor(DtTMRubberBand* band); 00197 virtual void setRubberBandColor(const QColor& color); 00198 00199 virtual DtNavigationWidget* navigationWidget(); 00200 00207 virtual bool createUtilityToolBar(); 00208 00210 virtual QTextStream& write(QTextStream& ts); 00211 00213 virtual void processSelectionChanged(const QVector<DtModelKey>& list); 00214 virtual void updateValidActions(); 00215 00217 bool eventFilter(QObject *o, QEvent *e); 00218 00220 virtual void installWatermark(); 00221 00223 virtual void postProcessOptions(); 00224 00225 virtual void hideAllToolbars(); 00226 00229 virtual bool passKeyEventToMapArea(QKeyEvent*) const; 00230 00233 virtual void createCentralWidgetArea(QWidget* parent, const DtTMFactory* f); 00234 00236 virtual QBoxLayout* createMasterLayout(); 00237 00239 virtual QWidget* createCentralWidget(QWidget* parent); 00240 00244 virtual void createAndInitializeToolbarFactory(const DtTMFactory*); 00245 00247 virtual void initToolbarFactory(); 00248 virtual void initializeMinimapColorToolbar(); 00249 00250 virtual void addDefaultShortcutsAndIcons(const DtTMFactory* f); 00251 00252 virtual void initFromAppSettings(); 00253 00255 virtual void createUserDefinedToolbars(); 00256 00257 private: 00259 DtTMWindow(const DtTMWindow& orig); 00260 00262 DtTMWindow& operator=(const DtTMWindow& rhs); 00263 00264 protected: 00265 DtUtilityBar* myUtilityBar; 00266 00267 DtToolbarFactoryManager* myToolbarFactoryManager; 00268 DtToolbarFactoryManager* myBackupToolbarFactoryManager; 00269 00270 QDockWidget* myTMMiniMapToolBar; 00271 QDockWidget* myOutputToolBar; 00272 DtOutputAreaWidget* myOutputArea; 00273 QToolBar* myRubberBandColorToolBar; 00274 QDockWidget* myNavigationToolBar; 00275 00278 bool myMouseOverActive; 00279 00280 QString myWindowName; 00281 00282 QBoxLayout* myMasterLayout; 00283 QWidget* myCanvas; 00284 DtNavigationWidget* myNavigationWidget; 00285 00286 DtTMWatermark* myWatermark; 00287 DtMsgGuiPrinter* myGuiPrinter; 00288 }; 00289 00290 inline DtToolbarFactoryManager* DtTMWindow::toolbarFactoryManager() 00291 { 00292 return myToolbarFactoryManager; 00293 } 00294 00295 inline DtToolbarFactoryManager* DtTMWindow::backupToolbarFactoryManager() 00296 { 00297 return myBackupToolbarFactoryManager; 00298 } 00299 00300 #endif 00301