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
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