summaryrefslogtreecommitdiffstats
path: root/src/lassi-grab.h
blob: a9366e01ad818437caa5c2d7bc856dc6f3681a02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef foolassigrabhfoo
#define foolassigrabhfoo

#include <gdk/gdk.h>

typedef struct LassiGrabInfo LassiGrabInfo;
struct LassiServer;

struct LassiGrabInfo {
    struct LassiServer *server;
    
    GdkDisplay *display;
    GdkScreen *screen;
    GdkWindow *root;

    GdkWindow *left_window, *right_window;
    GdkCursor *empty_cursor;
    GdkWindow *grab_window;

    int base_x, base_y;
    int last_x, last_y;

    gboolean left_shift, right_shift, double_shift;
};

#include "lassi-server.h"

int lassi_grab_init(LassiGrabInfo *i, LassiServer *server);
void lassi_grab_done(LassiGrabInfo *i);

int lassi_grab_start(LassiGrabInfo *i, gboolean to_left);
void lassi_grab_stop(LassiGrabInfo *i, int y);

void lassi_grab_enable_triggers(LassiGrabInfo *i, gboolean left, gboolean right);

int lassi_grab_move_pointer_relative(LassiGrabInfo *i, int dx, int dy);
int lassi_grab_press_button(LassiGrabInfo *i, unsigned button, gboolean is_press);
int lassi_grab_press_key(LassiGrabInfo *i, unsigned key, gboolean is_press);

#endif