VR-Forces 4.0.4 Class Documentation
include/tmqt/baseWindow.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2000 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: baseWindow.h,v $ $Revision: 1.63 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef BASEWINDOW_H_
00013 #define BASEWINDOW_H_
00014 
00016 #include "tmqt/tmMapArea.h" 
00017 #include "tmqt/tmRubberBand.h"
00018 #include "archiver/archiver.h"
00019 #include "vrfGuiCore/menuItems.h"
00020 #include "tmqt/tmApplication.h"
00021 
00023 #include <QtGui/QMainWindow>
00024 #include <QtCore/QList>
00025 #include <QtCore/QDateTime>
00026 #include <QtCore/QHash>
00027 
00028 class DtTMMiniMap;
00029 class DtTMFactory;
00030 class DtFeatureActionManager;
00031 class DtEventController;
00032 class DtMenuWidget;
00033 class DtContextMenu;
00034 class DtStdContextMenu;
00035 class QToolBar;
00036 class DtSymbol;
00037 class QAction;
00038 class DtPopupMenu;
00039 
00047 #include "tmqt/tmqtDefines.h"
00048 class DT_DLL_tmqt DtBaseWindow : public QMainWindow
00049 {
00050 Q_OBJECT
00051 
00052 public:
00053    DtBaseWindow (QWidget* parent = NULL, const Qt::WindowFlags& flags = 0);
00054    virtual ~DtBaseWindow();
00055    
00060    virtual bool init(const DtTMFactory* f, DtTMMiniMap* m = 0, int mode = DtWindow_NoAction);
00061    
00063    virtual bool createMiniMap(const DtTMFactory* f);
00064 
00066    virtual bool initMiniMap(const DtTMFactory* f, QDockWidget* parent = 0);
00067 
00071    virtual DtTMMapArea* areaMap(unsigned value = 0) const;
00072 
00075    virtual DtTMMapArea* activeMap() const;
00076 
00077 
00080    virtual DtTMRubberBand* rubberBand(unsigned value = 0) const;
00081 
00084    virtual DtTMRubberBand* rubberBand(DtTMMapArea*) const;
00085 
00087    virtual unsigned numberOfMapAreas();
00088 
00090    virtual DtTMMiniMap* miniMap() const;
00091 
00095    virtual void loadDatabaseFile(const QString& f);
00096 
00098    virtual bool initMapArea(DtTMMapArea* area, const DtTMFactory* f);
00099 
00101    virtual bool initAllMapAreas(const DtTMFactory* f);
00102 
00103 
00106    virtual void toggleMinimap(bool b);
00107 
00109    virtual void closeEvent(QCloseEvent* e);
00110 
00111    //------------------
00113    virtual bool shouldTick();
00114    
00116    virtual void markForUpdate(const DtModelData& data);
00117    virtual void markForUpdate(DtModelDataIter* iter);
00118 
00120    virtual void removeFromUpdate(const DtModelData& data);
00121 
00123    virtual void markAllForUpdate();
00124 
00126    virtual void removeAllForUpdate();
00127 
00129    virtual void setDisplayFrameRate(int);
00130 
00132    virtual int displayFrameRate() const;
00133 
00134    //------------------
00135    
00136    virtual DtEventController& eventController();
00137    virtual const DtEventController& eventController() const;
00138 
00139    virtual double elapsedRunTime() const;
00140    virtual double numberOfFrames() const;
00141 
00142    virtual DtMenuWidget* menuWidget();
00143    virtual DtStdContextMenu* contextMenus();
00144 
00149    virtual void setFullScreenMode(bool b);
00150 
00153    virtual bool hasViewToolbar(int type) const;
00154    virtual QWidget* toolbarFor(int type);
00155    virtual bool hasViewToolbar(QWidget*) const;
00156    virtual int toolbarMenuId(QWidget*) const;
00157 
00159    virtual QTextStream& write(QTextStream& ts);
00160    virtual QTextStream& read(QTextStream& ts);
00161 
00164    virtual void initFromAppSettings();
00165 
00168    virtual void clear();
00169 
00172    virtual void symbolMapChanged();
00173 
00175    virtual void setUpdateOnTick(bool b, bool updateMini = false);
00176 
00179    virtual void recreateMenu(DtMainMenuType menu);
00180 
00182    virtual void activateRubberBand();
00183 
00188    virtual void attachEventController(DtEventController*);
00189 
00191    QList<DtEventController*>& attachedEventControllers();
00192 
00194    virtual DtPopupMenu* menuFromAction(QAction*);
00195 
00197    virtual DtPopupMenu* menuForType(DtMainMenuType type);
00198 
00200    virtual void postProcessOptions();
00201 
00202    bool hasRubberBands() const;
00203 
00205    virtual void addToolbarMapping(int id, QWidget* w);
00206 
00208    virtual void removeToolbarMapping(int id);
00209 
00211    virtual DtTMMapArea* mapContainsData(const DtModelData* data) const;
00212 
00214    virtual void bringToFront();
00215 
00217    virtual void clearFrameRates();
00218 
00219 public slots:
00220    virtual void removeAttachedEventController(QObject*);
00221 
00224    virtual unsigned createMapArea(const DtTMFactory* f);
00225 
00227    virtual void removeMapArea(unsigned ii);
00228 
00230    virtual void removeMapArea(DtTMMapArea* area);
00231 
00233    virtual void changeActiveMap(DtTMMapArea*);
00234 
00237    virtual void changeActiveRubberBand(const DtTMRubberBand*);
00238 
00240    virtual void addSymbol(const DtModelData&, bool);
00241    virtual void addSymbol(const DtModelData&, DtSymbol*);
00242 
00244    virtual void removeDictionaryEntry(const DtModelKey& key);
00245 
00247    virtual void removeSymbol(const DtModelData&, bool);
00248 
00250    virtual void modifySymbol(const DtModelData& d, int changedFlags);
00251 
00253    virtual void tick();
00254 
00256    virtual void preTick();
00257 
00259    virtual void postTick();
00260 
00265    virtual void toggleToolbar(bool b);
00266 
00268    virtual void updateViewMenu();
00269 
00271    virtual void hideAllToolbars();
00272    virtual void showAllToolbars();
00273    virtual void displayToolbars(bool hide);
00274 
00278    virtual void updateValidActions();
00279 
00282    virtual void processSelectionChanged(const QVector<DtModelKey>&);
00283 
00285    virtual void changeSelection(const QVector<DtModelKey>& keys);
00286 
00287    virtual void modelDataAdded(const DtModelKey& key);
00288 
00291    virtual void setupMenuConnection(DtMainMenuType);
00292 
00293    DtFeatureActionManager* featureActionManager() const;
00294    DtFeatureActionManager* backupFeatureActionManager() const;
00295 
00297    virtual void revertFeatureActionManager();
00298 
00300    virtual void mergeFeatureActionManager(const DtFeatureActionManager&);
00301 
00302 signals:
00303 
00305    void menuItemsValidated();
00306 
00308    void changedActiveMap(DtTMMapArea*);
00309 
00311    void closing(const DtBaseWindow*);
00312 
00314    void mapAreaCreated(DtTMArea*);
00315    void miniMapAreaCreated(DtTMArea*);
00316 
00317    void selectionChanged(const QVector<DtModelKey>&);
00318 
00319    void menuRecreated(DtMainMenuType);
00320 
00321    void modelDataMarkedForUpdated(const DtModelData&);
00322    void modelDataRemovedFromUpdate(const DtModelData&);
00323 
00324    void preTickSignal();
00325    void postTickSignal();
00326 
00327 public:
00328 
00330    static DtBaseWindow* create(QWidget* parent, const Qt::WindowFlags& flags);
00331 
00332 protected:
00334    virtual void tickEventControllers();
00335 
00336    virtual bool initContextMenus(const DtTMFactory* f);
00337 
00340    virtual bool initMenuWidget(const DtTMFactory* f);
00341 
00343    virtual bool createFeatureActionManager(const DtTMFactory* f);
00344 
00346    virtual void addDefaultShortcutsAndIcons(const DtTMFactory* f);
00347 
00349    virtual void createMenuWidget(const DtTMFactory* f);
00350 
00353    virtual void initViewMenuToolbarMap();
00354 
00356    virtual bool initMapConnections(DtTMMapArea* area);
00357 
00358    virtual bool initMenuConnections();
00359 
00362    virtual bool initFromApplicationtoLatin1();
00363 
00365    virtual Qt::ToolBarArea dockToolbarPosition() const;
00366    virtual Qt::DockWidgetArea dockWidgetPosition() const;
00367 
00369    virtual void moveDockWindow(QToolBar*, Qt::ToolBarArea);
00370    virtual void moveDockWindow(QDockWidget*, Qt::DockWidgetArea);
00371 
00372    virtual QMenu* createPopupMenu();
00373 
00375    virtual QWidget* centerWidget(QWidget* itemToCenter);
00376 
00377 protected:
00378       
00379    bool                       myUsingGlobalMiniMap;
00380    DtTMMiniMap*               myMiniMap;   
00381    QList<DtTMMapArea*>        myMapAreaList;
00382    DtTMMapArea*               myActiveMapArea;
00383    DtTMRubberBandList         myRubberBandList; 
00384 
00385    double                     myElapsedRunTime;
00386    double                     myNumberOfFrames;
00387    static const int           theDefaultDisplayFrameRate;
00388    int                        myDisplayFrameRate;
00389    QTime                      myFrameStart;
00390 
00391    DtEventController          *myEventController;
00392 
00393    QHash<int, QWidget*>       myViewMenuToolbarMap;
00394    QList<QWidget*>            myNormalToolbars;
00395 
00396    DtMenuWidget               *myMenuWidget;
00397    DtStdContextMenu           *myContextMenus;
00398    DtContextMenu              *myMiddleClickMenu;
00399    DtContextMenu              *myRightClickMenu;
00400 
00401    DtArchiver                 myArchiver;
00402 
00403    QRect                      myOriginalGeometry;
00404 
00405    QList<DtEventController*>  *myAttachedEventControllers;
00406    int myWindowCreationMode;
00407    DtFeatureActionManager* myFeatureActionManager;
00408    DtFeatureActionManager* myBackupFeatureActionManager;
00409 };
00410 
00411 QTextStream& operator<<(QTextStream& ts, DtBaseWindow& w);
00412 QTextStream& operator>>(QTextStream& ts, DtBaseWindow& w);
00413 
00414 inline QList<DtEventController*>& DtBaseWindow::attachedEventControllers()
00415 {
00416    return *myAttachedEventControllers;
00417 }
00418 
00419 inline DtStdContextMenu* DtBaseWindow::contextMenus()
00420 {
00421    return myContextMenus;
00422 }
00423 
00424 inline bool DtBaseWindow::hasRubberBands() const
00425 {
00426    return (myRubberBandList.count() != 0);
00427 }
00428 
00429 inline DtFeatureActionManager* DtBaseWindow::featureActionManager() const
00430 {
00431    return myFeatureActionManager;
00432 }
00433 
00434 inline DtFeatureActionManager* DtBaseWindow::backupFeatureActionManager() const
00435 {
00436    return myBackupFeatureActionManager;
00437 }
00438 
00439 #endif //BASEWINDOW_H_

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)