![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrfGuiCore/vrfGuiCore.h> 00016 #include <vrvCore/DtEventProcessorInterface.h> 00017 00018 #include <vrvCore/DtSelectionManager.h> 00019 #include <vrvCore/DtElementEntry.h> 00020 00021 namespace makVrv 00022 { 00023 class DtOverlayPolygonModelAgent; 00024 class DtSceneObjectAgent; 00025 class DtDe; 00026 } 00027 00028 namespace makVrf 00029 { 00032 class DT_DLL_VRFGUICORE DtMousePositionProvider 00033 { 00034 public: 00035 virtual void getCurrentMousePosition(int& x, int& y) = 0; 00036 }; 00037 00040 class DT_DLL_VRFGUICORE DtGuiEventProcessor : public makVrv::DtEventProcessorInterface 00041 { 00042 public: 00043 00045 DtGuiEventProcessor(makVrv::DtDe& de); 00046 00048 virtual ~DtGuiEventProcessor(); 00049 00052 virtual bool processMouseEvent( const makVrv::DtMouseEvent& ev, makVrv::DtChannel& channel); 00053 00057 virtual bool processKeyboardEvent( const makVrv::DtKeyEvent& ev, makVrv::DtChannel& channel); 00058 00059 virtual const std::string& className(); 00060 00061 static void setCurrentMousePosition(makVrv::DtDe&, int x, int y); 00062 static void setCurrentMousePosition(int x, int y); 00063 static void getCurrentMousePosition(int& x, int& y); 00064 00066 static void setMousePositionProvider(DtMousePositionProvider*); 00067 static DtMousePositionProvider* mousePositionProvider(); 00068 00069 protected: 00071 virtual void cleanupBox(); 00072 00074 virtual void createBox(int modelSet); 00075 00077 virtual void setBoxFromExtents(makVrv::DtChannel& channel, int anchorX, int anchorY, int toX, int toY); 00078 00079 protected: 00080 makVrv::DtDe& myDe; 00081 makVrv::DtOverlayPolygonModelAgent* myBox; 00082 makVrv::DtSceneObjectAgent* mySceneObjectAgent; 00083 static makVrv::DtUniqueID theLineId; 00084 static DtMousePositionProvider* theMousePositionProvider; 00085 00086 makVrv::DtSelectionManager::IdSet myCurrentSelections; 00087 00088 int myInitialMousePositionX; 00089 int myInitialMousePositionY; 00090 00091 static int theCurrentMousePositionX; 00092 static int theCurrentMousePositionY; 00093 }; 00094 }