gdk3 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
- }