gtk4 4.2.1 → 4.2.3
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.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/gtk4.gemspec +1 -1
- data/lib/gtk4/css-provider.rb +23 -4
- data/lib/gtk4/loader.rb +2 -0
- data/lib/gtk4/text-buffer.rb +11 -0
- data/sample/demos/gtk-demo/README.md +3 -0
- data/sample/demos/gtk-demo/data/scalable/apps/org.gtk.Demo4.svg +1 -0
- data/sample/demos/gtk-demo/data/symbolic/apps/org.gtk.Demo4-symbolic.svg +114 -0
- data/sample/demos/gtk-demo/demo.gresource +0 -0
- data/sample/demos/gtk-demo/demo.gresource.xml +474 -0
- data/sample/demos/gtk-demo/demo.rb +82 -0
- data/sample/demos/gtk-demo/glarea-gl.fs.glsl +9 -0
- data/sample/demos/gtk-demo/glarea-gl.vs.glsl +8 -0
- data/sample/demos/gtk-demo/glarea-gles.fs.glsl +7 -0
- data/sample/demos/gtk-demo/glarea-gles.vs.glsl +7 -0
- data/sample/demos/gtk-demo/glarea.rb +323 -0
- data/sample/demos/gtk-demo/main-listitem.ui +25 -0
- data/sample/demos/gtk-demo/main.rb +264 -0
- data/sample/demos/gtk-demo/main.ui +184 -0
- metadata +22 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b44c383d951922d27333f4abb97520db54fafde2004d86a681f40240afdb8a81
|
4
|
+
data.tar.gz: 8663c23ee7bf011e85e316a3204f69384476dd904fdde0ef9356915d8e061dfa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c578b5ba238a3f50a6849d6c621f80792acd2a16e11862e6c49a2e83d48d5ba09dfe67ab5dd5b27463726fd931d73ea47be4dfbd2f82acc684a30a675b669635
|
7
|
+
data.tar.gz: 1f011b7a9039b9f0bd4a060624636d7f57f39f8a3c147b4f9e8d6babacc60d9dc22b908e206c341a42cd4bfa9e11b909703c6166d8c27042ea532cd476e3cec6
|
data/README.md
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# Ruby/GTK4
|
2
2
|
|
3
|
-
Ruby/GTK4 is a Ruby binding of GTK
|
3
|
+
Ruby/GTK4 is a Ruby binding of GTK 4.
|
4
4
|
|
5
5
|
## Requirements
|
6
6
|
|
7
7
|
* Ruby/GLib2, Ruby/ATK, Ruby/Pango, Ruby/GdkPixbuf2, Ruby/GIO2,
|
8
8
|
Ruby/GDK4, Ruby/GObjectIntrospection and Ruby/GTK4 in
|
9
|
-
[Ruby-GNOME2](https://ruby-
|
9
|
+
[Ruby-GNOME2](https://ruby-gnome.github.io/)
|
10
10
|
* [rcairo](https://github.com/rcairo/rcairo)
|
11
|
-
* [GTK
|
11
|
+
* [GTK](https://www.gtk.org/)
|
12
12
|
|
13
13
|
## Install
|
14
14
|
|
@@ -20,7 +20,7 @@ Ruby/GTK4 is a Ruby binding of GTK+ 4.
|
|
20
20
|
|
21
21
|
## License
|
22
22
|
|
23
|
-
Copyright (
|
23
|
+
Copyright (C) 2002-2024 Ruby-GNOME Project Team
|
24
24
|
|
25
25
|
This program is free software. You can distribute/modify this program
|
26
26
|
under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
|
@@ -28,4 +28,4 @@ under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
|
|
28
28
|
## Project Websites
|
29
29
|
|
30
30
|
* https://github.com/ruby-gnome/ruby-gnome
|
31
|
-
* https://ruby-
|
31
|
+
* https://ruby-gnome.github.io/
|
data/gtk4.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.description = "Ruby/GTK4 is a Ruby binding of GTK+-4.x."
|
25
25
|
s.author = "The Ruby-GNOME Project Team"
|
26
26
|
s.email = "ruby-gnome2-devel-en@lists.sourceforge.net"
|
27
|
-
s.homepage = "https://ruby-
|
27
|
+
s.homepage = "https://ruby-gnome.github.io/"
|
28
28
|
s.licenses = ["LGPL-2.1+"]
|
29
29
|
s.version = ruby_glib2_version
|
30
30
|
s.extensions = ["ext/#{s.name}/extconf.rb"]
|
data/lib/gtk4/css-provider.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2014-
|
1
|
+
# Copyright (C) 2014-2024 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
|
@@ -17,12 +17,30 @@
|
|
17
17
|
module Gtk
|
18
18
|
class CssProvider
|
19
19
|
def load(options)
|
20
|
+
string = options[:string]
|
21
|
+
bytes = options[:bytes]
|
20
22
|
data = options[:data]
|
21
23
|
file = options[:file]
|
22
24
|
path = options[:path]
|
23
25
|
resource_path = options[:resource_path]
|
24
|
-
if
|
25
|
-
|
26
|
+
if string
|
27
|
+
if Version.or_later?(4, 12, 0)
|
28
|
+
load_from_string(string)
|
29
|
+
else
|
30
|
+
load_from_data(string)
|
31
|
+
end
|
32
|
+
elsif bytes
|
33
|
+
if Version.or_later?(4, 12, 0)
|
34
|
+
load_from_bytes(bytes)
|
35
|
+
else
|
36
|
+
load_from_data(bytes)
|
37
|
+
end
|
38
|
+
elsif data
|
39
|
+
if Version.or_later?(4, 12, 0)
|
40
|
+
load_from_bytes(data)
|
41
|
+
else
|
42
|
+
load_from_data(data)
|
43
|
+
end
|
26
44
|
elsif file
|
27
45
|
load_from_file(file)
|
28
46
|
elsif path
|
@@ -30,7 +48,8 @@ module Gtk
|
|
30
48
|
elsif resource_path
|
31
49
|
load_from_resource(resource_path)
|
32
50
|
else
|
33
|
-
message = "Must specify one of
|
51
|
+
message = "Must specify one of " +
|
52
|
+
":string, :bytes, :data, :file, :path or :resource_path"
|
34
53
|
raise ArgumentError, "#{message}: #{options.inspect}"
|
35
54
|
end
|
36
55
|
end
|
data/lib/gtk4/loader.rb
CHANGED
data/lib/gtk4/text-buffer.rb
CHANGED
@@ -217,6 +217,17 @@ module Gtk
|
|
217
217
|
end
|
218
218
|
end
|
219
219
|
|
220
|
+
alias_method :begin_irreversible_action_raw, :begin_irreversible_action
|
221
|
+
def begin_irreversible_action
|
222
|
+
begin_irreversible_action_raw
|
223
|
+
return unless block_given?
|
224
|
+
begin
|
225
|
+
yield
|
226
|
+
ensure
|
227
|
+
end_irreversible_action
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
220
231
|
private
|
221
232
|
alias_method :insert_interactive_raw, :insert_interactive
|
222
233
|
def insert_interactive(iter, text, default_ediatable)
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="f"><stop offset="0" stop-color="#ff7800"/><stop offset="1" stop-color="#ed333b"/></linearGradient><linearGradient id="e"><stop offset="0" stop-color="#f5c211"/><stop offset="1" stop-color="#33d17a" stop-opacity=".899"/></linearGradient><linearGradient id="d"><stop offset="0" stop-color="#c0bfbc"/><stop offset=".036" stop-color="#fafaf9"/><stop offset=".088" stop-color="#c0bfbc"/><stop offset=".399" stop-color="#d5d5d3"/><stop offset=".491" stop-color="#eaeae9"/><stop offset=".569" stop-color="#a7a5a1"/><stop offset=".966" stop-color="#a9a7a3"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="a"><stop offset="0" stop-color="#d5d3cf"/><stop offset="1" stop-color="#f6f5f4"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#d5d3cf"/><stop offset="1" stop-color="#949390"/></linearGradient><linearGradient id="c"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#77767b"/></linearGradient><linearGradient xlink:href="#d" id="g" x1="-142.049" y1="236.001" x2="-9.951" y2="236.001" gradientUnits="userSpaceOnUse"/><radialGradient xlink:href="#e" id="h" cx="90.974" cy="263.479" fx="90.974" fy="263.479" r="22.703" gradientTransform="matrix(1.90297 -.05506 .0501 1.73133 -89.25 -176.863)" gradientUnits="userSpaceOnUse"/><radialGradient xlink:href="#f" id="i" cx="61.718" cy="270.719" fx="61.718" fy="270.719" r="22.703" gradientTransform="matrix(2.49049 0 0 2.92132 -91.99 -503.52)" gradientUnits="userSpaceOnUse"/></defs><path transform="translate(123.265 -118.118) scale(.7798)" d="M-75.74 161.438a10.997 10.997 0 0 0-5.758 1.468l-55.053 31.785a10.997 10.997 0 0 0-5.498 9.524v63.57a10.997 10.997 0 0 0 5.498 9.524l55.053 31.785a10.997 10.997 0 0 0 10.996 0l55.053-31.785a10.997 10.997 0 0 0 5.498-9.524v-63.57a10.997 10.997 0 0 0-5.498-9.524l-55.053-31.785a10.997 10.997 0 0 0-5.238-1.469z" style="marker:none" fill="url(#g)"/><path style="marker:none" d="M64.203 3.77a8.575 8.575 0 0 0-4.49 1.146l-42.93 24.786a8.575 8.575 0 0 0-4.288 7.427V86.7a8.575 8.575 0 0 0 4.287 7.426l42.93 24.786a8.575 8.575 0 0 0 8.575 0l42.93-24.786a8.575 8.575 0 0 0 4.288-7.426V37.129a8.575 8.575 0 0 0-4.287-7.427L68.288 4.916a8.575 8.575 0 0 0-4.085-1.145z" fill="#fff"/><path style="marker:none" d="M109.869 33.297L64 59.779 18.131 33.297 64 6.814z" fill="#98c1f1"/><path style="marker:none" d="M66.263 287.505l45.35-25.884.056-52.762-45.406 26.215z" fill="url(#h)" transform="translate(0 -172)"/><path d="M61.718 287.34l-45.35-25.885-.056-52.761 45.406 26.215z" style="marker:none" fill="url(#i)" transform="translate(0 -172)"/></svg>
|
@@ -0,0 +1,114 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
6
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
7
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
8
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
9
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
sodipodi:docname="org.gtk.Demo4-symbolic.svg"
|
14
|
+
height="16.03125"
|
15
|
+
id="svg7384"
|
16
|
+
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
17
|
+
version="1.1"
|
18
|
+
width="16">
|
19
|
+
<metadata
|
20
|
+
id="metadata90">
|
21
|
+
<rdf:RDF>
|
22
|
+
<cc:Work
|
23
|
+
rdf:about="">
|
24
|
+
<dc:format>image/svg+xml</dc:format>
|
25
|
+
<dc:type
|
26
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
27
|
+
<dc:title>Gnome Symbolic Icon Theme</dc:title>
|
28
|
+
</cc:Work>
|
29
|
+
</rdf:RDF>
|
30
|
+
</metadata>
|
31
|
+
<sodipodi:namedview
|
32
|
+
inkscape:bbox-paths="true"
|
33
|
+
bordercolor="#666666"
|
34
|
+
borderopacity="1"
|
35
|
+
inkscape:current-layer="layer9"
|
36
|
+
inkscape:cx="0.53203442"
|
37
|
+
inkscape:cy="9.1822592"
|
38
|
+
gridtolerance="10"
|
39
|
+
inkscape:guide-bbox="true"
|
40
|
+
guidetolerance="10"
|
41
|
+
id="namedview88"
|
42
|
+
inkscape:object-nodes="false"
|
43
|
+
inkscape:object-paths="false"
|
44
|
+
objecttolerance="10"
|
45
|
+
pagecolor="#555753"
|
46
|
+
inkscape:pageopacity="1"
|
47
|
+
inkscape:pageshadow="2"
|
48
|
+
showborder="true"
|
49
|
+
showgrid="false"
|
50
|
+
showguides="true"
|
51
|
+
inkscape:snap-bbox="true"
|
52
|
+
inkscape:snap-bbox-midpoints="false"
|
53
|
+
inkscape:snap-global="true"
|
54
|
+
inkscape:snap-grids="true"
|
55
|
+
inkscape:snap-nodes="true"
|
56
|
+
inkscape:snap-others="false"
|
57
|
+
inkscape:snap-to-guides="true"
|
58
|
+
inkscape:window-height="1375"
|
59
|
+
inkscape:window-maximized="1"
|
60
|
+
inkscape:window-width="2560"
|
61
|
+
inkscape:window-x="0"
|
62
|
+
inkscape:window-y="27"
|
63
|
+
inkscape:zoom="1">
|
64
|
+
<inkscape:grid
|
65
|
+
empspacing="2"
|
66
|
+
enabled="true"
|
67
|
+
id="grid4866"
|
68
|
+
originx="-203"
|
69
|
+
originy="-251.96875"
|
70
|
+
snapvisiblegridlinesonly="true"
|
71
|
+
spacingx="1"
|
72
|
+
spacingy="1"
|
73
|
+
type="xygrid"
|
74
|
+
visible="true" />
|
75
|
+
</sodipodi:namedview>
|
76
|
+
<title
|
77
|
+
id="title9167">Gnome Symbolic Icon Theme</title>
|
78
|
+
<defs
|
79
|
+
id="defs7386">
|
80
|
+
<linearGradient
|
81
|
+
id="linearGradient7212"
|
82
|
+
osb:paint="solid">
|
83
|
+
<stop
|
84
|
+
id="stop7214"
|
85
|
+
offset="0"
|
86
|
+
style="stop-color:#000000;stop-opacity:1;" />
|
87
|
+
</linearGradient>
|
88
|
+
</defs>
|
89
|
+
<g
|
90
|
+
inkscape:groupmode="layer"
|
91
|
+
id="layer9"
|
92
|
+
inkscape:label="apps"
|
93
|
+
style="display:inline"
|
94
|
+
transform="translate(-444.0002,35)">
|
95
|
+
<path
|
96
|
+
style="display:inline;opacity:0.3;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
97
|
+
d="m 457.97232,-31.569556 -5.96212,3.44224 -5.96215,-3.44224 v 0 l 5.96215,-3.44226 z"
|
98
|
+
id="path870-6"
|
99
|
+
inkscape:connector-curvature="0"
|
100
|
+
sodipodi:nodetypes="cccccc" />
|
101
|
+
<path
|
102
|
+
sodipodi:nodetypes="cccccc"
|
103
|
+
inkscape:connector-curvature="0"
|
104
|
+
id="path886-9"
|
105
|
+
d="m 450.98519,-19.648086 -5.99273,-3.42041 -0.007,-6.97219 v 0 l 6.00018,3.4642 z"
|
106
|
+
style="display:inline;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
|
107
|
+
<path
|
108
|
+
style="display:inline;opacity:0.60100002;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
|
109
|
+
d="m 452.98577,-19.648086 5.99273,-3.42041 0.007,-6.97219 v 0 l -6.00018,3.4642 z"
|
110
|
+
id="path931"
|
111
|
+
inkscape:connector-curvature="0"
|
112
|
+
sodipodi:nodetypes="cccccc" />
|
113
|
+
</g>
|
114
|
+
</svg>
|
Binary file
|