[go: up one dir, main page]

File: clutter-event.h

package info (click to toggle)
clutter 0.1.0-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,528 kB
  • ctags: 3,353
  • sloc: ansic: 12,634; sh: 8,777; xml: 4,655; makefile: 278
file content (143 lines) | stat: -rw-r--r-- 3,464 bytes parent folder | download
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Clutter.
 *
 * An OpenGL based 'interactive canvas' library.
 *
 * Authored By Matthew Allum  <mallum@openedhand.com>
 *
 * Copyright (C) 2006 OpenedHand
 *
 * 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 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., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

#ifndef _HAVE_CLUTTER_EVENT_H
#define _HAVE_CLUTTER_EVENT_H

#include <glib-object.h>

G_BEGIN_DECLS


enum
{
  /* Map to xlibs masks */
  CLUTTER_BUTTON1_MASK	= (1<<8),
  CLUTTER_BUTTON2_MASK	= (1<<9),
  CLUTTER_BUTTON3_MASK	= (1<<10),
  CLUTTER_BUTTON4_MASK	= (1<<11),
  CLUTTER_BUTTON5_MASK	= (1<<12)
};

typedef enum 
{
  CLUTTER_NOTHING,
  
  CLUTTER_KEY_PRESS,
  CLUTTER_KEY_RELEASE,
  CLUTTER_MOTION,
  CLUTTER_BUTTON_PRESS,
  CLUTTER_2BUTTON_PRESS, 	/* Double click */
  CLUTTER_BUTTON_RELEASE
} ClutterEventType;

#define CLUTTER_TYPE_EVENT	(clutter_event_get_type ())

typedef union _ClutterEvent ClutterEvent;

typedef struct _ClutterAnyEvent    ClutterAnyEvent;
typedef struct _ClutterKeyEvent    ClutterKeyEvent;
typedef struct _ClutterButtonEvent ClutterButtonEvent;
typedef struct _ClutterMotionEvent ClutterMotionEvent;

typedef struct _ClutterInputDevice ClutterInputDevice;

struct _ClutterAnyEvent
{
  ClutterEventType  type;
};

struct _ClutterKeyEvent
{
  ClutterEventType type;
  guint32          time;
  guint            modifier_state;
  guint            keyval;
  guint16          hardware_keycode;
};

struct _ClutterButtonEvent
{
  ClutterEventType     type;
  guint32              time;
  gint                 x;
  gint                 y;
  guint32              modifier_state;
  guint32              button;
  gdouble             *axes;   /* Future use */
  ClutterInputDevice *device;  /* Future use */
};

struct _ClutterMotionEvent
{
  ClutterEventType     type;
  guint32              time;
  gint                 x;
  gint                 y;
  guint32              modifier_state;
  gdouble             *axes;	/* Future use */
  ClutterInputDevice *device; 	/* Future use */
};

union _ClutterEvent
{
  ClutterEventType   type;
  
  ClutterAnyEvent    any;
  ClutterKeyEvent    key_event;
  ClutterButtonEvent button_event;
  ClutterMotionEvent motion_event;
};

GType clutter_event_get_type (void) G_GNUC_CONST;

ClutterEvent *clutter_event_new  (ClutterEventType  type);
ClutterEvent *clutter_event_copy (ClutterEvent     *event);
void          clutter_event_free (ClutterEvent     *event);

ClutterEventType
clutter_key_event_type (ClutterKeyEvent *keyev);

guint32
clutter_key_event_time (ClutterKeyEvent *keyev);

guint
clutter_key_event_state (ClutterKeyEvent *keyev);

guint
clutter_key_event_symbol (ClutterKeyEvent *keyev);

guint16
clutter_key_event_code (ClutterKeyEvent *keyev);

guint32
clutter_key_event_unicode (ClutterKeyEvent *keyev);

guint32
clutter_keysym_to_unicode (guint keyval);

G_END_DECLS

#endif