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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84a0f68f6c711d7004d6de4fec17891a554c46fa
4
- data.tar.gz: 3a2dfd2e13789d47ac6e641a8c68e0471ca56c55
3
+ metadata.gz: b5112921765d2a9984668ee91a8fd957e24fb03f
4
+ data.tar.gz: c3afb838ad4b8135dcb90cd71521f0b551a62ec5
5
5
  SHA512:
6
- metadata.gz: 935655061fa9cbbb5d407905f72100b676afece33a08dd03feda2061977b8a5ae930828ca2fb127633e8ff97340f096a6618f5446af4734873df9cf383641d36
7
- data.tar.gz: 42bb6f1c360309b56c03b72b3b7252942dab60ecaa356b280dafa1230dc6d5f4e4203ab21edd71b26d3a3c3349de20c4e64771411a8ed958177aa46e11809477
6
+ metadata.gz: 7f6297f1476e0d53ccfa28c2e649b50c86852dbfded984b56969dfd328684a648612eb579603fb3572ba15f0f782b5084b8cff81b38fa4beb155e15bd9857e46
7
+ data.tar.gz: c52e62902760295f63727301485be04b1e01b88287dc3b227d96b3ce49240f0aaaf88c537c323de3aad4ab6e3abb4c641f7c1cdbf74715c3661ca37bc8db9bb2
data/Rakefile CHANGED
@@ -1,4 +1,20 @@
1
1
  # -*- ruby -*-
2
+ #
3
+ # Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2
18
 
3
19
  $LOAD_PATH.unshift("./../glib2/lib")
4
20
  require "gnome2/rake/package-task"
@@ -26,17 +42,15 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
26
42
  :name => "gtk+",
27
43
  :download_site => :gnome,
28
44
  :label => "GTK+",
29
- :version => "3.10.7",
45
+ :version => "3.14.1",
30
46
  :compression_method => "xz",
31
47
  :windows => {
32
48
  :configure_args => [
33
49
  "--enable-introspection",
34
50
  "--with-included-immodules",
35
51
  ],
36
- :patches => [
37
- "gdk+-3.10.6-remove-def-use.diff",
38
- ],
39
52
  :need_autoreconf => true,
53
+ :build_concurrently => false,
40
54
  :built_file => "bin/libgdk-3-0.dll",
41
55
  },
42
56
  },
data/lib/gdk3/atom.rb ADDED
@@ -0,0 +1,26 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class Atom
19
+ class << self
20
+ alias_method :intern_raw, :intern
21
+ def intern(name, exist=true)
22
+ intern_raw(name, exist)
23
+ end
24
+ end
25
+ end
26
+ end
data/lib/gdk3/cairo.rb ADDED
@@ -0,0 +1,60 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Cairo
18
+ class Context
19
+ if method_defined?(:set_source_color)
20
+ alias_method :set_source_not_gdk_color, :set_source_color
21
+ def set_source_color(color)
22
+ if color.is_a?(Gdk::Color)
23
+ set_source_gdk_color(color)
24
+ else
25
+ set_source_not_gdk_color(color)
26
+ end
27
+ end
28
+ else
29
+ alias_method :set_source_color, :set_source_gdk_color
30
+ end
31
+
32
+ def source_color=(color)
33
+ set_source_color(color)
34
+ color
35
+ end
36
+
37
+ if method_defined?(:set_source_rgba)
38
+ alias_method :set_source_not_gdk_rgba, :set_source_rgba
39
+ def set_source_rgba(rgba)
40
+ if rgba.is_a?(Gdk::RGBA)
41
+ set_source_gdk_rgba(rgba)
42
+ else
43
+ set_source_not_gdk_rgba(rgba)
44
+ end
45
+ end
46
+ else
47
+ alias_method :set_source_rgba, :set_source_gdk_rgba
48
+ end
49
+
50
+ def source_rgba=(rgba)
51
+ set_source_rgba(rgba)
52
+ rgba
53
+ end
54
+
55
+ alias_method :set_source_pixbuf_raw, :set_source_pixbuf
56
+ def set_source_pixbuf(pixbuf, pixbuf_x=0, pixbuf_y=0)
57
+ set_source_pixbuf_raw(pixbuf, pixbuf_x, pixbuf_y)
58
+ end
59
+ end
60
+ end
data/lib/gdk3/color.rb ADDED
@@ -0,0 +1,27 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class Color
19
+ alias_method :initialize_raw, :initialize
20
+ def initialize(red, green, blue)
21
+ initialize_raw
22
+ self.red = red
23
+ self.green = green
24
+ self.blue = blue
25
+ end
26
+ end
27
+ end
@@ -6,11 +6,6 @@ module Gdk
6
6
  define_deprecated_const :Colormap, :raise => "Use 'Gdk::Visual' instead."
7
7
  define_deprecated_const :Input, :raise => "Use 'GLib::IOChannel' instead."
8
8
  define_deprecated_const :X11, 'GdkX11'
9
- define_deprecated_singleton_method :pointer_grab, :raise => "Use 'Gdk::Device#grab'."
10
- define_deprecated_singleton_method :pointer_ungrab, :raise => "Use 'Gdk::Device#ungrab'."
11
- define_deprecated_singleton_method :keyboard_grab, :raise => "Use 'Gdk::Device#grab'."
12
- define_deprecated_singleton_method :keyboard_ungrab, :raise => "Use 'Gdk::Device#ungrab'."
13
- define_deprecated_singleton_method :pointer_is_grabbed?, :raise => "Use 'Gdk::Display#device_is_grabbed?'."
14
9
 
15
10
  class Cursor
16
11
  extend GLib::Deprecatable
@@ -18,6 +13,9 @@ module Gdk
18
13
  define_deprecated_method :pixmap?, :warn => "Don't use this method." do |_self|
19
14
  false
20
15
  end
16
+ Gdk::CursorType.constants.each do |cursor_type|
17
+ define_deprecated_const cursor_type, ['Gdk::CursorType', cursor_type].join('::')
18
+ end
21
19
  end
22
20
 
23
21
  class Device
@@ -26,7 +24,6 @@ module Gdk
26
24
  define_deprecated_enums :ExtensionMode, 'EXTENSION_EVENTS'
27
25
  define_deprecated_enums :InputMode, 'MODE'
28
26
  define_deprecated_enums :InputSource, 'SOURCE'
29
- define_deprecated_method :source, :input_source
30
27
  end
31
28
 
32
29
  class Display
@@ -38,12 +35,6 @@ module Gdk
38
35
  define_deprecated_method :button_number, :raise => "Don't use this method."
39
36
  define_deprecated_method :button_x, :raise => "Don't use this method."
40
37
  define_deprecated_method :button_y, :raise => "Don't use this method."
41
- define_deprecated_method :pointer, :raise => "Use 'Gdk::Device#get_position'."
42
- define_deprecated_method :pointer_ungrab, :raise => "Use 'Gdk::Device#ungrab'."
43
- define_deprecated_method :pointer_grabbed_p, :raise => "Use 'Gdk::Display#device_is_grabbed?'."
44
- define_deprecated_method :window_at_pointer, :raise => "Use 'Gdk::Device#get_window_at_position'."
45
- define_deprecated_method :warp_pointer, :raise => "Use 'Gdk::Device#warp'."
46
- define_deprecated_method :devices, :raise => "Use 'Gdk::DeviceManager#devices'."
47
38
  end
48
39
 
49
40
  class DragContext
@@ -64,6 +55,9 @@ module Gdk
64
55
  extend GLib::Deprecatable
65
56
  define_deprecated_flags :Mask
66
57
  define_deprecated_enums :Type
58
+ Gdk::EventMask.constants.each do |event_mask|
59
+ define_deprecated_const event_mask, ['Gdk::EventMask', event_mask].join('::')
60
+ end
67
61
  end
68
62
 
69
63
  class EventCrossing
@@ -105,7 +99,12 @@ module Gdk
105
99
  module Keyval
106
100
  extend GLib::Deprecatable
107
101
  constants.each do |key|
108
- define_deprecated_const key.to_s.sub(/^GDK_KEY_/, 'GDK_'), [self, key].join('::')
102
+ old_names = []
103
+ old_names << key.to_s.sub(/^KEY_/, 'GDK_KEY_')
104
+ old_names << key.to_s.sub(/^KEY_/, 'GDK_')
105
+ old_names.each do |old_name|
106
+ define_deprecated_const old_name, [self, key].join('::')
107
+ end
109
108
  end
110
109
  end
111
110
 
@@ -143,7 +142,7 @@ module Gdk
143
142
  define_deprecated_flags :ModifierType
144
143
  define_deprecated_enums :Type
145
144
  define_deprecated_enums :TypeHint, 'TYPE_HINT'
146
- define_deprecated_enums :WindowClass
145
+ define_deprecated_const :WindowClass, 'Gdk::Window::Class'
147
146
  define_deprecated_flags :WMDecoration, 'DECOR'
148
147
  define_deprecated_flags :WMFunction, 'FUNC'
149
148
  define_deprecated_method :clear, :warn => "Don't use this method."
@@ -152,8 +151,6 @@ module Gdk
152
151
  define_deprecated_method :shape_combine_mask, :warn => "Don't use this method."
153
152
  define_deprecated_method :input_shape_combine_mask, :warn => "Don't use this method."
154
153
  define_deprecated_method :set_back_pixmap, :warn => "Don't use this method."
155
- define_deprecated_singleton_method :at_pointer, :raise => "Use 'Gdk::Device#get_window_at_position'."
156
- define_deprecated_method :pointer, :raise => "Use 'Gdk::Device#get_device_position'."
157
154
  end
158
155
 
159
156
  class WindowAttr
@@ -163,3 +160,4 @@ module Gdk
163
160
  alias :colormap= :set_colormap
164
161
  end
165
162
  end
163
+
data/lib/gdk3/event.rb ADDED
@@ -0,0 +1,38 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class Event
19
+ unless const_defined?(:PROPAGATE)
20
+ PROPAGATE = false
21
+ end
22
+ unless const_defined?(:STOP)
23
+ STOP = true
24
+ end
25
+
26
+ def send_event?
27
+ not send_event.zero?
28
+ end
29
+ end
30
+
31
+ class EventFocus
32
+ alias_method :in_raw, :in
33
+ remove_method :in
34
+ def in?
35
+ not in_raw.zero?
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,266 @@
1
+ # Copyright (C) 2013-2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class Loader < GObjectIntrospection::Loader
19
+ private
20
+ def window_class
21
+ @window_class ||= @base_module.const_get(:Window)
22
+ end
23
+
24
+ def event_class
25
+ @event_class ||= @base_module.const_get(:Event)
26
+ end
27
+
28
+ def event_motion_class
29
+ @event_motion_class ||= @base_module.const_get(:EventMotion)
30
+ end
31
+
32
+ def rectangle_class
33
+ @rectangle_class ||= @base_module.const_get(:Rectangle)
34
+ end
35
+
36
+ def pre_load(repository, namespace)
37
+ setup_pending_constants
38
+ define_keyval_module
39
+ define_selection_module
40
+ load_cairo_rectangle_int
41
+ end
42
+
43
+ def define_keyval_module
44
+ @keyval_module = Module.new
45
+ @base_module.const_set("Keyval", @keyval_module)
46
+ end
47
+
48
+ def define_selection_module
49
+ @selection_module = Module.new
50
+ @base_module.const_set("Selection", @selection_module)
51
+ end
52
+
53
+ def load_cairo_rectangle_int
54
+ info = find_cairo_rectangle_int_info
55
+ klass = self.class.define_class(info.gtype,
56
+ "Rectangle",
57
+ @base_module,
58
+ :size => info.size)
59
+ load_fields(info, klass)
60
+ load_methods(info, klass)
61
+ end
62
+
63
+ def find_cairo_rectangle_int_info
64
+ repository = GObjectIntrospection::Repository.default
65
+ repository.each("cairo") do |info|
66
+ if info.name == "RectangleInt"
67
+ return info
68
+ end
69
+ end
70
+ nil
71
+ end
72
+
73
+ def post_load(repository, namespace)
74
+ apply_pending_constants
75
+ require_libraries
76
+ convert_event_classes
77
+ define_selection_constants
78
+ end
79
+
80
+ def setup_pending_constants
81
+ @pending_constants = []
82
+ end
83
+
84
+ def apply_pending_constants
85
+ @pending_constants.each do |info|
86
+ case info.name
87
+ when /\AEVENT_/
88
+ event_class.const_set($POSTMATCH, info.value)
89
+ end
90
+ end
91
+ end
92
+
93
+ def require_libraries
94
+ require "gdk3/atom"
95
+ require "gdk3/color"
96
+ require "gdk3/event"
97
+ require "gdk3/rectangle"
98
+ require "gdk3/rgba"
99
+ require "gdk3/window"
100
+ require "gdk3/window-attr"
101
+
102
+ require "gdk3/cairo"
103
+
104
+ require "gdk3/deprecated"
105
+ end
106
+
107
+ def convert_event_classes
108
+ event_map = {
109
+ EventType::EXPOSE => EventExpose,
110
+ EventType::MOTION_NOTIFY => EventMotion,
111
+ EventType::BUTTON_PRESS => EventButton,
112
+ EventType::BUTTON2_PRESS => EventButton,
113
+ EventType::BUTTON3_PRESS => EventButton,
114
+ EventType::BUTTON_RELEASE => EventButton,
115
+ EventType::KEY_PRESS => EventKey,
116
+ EventType::KEY_RELEASE => EventKey,
117
+ EventType::ENTER_NOTIFY => EventCrossing,
118
+ EventType::LEAVE_NOTIFY => EventCrossing,
119
+ EventType::FOCUS_CHANGE => EventFocus,
120
+ EventType::CONFIGURE => EventConfigure,
121
+ EventType::PROPERTY_NOTIFY => EventProperty,
122
+ EventType::SELECTION_CLEAR => EventSelection,
123
+ EventType::SELECTION_REQUEST => EventSelection,
124
+ EventType::SELECTION_NOTIFY => EventSelection,
125
+ EventType::PROXIMITY_IN => EventProximity,
126
+ EventType::PROXIMITY_OUT => EventProximity,
127
+ EventType::DRAG_ENTER => EventDND,
128
+ EventType::DRAG_LEAVE => EventDND,
129
+ EventType::DRAG_MOTION => EventDND,
130
+ EventType::DRAG_STATUS => EventDND,
131
+ EventType::DROP_START => EventDND,
132
+ EventType::DROP_FINISHED => EventDND,
133
+ EventType::VISIBILITY_NOTIFY => EventVisibility,
134
+ EventType::SCROLL => EventScroll,
135
+ EventType::WINDOW_STATE => EventWindowState,
136
+ EventType::SETTING => EventSetting,
137
+ EventType::OWNER_CHANGE => EventOwnerChange,
138
+ EventType::GRAB_BROKEN => EventGrabBroken,
139
+ EventType::DAMAGE => EventExpose,
140
+ EventType::TOUCH_BEGIN => EventTouch,
141
+ EventType::TOUCH_UPDATE => EventTouch,
142
+ EventType::TOUCH_END => EventTouch,
143
+ EventType::TOUCH_CANCEL => EventTouch,
144
+ }
145
+ self.class.register_boxed_class_converter(Event.gtype) do |event|
146
+ event_map[event.type] || Event
147
+ end
148
+ end
149
+
150
+ def define_selection_constants
151
+ selections = {
152
+ "PRIMARY" => "PRIMARY",
153
+ "SECONDARY" => "SECONDARY",
154
+ "CLIPBOARD" => "CLIPBOARD",
155
+ "TARGET_BITMAP" => "BITMAP",
156
+ "TARGET_COLORMAP" => "COLORMAP",
157
+ "TARGET_DRAWABLE" => "DRAWABLE",
158
+ "TARGET_PIXMAP" => "PIXMAP",
159
+ "TARGET_STRING" => "STRING",
160
+ "TYPE_ATOM" => "ATOM",
161
+ "TYPE_BITMAP" => "BITMAP",
162
+ "TYPE_COLORMAP" => "COLORMAP",
163
+ "TYPE_DRAWABLE" => "DRAWABLE",
164
+ "TYPE_INTEGER" => "INTEGER",
165
+ "TYPE_PIXMAP" => "PIXMAP",
166
+ "TYPE_WINDOW" => "WINDOW",
167
+ "TYPE_STRING" => "STRING",
168
+ }
169
+ selections.each do |key, value|
170
+ # TODO: Gdk::Atom.intern is not working yet.
171
+ #@selection_module.const_set(key, Gdk::Atom.intern(value))
172
+ end
173
+ end
174
+
175
+ def load_function_info(info)
176
+ name = info.name
177
+ case name
178
+ when "init", /_get_type\z/
179
+ # ignore
180
+ when /\Arectangle_/
181
+ define_method(info, rectangle_class, $POSTMATCH)
182
+ when /\Apixbuf_/
183
+ target_class = nil
184
+ case $POSTMATCH
185
+ when "get_from_window"
186
+ target_class = window_class
187
+ when "get_from_surface"
188
+ target_class = Cairo::Surface
189
+ end
190
+ if target_class
191
+ define_method(info, target_class, "to_pixbuf")
192
+ else
193
+ super
194
+ end
195
+ when /\Aevent_/
196
+ name = $POSTMATCH
197
+ case name
198
+ when "request_motions"
199
+ define_method(info, event_motion_class, "request")
200
+ else
201
+ super # TODO
202
+ end
203
+ when /\Acairo_/
204
+ name = $POSTMATCH
205
+ case name
206
+ when "create"
207
+ define_method(info, window_class, "create_cairo_context")
208
+ when "set_source_color"
209
+ define_method(info, Cairo::Context, "set_source_gdk_color")
210
+ when "set_source_rgba"
211
+ define_method(info, Cairo::Context, "set_source_gdk_rgba")
212
+ when "rectangle"
213
+ define_method(info, Cairo::Context, "gdk_rectangle")
214
+ when "region_create_from_surface"
215
+ # TODO
216
+ when "surface_create_from_pixbuf"
217
+ # TODO
218
+ else
219
+ define_method(info, Cairo::Context, name)
220
+ end
221
+ else
222
+ super
223
+ end
224
+ end
225
+
226
+ def load_struct_info(info)
227
+ return if info.gtype_struct?
228
+
229
+ options = {}
230
+ case info.name
231
+ when /\AEvent/
232
+ options[:parent] = event_class
233
+ end
234
+
235
+ define_struct(info, options)
236
+ end
237
+
238
+ def define_enum(info)
239
+ case info.name
240
+ when /\AWindowWindow/
241
+ self.class.define_class(info.gtype, $POSTMATCH, window_class)
242
+ when /\AWindow/
243
+ self.class.define_class(info.gtype, $POSTMATCH, window_class)
244
+ when "EventType"
245
+ self.class.register_constant_rename_map("2BUTTON_PRESS",
246
+ "BUTTON2_PRESS")
247
+ self.class.register_constant_rename_map("3BUTTON_PRESS",
248
+ "BUTTON3_PRESS")
249
+ super
250
+ else
251
+ super
252
+ end
253
+ end
254
+
255
+ def load_constant_info(info)
256
+ case info.name
257
+ when /\AEVENT_/
258
+ @pending_constants << info
259
+ when /\AKEY_/
260
+ @keyval_module.const_set(info.name, info.value)
261
+ else
262
+ super
263
+ end
264
+ end
265
+ end
266
+ end
@@ -0,0 +1,38 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class Rectangle
19
+ alias_method :initialize_raw, :initialize
20
+ def initialize(x, y, width, height)
21
+ initialize_raw
22
+ self.x = x
23
+ self.y = y
24
+ self.width = width
25
+ self.height = height
26
+ end
27
+
28
+ alias_method :intersect_raw, :intersect
29
+ def intersect(other)
30
+ intersected, dest = intersect_raw(other)
31
+ if intersected
32
+ dest
33
+ else
34
+ nil
35
+ end
36
+ end
37
+ end
38
+ end
data/lib/gdk3/rgba.rb ADDED
@@ -0,0 +1,32 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class RGBA
19
+ alias_method :initialize_raw, :initialize
20
+ def initialize(red, green, blue, alpha)
21
+ initialize_raw
22
+ self.red = red
23
+ self.green = green
24
+ self.blue = blue
25
+ self.alpha = alpha
26
+ end
27
+
28
+ def to_a
29
+ [red, green, blue, alpha]
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,28 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class WindowAttr
19
+ alias_method :initialize_raw, :initialize
20
+ def initialize(width, height, window_class, window_type)
21
+ initialize_raw
22
+ self.width = width
23
+ self.height = height
24
+ self.wclass = window_class
25
+ self.window_type = window_type
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,21 @@
1
+ # Copyright (C) 2014 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ module Gdk
18
+ class Window
19
+ alias_method :invalidate, :invalidate_rect
20
+ end
21
+ end