1/*
2   Copyright (C) 2002-2010 Karl J. Runge <runge@karlrunge.com>
3   All rights reserved.
4
5This file is part of x11vnc.
6
7x11vnc is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2 of the License, or (at
10your option) any later version.
11
12x11vnc is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with x11vnc; if not, write to the Free Software
19Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
20or see <http://www.gnu.org/licenses/>.
21
22In addition, as a special exception, Karl J. Runge
23gives permission to link the code of its release of x11vnc with the
24OpenSSL project's "OpenSSL" library (or with modified versions of it
25that use the same license as the "OpenSSL" library), and distribute
26the linked executables.  You must obey the GNU General Public License
27in all respects for all of the code used other than "OpenSSL".  If you
28modify this file, you may extend this exception to your version of the
29file, but you are not obligated to do so.  If you do not wish to do
30so, delete this exception statement from your version.
31*/
32
33#ifndef _X11VNC_USERINPUT_H
34#define _X11VNC_USERINPUT_H
35
36/* -- userinput.h -- */
37
38extern int defer_update_nofb;
39extern int last_scroll_type;
40
41extern int get_wm_frame_pos(int *px, int *py, int *x, int *y, int *w, int *h,
42    Window *frame, Window *win);
43extern void parse_scroll_copyrect(void);
44extern void parse_fixscreen(void);
45extern void parse_wireframe(void);
46
47extern void set_wirecopyrect_mode(char *str);
48extern void set_scrollcopyrect_mode(char *str);
49extern void initialize_scroll_keys(void);
50extern void initialize_scroll_matches(void);
51extern void initialize_scroll_term(void);
52extern void initialize_max_keyrepeat(void);
53
54extern int direct_fb_copy(int x1, int y1, int x2, int y2, int mark);
55extern void fb_push(void);
56extern int fb_push_wait(double max_wait, int flags);
57extern void eat_viewonly_input(int max_eat, int keep);
58
59extern void mark_for_xdamage(int x, int y, int w, int h);
60extern void mark_region_for_xdamage(sraRegionPtr region);
61extern void set_xdamage_mark(int x, int y, int w, int h);
62extern int near_wm_edge(int x, int y, int w, int h, int px, int py);
63extern int near_scrollbar_edge(int x, int y, int w, int h, int px, int py);
64
65extern void check_fixscreen(void);
66extern int check_xrecord(void);
67extern int check_wireframe(void);
68extern int fb_update_sent(int *count);
69extern int check_user_input(double dt, double dtr, int tile_diffs, int *cnt);
70extern void do_copyregion(sraRegionPtr region, int dx, int dy, int mode);
71
72extern int check_ncache(int reset, int mode);
73extern int find_rect(int idx, int x, int y, int w, int h);
74extern int lookup_win_index(Window);
75extern void set_ncache_xrootpmap(void);
76
77#endif /* _X11VNC_USERINPUT_H */
78