gtk4 3.5.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/gtk4.gemspec +1 -5
  3. data/lib/gtk4/{menu-item.rb → application.rb} +11 -10
  4. data/lib/gtk4/box.rb +1 -1
  5. data/lib/gtk4/builder.rb +14 -61
  6. data/lib/gtk4/button.rb +1 -2
  7. data/lib/gtk4/combo-box.rb +1 -6
  8. data/lib/gtk4/deprecated.rb +234 -246
  9. data/lib/gtk4/dialog.rb +10 -21
  10. data/lib/gtk4/{action.rb → entry.rb} +11 -8
  11. data/lib/gtk4/{gdk-drag-context.rb → gdk-display.rb} +12 -10
  12. data/lib/gtk4/icon-theme.rb +9 -12
  13. data/lib/gtk4/image.rb +12 -56
  14. data/lib/gtk4/list-store.rb +8 -0
  15. data/lib/gtk4/loader.rb +153 -27
  16. data/lib/gtk4/message-dialog.rb +1 -1
  17. data/lib/gtk4/paned.rb +17 -11
  18. data/lib/gtk4/{clipboard.rb → response-type.rb} +11 -6
  19. data/lib/gtk4/ruby-builder-scope.rb +47 -0
  20. data/lib/gtk4/scale-button.rb +6 -13
  21. data/lib/gtk4/stack.rb +23 -27
  22. data/lib/gtk4/style-context.rb +20 -4
  23. data/lib/gtk4/text-buffer.rb +14 -10
  24. data/lib/gtk4/{style-properties.rb → tree-model-sort.rb} +7 -9
  25. data/lib/gtk4/tree-model.rb +21 -1
  26. data/lib/gtk4/{target-list.rb → tree-sortable.rb} +8 -11
  27. data/lib/gtk4/tree-view-column.rb +9 -1
  28. data/lib/gtk4/version.rb +2 -2
  29. data/lib/gtk4/widget.rb +44 -71
  30. data/lib/gtk4.rb +4 -35
  31. data/sample/demos/README.md +4 -0
  32. data/sample/examples/README.md +4 -0
  33. data/sample/{action-namespace.rb → examples/action-namespace.rb} +0 -0
  34. data/sample/{builder.rb → examples/builder.rb} +0 -0
  35. data/sample/{builder.ui → examples/builder.ui} +0 -0
  36. data/sample/{drawing.rb → examples/drawing.rb} +0 -0
  37. data/sample/{grid_packing.rb → examples/grid_packing.rb} +0 -0
  38. data/sample/{hello_world.rb → examples/hello_world.rb} +0 -0
  39. data/sample/{utils.rb → examples/utils.rb} +0 -0
  40. data/sample/getting-started/README.md +4 -0
  41. metadata +26 -92
  42. data/lib/gtk4/action-group.rb +0 -131
  43. data/lib/gtk4/calendar.rb +0 -30
  44. data/lib/gtk4/check-menu-item.rb +0 -34
  45. data/lib/gtk4/container.rb +0 -62
  46. data/lib/gtk4/icon-size.rb +0 -32
  47. data/lib/gtk4/image-menu-item.rb +0 -37
  48. data/lib/gtk4/radio-action.rb +0 -28
  49. data/lib/gtk4/radio-button.rb +0 -49
  50. data/lib/gtk4/recent-chooser-dialog.rb +0 -38
  51. data/lib/gtk4/selection-data.rb +0 -42
  52. data/lib/gtk4/stock-item.rb +0 -36
  53. data/lib/gtk4/stock.rb +0 -70
  54. data/lib/gtk4/table.rb +0 -43
  55. data/lib/gtk4/target-entry.rb +0 -27
  56. data/lib/gtk4/toggle-action.rb +0 -27
  57. data/lib/gtk4/tool-button.rb +0 -36
  58. data/lib/gtk4/ui-manager.rb +0 -35
  59. data/lib/gtk4/window.rb +0 -42
  60. data/test/fixture/gnome-logo-icon.png +0 -0
  61. data/test/gtk-test-utils.rb +0 -36
  62. data/test/run-test.rb +0 -42
  63. data/test/test-gtk-box.rb +0 -36
  64. data/test/test-gtk-button.rb +0 -46
  65. data/test/test-gtk-dialog.rb +0 -74
  66. data/test/test-gtk-menu-item.rb +0 -42
  67. data/test/test-gtk-message-dialog.rb +0 -62
  68. data/test/test-gtk-version.rb +0 -47
  69. data/test/test-gtk-window.rb +0 -34
data/lib/gtk4/dialog.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015-2018 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
@@ -38,16 +38,6 @@ module Gtk
38
38
  add_buttons(*buttons) if buttons
39
39
  end
40
40
 
41
- alias_method :run_raw, :run
42
- def run
43
- response_id = run_raw
44
- if response_id < 0
45
- ResponseType.new(response_id)
46
- else
47
- response_id
48
- end
49
- end
50
-
51
41
  def add_buttons(*buttons)
52
42
  buttons.each do |text, response_id|
53
43
  add_button(text, response_id)
@@ -56,21 +46,20 @@ module Gtk
56
46
 
57
47
  alias_method :add_button_raw, :add_button
58
48
  def add_button(text, response_id)
59
- case response_id
60
- when Symbol
61
- response_id = ResponseType.new(response_id)
62
- end
63
- add_button_raw(text, response_id)
49
+ add_button_raw(text, ResponseType.resolve(response_id))
64
50
  end
65
51
 
66
52
  alias_method :get_widget_for_response_raw, :get_widget_for_response
67
53
  def get_widget_for_response(response_id)
68
- case response_id
69
- when Symbol
70
- response_id = ResponseType.new(response_id)
71
- end
72
- get_widget_for_response_raw(response_id)
54
+ get_widget_for_response_raw(ResponseType.resolve(response_id))
55
+ end
56
+
57
+ alias_method :set_default_response_raw, :set_default_response
58
+ def set_default_response(response_id)
59
+ set_default_response_raw(ResponseType.resolve(response_id))
73
60
  end
61
+ alias_method :default_response_raw=, :default_response=
62
+ alias_method :default_response=, :set_default_response
74
63
 
75
64
  if method_defined?(:use_header_bar)
76
65
  alias_method :use_header_bar_raw, :use_header_bar
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2018 Ruby-GNOME2 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
@@ -15,13 +15,16 @@
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
  module Gtk
18
- class Action
19
- alias_method :initialize_raw, :initialize
20
- def initialize(name, options={})
21
- initialize_raw(name,
22
- options[:label],
23
- options[:tooltip],
24
- options[:stock_id])
18
+ class Entry
19
+ # TODO: It's workaround for a GTK+ problem:
20
+ # It should be removed when GTK+ fix the problem.
21
+ # https://github.com/ruby-gnome2/ruby-gnome2/issues/1176
22
+ alias_method :set_attributes_raw, :set_attributes
23
+ def set_attributes(attrs)
24
+ attrs ||= Pango::AttrList.new
25
+ set_attributes_raw(attrs)
25
26
  end
27
+ remove_method :attributes=
28
+ alias_method :attributes=, :set_attributes
26
29
  end
27
30
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2019 Ruby-GNOME2 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
@@ -15,15 +15,17 @@
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
  module Gdk # Not Gtk!
18
- class DragContext
19
- alias_method :finish_raw, :finish
20
- def finish(options={})
21
- success = options[:success]
22
- success = true if success.nil?
23
- delete = options[:delete]
24
- delete = false if delete.nil?
25
- time = options[:time] || Gdk::CURRENT_TIME
26
- finish_raw(success, delete, time)
18
+ class Display
19
+ def add_style_provider(provider, priority=nil)
20
+ Gtk::StyleContext.add_provider_for_display(self, provider, priority)
21
+ end
22
+
23
+ def remove_style_provider(provider)
24
+ Gtk::StyleContext.remove_provider_for_display(self, provider)
25
+ end
26
+
27
+ def icon_theme
28
+ Gtk::IconTheme.get_for_display(self)
27
29
  end
28
30
  end
29
31
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 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
@@ -16,22 +16,19 @@
16
16
 
17
17
  module Gtk
18
18
  class IconTheme
19
- alias_method :choose_icon_raw, :choose_icon
20
- def choose_icon(icon_names, size, flags=nil)
21
- icon_names = [icon_names] unless icon_names.is_a?(Array)
22
- flags ||= 0
23
- choose_icon_raw(icon_names, size, flags)
24
- end
25
-
26
19
  alias_method :lookup_icon_raw, :lookup_icon
27
- def lookup_icon(icon, size, flags=nil)
20
+ def lookup_icon(icon, size, scale: 1, direction: :none, flags: nil)
28
21
  case icon
29
22
  when String, Symbol
30
- flags ||= :generic_fallback
31
- lookup_icon_raw(icon.to_s, size, flags)
23
+ flags ||= 0
24
+ lookup_icon_raw(icon.to_s, nil, size, scale, direction, flags)
25
+ when Array
26
+ icon, *fallbacks = *icon
27
+ flags ||= 0
28
+ lookup_icon_raw(icon.to_s, fallbacks, size, scale, direction, flags)
32
29
  else
33
30
  flags ||= 0
34
- lookup_by_gicon(icon, size, flags)
31
+ lookup_by_gicon(icon, size, scale, direction, flags)
35
32
  end
36
33
  end
37
34
  end
data/lib/gtk4/image.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2014-2015 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
@@ -20,96 +20,52 @@ module Gtk
20
20
  # Creates a Gtk::Image. The source of the image depends on the options
21
21
  # given.
22
22
  #
23
- # @param Hash{Symbol => Gtk::Stock, String, Gtk::IconSet, Gio::Icon,
24
- # GdkPixbuf::Pixbuf, GdkPixbuf::PixbufAnimation, Cairo::Surface,
25
- # Fixnum}
23
+ # @param Hash{Symbol => String, Gio::Icon, GdkPixbuf::Pixbuf}
26
24
  #
27
25
  # @example Create an empty image.
28
26
  # image = Gtk::Image.new
29
27
  #
30
28
  # @example Create an image from a file.
31
- # image = Gtk::Image.new :file => 'path/to/the/image.png'
32
- #
33
- # @example Create an image from stock.
34
- # image = Gtk::Image.new :stock => Gtk::Stock::OPEN, :size => :dialog
29
+ # image = Gtk::Image.new(file: 'path/to/the/image.png')
35
30
  #
36
31
  # @example Create an image from icon name.
37
- # image = Gtk::Image.new :icon_name => 'gtk-open', :size => :dialog
32
+ # image = Gtk::Image.new(icon_name: 'gtk-open')
38
33
  #
39
34
  # @example Create an image from a Gio::Icon, that itself is loaded from a
40
35
  # file.
41
36
  # icon = Gio::Icon.new_for_string 'path/to/the/image.png'
42
- # image = Gtk::Image.new :icon => icon, :size => :dialog
37
+ # image = Gtk::Image.new(icon: icon)
43
38
  #
44
39
  # @example Create an image from from a Gio::Icon that is an Gio::ThemedIcon.
45
40
  # icon = Gio::ThemedIcon.new 'gtk-open'
46
- # image = Gtk::Image.new :icon => icon, :size => :dialog
41
+ # image = Gtk::Image.new(icon: icon)
47
42
  #
48
43
  # @example Create an image from a GdkPixbuf::Pixbuf.
49
44
  # pixbuf = GdkPixbuf::Pixbuf.new(:file => 'path/to/the/image.png')
50
- # image = Gtk::Image.new :pixbuf => pixbuf
51
- #
52
- # @example Create an image from an Gtk::IconSet, that itself is created
53
- # from a GdkPixbuf::Pixbuf.
54
- # pixbuf = GdkPixbuf::Pixbuf.new(:file => 'path/to/the/image.png')
55
- # iconSet = Gtk::IconSet.new pixbuf
56
- # image = Gtk::Image.new :icon_set => iconSet, :size => :dialog
57
- #
58
- # @example Create an image from a GdkPixbuf::PixbufAnimation
59
- # pixAnim = GdkPixbuf::PixbufAnimation.new 'anim.gif'
60
- # image = Gtk::Image.new :animation => pixAnim
45
+ # image = Gtk::Image.new(pixbuf: pixbuf)
61
46
  #
62
47
  # @example Create an image from a file in a resource file
63
48
  # resource = Gio::Resource.load(a_resource_file)
64
49
  # Gio::Resources.register(resource)
65
50
  # resource_path = "/path/to/image.png"
66
- # image = Gtk::Image.new :resource => resource_path
67
- #
68
- # @example Create an image from a Cairo::Surface that is a
69
- # Cairo::ImageSurface.
70
- # surface = Cairo::ImageSurface.new :RGB24, 60, 60
71
- # context = Cairo::Context.new surface
72
- # context.set_source_rgb 0, 1, 0
73
- # context.rectangle 10, 10, 40, 40
74
- # context.fill.stroke
75
- # image = Gtk::Image.new :surface => surface
51
+ # image = Gtk::Image.new(resource: resource_path)
76
52
  def initialize(options={})
77
- stock = options[:stock] || nil
78
53
  icon_name = options[:icon_name] || nil
79
- icon_set = options[:icon_set] || nil
80
54
  icon = options[:icon] || options[:gicon] || nil
81
55
  file = options[:file] || nil
82
56
  pixbuf = options[:pixbuf] || nil
83
- animation = options[:animation] || nil
84
- resource = options[:resource] ||nil
85
- surface = options[:surface] || nil
86
- size = options[:size] || nil
87
-
88
- case size
89
- when String, Symbol
90
- size = IconSize.new(size)
91
- else
92
- size ||= IconSize::BUTTON
93
- end
57
+ resource = options[:resource] || nil
94
58
 
95
- if stock
96
- initialize_new_from_stock(stock, size)
97
- elsif icon_name
98
- initialize_new_from_icon_name(icon_name, size)
99
- elsif icon_set
100
- initialize_new_from_icon_set(icon_set, size)
59
+ if icon_name
60
+ initialize_new_from_icon_name(icon_name)
101
61
  elsif icon
102
- initialize_new_from_gicon(icon, size)
62
+ initialize_new_from_gicon(icon)
103
63
  elsif file
104
64
  initialize_new_from_file(file)
105
65
  elsif pixbuf
106
66
  initialize_new_from_pixbuf(pixbuf)
107
- elsif animation
108
- initialize_new_from_animation(animation)
109
67
  elsif resource
110
68
  initialize_new_from_resource(resource)
111
- elsif surface
112
- initialize_new_from_surface(surface)
113
69
  else
114
70
  initialize_raw
115
71
  end
@@ -59,5 +59,13 @@ module Gtk
59
59
  setup_iter(iter)
60
60
  iter
61
61
  end
62
+
63
+ alias_method :set_column_types_raw, :set_column_types
64
+ def set_column_types(*types)
65
+ if types.size == 1 and types[0].is_a?(Array)
66
+ types = types[0]
67
+ end
68
+ set_column_types_raw(types)
69
+ end
62
70
  end
63
71
  end
data/lib/gtk4/loader.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,31 +16,23 @@
16
16
 
17
17
  module Gtk
18
18
  class Loader < GObjectIntrospection::Loader
19
- def initialize(base_module, init_arguments)
20
- super(base_module)
21
- @init_arguments = init_arguments
22
- end
23
-
24
19
  def load
25
20
  self.version = "4.0"
26
21
  super("Gtk")
27
22
  end
28
23
 
29
24
  private
30
-
31
25
  def pre_load(repository, namespace)
32
26
  call_init_function(repository, namespace)
33
27
  define_version_module
28
+ define_methods_modules
29
+ setup_pending_constants
34
30
  end
35
31
 
36
32
  def call_init_function(repository, namespace)
37
33
  init_check = repository.find(namespace, "init_check")
38
- arguments = [
39
- [$0] + @init_arguments,
40
- ]
41
- succeeded, argv = init_check.invoke(arguments)
42
- @init_arguments.replace(argv[1..-1]) unless argv.nil?
43
- raise InitError, "failed to initialize GTK+" unless succeeded
34
+ succeeded = init_check.invoke([])
35
+ raise InitError, "failed to initialize GTK" unless succeeded
44
36
  end
45
37
 
46
38
  def define_version_module
@@ -48,25 +40,102 @@ module Gtk
48
40
  @base_module.const_set("Version", @version_module)
49
41
  end
50
42
 
43
+ def define_methods_modules
44
+ @widget_methods_module =
45
+ define_methods_module(:WidgetMethods)
46
+ end
47
+
48
+ def apply_methods_modules
49
+ apply_methods_module(@widget_methods_module,
50
+ @base_module::Widget)
51
+ end
52
+
53
+ def level_bar_class
54
+ @level_bar_class ||= @base_module.const_get(:LevelBar)
55
+ end
56
+
57
+ def style_provider_module
58
+ @style_provider_module ||= @base_module.const_get(:StyleProvider)
59
+ end
60
+
51
61
  def post_load(repository, namespace)
62
+ apply_pending_constants
63
+ apply_methods_modules
64
+ require_extension
52
65
  require_libraries
53
66
  end
54
67
 
68
+ def require_extension
69
+ require "gtk4.so"
70
+ end
71
+
55
72
  def require_libraries
56
- require "gtk4/box"
57
- require "gtk4/builder"
58
- require "gtk4/button"
59
- require "gtk4/dialog"
60
- require "gtk4/menu-item"
61
- require "gtk4/message-dialog"
62
- require "gtk4/version"
63
- require "gtk4/window"
73
+ require_relative "gdk-display"
74
+
75
+ require_relative "about-dialog"
76
+ require_relative "application"
77
+ require_relative "binding-set"
78
+ require_relative "border"
79
+ require_relative "box"
80
+ require_relative "button"
81
+ require_relative "builder"
82
+ require_relative "cell-layout"
83
+ require_relative "color-chooser-dialog"
84
+ require_relative "combo-box"
85
+ require_relative "combo-box-text"
86
+ require_relative "css-provider"
87
+ require_relative "dialog"
88
+ require_relative "entry"
89
+ require_relative "entry-buffer"
90
+ require_relative "file-chooser-dialog"
91
+ require_relative "font-chooser-dialog"
92
+ require_relative "gesture-multi-press"
93
+ require_relative "icon-theme"
94
+ require_relative "icon-view"
95
+ require_relative "image"
96
+ require_relative "label"
97
+ require_relative "level-bar"
98
+ require_relative "list-store"
99
+ require_relative "message-dialog"
100
+ require_relative "paned"
101
+ require_relative "response-type"
102
+ require_relative "scale-button"
103
+ require_relative "scrolled-window"
104
+ require_relative "search-bar"
105
+ require_relative "spin-button"
106
+ require_relative "show-uri"
107
+ require_relative "stack"
108
+ require_relative "style-context"
109
+ require_relative "text-buffer"
110
+ require_relative "text-iter"
111
+ require_relative "text-tag"
112
+ require_relative "text-tag-table"
113
+ require_relative "text-view"
114
+ require_relative "toggle-button"
115
+ require_relative "tree-iter"
116
+ require_relative "tree-model"
117
+ require_relative "tree-model-filter"
118
+ require_relative "tree-model-sort"
119
+ require_relative "tree-path"
120
+ require_relative "tree-selection"
121
+ require_relative "tree-sortable"
122
+ require_relative "tree-store"
123
+ require_relative "tree-view"
124
+ require_relative "tree-view-column"
125
+ require_relative "version"
126
+ require_relative "widget"
127
+
128
+ require_relative "deprecated"
64
129
  end
65
130
 
66
- def load_constant_info(info)
67
- case info.name
68
- when /_VERSION\z/
69
- @version_module.const_set($PREMATCH, info.value)
131
+ def load_function_info(info)
132
+ name = info.name
133
+ case name
134
+ when "init", "init_check"
135
+ # ignore
136
+ when /\Atest_widget_/
137
+ name = $POSTMATCH
138
+ define_method(info, @widget_methods_module, name)
70
139
  else
71
140
  super
72
141
  end
@@ -75,11 +144,68 @@ module Gtk
75
144
  def rubyish_method_name(function_info, options={})
76
145
  name = function_info.name
77
146
  case name
78
- when /\Alist_(child_properties|style_properties)\z/
79
- $1
147
+ when "list_toplevels"
148
+ # To avoid conflict with gtk_window_get_toplevels()
149
+ name
150
+ else
151
+ super
152
+ end
153
+ end
154
+
155
+ def load_method_info(info, klass, method_name)
156
+ case klass.name
157
+ when "Gtk::Builder"
158
+ case method_name
159
+ when "get_type_from_name"
160
+ method_name = "get_type"
161
+ end
162
+ when "Gtk::Image"
163
+ method_name = method_name.gsub(/\Agicon/, "icon")
164
+ when "Gtk::TreePath"
165
+ case method_name
166
+ when "next", "prev", "up", "down"
167
+ method_name += "!"
168
+ end
169
+ when "Gtk::TreeSelection"
170
+ case method_name
171
+ when "selected_foreach"
172
+ method_name = "each"
173
+ end
174
+ when "Gtk::TreeView"
175
+ case method_name
176
+ when "row_expanded"
177
+ method_name += "?"
178
+ end
179
+ end
180
+ super(info, klass, method_name)
181
+ end
182
+
183
+ def load_constant_info(info)
184
+ case info.name
185
+ when /_VERSION\z/
186
+ @version_module.const_set($PREMATCH, info.value)
187
+ when /\ALEVEL_BAR_/
188
+ @pending_constants << info
189
+ when /\ASTYLE_PROVIDER_/
190
+ @pending_constants << info
80
191
  else
81
192
  super
82
193
  end
83
194
  end
195
+
196
+ def setup_pending_constants
197
+ @pending_constants = []
198
+ end
199
+
200
+ def apply_pending_constants
201
+ @pending_constants.each do |info|
202
+ case info.name
203
+ when /\ALEVEL_BAR_/
204
+ level_bar_class.const_set($POSTMATCH, info.value)
205
+ when /\ASTYLE_PROVIDER_/
206
+ style_provider_module.const_set($POSTMATCH, info.value)
207
+ end
208
+ end
209
+ end
84
210
  end
85
211
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015-2018 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2018 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
data/lib/gtk4/paned.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 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
@@ -16,22 +16,28 @@
16
16
 
17
17
  module Gtk
18
18
  class Paned
19
- alias_method :pack1_raw, :pack1
20
- def pack1(child, options={})
19
+ alias_method :set_start_child_raw, :set_start_child
20
+ def set_start_child(child, options=nil)
21
+ set_start_child_raw(child)
22
+ return self unless options
23
+
21
24
  resize = options[:resize]
22
- resize = false if resize.nil?
25
+ set_resize_start_child(resize) unless resize.nil?
23
26
  shrink = options[:shrink]
24
- shrink = true if shrink.nil?
25
- pack1_raw(child, resize, shrink)
27
+ set_shrink_start_child(shrink) unless shrink.nil?
28
+ self
26
29
  end
27
30
 
28
- alias_method :pack2_raw, :pack2
29
- def pack2(child, options={})
31
+ alias_method :set_end_child_raw, :set_end_child
32
+ def set_end_child(child, options=nil)
33
+ set_end_child_raw(child)
34
+ return self unless options
35
+
30
36
  resize = options[:resize]
31
- resize = true if resize.nil?
37
+ set_resize_end_child(resize) unless resize.nil?
32
38
  shrink = options[:shrink]
33
- shrink = true if shrink.nil?
34
- pack2_raw(child, resize, shrink)
39
+ set_shrink_end_child(shrink) unless shrink.nil?
40
+ self
35
41
  end
36
42
  end
37
43
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2020 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
@@ -15,11 +15,16 @@
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
  module Gtk
18
- class Clipboard
19
- alias_method :set_text_raw, :set_text
20
- def set_text(text)
21
- set_text_raw(text, text.bytesize)
18
+ class ResponseType
19
+ class << self
20
+ def resolve(id)
21
+ case id
22
+ when Symbol
23
+ new(id)
24
+ else
25
+ id
26
+ end
27
+ end
22
28
  end
23
- alias_method :text=, :set_text
24
29
  end
25
30
  end
@@ -0,0 +1,47 @@
1
+ # Copyright (C) 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 Gtk
18
+ class RubyBuilderScope < GLib::Object
19
+ type_register
20
+
21
+ include Gtk::BuilderScope
22
+
23
+ def virtual_do_get_type_from_name(builder, type_name)
24
+ GLib::Type.try_convert(type_name)
25
+ end
26
+
27
+ def virtual_do_get_type_from_function(builder, function_name)
28
+ builder.__send__(normalize_name(function_name))
29
+ end
30
+
31
+ def virtual_do_create_closure(builder,
32
+ function_name,
33
+ flags,
34
+ object)
35
+ object ||= builder.current_object || builder
36
+ method_name = normalize_name(function_name)
37
+ GLib::Closure.new do |*args|
38
+ object.__send__(method_name, *args)
39
+ end
40
+ end
41
+
42
+ private
43
+ def normalize_name(name)
44
+ name.gsub(/[-\s]+/, "_")
45
+ end
46
+ end
47
+ end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 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
@@ -18,18 +18,11 @@ module Gtk
18
18
  class ScaleButton
19
19
  alias_method :initialize_raw, :initialize
20
20
  def initialize(options={})
21
- icon_size = options[:icon_size] || :button
22
- min = options[:min] || 0
23
- max = options[:max] || 100
24
- step = options[:step] || 2
25
- icons = options[:icons] || nil
26
-
27
- case icon_size
28
- when Symbol, String
29
- icon_size = IconSize.new(icon_size.to_s)
30
- end
31
-
32
- initialize_raw(icon_size, min, max, step, icons)
21
+ min = options[:min] || 0
22
+ max = options[:max] || 100
23
+ step = options[:step] || 2
24
+ icons = options[:icons] || nil
25
+ initialize_raw(min, max, step, icons)
33
26
  end
34
27
  end
35
28
  end