Current File : //proc/self/root/kunden/usr/include/at-spi-2.0/atspi/atspi-device.h |
/*
* 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_ */