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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
/*
* AT-SPI - Assistive Technology Service Provider Interface
* (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
*
* Copyright 2020 SUSE LLC.
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef _ATSPI_DEVICE_H_
#define _ATSPI_DEVICE_H_
#include "glib-object.h"
#include "atspi-types.h"
G_BEGIN_DECLS
#define ATSPI_TYPE_DEVICE (atspi_device_get_type ())
#define ATSPI_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_DEVICE, AtspiDevice))
#define ATSPI_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ATSPI_TYPE_DEVICE, AtspiDeviceClass))
#define ATSPI_IS_DEVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_DEVICE))
#define ATSPI_IS_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ATSPI_TYPE_DEVICE))
#define ATSPI_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ATSPI_TYPE_DEVICE, AtspiDeviceClass))
typedef struct _AtspiDevice AtspiDevice;
struct _AtspiDevice
{
GObject parent;
};
typedef struct _AtspiDeviceClass AtspiDeviceClass;
struct _AtspiDeviceClass
{
GObjectClass parent_class;
void (*add_key_grab) (AtspiDevice *device, AtspiKeyDefinition *kd);
void (*remove_key_grab) (AtspiDevice *device, guint id);
guint (*map_modifier) (AtspiDevice *device, gint keycode);
void (*unmap_modifier) (AtspiDevice *device, gint keycode);
guint (*get_modifier) (AtspiDevice *device, gint keycode);
gboolean (*grab_keyboard) (AtspiDevice *device);
void (*ungrab_keyboard) (AtspiDevice *device);
guint (*get_locked_modifiers) (AtspiDevice *device);
};
GType atspi_device_get_type (void);
/**
* AtspiKeyCallback:
* @device: the device.
* @pressed: TRUE if the key is being pressed, FALSE if being released.
* @keycode: the hardware code for the key.
* @keysym: the keysym for the key.
* @modifiers: a bitflag indicating which key modifiers are active.
* @keystring: the text corresponding to the keypress.
* @user_data: (closure): user-supplied data
*
* A callback that will be invoked when a key is pressed.
*/
typedef void (*AtspiKeyCallback) (AtspiDevice *device, gboolean pressed, guint keycode, guint keysym, guint modifiers, const gchar *keystring, void *user_data);
AtspiDevice *atspi_device_new ();
gboolean atspi_device_notify_key (AtspiDevice *device, gboolean pressed, int keycode, int keysym, gint state, gchar *text);
guint atspi_device_add_key_grab (AtspiDevice *device, AtspiKeyDefinition *kd, AtspiKeyCallback callback, void *user_data, GDestroyNotify callback_destroyed);
void atspi_device_remove_key_grab (AtspiDevice *device, guint id);
void atspi_device_add_key_watcher (AtspiDevice *device, AtspiKeyCallback callback, void *user_data, GDestroyNotify callback_destroyed);
AtspiKeyDefinition *atspi_device_get_grab_by_id (AtspiDevice *device, guint id);
guint atspi_device_map_modifier (AtspiDevice *device, gint keycode);
void atspi_device_unmap_modifier (AtspiDevice *device, gint keycode);
guint atspi_device_get_modifier (AtspiDevice *device, gint keycode);
guint atspi_device_get_locked_modifiers (AtspiDevice *device);
gboolean atspi_device_grab_keyboard (AtspiDevice *device);
void atspi_device_ungrab_keyboard (AtspiDevice *device);
G_END_DECLS
#endif /* _ATSPI_DEVICE_H_ */
|