1 /* xstroke.h - toplevel data for xstroke
2 
3    Copyright 2001 Carl Worth
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, or (at your option)
8    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 
16 #ifndef XSTROKE_H
17 #define XSTROKE_H
18 
19 /*
20 #define XSTROKE_DEBUG
21 */
22 
23 #ifdef XSTROKE_DEBUG
24 # define XSTROKE_SYNCHRONOUS
25 # define XSTROKE_NOGRAB_SERVER
26 /*
27 # define REC_PARSE_DEBUG
28 # define XSTROKE_DEBUG_ROTATION
29 */
30 #endif
31 
32 #include <X11/Xlib.h>
33 
34 #include "backing.h"
35 #include "brush.h"
36 #include "control_win.h"
37 #include "rec.h"
38 #include "args.h"
39 #include "action.h"
40 #include "xlp_win.h"
41 
42 struct xstroke
43 {
44     xlp_t xlp;
45 
46     XModifierKeymap *modifier_map;
47 
48     control_win_t control_win;
49     backing_t backing;
50     brush_t brush;
51 
52     rec_t rec;
53     action_key_data_t modifiers[8];
54 };
55 typedef struct xstroke xstroke_t;
56 
57 void xstroke_exit(xstroke_t *xstroke, int exit_code);
58 void xstroke_reload(xstroke_t *xstroke);
59 void xstroke_button_press(xstroke_t *xstroke, XButtonEvent *bev);
60 void xstroke_motion_notify(xstroke_t *xstroke, XMotionEvent *mev);
61 void xstroke_button_release(xstroke_t *xstroke, XButtonEvent *bev);
62 
63 #endif /* XSTROKE_H */
64