VR-Forces 4.0.4 Class Documentation
include/tmqt/eventController.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2000 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: eventController.h,v $ $Revision: 1.21 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef EVENTCONTROLLER_H_
00013 #define EVENTCONTROLLER_H_
00014 
00015 #include "tmqt/eventHandler.h"
00016 #include "tmqt/tmMapArea.h"
00017 #include "tmqt/eventHandlerFactory.h"
00018 #include "tmqt/eventHandler.h"
00019 #include "tmqt/eventHandlers.h"
00020 #include "archiver/archivableObject.h"
00021 
00022 #include <QtCore/QObject>
00023 #include <QtCore/QList>
00024 #include <QtCore/QHash>
00025 
00026 class DtBaseWindow;
00027 class QPixmap;
00028 class DtEchelonView;
00029 class DtTerrainDatabase;
00030 class DtPaperMapDatabase;
00031 #include "tmqt/tmqtDefines.h"
00032 class DT_DLL_tmqt DtEventController : public DtArchivableObject
00033 {
00034    Q_OBJECT
00035    
00036 public:   
00037 
00039    DtEventController();
00040    
00042    virtual ~DtEventController();
00043 
00045    virtual void connectToMapArea(DtTMMapArea* area );
00046 
00048    virtual void disconnectFromMapArea(DtTMMapArea* area);
00049    
00053    virtual QList<DtEventHandler*>& defaultHandlers();
00054 
00056    DtEventHandler* insertDefaultHandler(DtEventHandlerType iType, int iPos);
00057 
00060    virtual DtEventHandler* addDefaultHandler(DtEventHandlerType iType);
00061 
00064    virtual DtEventHandler* addDefaultHandler(DtEventHandler*);
00065 
00068    virtual void removeDefaultHandler(DtEventHandlerType iType);
00069    virtual void removeDefaultHandler(DtEventHandler*);
00070    
00074    virtual void setEventHandler(DtEventHandler*);
00075 
00078    virtual bool init();
00079 
00085    virtual bool addDefaultHandlers();
00086 
00089    virtual DtEventHandlerFactory* eventHandlerFactory();
00090 
00092    virtual void setBaseWindow(DtBaseWindow* win);
00093    virtual DtBaseWindow* baseWindow() const;
00094 
00096    virtual DtEchelonView* echelonView();
00097 
00100    virtual const DtTerrainDatabase* terrainDatabase() const;
00101    virtual DtTerrainDatabase* terrainDatabase();
00102 
00103    virtual const DtPaperMapDatabase* paperMapDatabase() const;
00104    virtual DtPaperMapDatabase* paperMapDatabase();
00105 
00108    virtual void removeHandlerFor(DtEventHandlerType iType);
00109 
00111    virtual DtEventHandlerType typeFromHandler(DtEventHandler*);
00112 
00115    virtual bool appLevelController();
00116 
00118    DtEventHandler* currentEvent();
00119 
00121    virtual bool passKeyEventToMapArea(QKeyEvent*) const;
00122 
00125    virtual bool canExitApplication();
00126 
00128 public:
00129    static DtEventController* create();
00130 
00133    static void globalAddHandler(DtEventHandlerType type, DtHandlerCreate fcn, void* usr = NULL, bool appLevel = false);
00134    static void globalRemoveHandler(DtEventHandlerType type);
00135 
00136 public slots:
00137 
00139    virtual void clearCurrentEvent();
00140    
00141    virtual void mouseEvent(QMouseEvent* evnt, const DtPoint& pnt);
00142    virtual void keyboardEvent(QKeyEvent* evnt);
00143    virtual void focusEvent(QEvent* evnt);
00144    virtual void enterEvent(QEvent* evnt);
00145    virtual void leaveEvent(QEvent* evnt);
00146    virtual void dropEvent(QDropEvent* evnt);
00147    virtual void dragEnterEvent(QDragEnterEvent* evnt);
00148    virtual void dragLeaveEvent(QDragLeaveEvent* evnt);
00149    virtual void dragMoveEvent(QDragMoveEvent* evnt);
00150    virtual void symbolsSelected(DtSymbolList* sl);
00151    virtual void selectionUpdated(const QVector<DtModelKey>&);
00152    virtual void selectionInProgress(DtSymbolSelector&);
00153    virtual void selectedModelDataUpdated();
00154    virtual void symbolRemoved(const DtModelKey&);
00155 
00157    virtual void aboutToDraw(QPainter*);
00158 
00160    virtual void userDefinedAction(DtUserDefinedType iAction, void* usr);
00161    virtual void mapActivated(DtTMMapArea*);
00162 
00164    virtual void initializeEventDlg();
00165    
00168    virtual DtEventHandler* handlerFor(DtEventHandlerType type);
00169 
00172    virtual void tick();
00173 
00176    virtual void processNotifyCleanup();
00177 
00178 signals:
00180    void activated(DtEventHandler* handler);
00181    void deactivated(DtEventHandler* handler);
00182 
00183 protected:
00184    bool                       myUsingEvent;
00185    QList<DtTMMapArea*>        myMapAreaList;
00186    QList<DtEventHandler*>     myDefaultHandlerList;
00187    QHash<int, DtEventHandler*>   myTypedDefaultHandlerList;
00188    DtEventHandler*            myCurrentHandler;
00189    DtEventHandlerFactory      myEventHandlerFactory;
00190    DtBaseWindow*              myBaseWindow;
00191    QHash<int, DtEventHandler*>   myHandlers;
00192 
00193    static QHash<int, DtHandlerCreateInfo>  myGlobalHandlers;
00194 };
00195 
00196 inline DtEventHandler* DtEventController::currentEvent()
00197 {
00198    return myCurrentHandler;
00199 }
00200 
00201 #endif //EVENTCONTROLLER_H_
00202 

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)