gdk3 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +18 -4
  3. data/lib/gdk3/atom.rb +26 -0
  4. data/lib/gdk3/cairo.rb +60 -0
  5. data/lib/gdk3/color.rb +27 -0
  6. data/lib/gdk3/deprecated.rb +14 -16
  7. data/lib/gdk3/event.rb +38 -0
  8. data/lib/gdk3/loader.rb +266 -0
  9. data/lib/gdk3/rectangle.rb +38 -0
  10. data/lib/gdk3/rgba.rb +32 -0
  11. data/lib/gdk3/window-attr.rb +28 -0
  12. data/lib/gdk3/window.rb +21 -0
  13. data/lib/gdk3.rb +61 -2
  14. data/test/run-test.rb +15 -6
  15. data/test/test-gdk-cairo.rb +41 -0
  16. data/test/test-gdk-event-type.rb +25 -0
  17. data/test/test-gdk-event.rb +47 -49
  18. data/test/test-gdk-keyval.rb +21 -0
  19. data/test/test-gdk-pixbuf.rb +49 -0
  20. data/test/test-gdk-rectangle.rb +35 -4
  21. data/test/test-gdk-rgba.rb +6 -1
  22. data/test/test-gdk-window-attr.rb +1 -1
  23. metadata +23 -51
  24. data/ext/gdk3/depend +0 -11
  25. data/ext/gdk3/extconf.rb +0 -130
  26. data/ext/gdk3/gdk3.def +0 -12
  27. data/ext/gdk3/init.c +0 -35
  28. data/ext/gdk3/rbgdk.c +0 -491
  29. data/ext/gdk3/rbgdk3.h +0 -73
  30. data/ext/gdk3/rbgdk3conversions.h +0 -121
  31. data/ext/gdk3/rbgdk3private.h +0 -85
  32. data/ext/gdk3/rbgdkatom.c +0 -122
  33. data/ext/gdk3/rbgdkcairo.c +0 -91
  34. data/ext/gdk3/rbgdkcolor.c +0 -137
  35. data/ext/gdk3/rbgdkconst.c +0 -33
  36. data/ext/gdk3/rbgdkcursor.c +0 -92
  37. data/ext/gdk3/rbgdkdevice.c +0 -253
  38. data/ext/gdk3/rbgdkdevicemanager.c +0 -39
  39. data/ext/gdk3/rbgdkdisplay.c +0 -434
  40. data/ext/gdk3/rbgdkdisplaymanager.c +0 -55
  41. data/ext/gdk3/rbgdkdragcontext.c +0 -191
  42. data/ext/gdk3/rbgdkevent.c +0 -1173
  43. data/ext/gdk3/rbgdkgeometry.c +0 -253
  44. data/ext/gdk3/rbgdkkeymap.c +0 -151
  45. data/ext/gdk3/rbgdkkeyval.c +0 -108
  46. data/ext/gdk3/rbgdkpango.c +0 -197
  47. data/ext/gdk3/rbgdkpangorenderer.c +0 -144
  48. data/ext/gdk3/rbgdkpixbuf.c +0 -176
  49. data/ext/gdk3/rbgdkproperty.c +0 -305
  50. data/ext/gdk3/rbgdkrectangle.c +0 -140
  51. data/ext/gdk3/rbgdkrgb.c +0 -199
  52. data/ext/gdk3/rbgdkrgba.c +0 -142
  53. data/ext/gdk3/rbgdkscreen.c +0 -443
  54. data/ext/gdk3/rbgdkselection.c +0 -146
  55. data/ext/gdk3/rbgdkthreads.c +0 -77
  56. data/ext/gdk3/rbgdktimecoord.c +0 -133
  57. data/ext/gdk3/rbgdkvisual.c +0 -251
  58. data/ext/gdk3/rbgdkwindow.c +0 -1069
  59. data/ext/gdk3/rbgdkwindowattr.c +0 -191
  60. data/ext/gdk3/rbgdkx11.c +0 -102
  61. data/ext/gdk3/rbgdkx11x11window.c +0 -66
  62. data/extconf.rb +0 -49
  63. data/lib/gdk3/base.rb +0 -59
@@ -1,1173 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2002-2014 Ruby-GNOME2 Project Team
4
- * Copyright (C) 1998-2000 Yukihiro Matsumoto,
5
- * Daisuke Kanda,
6
- * Hiroshi Igarashi
7
- *
8
- * This library is free software; you can redistribute it and/or
9
- * modify it under the terms of the GNU Lesser General Public
10
- * License as published by the Free Software Foundation; either
11
- * version 2.1 of the License, or (at your option) any later version.
12
- *
13
- * This library is distributed in the hope that it will be useful,
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
- * Lesser General Public License for more details.
17
- *
18
- * You should have received a copy of the GNU Lesser General Public
19
- * License along with this library; if not, write to the Free Software
20
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
- * MA 02110-1301 USA
22
- */
23
-
24
- #include "rbgdk3private.h"
25
-
26
- static VALUE rb_cGdkEvent;
27
- static VALUE rb_cGdkEventAny;
28
- static VALUE rb_cGdkEventExpose;
29
- static VALUE rb_cGdkEventVisibility;
30
- static VALUE rb_cGdkEventMotion;
31
- static VALUE rb_cGdkEventButton;
32
- static VALUE rb_cGdkEventTouch;
33
- static VALUE rb_cGdkEventScroll;
34
- static VALUE rb_cGdkEventKey;
35
- static VALUE rb_cGdkEventCrossing;
36
- static VALUE rb_cGdkEventFocus;
37
- static VALUE rb_cGdkEventConfigure;
38
- static VALUE rb_cGdkEventProperty;
39
- static VALUE rb_cGdkEventSelection;
40
- static VALUE rb_cGdkEventOwnerChange;
41
- static VALUE rb_cGdkEventProximity;
42
- static VALUE rb_cGdkEventDND;
43
- static VALUE rb_cGdkEventWindowState;
44
- static VALUE rb_cGdkEventSetting;
45
- static VALUE rb_cGdkEventGrabBroken;
46
-
47
- #define DEFINE_EVENT_TYPE(type_lower_case, type_upper_case) \
48
- static GType \
49
- rb_gdk_event_ ## type_lower_case ## _get_type(void) \
50
- { \
51
- static GType type = 0; \
52
- if (type == 0) { \
53
- type = g_boxed_type_register_static("GdkEvent" # type_upper_case, \
54
- (GBoxedCopyFunc)gdk_event_copy, \
55
- (GBoxedFreeFunc)gdk_event_free); \
56
- } \
57
- return type; \
58
- }
59
-
60
- DEFINE_EVENT_TYPE(any, Any)
61
- DEFINE_EVENT_TYPE(expose, Expose)
62
- DEFINE_EVENT_TYPE(visibility, Visibility)
63
- DEFINE_EVENT_TYPE(motion, Motion)
64
- DEFINE_EVENT_TYPE(button, Button)
65
- DEFINE_EVENT_TYPE(touch, Touch)
66
- DEFINE_EVENT_TYPE(scroll, Scroll)
67
- DEFINE_EVENT_TYPE(key, Key)
68
- DEFINE_EVENT_TYPE(crossing, Crossing)
69
- DEFINE_EVENT_TYPE(focus, Focus)
70
- DEFINE_EVENT_TYPE(configure, Configure)
71
- DEFINE_EVENT_TYPE(property, Property)
72
- DEFINE_EVENT_TYPE(selection, Selection)
73
- DEFINE_EVENT_TYPE(owner_change, OwnerChange)
74
- DEFINE_EVENT_TYPE(proximity, Proximity)
75
- DEFINE_EVENT_TYPE(dnd, DND)
76
- DEFINE_EVENT_TYPE(window_state, WindowState)
77
- DEFINE_EVENT_TYPE(setting, Setting)
78
- DEFINE_EVENT_TYPE(grab_broken, GrabBroken)
79
-
80
- #define GDK_TYPE_EVENT_ANY (rb_gdk_event_any_get_type())
81
- #define GDK_TYPE_EVENT_EXPOSE (rb_gdk_event_expose_get_type())
82
- #define GDK_TYPE_EVENT_VISIBILITY (rb_gdk_event_visibility_get_type())
83
- #define GDK_TYPE_EVENT_MOTION (rb_gdk_event_motion_get_type())
84
- #define GDK_TYPE_EVENT_BUTTON (rb_gdk_event_button_get_type())
85
- #define GDK_TYPE_EVENT_TOUCH (rb_gdk_event_touch_get_type())
86
- #define GDK_TYPE_EVENT_SCROLL (rb_gdk_event_scroll_get_type())
87
- #define GDK_TYPE_EVENT_KEY (rb_gdk_event_key_get_type())
88
- #define GDK_TYPE_EVENT_CROSSING (rb_gdk_event_crossing_get_type())
89
- #define GDK_TYPE_EVENT_FOCUS (rb_gdk_event_focus_get_type())
90
- #define GDK_TYPE_EVENT_CONFIGURE (rb_gdk_event_configure_get_type())
91
- #define GDK_TYPE_EVENT_PROPERTY (rb_gdk_event_property_get_type())
92
- #define GDK_TYPE_EVENT_SELECTION (rb_gdk_event_selection_get_type())
93
- #define GDK_TYPE_EVENT_OWNER_CHANGE (rb_gdk_event_owner_change_get_type())
94
- #define GDK_TYPE_EVENT_PROXIMITY (rb_gdk_event_proximity_get_type())
95
- #define GDK_TYPE_EVENT_DND (rb_gdk_event_dnd_get_type())
96
- #define GDK_TYPE_EVENT_WINDOW_STATE (rb_gdk_event_window_state_get_type())
97
- #define GDK_TYPE_EVENT_SETTING (rb_gdk_event_setting_get_type())
98
- #define GDK_TYPE_EVENT_GRAB_BROKEN (rb_gdk_event_grab_broken_get_type())
99
-
100
- /***********************************************/
101
-
102
- static GType
103
- rb_gdk_event_type_to_gtype(GdkEventType event_type)
104
- {
105
- GType gtype = GDK_TYPE_EVENT_ANY;
106
-
107
- switch (event_type) {
108
- case GDK_NOTHING:
109
- case GDK_DELETE:
110
- case GDK_DESTROY:
111
- break;
112
- case GDK_EXPOSE:
113
- gtype = GDK_TYPE_EVENT_EXPOSE;
114
- break;
115
- case GDK_MOTION_NOTIFY:
116
- gtype = GDK_TYPE_EVENT_MOTION;
117
- break;
118
- case GDK_BUTTON_PRESS:
119
- case GDK_2BUTTON_PRESS:
120
- case GDK_3BUTTON_PRESS:
121
- case GDK_BUTTON_RELEASE:
122
- gtype = GDK_TYPE_EVENT_BUTTON;
123
- break;
124
- case GDK_KEY_PRESS:
125
- case GDK_KEY_RELEASE:
126
- gtype = GDK_TYPE_EVENT_KEY;
127
- break;
128
- case GDK_ENTER_NOTIFY:
129
- case GDK_LEAVE_NOTIFY:
130
- gtype = GDK_TYPE_EVENT_CROSSING;
131
- break;
132
- case GDK_FOCUS_CHANGE:
133
- gtype = GDK_TYPE_EVENT_FOCUS;
134
- break;
135
- case GDK_CONFIGURE:
136
- gtype = GDK_TYPE_EVENT_CONFIGURE;
137
- break;
138
- case GDK_MAP:
139
- case GDK_UNMAP:
140
- break;
141
- case GDK_PROPERTY_NOTIFY:
142
- gtype = GDK_TYPE_EVENT_PROPERTY;
143
- break;
144
- case GDK_SELECTION_CLEAR:
145
- case GDK_SELECTION_REQUEST:
146
- case GDK_SELECTION_NOTIFY:
147
- gtype = GDK_TYPE_EVENT_SELECTION;
148
- break;
149
- case GDK_PROXIMITY_IN:
150
- case GDK_PROXIMITY_OUT:
151
- gtype = GDK_TYPE_EVENT_PROXIMITY;
152
- break;
153
- case GDK_DRAG_ENTER:
154
- case GDK_DRAG_LEAVE:
155
- case GDK_DRAG_MOTION:
156
- case GDK_DRAG_STATUS:
157
- case GDK_DROP_START:
158
- case GDK_DROP_FINISHED:
159
- gtype = GDK_TYPE_EVENT_DND;
160
- break;
161
- case GDK_CLIENT_EVENT:
162
- break;
163
- case GDK_VISIBILITY_NOTIFY:
164
- gtype = GDK_TYPE_EVENT_VISIBILITY;
165
- break;
166
- case GDK_SCROLL:
167
- gtype = GDK_TYPE_EVENT_SCROLL;
168
- break;
169
- case GDK_WINDOW_STATE:
170
- gtype = GDK_TYPE_EVENT_WINDOW_STATE;
171
- break;
172
- case GDK_SETTING:
173
- gtype = GDK_TYPE_EVENT_SETTING;
174
- break;
175
- case GDK_OWNER_CHANGE:
176
- gtype = GDK_TYPE_EVENT_OWNER_CHANGE;
177
- break;
178
- case GDK_GRAB_BROKEN:
179
- gtype = GDK_TYPE_EVENT_GRAB_BROKEN;
180
- break;
181
- case GDK_DAMAGE:
182
- gtype = GDK_TYPE_EVENT_EXPOSE;
183
- break;
184
- case GDK_TOUCH_BEGIN:
185
- case GDK_TOUCH_UPDATE:
186
- case GDK_TOUCH_END:
187
- case GDK_TOUCH_CANCEL:
188
- gtype = GDK_TYPE_EVENT_TOUCH;
189
- break;
190
- case GDK_EVENT_LAST:
191
- break;
192
- default:
193
- break;
194
- }
195
-
196
- return gtype;
197
- }
198
-
199
- static VALUE
200
- rb_gdk_event_type_to_class(GdkEventType event_type)
201
- {
202
- VALUE klass = Qnil;
203
-
204
- switch (event_type) {
205
- case GDK_NOTHING:
206
- case GDK_DELETE:
207
- case GDK_DESTROY:
208
- break;
209
- case GDK_EXPOSE:
210
- klass = rb_cGdkEventExpose;
211
- break;
212
- case GDK_MOTION_NOTIFY:
213
- klass = rb_cGdkEventMotion;
214
- break;
215
- case GDK_BUTTON_PRESS:
216
- case GDK_2BUTTON_PRESS:
217
- case GDK_3BUTTON_PRESS:
218
- case GDK_BUTTON_RELEASE:
219
- klass = rb_cGdkEventButton;
220
- break;
221
- case GDK_KEY_PRESS:
222
- case GDK_KEY_RELEASE:
223
- klass = rb_cGdkEventKey;
224
- break;
225
- case GDK_ENTER_NOTIFY:
226
- case GDK_LEAVE_NOTIFY:
227
- klass = rb_cGdkEventCrossing;
228
- break;
229
- case GDK_FOCUS_CHANGE:
230
- klass = rb_cGdkEventFocus;
231
- break;
232
- case GDK_CONFIGURE:
233
- klass = rb_cGdkEventConfigure;
234
- break;
235
- case GDK_MAP:
236
- case GDK_UNMAP:
237
- break;
238
- case GDK_PROPERTY_NOTIFY:
239
- klass = rb_cGdkEventProperty;
240
- break;
241
- case GDK_SELECTION_CLEAR:
242
- case GDK_SELECTION_REQUEST:
243
- case GDK_SELECTION_NOTIFY:
244
- klass = rb_cGdkEventSelection;
245
- break;
246
- case GDK_PROXIMITY_IN:
247
- case GDK_PROXIMITY_OUT:
248
- klass = rb_cGdkEventProximity;
249
- break;
250
- case GDK_DRAG_ENTER:
251
- case GDK_DRAG_LEAVE:
252
- case GDK_DRAG_MOTION:
253
- case GDK_DRAG_STATUS:
254
- case GDK_DROP_START:
255
- case GDK_DROP_FINISHED:
256
- klass = rb_cGdkEventDND;
257
- break;
258
- case GDK_CLIENT_EVENT:
259
- break;
260
- case GDK_VISIBILITY_NOTIFY:
261
- klass = rb_cGdkEventVisibility;
262
- break;
263
- case GDK_SCROLL:
264
- klass = rb_cGdkEventScroll;
265
- break;
266
- case GDK_WINDOW_STATE:
267
- klass = rb_cGdkEventWindowState;
268
- break;
269
- case GDK_SETTING:
270
- klass = rb_cGdkEventSetting;
271
- break;
272
- case GDK_OWNER_CHANGE:
273
- klass = rb_cGdkEventOwnerChange;
274
- break;
275
- case GDK_GRAB_BROKEN:
276
- klass = rb_cGdkEventGrabBroken;
277
- break;
278
- case GDK_DAMAGE:
279
- klass = rb_cGdkEventExpose;
280
- break;
281
- case GDK_TOUCH_BEGIN:
282
- case GDK_TOUCH_UPDATE:
283
- case GDK_TOUCH_END:
284
- case GDK_TOUCH_CANCEL:
285
- klass = rb_cGdkEventTouch;
286
- break;
287
- case GDK_EVENT_LAST:
288
- break;
289
- default:
290
- break;
291
- }
292
-
293
- if (NIL_P(klass)) {
294
- klass = rb_cGdkEventAny;
295
- }
296
-
297
- return klass;
298
- }
299
-
300
- static GType
301
- rb_gdk_event_to_gtype(VALUE event)
302
- {
303
- VALUE klass;
304
- GType type = GDK_TYPE_EVENT;
305
-
306
- klass = rb_obj_class(event);
307
- if (klass == rb_cGdkEvent) {
308
- type = GDK_TYPE_EVENT;
309
- } else if (klass == rb_cGdkEventAny) {
310
- type = GDK_TYPE_EVENT_ANY;
311
- } else if (klass == rb_cGdkEventExpose) {
312
- type = GDK_TYPE_EVENT_EXPOSE;
313
- } else if (klass == rb_cGdkEventVisibility) {
314
- type = GDK_TYPE_EVENT_VISIBILITY;
315
- } else if (klass == rb_cGdkEventMotion) {
316
- type = GDK_TYPE_EVENT_MOTION;
317
- } else if (klass == rb_cGdkEventButton) {
318
- type = GDK_TYPE_EVENT_BUTTON;
319
- } else if (klass == rb_cGdkEventScroll) {
320
- type = GDK_TYPE_EVENT_SCROLL;
321
- } else if (klass == rb_cGdkEventKey) {
322
- type = GDK_TYPE_EVENT_KEY;
323
- } else if (klass == rb_cGdkEventCrossing) {
324
- type = GDK_TYPE_EVENT_CROSSING;
325
- } else if (klass == rb_cGdkEventFocus) {
326
- type = GDK_TYPE_EVENT_FOCUS;
327
- } else if (klass == rb_cGdkEventConfigure) {
328
- type = GDK_TYPE_EVENT_CONFIGURE;
329
- } else if (klass == rb_cGdkEventProperty) {
330
- type = GDK_TYPE_EVENT_PROPERTY;
331
- } else if (klass == rb_cGdkEventSelection) {
332
- type = GDK_TYPE_EVENT_SELECTION;
333
- } else if (klass == rb_cGdkEventOwnerChange) {
334
- type = GDK_TYPE_EVENT_OWNER_CHANGE;
335
- } else if (klass == rb_cGdkEventProximity) {
336
- type = GDK_TYPE_EVENT_PROXIMITY;
337
- } else if (klass == rb_cGdkEventDND) {
338
- type = GDK_TYPE_EVENT_DND;
339
- } else if (klass == rb_cGdkEventWindowState) {
340
- type = GDK_TYPE_EVENT_WINDOW_STATE;
341
- } else if (klass == rb_cGdkEventSetting) {
342
- type = GDK_TYPE_EVENT_SETTING;
343
- } else if (klass == rb_cGdkEventGrabBroken) {
344
- type = GDK_TYPE_EVENT_GRAB_BROKEN;
345
- } else if (klass == rb_cGdkEventTouch) {
346
- type = GDK_TYPE_EVENT_TOUCH;
347
- } else {
348
- rb_raise(rb_eArgError, "Not event object: %s", RBG_INSPECT(event));
349
- }
350
-
351
- return type;
352
- }
353
-
354
- VALUE
355
- rbgdk_gdkevent2rval(GdkEvent *event)
356
- {
357
- return BOXED2RVAL(event, rb_gdk_event_type_to_gtype(event->any.type));
358
- }
359
-
360
- GdkEvent *
361
- rbgdk_rval2gdkevent(VALUE event)
362
- {
363
- return RVAL2BOXED(event, rb_gdk_event_to_gtype(event));
364
- }
365
-
366
- /***********************************************/
367
- #define ATTR_STR(type, name)\
368
- static VALUE \
369
- gdkevent ## type ## _ ## name (VALUE self)\
370
- {\
371
- return CSTR2RVAL(RVAL2GDKEVENT(self)->type.name);\
372
- }\
373
- static VALUE \
374
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
375
- {\
376
- RVAL2GDKEVENT(self)->type.name = (gchar *)RVAL2CSTR(val);\
377
- return self;\
378
- }
379
-
380
- #define ATTR_INT(type, name)\
381
- static VALUE \
382
- gdkevent ## type ## _ ## name (VALUE self)\
383
- {\
384
- return INT2NUM(RVAL2GDKEVENT(self)->type.name);\
385
- }\
386
- static VALUE \
387
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
388
- {\
389
- RVAL2GDKEVENT(self)->type.name = NUM2INT(val);\
390
- return self;\
391
- }
392
-
393
- #define ATTR_UINT(type, name)\
394
- static VALUE \
395
- gdkevent ## type ## _ ## name (VALUE self)\
396
- {\
397
- return UINT2NUM(RVAL2GDKEVENT(self)->type.name);\
398
- }\
399
- static VALUE \
400
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
401
- {\
402
- RVAL2GDKEVENT(self)->type.name = NUM2UINT(val);\
403
- return self;\
404
- }
405
-
406
- #define ATTR_GDKWINDOW(type, name)\
407
- static VALUE \
408
- gdkevent ## type ## _ ## name (VALUE self)\
409
- {\
410
- return GOBJ2RVAL(RVAL2GDKEVENT(self)->type.name);\
411
- }\
412
- static VALUE \
413
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
414
- {\
415
- RVAL2GDKEVENT(self)->type.name = RVAL2GDKWINDOW(val);\
416
- return self;\
417
- }
418
-
419
- #define ATTR_FLOAT(type, name)\
420
- static VALUE \
421
- gdkevent ## type ## _ ## name (VALUE self)\
422
- {\
423
- return rb_float_new(RVAL2GDKEVENT(self)->type.name);\
424
- }\
425
- static VALUE \
426
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
427
- {\
428
- RVAL2GDKEVENT(self)->type.name = NUM2DBL(val);\
429
- return self;\
430
- }
431
-
432
- #define ATTR_GOBJ(type, name)\
433
- static VALUE \
434
- gdkevent ## type ## _ ## name (VALUE self)\
435
- {\
436
- return GOBJ2RVAL(RVAL2GDKEVENT(self)->type.name);\
437
- }\
438
- static VALUE \
439
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
440
- {\
441
- GdkEvent *event;\
442
- event = RVAL2GDKEVENT(self);\
443
- if (event->type.name)\
444
- g_object_unref(event->type.name);\
445
- event->type.name = RVAL2GOBJ(val);\
446
- if (event->type.name)\
447
- g_object_ref(event->type.name);\
448
- return self;\
449
- }
450
-
451
- #define ATTR_BOOL(type, name)\
452
- static VALUE \
453
- gdkevent ## type ## _ ## name (VALUE self)\
454
- {\
455
- return CBOOL2RVAL(RVAL2GDKEVENT(self)->type.name);\
456
- }\
457
- static VALUE \
458
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
459
- {\
460
- RVAL2GDKEVENT(self)->type.name = RVAL2CBOOL(val);\
461
- return self;\
462
- }
463
-
464
- #define ATTR_ATOM(type, name)\
465
- static VALUE \
466
- gdkevent ## type ## _ ## name (VALUE self)\
467
- {\
468
- GdkAtom atom = RVAL2GDKEVENT(self)->type.name;\
469
- return GDKATOM2RVAL(atom);\
470
- }\
471
- static VALUE \
472
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
473
- {\
474
- RVAL2GDKEVENT(self)->type.name = RVAL2ATOM(val);\
475
- return self;\
476
- }
477
-
478
- #define ATTR_FLAGS(type, name, gtype)\
479
- static VALUE \
480
- gdkevent ## type ## _ ## name (VALUE self)\
481
- {\
482
- return GFLAGS2RVAL(RVAL2GDKEVENT(self)->type.name, gtype);\
483
- }\
484
- static VALUE \
485
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
486
- {\
487
- RVAL2GDKEVENT(self)->type.name = RVAL2GFLAGS(val, gtype);\
488
- return self;\
489
- }
490
-
491
- #define ATTR_ENUM(type, name, gtype)\
492
- static VALUE \
493
- gdkevent ## type ## _ ## name (VALUE self)\
494
- {\
495
- return GENUM2RVAL(RVAL2GDKEVENT(self)->type.name, gtype);\
496
- }\
497
- static VALUE \
498
- gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
499
- {\
500
- RVAL2GDKEVENT(self)->type.name = RVAL2GENUM(val, gtype);\
501
- return self;\
502
- }
503
-
504
- #define ATTR_AXES(type, gdkklass) \
505
- static VALUE \
506
- gdkevent ##type ## _axes(VALUE self)\
507
- {\
508
- gdkklass type = RVAL2GDKEVENT(self)->type;\
509
- return type.axes ? rb_ary_new3(2, \
510
- rb_float_new(type.axes[0]),\
511
- rb_float_new(type.axes[1])) : Qnil;\
512
- } \
513
- static VALUE \
514
- gdkevent ## type ## _set_axes(VALUE self, VALUE x, VALUE y)\
515
- {\
516
- gdkklass val = RVAL2GDKEVENT(self)->type;\
517
- val.axes[0] = NUM2DBL(x);\
518
- val.axes[1] = NUM2DBL(y);\
519
- return self;\
520
- }
521
-
522
- #define DEFINE_ACCESSOR(event, type, name) \
523
- rbg_define_method(event, G_STRINGIFY(name), gdkevent ## type ## _## name, 0);\
524
- rbg_define_method(event, G_STRINGIFY(set_ ## name), gdkevent ## type ## _set_## name, 1);
525
-
526
-
527
- /* initialize */
528
- #define GDKEVENT_INIT(type, default_gtype) \
529
- static VALUE \
530
- gdkevent ## type ## _initialize(int argc, VALUE *argv, VALUE self)\
531
- {\
532
- VALUE type;\
533
- GdkEventType gtype;\
534
- \
535
- rb_scan_args(argc, argv, "01", &type);\
536
- if (NIL_P(type)){\
537
- gtype = default_gtype;\
538
- } else {\
539
- gtype = RVAL2GDKEVENTTYPE(type);\
540
- }\
541
- \
542
- G_INITIALIZE(self, gdk_event_new(gtype));\
543
- return Qnil;\
544
- }
545
-
546
- #define DEFINE_INIT(event, type) \
547
- rbg_define_method(event, "initialize", gdkevent ## type ## _initialize, -1);
548
-
549
- /***********************************************/
550
-
551
- /* GdkEvent Singleton Methods */
552
- static VALUE
553
- gdkevent_s_events_pending(G_GNUC_UNUSED VALUE self)
554
- {
555
- return CBOOL2RVAL(gdk_events_pending());
556
- }
557
-
558
- static VALUE
559
- gdkevent_s_peek(G_GNUC_UNUSED VALUE self)
560
- {
561
- return GDKEVENT2RVAL(gdk_event_peek());
562
- }
563
-
564
- static VALUE
565
- gdkevent_s_get(G_GNUC_UNUSED VALUE self)
566
- {
567
- return GDKEVENT2RVAL(gdk_event_get());
568
- }
569
-
570
- /* GdkEvent */
571
- static VALUE
572
- gdkevent_initialize(VALUE self, VALUE type)
573
- {
574
- GdkEventType event_type;
575
- VALUE klass;
576
-
577
- event_type = RVAL2GDKEVENTTYPE(type);
578
- klass = rb_gdk_event_type_to_class(event_type);
579
- if (!RVAL2CBOOL(rb_obj_is_kind_of(self, klass))) {
580
- rb_raise(rb_eArgError, "Wrong event type for this class.");
581
- }
582
-
583
- G_INITIALIZE(self, gdk_event_new(event_type));
584
- return Qnil;
585
- }
586
-
587
- static VALUE
588
- gdkevent_type(VALUE self)
589
- {
590
- return GDKEVENTTYPE2RVAL(RVAL2GDKEVENT(self)->type);
591
- }
592
-
593
- static VALUE
594
- gdkevent_put(VALUE self)
595
- {
596
- gdk_event_put(RVAL2GDKEVENT(self));
597
- return self;
598
- }
599
-
600
- /* We don't need this.
601
- gdk_event_get_time();
602
- gboolean gdk_event_get_state (GdkEvent *event,
603
- GdkModifierType *state);
604
- */
605
-
606
- static VALUE
607
- gdkevent_get_axis(VALUE self, VALUE axis_use)
608
- {
609
- gdouble value;
610
- gboolean ret = gdk_event_get_axis(RVAL2GDKEVENT(self),
611
- RVAL2GDKAXISUSE(axis_use), &value);
612
- return ret ? rb_float_new(value) : Qnil;
613
- }
614
-
615
- static VALUE
616
- gdkevent_get_coords(VALUE self)
617
- {
618
- gdouble x_win, y_win;
619
- gboolean ret = gdk_event_get_coords(RVAL2GDKEVENT(self), &x_win, &y_win);
620
-
621
- return ret ? rb_ary_new3(2, rb_float_new(x_win), rb_float_new(y_win)) : Qnil;
622
- }
623
-
624
- static VALUE
625
- gdkevent_get_root_coords(VALUE self)
626
- {
627
- gdouble x_root, y_root;
628
- gboolean ret = gdk_event_get_root_coords(RVAL2GDKEVENT(self), &x_root, &y_root);
629
-
630
- return ret ? rb_ary_new3(2, rb_float_new(x_root), rb_float_new(y_root)) : Qnil;
631
- }
632
-
633
- static void
634
- handler_func(GdkEvent *event, gpointer func)
635
- {
636
- rb_funcall((VALUE)func, id_call, 1, GDKEVENT2RVAL(event));
637
- }
638
-
639
- static VALUE
640
- gdkevent_s_handler_set(VALUE self)
641
- {
642
- volatile VALUE func = rb_block_proc();
643
- G_RELATIVE(self, func);
644
-
645
- gdk_event_handler_set((GdkEventFunc)handler_func, (gpointer)func, NULL);
646
- return self;
647
- }
648
-
649
- static VALUE
650
- gdkevent_s_get_show_events(G_GNUC_UNUSED VALUE self)
651
- {
652
- return CBOOL2RVAL(gdk_get_show_events());
653
- }
654
-
655
- static VALUE
656
- gdkevent_s_set_show_events(VALUE self, VALUE show_events)
657
- {
658
- gdk_set_show_events(RVAL2CBOOL(show_events));
659
- return self;
660
- }
661
-
662
- static VALUE
663
- gdkevent_set_screen(VALUE self, VALUE screen)
664
- {
665
- gdk_event_set_screen(RVAL2GDKEVENT(self), RVAL2GDKSCREEN(screen));
666
- return self;
667
- }
668
-
669
- static VALUE
670
- gdkevent_screen(VALUE self)
671
- {
672
- return GOBJ2RVAL(gdk_event_get_screen(RVAL2GDKEVENT(self)));
673
- }
674
-
675
- /*
676
- type: String, Integer, Gdk::Color.
677
- */
678
- static VALUE
679
- gdkevent_s_setting_get(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
680
- {
681
- VALUE name, type;
682
- GType gtype;
683
- GValue val = G_VALUE_INIT;
684
- gboolean ret;
685
- VALUE value;
686
-
687
- rb_scan_args(argc, argv, "11", &name, &type);
688
- if (NIL_P(type))
689
- gtype = G_TYPE_STRING;
690
- else
691
- gtype = CLASS2GTYPE(type);
692
-
693
- g_value_init(&val, gtype);
694
- ret = gdk_setting_get(RVAL2CSTR(name), &val);
695
-
696
- value = ret ? GVAL2RVAL(&val) : Qnil;
697
- g_value_unset(&val);
698
- return value;
699
- }
700
-
701
- /* GdkEventAny */
702
- ATTR_GOBJ(any, window);
703
- ATTR_BOOL(any, send_event);
704
-
705
- /* GdkEventKey */
706
- ATTR_UINT(key, time);
707
- ATTR_FLAGS(key, state, GDK_TYPE_MODIFIER_TYPE);
708
- ATTR_INT(key, keyval);
709
- ATTR_UINT(key, hardware_keycode);
710
- ATTR_UINT(key, group);
711
-
712
- /* GdkEventButton */
713
- ATTR_UINT(button, time);
714
- ATTR_FLOAT(button, x);
715
- ATTR_FLOAT(button, y);
716
- ATTR_AXES(button, GdkEventButton);
717
- ATTR_INT(button, button);
718
- ATTR_FLAGS(button, state, GDK_TYPE_MODIFIER_TYPE);
719
- ATTR_GOBJ(button, device);
720
- ATTR_FLOAT(button, x_root);
721
- ATTR_FLOAT(button, y_root);
722
-
723
- /* GdkEventTouch */
724
- ATTR_UINT(touch, time);
725
- ATTR_FLOAT(touch, x);
726
- ATTR_FLOAT(touch, y);
727
- ATTR_AXES(touch, GdkEventTouch);
728
- ATTR_FLAGS(touch, state, GDK_TYPE_MODIFIER_TYPE);
729
- ATTR_BOOL(touch, emulating_pointer);
730
- ATTR_GOBJ(touch, device);
731
- ATTR_FLOAT(touch, x_root);
732
- ATTR_FLOAT(touch, y_root);
733
-
734
- /* GdkEventScroll */
735
- ATTR_UINT(scroll, time);
736
- ATTR_FLOAT(scroll, x);
737
- ATTR_FLOAT(scroll, y);
738
- ATTR_FLAGS(scroll, state, GDK_TYPE_MODIFIER_TYPE);
739
- ATTR_ENUM(scroll, direction, GDK_TYPE_SCROLL_DIRECTION);
740
- ATTR_GOBJ(scroll, device);
741
- ATTR_FLOAT(scroll, x_root);
742
- ATTR_FLOAT(scroll, y_root);
743
- GDKEVENT_INIT(scroll, GDK_SCROLL);
744
-
745
- /* GdkEventMotion */
746
- ATTR_UINT(motion, time);
747
- ATTR_FLOAT(motion, x);
748
- ATTR_FLOAT(motion, y);
749
- ATTR_AXES(motion, GdkEventMotion);
750
- ATTR_FLOAT(motion, x_root);
751
- ATTR_FLOAT(motion, y_root);
752
- ATTR_FLAGS(motion, state, GDK_TYPE_MODIFIER_TYPE);
753
- ATTR_BOOL(motion, is_hint);
754
- ATTR_GOBJ(motion, device);
755
- GDKEVENT_INIT(motion, GDK_MOTION_NOTIFY);
756
-
757
- static VALUE
758
- gdkeventmotion_request_motions(VALUE self)
759
- {
760
- gdk_event_request_motions(&(RVAL2GDKEVENT(self)->motion));
761
- return self;
762
- }
763
-
764
- /* GdkEventExpose */
765
- static VALUE
766
- gdkeventexpose_area(VALUE self)
767
- {
768
- return GDKRECTANGLE2RVAL(&RVAL2GDKEVENT(self)->expose.area);
769
- }
770
-
771
- static VALUE
772
- gdkeventexpose_set_area(VALUE self, VALUE rect)
773
- {
774
- GdkRectangle* grect = RVAL2GDKRECTANGLE(rect);
775
- GdkEventExpose *event = &(RVAL2GDKEVENT(self)->expose);
776
- event->area.x = grect->x;
777
- event->area.y = grect->y;
778
- event->area.width = grect->width;
779
- event->area.height = grect->height;
780
- return self;
781
- }
782
-
783
- static VALUE
784
- gdkeventexpose_region(VALUE self)
785
- {
786
- return CRREGION2RVAL(RVAL2GDKEVENT(self)->expose.region);
787
- }
788
-
789
- static VALUE
790
- gdkeventexpose_set_region(VALUE self, VALUE region)
791
- {
792
- RVAL2GDKEVENT(self)->expose.region = RVAL2CRREGION(region);
793
- return self;
794
- }
795
-
796
- ATTR_INT(expose, count);
797
- GDKEVENT_INIT(expose, GDK_EXPOSE);
798
-
799
- /* GdkEventVisibility */
800
- ATTR_ENUM(visibility, state, GDK_TYPE_VISIBILITY_STATE);
801
- GDKEVENT_INIT(visibility, GDK_VISIBILITY_NOTIFY);
802
-
803
- /* GdkEventCrossing */
804
- ATTR_GOBJ(crossing, subwindow);
805
- ATTR_UINT(crossing, time);
806
- ATTR_INT(crossing, x);
807
- ATTR_INT(crossing, y);
808
- ATTR_FLOAT(crossing, x_root);
809
- ATTR_FLOAT(crossing, y_root);
810
- ATTR_ENUM(crossing, mode, GDK_TYPE_CROSSING_MODE);
811
- ATTR_ENUM(crossing, detail, GDK_TYPE_NOTIFY_TYPE);
812
- ATTR_BOOL(crossing, focus);
813
- ATTR_FLAGS(crossing, state, GDK_TYPE_MODIFIER_TYPE);
814
-
815
- /* GdkEventFocus */
816
- ATTR_BOOL(focus_change, in);
817
- GDKEVENT_INIT(focus_change, GDK_FOCUS_CHANGE);
818
-
819
- /* GdkEventConfigure */
820
- ATTR_INT(configure, x);
821
- ATTR_INT(configure, y);
822
- ATTR_INT(configure, width);
823
- ATTR_INT(configure, height);
824
- GDKEVENT_INIT(configure, GDK_CONFIGURE);
825
-
826
- /* GdkEventProperty */
827
- ATTR_ATOM(property, atom);
828
- ATTR_UINT(property, time);
829
- ATTR_ENUM(property, state, GDK_TYPE_PROPERTY_STATE);
830
- GDKEVENT_INIT(property, GDK_PROPERTY_NOTIFY);
831
-
832
- /* GdkEventSelection */
833
- ATTR_ATOM(selection, selection);
834
- ATTR_ATOM(selection, target);
835
- ATTR_ATOM(selection, property);
836
- ATTR_GDKWINDOW(selection, requestor);
837
- ATTR_INT(selection, time);
838
-
839
- /* GdkEventDND */
840
- ATTR_GOBJ(dnd, context);
841
- ATTR_UINT(dnd, time);
842
- ATTR_INT(dnd, x_root);
843
- ATTR_INT(dnd, y_root);
844
-
845
- /* GdkEventProximity */
846
- ATTR_UINT(proximity, time);
847
- ATTR_GOBJ(proximity, device);
848
-
849
- /* GdkEventWindowState */
850
- ATTR_FLAGS(window_state, changed_mask, GDK_TYPE_WINDOW_STATE);
851
- ATTR_FLAGS(window_state, new_window_state, GDK_TYPE_WINDOW_STATE);
852
- GDKEVENT_INIT(window_state, GDK_WINDOW_STATE);
853
-
854
- /* GdkEventSetting */
855
- ATTR_ENUM(setting, action, GDK_TYPE_SETTING_ACTION);
856
- ATTR_STR(setting, name);
857
- GDKEVENT_INIT(setting, GDK_SETTING);
858
-
859
- /* GdkEventOwnerChange */
860
- ATTR_GDKWINDOW(owner_change, owner);
861
- ATTR_ENUM(owner_change, reason, GDK_TYPE_OWNER_CHANGE);
862
- ATTR_ATOM(owner_change, selection);
863
- ATTR_UINT(owner_change, time);
864
- ATTR_UINT(owner_change, selection_time);
865
- GDKEVENT_INIT(owner_change, GDK_OWNER_CHANGE);
866
-
867
- /* GdkEventGrabBroken */
868
- ATTR_BOOL(grab_broken, keyboard);
869
- ATTR_BOOL(grab_broken, implicit);
870
- ATTR_GOBJ(grab_broken, grab_window);
871
- GDKEVENT_INIT(grab_broken, GDK_GRAB_BROKEN);
872
-
873
- /* MISC */
874
- static VALUE
875
- gdkevent_g2r(const GValue *values)
876
- {
877
- return GDKEVENT2RVAL(g_value_get_boxed(&values[0]));
878
- }
879
-
880
- void
881
- Init_gdk_event(VALUE mGdk)
882
- {
883
- /* GdkEvent */
884
- rb_cGdkEvent = G_DEF_CLASS(GDK_TYPE_EVENT, "Event", mGdk);
885
- rbg_define_method(rb_cGdkEvent, "initialize", gdkevent_initialize, 1);
886
- rbg_define_method(rb_cGdkEvent, "event_type", gdkevent_type, 0);
887
-
888
- rbg_define_singleton_method(rb_cGdkEvent, "events_pending?", gdkevent_s_events_pending, 0);
889
- rbg_define_singleton_method(rb_cGdkEvent, "peek", gdkevent_s_peek, 0);
890
- rbg_define_singleton_method(rb_cGdkEvent, "get", gdkevent_s_get, 0);
891
- rbg_define_method(rb_cGdkEvent, "put", gdkevent_put, 0);
892
- rbg_define_method(rb_cGdkEvent, "get_axis", gdkevent_get_axis, 1);
893
- rbg_define_method(rb_cGdkEvent, "coords", gdkevent_get_coords, 0);
894
- rbg_define_method(rb_cGdkEvent, "root_coords", gdkevent_get_root_coords, 0);
895
-
896
- rbg_define_singleton_method(rb_cGdkEvent, "handler_set", gdkevent_s_handler_set, 0);
897
- rbg_define_singleton_method(rb_cGdkEvent, "show_events?", gdkevent_s_get_show_events, 0);
898
- rbg_define_singleton_method(rb_cGdkEvent, "set_show_events", gdkevent_s_set_show_events, 1);
899
- rbg_define_singleton_method(rb_cGdkEvent, "setting_get", gdkevent_s_setting_get, -1);
900
- rbg_define_method(rb_cGdkEvent, "screen", gdkevent_screen, 0);
901
- rbg_define_method(rb_cGdkEvent, "set_screen", gdkevent_set_screen, 1);
902
-
903
- /* GdkEventAny's fields */
904
- DEFINE_ACCESSOR(rb_cGdkEvent, any, window);
905
- rbg_define_method(rb_cGdkEvent, "send_event?", gdkeventany_send_event, 0);
906
- rbg_define_method(rb_cGdkEvent, "set_send_event", gdkeventany_set_send_event, 1);
907
-
908
- /*
909
- * GdkEvent's Constants
910
- */
911
- rb_define_const(rb_cGdkEvent, "CURRENT_TIME", INT2FIX(GDK_CURRENT_TIME));
912
- rb_define_const(rb_cGdkEvent, "PROPAGATE", CBOOL2RVAL(GDK_EVENT_PROPAGATE));
913
- rb_define_const(rb_cGdkEvent, "STOP", CBOOL2RVAL(GDK_EVENT_STOP));
914
- rb_define_const(rb_cGdkEvent, "PRIORITY_EVENTS", INT2FIX(GDK_PRIORITY_EVENTS));
915
- rb_define_const(rb_cGdkEvent, "PRIORITY_REDRAW", INT2FIX(GDK_PRIORITY_REDRAW));
916
-
917
- /* GdkEventType */
918
- /* XXX */
919
- G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
920
- G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
921
- G_DEF_CLASS(GDK_TYPE_EVENT_TYPE, "Type", rb_cGdkEvent);
922
- G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
923
- G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
924
- G_DEF_CONSTANTS(rb_cGdkEvent, GDK_TYPE_EVENT_TYPE, "GDK_");
925
-
926
- /* GdkEventMask */
927
- G_DEF_CLASS(GDK_TYPE_EVENT_MASK, "Mask", rb_cGdkEvent);
928
- G_DEF_CONSTANTS(rb_cGdkEvent, GDK_TYPE_EVENT_MASK, "GDK_");
929
-
930
- /* GdkEventAny */
931
- rb_cGdkEventAny =
932
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_ANY, "EventAny",
933
- mGdk, rb_cGdkEvent);
934
-
935
- /* GdkEventExpose */
936
- rb_cGdkEventExpose =
937
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_EXPOSE, "EventExpose",
938
- mGdk, rb_cGdkEvent);
939
- DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, area);
940
- DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, region);
941
- DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, count);
942
- DEFINE_INIT(rb_cGdkEventExpose, expose);
943
-
944
- /* GdkEventVisibility */
945
- rb_cGdkEventVisibility =
946
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_VISIBILITY, "EventVisibility",
947
- mGdk, rb_cGdkEvent);
948
- DEFINE_ACCESSOR(rb_cGdkEventVisibility, visibility, state);
949
- DEFINE_INIT(rb_cGdkEventVisibility, visibility);
950
-
951
- /* GdkVisibilityState */
952
- G_DEF_CLASS(GDK_TYPE_VISIBILITY_STATE, "State", rb_cGdkEventVisibility);
953
- G_DEF_CONSTANTS(rb_cGdkEventVisibility,
954
- GDK_TYPE_VISIBILITY_STATE, "GDK_VISIBILITY_");
955
-
956
- /* GdkEventMotion */
957
- rb_cGdkEventMotion =
958
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_MOTION, "EventMotion",
959
- mGdk, rb_cGdkEvent);
960
- DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, time);
961
- DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, x);
962
- DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, y);
963
- rbg_define_method(rb_cGdkEventMotion, "axes", gdkeventmotion_axes, 0);
964
- rbg_define_method(rb_cGdkEventMotion, "set_axes", gdkeventmotion_set_axes, 1);
965
- DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, state);
966
- rbg_define_method(rb_cGdkEventMotion, "hint?", gdkeventmotion_is_hint, 0);
967
- rbg_define_method(rb_cGdkEventMotion, "set_hint", gdkeventmotion_set_is_hint, 1);
968
- DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, device);
969
- DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, x_root);
970
- DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, y_root);
971
- DEFINE_INIT(rb_cGdkEventMotion, motion);
972
- rbg_define_method(rb_cGdkEventMotion, "request", gdkeventmotion_request_motions, 0);
973
-
974
- /* GdkEventButton */
975
- rb_cGdkEventButton =
976
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_BUTTON, "EventButton",
977
- mGdk, rb_cGdkEvent);
978
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, time);
979
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, x);
980
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, y);
981
- rbg_define_method(rb_cGdkEventButton, "axes", gdkeventbutton_axes, 0);
982
- rbg_define_method(rb_cGdkEventButton, "set_axes", gdkeventbutton_set_axes, 2);
983
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, state);
984
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, button);
985
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, device);
986
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, x_root);
987
- DEFINE_ACCESSOR(rb_cGdkEventButton, button, y_root);
988
-
989
- /* GdkEventTouch */
990
- rb_cGdkEventTouch =
991
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_TOUCH, "EventTouch",
992
- mGdk, rb_cGdkEvent);
993
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, time);
994
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, x);
995
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, y);
996
- rbg_define_method(rb_cGdkEventTouch, "axes", gdkeventtouch_axes, 0);
997
- rbg_define_method(rb_cGdkEventTouch, "set_axes", gdkeventtouch_set_axes, 2);
998
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, state);
999
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, emulating_pointer);
1000
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, device);
1001
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, x_root);
1002
- DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, y_root);
1003
-
1004
- /* GdkEventScroll */
1005
- rb_cGdkEventScroll =
1006
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SCROLL, "EventScroll",
1007
- mGdk, rb_cGdkEvent);
1008
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, time);
1009
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, x);
1010
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, y);
1011
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, state);
1012
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, direction);
1013
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, device);
1014
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, x_root);
1015
- DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, y_root);
1016
- DEFINE_INIT(rb_cGdkEventScroll, scroll);
1017
-
1018
- /* GdkScrollDirection */
1019
- G_DEF_CLASS(GDK_TYPE_SCROLL_DIRECTION, "Direction", rb_cGdkEventScroll);
1020
- G_DEF_CONSTANTS(rb_cGdkEventScroll,
1021
- GDK_TYPE_SCROLL_DIRECTION, "GDK_SCROLL_");
1022
-
1023
- /* GdkEventKey */
1024
- rb_cGdkEventKey =
1025
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_KEY, "EventKey",
1026
- mGdk, rb_cGdkEvent);
1027
- DEFINE_ACCESSOR(rb_cGdkEventKey, key, time);
1028
- DEFINE_ACCESSOR(rb_cGdkEventKey, key, state);
1029
- DEFINE_ACCESSOR(rb_cGdkEventKey, key, keyval);
1030
- DEFINE_ACCESSOR(rb_cGdkEventKey, key, hardware_keycode);
1031
- DEFINE_ACCESSOR(rb_cGdkEventKey, key, group);
1032
-
1033
- /* GdkEventCrossing */
1034
- rb_cGdkEventCrossing =
1035
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_CROSSING, "EventCrossing",
1036
- mGdk, rb_cGdkEvent);
1037
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, subwindow);
1038
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, time);
1039
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, x);
1040
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, y);
1041
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, x_root);
1042
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, y_root);
1043
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, mode);
1044
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, detail);
1045
- rbg_define_method(rb_cGdkEventCrossing, "focus?", gdkeventcrossing_focus, 0);
1046
- rbg_define_method(rb_cGdkEventCrossing, "set_focus", gdkeventcrossing_set_focus, 1);
1047
- DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, state);
1048
-
1049
- /* GdkCrossingMode */
1050
- G_DEF_CLASS(GDK_TYPE_CROSSING_MODE, "Mode", rb_cGdkEventCrossing);
1051
- G_DEF_CONSTANTS(rb_cGdkEventCrossing,
1052
- GDK_TYPE_CROSSING_MODE, "GDK_CROSSING_");
1053
- /* GdkNotifyType */
1054
- G_DEF_CLASS(GDK_TYPE_NOTIFY_TYPE, "NotifyType", rb_cGdkEventScroll);
1055
- G_DEF_CONSTANTS(rb_cGdkEventScroll, GDK_TYPE_NOTIFY_TYPE, "GDK_");
1056
-
1057
- /* GdkEventFocus */
1058
- rb_cGdkEventFocus =
1059
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_FOCUS, "EventFocus",
1060
- mGdk, rb_cGdkEvent);
1061
- rbg_define_method(rb_cGdkEventFocus, "in?", gdkeventfocus_change_in, 0);
1062
- rbg_define_method(rb_cGdkEventFocus, "set_in",
1063
- gdkeventfocus_change_set_in, 1);
1064
- DEFINE_INIT(rb_cGdkEventFocus, focus_change);
1065
-
1066
- /* GdkEventConfigure */
1067
- rb_cGdkEventConfigure =
1068
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_CONFIGURE, "EventConfigure",
1069
- mGdk, rb_cGdkEvent);
1070
- DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, x);
1071
- DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, y);
1072
- DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, width);
1073
- DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, height);
1074
- DEFINE_INIT(rb_cGdkEventConfigure, configure);
1075
-
1076
- /* GdkEventProperty */
1077
- rb_cGdkEventProperty =
1078
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_PROPERTY, "EventProperty",
1079
- mGdk, rb_cGdkEvent);
1080
- DEFINE_ACCESSOR(rb_cGdkEventProperty, property, atom);
1081
- DEFINE_ACCESSOR(rb_cGdkEventProperty, property, time);
1082
- DEFINE_ACCESSOR(rb_cGdkEventProperty, property, state);
1083
- DEFINE_INIT(rb_cGdkEventProperty, property);
1084
-
1085
- /* GdkPropertyState */
1086
- G_DEF_CLASS(GDK_TYPE_PROPERTY_STATE, "State", rb_cGdkEventProperty);
1087
- G_DEF_CONSTANTS(rb_cGdkEventProperty, GDK_TYPE_PROPERTY_STATE, "GDK_");
1088
-
1089
- /* GdkEventSelection */
1090
- rb_cGdkEventSelection =
1091
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SELECTION, "EventSelection",
1092
- mGdk, rb_cGdkEvent);
1093
- DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, selection);
1094
- DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, target);
1095
- DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, property);
1096
- DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, requestor);
1097
- DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, time);
1098
-
1099
- /* GdkEventOwnerChange */
1100
- rb_cGdkEventOwnerChange =
1101
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_OWNER_CHANGE, "EventOwnerChange",
1102
- mGdk, rb_cGdkEvent);
1103
- DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, owner);
1104
- DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, reason);
1105
- DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, selection);
1106
- DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, time);
1107
- DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, selection_time);
1108
- DEFINE_INIT(rb_cGdkEventOwnerChange, owner_change);
1109
-
1110
- /* GdkOwnerChange */
1111
- G_DEF_CLASS(GDK_TYPE_OWNER_CHANGE, "OwnerChange", rb_cGdkEventScroll);
1112
- G_DEF_CONSTANTS(rb_cGdkEventScroll,
1113
- GDK_TYPE_OWNER_CHANGE, "GDK_OWNER_CHANGE_");
1114
-
1115
- /* GdkEventProximity */
1116
- rb_cGdkEventProximity =
1117
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_PROXIMITY, "EventProximity",
1118
- mGdk, rb_cGdkEvent);
1119
- DEFINE_ACCESSOR(rb_cGdkEventProximity, proximity, time);
1120
- DEFINE_ACCESSOR(rb_cGdkEventProximity, proximity, device);
1121
-
1122
- /* GdkEventDND */
1123
- rb_cGdkEventDND =
1124
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_DND, "EventDND",
1125
- mGdk, rb_cGdkEvent);
1126
- DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, context);
1127
- DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, time);
1128
- DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, x_root);
1129
- DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, y_root);
1130
-
1131
- /* GdkEventWindowState */
1132
- rb_cGdkEventWindowState =
1133
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_WINDOW_STATE, "EventWindowState",
1134
- mGdk, rb_cGdkEvent);
1135
- DEFINE_ACCESSOR(rb_cGdkEventWindowState, window_state, changed_mask);
1136
- DEFINE_ACCESSOR(rb_cGdkEventWindowState, window_state, new_window_state);
1137
- DEFINE_INIT(rb_cGdkEventWindowState, window_state);
1138
-
1139
- /* GdkWindowState */
1140
- G_DEF_CLASS(GDK_TYPE_WINDOW_STATE, "WindowState", rb_cGdkEventScroll);
1141
- G_DEF_CONSTANTS(rb_cGdkEventWindowState,
1142
- GDK_TYPE_WINDOW_STATE, "GDK_WINDOW_STATE_");
1143
-
1144
- /* GdkEventSetting */
1145
- rb_cGdkEventSetting =
1146
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SETTING, "EventSetting",
1147
- mGdk, rb_cGdkEvent);
1148
- DEFINE_ACCESSOR(rb_cGdkEventSetting, setting, action);
1149
- DEFINE_ACCESSOR(rb_cGdkEventSetting, setting, name);
1150
- DEFINE_INIT(rb_cGdkEventSetting, setting);
1151
-
1152
- /* GdkSettingAction */
1153
- G_DEF_CLASS(GDK_TYPE_SETTING_ACTION, "Action", rb_cGdkEventScroll);
1154
- G_DEF_CONSTANTS(rb_cGdkEventSetting,
1155
- GDK_TYPE_SETTING_ACTION, "GDK_SETTING_");
1156
-
1157
- /* GdkEventGrabBroken */
1158
- rb_cGdkEventGrabBroken =
1159
- G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_GRAB_BROKEN, "EventGrabBroken",
1160
- mGdk, rb_cGdkEvent);
1161
- rbg_define_method(rb_cGdkEventGrabBroken,
1162
- "keyboard?", gdkeventgrab_broken_keyboard, 0);
1163
- rbg_define_method(rb_cGdkEventGrabBroken,
1164
- "set_keyboard", gdkeventgrab_broken_set_keyboard, 1);
1165
- rbg_define_method(rb_cGdkEventGrabBroken,
1166
- "implicit?", gdkeventgrab_broken_implicit, 0);
1167
- rbg_define_method(rb_cGdkEventGrabBroken,
1168
- "set_implicit", gdkeventgrab_broken_set_implicit, 1);
1169
- DEFINE_ACCESSOR(rb_cGdkEventGrabBroken, grab_broken, grab_window);
1170
- DEFINE_INIT(rb_cGdkEventGrabBroken, grab_broken);
1171
-
1172
- rbgobj_register_g2r_func(GDK_TYPE_EVENT, &gdkevent_g2r);
1173
- }