1/* GDK - The GIMP Drawing Kit
2 * Copyright (C) 2016 Red Hat
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * Author: Carlos Garnacho <carlosg@gnome.org>
18 */
19
20#ifndef __GDK_DEVICE_PAD_H__
21#define __GDK_DEVICE_PAD_H__
22
23#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
24#error "Only <gdk/gdk.h> can be included directly."
25#endif
26
27#include <gdk/gdkversionmacros.h>
28#include <gdk/gdktypes.h>
29
30G_BEGIN_DECLS
31
32#define GDK_TYPE_DEVICE_PAD (gdk_device_pad_get_type ())
33#define GDK_DEVICE_PAD(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDK_TYPE_DEVICE_PAD, GdkDevicePad))
34#define GDK_IS_DEVICE_PAD(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDK_TYPE_DEVICE_PAD))
35
36typedef struct _GdkDevicePad GdkDevicePad;
37typedef struct _GdkDevicePadInterface GdkDevicePadInterface;
38
39/**
40 * GdkDevicePadFeature:
41 * @GDK_DEVICE_PAD_FEATURE_BUTTON: a button
42 * @GDK_DEVICE_PAD_FEATURE_RING: a ring-shaped interactive area
43 * @GDK_DEVICE_PAD_FEATURE_STRIP: a straight interactive area
44 *
45 * A pad feature.
46 */
47typedef enum {
48 GDK_DEVICE_PAD_FEATURE_BUTTON,
49 GDK_DEVICE_PAD_FEATURE_RING,
50 GDK_DEVICE_PAD_FEATURE_STRIP
51} GdkDevicePadFeature;
52
53GDK_AVAILABLE_IN_3_22
54GType gdk_device_pad_get_type (void) G_GNUC_CONST;
55
56GDK_AVAILABLE_IN_3_22
57gint gdk_device_pad_get_n_groups (GdkDevicePad *pad);
58
59GDK_AVAILABLE_IN_3_22
60gint gdk_device_pad_get_group_n_modes (GdkDevicePad *pad,
61 gint group_idx);
62
63GDK_AVAILABLE_IN_3_22
64gint gdk_device_pad_get_n_features (GdkDevicePad *pad,
65 GdkDevicePadFeature feature);
66
67GDK_AVAILABLE_IN_3_22
68gint gdk_device_pad_get_feature_group (GdkDevicePad *pad,
69 GdkDevicePadFeature feature,
70 gint feature_idx);
71
72G_END_DECLS
73
74#endif /* __GDK_DEVICE_PAD_H__ */
75