e8a02e7cc0bee3f8857d4b1a3e28dd99ec8e8535
[terminatorX.git] / terminatorX / src / tX_mouse.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999, 2000  Alexander K├Ânig
4  
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9  
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14  
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, write to the Free Software
17     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  
19     File: tX_mouse.h
20  
21     Description: Header to tX_mouse.cc
22 */    
23
24 #ifndef _h_tx_mouse 
25 #define _h_tx_mouse
26
27 #ifdef HAVE_CONFIG_H
28 #include <config.h>
29 #endif
30
31 #include <tX_types.h>
32 #include <unistd.h>
33 #include <X11/Xlib.h>
34 #include <X11/extensions/XInput.h>
35 #include <X11/extensions/xf86dga.h>
36 #include <X11/keysym.h>
37
38 class tx_mouse
39 {
40         XID OrgXPointer;
41         XDevice *input_device;
42         XEvent xev;
43         long mask;
44         XMotionEvent *xmot;
45         XKeyEvent *xkey;
46         XButtonEvent *xbut;
47
48 #ifdef USE_DGA2 
49         XEvent xev_copy;
50         XDGAButtonEvent *xdgabut;
51         XDGAKeyEvent *xdgakey;
52         XDGAMotionEvent *xdgamot;
53 #endif  
54         
55         Time otime, ntime;
56         f_prec dtime;
57         Display *dpy;
58         KeySym key;
59         float warp;
60         
61         public:
62         
63         int grabbed;
64
65         int set_xinput();
66         void reset_xinput();
67         int grab();
68         int check_event();
69         void ungrab();
70         tx_mouse();
71 };
72
73
74 #endif