X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSVTK_SpaceMouse.h;h=ab140cd0d9810d1c48199d77a21026ceccc7ba6b;hb=d6bd12111347879cd8dbe1a15ac4d6ba32ce0d6b;hp=caa559432204b6627bf33b65b133c353b4587bca;hpb=c4b058d18583af7f94042eb55d4b933dd222d2e6;p=modules%2Fgui.git diff --git a/src/SVTK/SVTK_SpaceMouse.h b/src/SVTK/SVTK_SpaceMouse.h index caa559432..ab140cd0d 100644 --- a/src/SVTK/SVTK_SpaceMouse.h +++ b/src/SVTK/SVTK_SpaceMouse.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -27,21 +27,25 @@ #ifndef SVTK_SpaceMouse_h #define SVTK_SpaceMouse_h +#include + #ifndef WIN32 extern "C" { #include +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) #include +#else +#include +#endif } + #endif class SVTK_SpaceMouse { public: - // access to SpaceMouse utility class - static SVTK_SpaceMouse* getInstance(); - enum MoveData { x, y, z, a, b, c }; enum EventType { SpaceMouseMove = 1, SpaceButtonPress, SpaceButtonRelease }; @@ -54,26 +58,66 @@ class SVTK_SpaceMouse bool isSpaceMouseOn() const { return spaceMouseOn != 0; } + SVTK_SpaceMouse(); + + protected: + + int spaceMouseOn; +}; + +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) + +class SVTK_SpaceMouseX: public SVTK_SpaceMouse +{ + +public: + SVTK_SpaceMouseX(); + + // access to SpaceMouse utility class + static SVTK_SpaceMouseX* getInstance(); + #ifndef WIN32 int initialize ( Display*, Window ); int setWindow ( Display*, Window ); int translateEvent ( Display*, XEvent*, MoveEvent*, double, double ); int close ( Display* ); -#endif - private: - SVTK_SpaceMouse(); - static SVTK_SpaceMouse* myInstance; - -#ifndef WIN32 +private: Atom XMotionEvent; Atom XButtonPressEvent; Atom XButtonReleaseEvent; Atom XCommandEvent; - Window win; #endif - int spaceMouseOn; + + static SVTK_SpaceMouseX* myInstance; + }; +#else +class SVTK_SpaceMouseXCB: public SVTK_SpaceMouse +{ + +public: + SVTK_SpaceMouseXCB(); + // access to SpaceMouse utility class + static SVTK_SpaceMouseXCB* getInstance(); + +#ifndef WIN32 + int initialize ( xcb_connection_t*, xcb_window_t ); + int setWindow ( xcb_connection_t*, xcb_window_t ); + int translateEvent ( xcb_connection_t*, xcb_client_message_event_t*, MoveEvent*, double, double ); + int close ( xcb_connection_t* ); + +private: + xcb_atom_t XCBMotionEvent; + xcb_atom_t XCBButtonPressEvent; + xcb_atom_t XCBButtonReleaseEvent; + xcb_window_t win; +#endif + + static SVTK_SpaceMouseXCB* myInstance; + +}; +#endif #endif