gdk4 3.5.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0fb7506465a211eadc1a4e2494cf530e115c731a88f0aa0a2c416b94847ad53e
4
- data.tar.gz: c0ccf28b74fa4ac4bc54a70992f27cd27a0303fc827efaa7e83b44317550eac9
3
+ metadata.gz: 827420b2089c9854104517e8591c2dde79a12361b83870b426fef5d68c3c3d5a
4
+ data.tar.gz: a3797f089c387f03d0c5da0f06332120c83f6595678188980494f52f9d8de882
5
5
  SHA512:
6
- metadata.gz: 8cbaa1de9f1e1fc8524638a5bddcfb0ec8cd4c1854b8f0e246cedbb870c2afc751e8cf003fa339bf65c978edca36601bf5691d03a50256b210337b2d7b934f54
7
- data.tar.gz: 593b11312aa89841c1ad5413e40bef45a45f3afd0ae3944efbcce8d9c0a5586231ba6a7b9fc27668488b9acc03b9cd059d3bc1d9e3fee9e6cf1a3290122b9b63
6
+ metadata.gz: 3ae069a9f24cf5b42d179efaa5a39113ae5bc261151545a1b5cfa4d4f5dc274a09db2a8fa3ebfaeb558189d81674a1fd9b2ff3e8849762472f22fe8ccb9a888f
7
+ data.tar.gz: 1ef74c60a3b0d063d76e61924e1bd8363c59445f75a97fcc51be08ef6a44dd35f1ccd60d94e51edb09773244a773a4fa68d99060216428e48d61551c08a4bea3
@@ -32,6 +32,7 @@ namespace :dependency do
32
32
  package_id = "gtk4"
33
33
  unless PKGConfig.check_version?(package_id)
34
34
  unless NativePackageInstaller.install(:alt_linux => "libgtk+4-devel",
35
+ :arch_linux => "gtk4",
35
36
  :debian => "libgtk-4-dev",
36
37
  :redhat => "pkgconfig(#{package_id})",
37
38
  :homebrew => "gtk+4",
data/lib/gdk4/cairo.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2014-2018 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2014-2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -16,17 +16,21 @@
16
16
 
17
17
  module Cairo
18
18
  class Context
19
- alias_method :set_source_rgba_raw, :set_source_rgba
20
- def set_source_rgba(rgba, g=nil, b=nil, a=nil)
21
- case rgba
22
- when Gdk::RGBA
23
- set_source_gdk_rgba(rgba)
24
- when Array
25
- set_source_rgba_raw(rgba)
26
- else
27
- r = rgba
28
- set_source_rgba_raw([r, g, b, a || 1.0])
19
+ if method_defined?(:set_source_rgba)
20
+ alias_method :set_source_rgba_raw, :set_source_rgba
21
+ def set_source_rgba(rgba, g=nil, b=nil, a=nil)
22
+ case rgba
23
+ when Gdk::RGBA
24
+ set_source_gdk_rgba(rgba)
25
+ when Array
26
+ set_source_rgba_raw(rgba)
27
+ else
28
+ r = rgba
29
+ set_source_rgba_raw([r, g, b, a || 1.0])
30
+ end
29
31
  end
32
+ else
33
+ alias_method :set_source_rgba, :set_source_gdk_rgba
30
34
  end
31
35
 
32
36
  def source_rgba=(rgba)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2014 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -14,12 +14,19 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- class TestGdkEventType < Test::Unit::TestCase
18
- def test_2button_press
19
- assert_equal("2button-press", Gdk::EventType::BUTTON2_PRESS.nick)
20
- end
21
-
22
- def test_3button_press
23
- assert_equal("3button-press", Gdk::EventType::BUTTON3_PRESS.nick)
17
+ module Gdk
18
+ class Cursor
19
+ @caches = {}
20
+ class << self
21
+ def new(*args)
22
+ first_arg = args.first
23
+ case first_arg
24
+ when String, Symbol
25
+ @caches[first_arg] ||= super
26
+ else
27
+ super
28
+ end
29
+ end
30
+ end
24
31
  end
25
32
  end
@@ -0,0 +1,156 @@
1
+ # Copyright (C) 2011-2022 Ruby-GNOME 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
+ extend GLib::Deprecatable
19
+ define_deprecated_const :Atom, raise: "No longer available in GDK 4."
20
+ define_deprecated_const :Color, raise: "No longer available in GDK 4."
21
+ define_deprecated_const :Colormap, raise: "Use 'Gdk::Visual' instead."
22
+ define_deprecated_const :Color, raise: "No longer available in GDK 4."
23
+ define_deprecated_const :DragContext, raise: "No longer available in GDK 4."
24
+ define_deprecated_const :EventCrossing, "Gdk::CrossingEvent"
25
+ define_deprecated_const :EventMask, raise: "No longer available in GDK 4."
26
+ define_deprecated_const :EventOwnerChange, raise: "No longer available in GDK 4."
27
+ define_deprecated_const :EventProperty, raise: "No longer available in GDK 4."
28
+ define_deprecated_const :EventScroll, "Gdk::ScrollEvent"
29
+ define_deprecated_const :EventSetting, raise: "No longer available in GDK 4."
30
+ define_deprecated_const :EventVisibility, raise: "No longer available in GDK 4."
31
+ define_deprecated_const :EventWindowState, raise: "No longer available in GDK 4."
32
+ define_deprecated_const :FilterReturn, raise: "No longer available in GDK 4."
33
+ define_deprecated_const :GrabStatus, raise: "No longer available in GDK 4."
34
+ define_deprecated_const :Image,
35
+ raise: "Use 'GdkPixbuf::Pixbuf' or 'Cairo::Surface' instead."
36
+ define_deprecated_const :Input, raise: "Use 'GLib::IOChannel' instead."
37
+ define_deprecated_const :Property, raise: "No longer available in GDK 4."
38
+ define_deprecated_const :Screen, raise: "No longer available in GDK 4."
39
+ define_deprecated_const :Selection, raise: "No longer available in GDK 4."
40
+ define_deprecated_const :Status, raise: "No longer available in GDK 4."
41
+ define_deprecated_const :Visual, raise: "No longer available in GDK 4."
42
+ define_deprecated_const :Window, raise: "Use 'Gdk::Surface' instead."
43
+ define_deprecated_const :WindowAttr, raise: "No longer available in GDK 4."
44
+ define_deprecated_const :WindowAttributesType,
45
+ raise: "No longer available in GDK 4."
46
+ define_deprecated_const :WindowHints, raise: "No longer available in GDK 4."
47
+ define_deprecated_const :WindowType, raise: "No longer available in GDK 4."
48
+ define_deprecated_const :WindowTypeHint, raise: "No longer available in GDK 4."
49
+ define_deprecated_const :WindowWindowClass,
50
+ raise: "No longer available in GDK 4."
51
+ define_deprecated_const :WMDecoration, raise: "No longer available in GDK 4."
52
+ define_deprecated_const :WMFunction, raise: "No longer available in GDK 4."
53
+ define_deprecated_const :X11, 'GdkX11'
54
+
55
+ class Cursor
56
+ extend GLib::Deprecatable
57
+ define_deprecated_const :CursorType, raise: "No longer available in GDK 4."
58
+ define_deprecated_method :pixmap?, :warn => "Don't use this method." do |_self|
59
+ false
60
+ end
61
+ end
62
+
63
+ class Device
64
+ extend GLib::Deprecatable
65
+ define_deprecated_enums :AxisUse, 'AXIS'
66
+ define_deprecated_const :EXTENSION_EVENTS_NONE,
67
+ raise: "No longer available in GDK 4."
68
+ define_deprecated_const :EXTENSION_EVENTS_ALL,
69
+ raise: "No longer available in GDK 4."
70
+ define_deprecated_const :EXTENSION_EVENTS_CURSOR,
71
+ raise: "No longer available in GDK 4."
72
+ define_deprecated_const :ExtensionMode,
73
+ raise: "No longer available in GDK 4."
74
+ define_deprecated_const :InputMode, raise: "No longer available in GDK 4."
75
+ define_deprecated_enums :InputSource, 'SOURCE'
76
+ end
77
+
78
+ class Display
79
+ extend GLib::Deprecatable
80
+ define_deprecated_method :double_click_time, :raise => "Don't use this method."
81
+ define_deprecated_method :double_click_distance, :raise => "Don't use this method."
82
+ define_deprecated_method :button_click_time, :raise => "Don't use this method."
83
+ define_deprecated_method :button_window, :raise => "Don't use this method."
84
+ define_deprecated_method :button_number, :raise => "Don't use this method."
85
+ define_deprecated_method :button_x, :raise => "Don't use this method."
86
+ define_deprecated_method :button_y, :raise => "Don't use this method."
87
+ end
88
+
89
+ class Event
90
+ extend GLib::Deprecatable
91
+
92
+ define_deprecated_const :CURRENT_TIME, "Gdk::CURRENT_TIME"
93
+
94
+ define_deprecated_const :Mask, raise: "No longer available in GDK 4."
95
+
96
+ define_deprecated_const :Type, "Gdk::EventType"
97
+ define_deprecated_enums "Gdk::EventType"
98
+ end
99
+
100
+ module Keyval
101
+ extend GLib::Deprecatable
102
+ constants.each do |key|
103
+ old_names = []
104
+ old_names << key.to_s.sub(/^KEY_/, 'GDK_KEY_')
105
+ old_names << key.to_s.sub(/^KEY_/, 'GDK_')
106
+ old_names.each do |old_name|
107
+ define_deprecated_const old_name, [self, key].join('::')
108
+ end
109
+ end
110
+ end
111
+
112
+ class Pixmap
113
+ extend GLib::Deprecatable
114
+ define_deprecated_method :initialize, :raise => "Use 'Gdk::Window#create_similar_surface'."
115
+ define_deprecated_singleton_method :create_from_data, :raise => "Use 'Cairo::ImageSurface.new'."
116
+ define_deprecated_singleton_method :create_from_xbm, :raise => "Use 'Cairo::ImageSurface.new'."
117
+ define_deprecated_singleton_method :create_from_xpm, :raise => "Use 'GdkPixbuf::Pixbuf.new'."
118
+ define_deprecated_singleton_method :create_from_xpm_d, :raise => "Use 'GdkPixbuf::Pixbuf.new'."
119
+ define_deprecated_singleton_method :colormap_create_from_xpm, :raise => "Use 'GdkPixbuf::Pixbuf.new'."
120
+ define_deprecated_singleton_method :colormap_create_from_xpm_d, :raise => "Use 'GdkPixbuf::Pixbuf.new'."
121
+ define_deprecated_singleton_method :foreign_new, :raise => "Don't use this method."
122
+ define_deprecated_singleton_method :lookup, :raise => "Don't use this method."
123
+ end
124
+
125
+ class Surface
126
+ extend GLib::Deprecatable
127
+
128
+ define_deprecated_const :Gravity, "Gdk::Gravity"
129
+ define_deprecated_enums "Gdk::Gravity"
130
+ define_deprecated_const :AttributesType,
131
+ raise: "No longer available in GDK 4."
132
+ define_deprecated_const :Edge, "Gdk::SurfaceEdge"
133
+ define_deprecated_enums "Gdk::SurfaceEdge"
134
+ define_deprecated_const :FilterReturn,
135
+ raise: "No longer available in GDK 4."
136
+ define_deprecated_const :Hints, raise: "No longer available in GDK 4."
137
+ define_deprecated_const :ModifierType, "Gdk::ModifierType"
138
+ define_deprecated_enums "Gdk::ModifierType"
139
+ define_deprecated_const :Type, raise: "No longer available in GDK 4."
140
+ define_deprecated_const :TypeHint, raise: "No longer available in GDK 4."
141
+ define_deprecated_const :Class, raise: "No longer available in GDK 4."
142
+ define_deprecated_const :WMDecoration, raise: "No longer available in GDK 4."
143
+ define_deprecated_const :WMFunction, raise: "No longer available in GDK 4."
144
+ define_deprecated_const :PARENT_RELATIVE, "Gdk::PARENT_RELATIVE"
145
+ define_deprecated_method :clear, :warn => "Don't use this method."
146
+ define_deprecated_method :clear_area, :warn => "Don't use this method."
147
+ define_deprecated_method :internal_paint_info, :raise => "Don't use this method."
148
+ define_deprecated_method :shape_combine_mask, :warn => "Don't use this method."
149
+ define_deprecated_method :input_shape_combine_mask, :warn => "Don't use this method."
150
+ define_deprecated_method :set_back_pixmap, :warn => "Don't use this method."
151
+ define_deprecated_method :size, :warn => "Use #width and #height instead." do |_self|
152
+ [_self.width, _self.height]
153
+ end
154
+ end
155
+ end
156
+
data/lib/gdk4/loader.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2018 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2013-2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -22,59 +22,217 @@ module Gdk
22
22
  end
23
23
 
24
24
  private
25
+ def event_class
26
+ @event_class ||= @base_module.const_get(:Event)
27
+ end
28
+
25
29
  def pre_load(repository, namespace)
26
- define_version(repository, namespace)
30
+ setup_pending_constants
31
+ setup_pending_rectangle_functions
32
+ define_keyval_module
33
+ define_event_methods_module
34
+ define_cairo_context_methods_module
35
+ define_cairo_surface_methods_module
36
+ require_pre_libraries
27
37
  end
28
38
 
29
- def define_version(repository, namespace)
30
- major, minor, micro = repository.get_version(namespace).split(".")
31
- version_module = Module.new do
32
- const_set("MAJOR", Integer(major))
33
- const_set("MINOR", Integer(minor))
34
- micro = Integer(micro) unless micro.nil?
35
- const_set("MICRO", micro)
36
- end
37
- @base_module.const_set("Version", version_module)
39
+ def define_keyval_module
40
+ @keyval_module = define_methods_module(:Keyval)
41
+ end
42
+
43
+ def post_keyval_module
44
+ post_methods_module(@keyval_module)
45
+ end
46
+
47
+ def define_event_methods_module
48
+ @event_methods_module =
49
+ define_methods_module(:EventMethods)
50
+ end
51
+
52
+ def apply_event_methods
53
+ apply_methods_module(@event_methods_module,
54
+ event_class)
55
+ end
56
+
57
+ def define_cairo_context_methods_module
58
+ @cairo_context_methods_module =
59
+ define_methods_module(:CairoContextMethods)
60
+ end
61
+
62
+ def apply_cairo_context_methods
63
+ apply_methods_module(@cairo_context_methods_module, Cairo::Context)
64
+ end
65
+
66
+ def define_cairo_surface_methods_module
67
+ @cairo_surface_methods_module =
68
+ define_methods_module(:CairoSurfaceMethods)
69
+ end
70
+
71
+ def apply_cairo_surface_methods
72
+ apply_methods_module(@cairo_surface_methods_module, Cairo::Surface)
73
+ end
74
+
75
+ def require_pre_libraries
38
76
  end
39
77
 
40
78
  def post_load(repository, namespace)
41
- require_libraries
79
+ apply_pending_constants
80
+ apply_pending_rectangle_functions
81
+ post_keyval_module
82
+ apply_event_methods
83
+ apply_cairo_context_methods
84
+ apply_cairo_surface_methods
85
+ require_post_libraries
86
+ end
87
+
88
+ def setup_pending_constants
89
+ @pending_constants = []
42
90
  end
43
91
 
44
- def require_libraries
45
- require "gdk4/cairo"
46
- require "gdk4/rectangle"
47
- require "gdk4/rgba"
48
- require "gdk4/version"
92
+ def apply_pending_constants
93
+ @pending_constants.each do |info|
94
+ case info.name
95
+ when /\AEVENT_/
96
+ event_class.const_set($POSTMATCH, info.value)
97
+ end
98
+ end
99
+ end
100
+
101
+ def setup_pending_rectangle_functions
102
+ @pending_rectangle_get_type_function = nil
103
+ @pending_rectangle_functions = []
104
+ end
105
+
106
+ def apply_pending_rectangle_functions
107
+ get_type_info = @pending_rectangle_get_type_function
108
+ if get_type_info
109
+ rectangle_class = load_cairo_rectangle_int
110
+ gtype = get_type_info.invoke([])
111
+ self.class.register_boxed_class_converter(gtype) do |rectangle|
112
+ rectangle_class
113
+ end
114
+ else
115
+ rectangle_class = @base_module.const_get(:Rectangle)
116
+ end
117
+
118
+ @pending_rectangle_functions.each do |info|
119
+ name = rubyish_method_name(info, :prefix => "rectangle_")
120
+ define_method(info, rectangle_class, name)
121
+ end
122
+ end
123
+
124
+ def load_cairo_rectangle_int
125
+ info = find_cairo_rectangle_int_info
126
+ klass = self.class.define_class(info.gtype,
127
+ "Rectangle",
128
+ @base_module,
129
+ :size => info.size)
130
+ load_fields(info, klass)
131
+ load_methods(info, klass)
132
+ klass
133
+ end
134
+
135
+ def find_cairo_rectangle_int_info
136
+ repository = GObjectIntrospection::Repository.default
137
+ repository.each("cairo") do |info|
138
+ if info.name == "RectangleInt"
139
+ return info
140
+ end
141
+ end
142
+ nil
143
+ end
144
+
145
+ def require_post_libraries
146
+ require_relative "cursor"
147
+ require_relative "paintable"
148
+ require_relative "rectangle"
149
+ require_relative "rgba"
150
+ require_relative "texture"
151
+
152
+ require_relative "cairo"
153
+
154
+ require_relative "deprecated"
49
155
  end
50
156
 
51
157
  def load_function_info(info)
52
158
  name = info.name
53
159
  case name
160
+ when "rectangle_get_type"
161
+ @pending_rectangle_get_type_function = info
162
+ when /\Arectangle_/
163
+ @pending_rectangle_functions << info
164
+ when "init", /_get_type\z/
165
+ # ignore
54
166
  when /\Apixbuf_/
55
167
  target_class = nil
56
168
  case $POSTMATCH
57
169
  when "get_from_surface"
58
- target_class = Cairo::Surface
170
+ target_class = @cairo_surface_methods_module
59
171
  end
60
172
  if target_class
61
173
  define_method(info, target_class, "to_pixbuf")
62
174
  else
63
175
  super
64
176
  end
177
+ when /\Aevents_/
178
+ method_name = rubyish_method_name(info, :prefix => "events_")
179
+ define_method(info, @event_methods_module, method_name)
65
180
  when /\Acairo_/
66
181
  name = $POSTMATCH
67
182
  case name
183
+ when "set_source_color"
184
+ define_method(info,
185
+ @cairo_context_methods_module,
186
+ "set_source_gdk_color")
68
187
  when "set_source_rgba"
69
- define_method(info, Cairo::Context, "set_source_gdk_rgba")
188
+ define_method(info,
189
+ @cairo_context_methods_module,
190
+ "set_source_gdk_rgba")
70
191
  when "rectangle"
71
- define_method(info, Cairo::Context, "gdk_rectangle")
192
+ define_method(info,
193
+ @cairo_context_methods_module,
194
+ "gdk_rectangle")
195
+ when "region_create_from_surface"
196
+ # TODO
72
197
  else
73
- define_method(info, Cairo::Context, name)
198
+ define_method(info, @cairo_context_methods_module, name)
74
199
  end
200
+ when /\Akeyval_/
201
+ name = rubyish_method_name(info, :prefix => "keyval_")
202
+ case name
203
+ when "name"
204
+ name = "to_name"
205
+ end
206
+ define_module_function(@keyval_module, name, info)
207
+ else
208
+ super
209
+ end
210
+ end
211
+
212
+ def load_constant_info(info)
213
+ case info.name
214
+ when /\AEVENT_/
215
+ @pending_constants << info
216
+ when /\AKEY_/
217
+ @keyval_module.const_set(info.name, info.value)
75
218
  else
76
219
  super
77
220
  end
78
221
  end
222
+
223
+ def may_be_cached?(constructor_info, klass)
224
+ case klass.name
225
+ when "Gdk::Cursor"
226
+ case constructor_info.name
227
+ when "new_from_name", "new_for_display"
228
+ true
229
+ # false
230
+ else
231
+ false
232
+ end
233
+ else
234
+ false
235
+ end
236
+ end
79
237
  end
80
238
  end
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2022 Ruby-GNOME Project Team
4
2
  #
5
3
  # This library is free software; you can redistribute it and/or
6
4
  # modify it under the terms of the GNU Lesser General Public
@@ -16,9 +14,17 @@
16
14
  # License along with this library; if not, write to the Free Software
17
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
16
 
19
- class TestGdkGeometry < Test::Unit::TestCase
20
- def test_min_width
21
- geometry = Gdk::Geometry.new
22
- assert_equal(0, geometry.min_width)
17
+ module Gdk
18
+ module Paintable
19
+ class << self
20
+ def try_convert(value)
21
+ case value
22
+ when GdkPixbuf::Pixbuf
23
+ Texture.new(value)
24
+ else
25
+ nil
26
+ end
27
+ end
28
+ end
23
29
  end
24
30
  end
data/lib/gdk4/rgba.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2014 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2014-2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -35,6 +35,17 @@ module Gdk
35
35
  end
36
36
  rgba
37
37
  end
38
+
39
+ def try_convert(value)
40
+ case value
41
+ when String
42
+ parse(value)
43
+ when Symbol
44
+ parse(value.to_s)
45
+ else
46
+ nil
47
+ end
48
+ end
38
49
  end
39
50
 
40
51
  alias_method :initialize_raw, :initialize
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -14,8 +14,17 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- class TestGdkEventMask < Test::Unit::TestCase
18
- def test_button_press_mask
19
- assert_equal("button-press-mask", Gdk::EventMask::BUTTON_PRESS_MASK.nick)
17
+ module Gdk
18
+ class Texture
19
+ class << self
20
+ def try_convert(value)
21
+ case value
22
+ when GdkPixbuf::Pixbuf
23
+ new(value)
24
+ else
25
+ nil
26
+ end
27
+ end
28
+ end
20
29
  end
21
30
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2017-2018 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2017-2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -14,8 +14,8 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- module Gdk
18
- class X11Loader < GObjectIntrospection::Loader
17
+ module GdkX11
18
+ class Loader < GObjectIntrospection::Loader
19
19
  def load
20
20
  self.version = "4.0"
21
21
  begin
@@ -24,5 +24,19 @@ module Gdk
24
24
  # Ignore. Some environments such as Windows don't have it.
25
25
  end
26
26
  end
27
+
28
+ private
29
+ def post_load(repository, namespace)
30
+ @base_module.constants.each do |constant|
31
+ case constant
32
+ when :INVOKERS,
33
+ :Loader
34
+ next
35
+ else
36
+ value = @base_module.const_get(constant)
37
+ Gdk.const_set(constant, value)
38
+ end
39
+ end
40
+ end
27
41
  end
28
42
  end
data/lib/gdk4.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2018 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2013-2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -14,11 +14,9 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- require "gobject-introspection"
18
17
  require "cairo-gobject"
19
- require "atk"
20
- require "pango"
21
18
  require "gdk_pixbuf2"
19
+ require "pango"
22
20
 
23
21
  require "gdk4/loader"
24
22
  require "gdk4/x11-loader"
@@ -32,12 +30,6 @@ module Gdk
32
30
 
33
31
  loader = Loader.new(self)
34
32
  loader.load
35
- x11_loader = X11Loader.new(self)
33
+ x11_loader = GdkX11::Loader.new(GdkX11)
36
34
  x11_loader.load
37
-
38
- class << self
39
- def cairo_available?
40
- true
41
- end
42
- end
43
35
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2021 Ruby-GNOME Project Team
1
+ # Copyright (C) 2013-2022 Ruby-GNOME Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -14,10 +14,18 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
+ require "pkg-config"
18
+ require "test-unit"
19
+
20
+ require "gdk4"
21
+
17
22
  module GdkTestUtils
18
23
  private
19
24
  def only_gdk_version(major, minor, micro=nil)
20
- unless Gdk::Version.or_later?(major, minor, micro)
25
+ micro ||= 0
26
+ gdk_version_raw = PKGConfig.modversion("gdk-4.0")
27
+ gdk_version = gdk_version_raw.split(".").collect(&:to_i)
28
+ unless (gdk_version <=> [major, minor, micro]) >= 0
21
29
  omit("Require GDK >= #{major}.#{minor}.#{micro}")
22
30
  end
23
31
  end