gtk3 3.5.1 → 4.0.0
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/ext/gtk3/rb-gtk3-accel-map.c +76 -0
- data/ext/gtk3/rb-gtk3-container.c +9 -35
- data/ext/gtk3/rb-gtk3-private.h +3 -7
- data/ext/gtk3/rb-gtk3-widget.c +7 -29
- data/ext/gtk3/rb-gtk3.c +2 -36
- data/gtk3.gemspec +1 -4
- data/lib/gtk3/loader.rb +6 -0
- data/lib/gtk3/widget.rb +13 -5
- data/sample/gtk-demo/toolpalette.rb +3 -5
- data/test/test-gtk-accel-map.rb +103 -0
- data/test/test-gtk-builder.rb +0 -9
- data/test/test-gtk-icon-theme.rb +6 -4
- data/test/test-gtk-widget.rb +33 -1
- metadata +11 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fbd7f61ea4374757cc5762d2a03cc915755fc7f0c582dccd6b1fd576be2194c
|
4
|
+
data.tar.gz: 80cddbe9e92172568e21df21c1eae29e49f6b7556d0a8d44eed9410ee57b77de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f2788da31bb6187a156d6be347da8e1e33013723eb6dfcdc4975f5090faca69b3d45c4e5bf2226e3c0970d54ec42ac9470755855d20bb389e5ac761e9d4058c
|
7
|
+
data.tar.gz: bf33b0b523f6f1af70945afca73f9be13014f6099027a15b6c1e419ea5206f67fd14b492e6fe374efd48db45188ab9ec842cadb100b72c5282d53c881d45e87c
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2022 Ruby-GNOME 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,
|
18
|
+
* MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
#include "rb-gtk3-private.h"
|
22
|
+
|
23
|
+
static void
|
24
|
+
accel_map_foreach_func(gpointer data,
|
25
|
+
const gchar *path,
|
26
|
+
guint key,
|
27
|
+
GdkModifierType accel_mods,
|
28
|
+
gboolean changed)
|
29
|
+
{
|
30
|
+
VALUE block = (VALUE)data;
|
31
|
+
ID id_call;
|
32
|
+
CONST_ID(id_call, "call");
|
33
|
+
rb_funcall(block,
|
34
|
+
id_call,
|
35
|
+
4,
|
36
|
+
CSTR2RVAL(path),
|
37
|
+
UINT2NUM(key),
|
38
|
+
GFLAGS2RVAL(accel_mods, GDK_TYPE_MODIFIER_TYPE),
|
39
|
+
CBOOL2RVAL(changed));
|
40
|
+
}
|
41
|
+
|
42
|
+
static VALUE
|
43
|
+
rg_s_each(int argc, VALUE *args, VALUE self)
|
44
|
+
{
|
45
|
+
RETURN_ENUMERATOR(self, argc, args);
|
46
|
+
|
47
|
+
VALUE options = Qnil;
|
48
|
+
VALUE block = Qnil;
|
49
|
+
rb_scan_args(argc, args, ":&", &options, &block);
|
50
|
+
|
51
|
+
ID keywords[1];
|
52
|
+
VALUE values[1];
|
53
|
+
CONST_ID(keywords[0], "filter");
|
54
|
+
rb_get_kwargs(options, keywords, 0, 1, values);
|
55
|
+
|
56
|
+
VALUE filter = values[0];
|
57
|
+
if (filter == RUBY_Qundef || RB_NIL_P(filter)) {
|
58
|
+
filter = RUBY_Qtrue;
|
59
|
+
}
|
60
|
+
if (RB_TEST(filter)) {
|
61
|
+
gtk_accel_map_foreach((gpointer)block, accel_map_foreach_func);
|
62
|
+
} else {
|
63
|
+
gtk_accel_map_foreach_unfiltered((gpointer)block,
|
64
|
+
accel_map_foreach_func);
|
65
|
+
}
|
66
|
+
return self;
|
67
|
+
}
|
68
|
+
|
69
|
+
void
|
70
|
+
rbgtk3_accel_map_init(void)
|
71
|
+
{
|
72
|
+
VALUE mGtk = rb_const_get(rb_cObject, rb_intern("Gtk"));
|
73
|
+
VALUE RG_TARGET_NAMESPACE = rb_const_get(mGtk, rb_intern("AccelMap"));
|
74
|
+
|
75
|
+
RG_DEF_SMETHOD(each, -1);
|
76
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C) 2015 Ruby-GNOME2 Project Team
|
3
|
+
* Copyright (C) 2015-2022 Ruby-GNOME2 Project Team
|
4
4
|
*
|
5
5
|
* This library is free software; you can redistribute it and/or
|
6
6
|
* modify it under the terms of the GNU Lesser General Public
|
@@ -100,43 +100,17 @@ set_child_prop_func(GtkContainer *container,
|
|
100
100
|
GOBJ2RVAL(child), GVAL2RVAL(value));
|
101
101
|
}
|
102
102
|
|
103
|
-
static
|
104
|
-
|
103
|
+
static VALUE
|
104
|
+
rg_s_init(VALUE klass)
|
105
105
|
{
|
106
|
-
|
107
|
-
|
108
|
-
rbgobj_class_init_func(g_class, class_data);
|
106
|
+
rb_call_super(0, NULL);
|
109
107
|
|
108
|
+
GType type = CLASS2GTYPE(klass);
|
109
|
+
GtkContainerClass *g_container_class =
|
110
|
+
GTK_CONTAINER_CLASS(g_type_class_ref(type));
|
110
111
|
g_container_class->set_child_property = set_child_prop_func;
|
111
112
|
g_container_class->get_child_property = get_child_prop_func;
|
112
|
-
|
113
|
-
rbgtk3_class_init_func(g_class, class_data);
|
114
|
-
}
|
115
|
-
|
116
|
-
static VALUE
|
117
|
-
rg_initialize(int argc, VALUE *argv, VALUE self)
|
118
|
-
{
|
119
|
-
rb_call_super(argc, argv);
|
120
|
-
rbgtk3_initialize(self);
|
121
|
-
return Qnil;
|
122
|
-
}
|
123
|
-
|
124
|
-
static VALUE
|
125
|
-
rg_s_type_register(int argc, VALUE *argv, VALUE klass)
|
126
|
-
{
|
127
|
-
VALUE type_name;
|
128
|
-
|
129
|
-
rb_scan_args(argc, argv, "01", &type_name);
|
130
|
-
|
131
|
-
rbgobj_register_type(klass, type_name, class_init_func);
|
132
|
-
|
133
|
-
{
|
134
|
-
VALUE initialize_module;
|
135
|
-
initialize_module = rb_define_module_under(klass, "ContainerHook");
|
136
|
-
rbg_define_method(initialize_module,
|
137
|
-
"initialize", rg_initialize, -1);
|
138
|
-
rb_include_module(klass, initialize_module);
|
139
|
-
}
|
113
|
+
g_type_class_unref(g_container_class);
|
140
114
|
|
141
115
|
return Qnil;
|
142
116
|
}
|
@@ -155,5 +129,5 @@ rbgtk3_container_init(void)
|
|
155
129
|
|
156
130
|
rbgobj_register_mark_func(GTK_TYPE_CONTAINER, rb_gtk3_container_mark);
|
157
131
|
|
158
|
-
RG_DEF_SMETHOD(
|
132
|
+
RG_DEF_SMETHOD(init, 0);
|
159
133
|
}
|
data/ext/gtk3/rb-gtk3-private.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C) 2015-
|
3
|
+
* Copyright (C) 2015-2022 Ruby-GNOME Project Team
|
4
4
|
*
|
5
5
|
* This library is free software; you can redistribute it and/or
|
6
6
|
* modify it under the terms of the GNU Lesser General Public
|
@@ -24,17 +24,13 @@
|
|
24
24
|
/*
|
25
25
|
* CentOS 6: No GTK+ 3
|
26
26
|
* CentOS 7: GTK+ 3.22
|
27
|
-
* Ubuntu 14.04: GTK+ 3.10
|
28
|
-
* Ubuntu 16.04: GTK+ 3.18
|
29
27
|
* Ubuntu 18.04: GTK+ 3.22
|
30
28
|
*/
|
31
|
-
#define GDK_VERSION_MIN_REQUIRED
|
29
|
+
#define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_22
|
32
30
|
|
33
31
|
#include "rb-gtk3.h"
|
34
32
|
|
35
|
-
G_GNUC_INTERNAL void
|
36
|
-
G_GNUC_INTERNAL void rbgtk3_initialize(VALUE self);
|
37
|
-
|
33
|
+
G_GNUC_INTERNAL void rbgtk3_accel_map_init(void);
|
38
34
|
G_GNUC_INTERNAL void rbgtk3_cell_layout_init(void);
|
39
35
|
G_GNUC_INTERNAL void rbgtk3_container_init(void);
|
40
36
|
G_GNUC_INTERNAL void rbgtk3_spin_button_init(void);
|
data/ext/gtk3/rb-gtk3-widget.c
CHANGED
@@ -25,37 +25,15 @@
|
|
25
25
|
#define RG_TARGET_NAMESPACE cWidget
|
26
26
|
#define _SELF(self) (RVAL2GTKWIDGET(self))
|
27
27
|
|
28
|
-
static void
|
29
|
-
class_init_func(gpointer g_class, gpointer class_data)
|
30
|
-
{
|
31
|
-
rbgobj_class_init_func(g_class, class_data);
|
32
|
-
rbgtk3_class_init_func(g_class, class_data);
|
33
|
-
}
|
34
|
-
|
35
|
-
static VALUE
|
36
|
-
rg_initialize(int argc, VALUE *argv, VALUE self)
|
37
|
-
{
|
38
|
-
rb_call_super(argc, argv);
|
39
|
-
rbgtk3_initialize(self);
|
40
|
-
return Qnil;
|
41
|
-
}
|
42
|
-
|
43
28
|
static VALUE
|
44
|
-
|
29
|
+
rg_initialize_post(VALUE self)
|
45
30
|
{
|
46
|
-
|
31
|
+
GObject *object = RVAL2GOBJ(self);
|
32
|
+
g_object_ref_sink(object);
|
47
33
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
{
|
53
|
-
VALUE initialize_module;
|
54
|
-
initialize_module = rb_define_module_under(klass, "WidgetHook");
|
55
|
-
rbg_define_method(initialize_module,
|
56
|
-
"initialize", rg_initialize, -1);
|
57
|
-
rb_include_module(klass, initialize_module);
|
58
|
-
}
|
34
|
+
ID id_initialize_template;
|
35
|
+
CONST_ID(id_initialize_template, "initialize_template");
|
36
|
+
rb_funcall(self, id_initialize_template, 0);
|
59
37
|
|
60
38
|
return Qnil;
|
61
39
|
}
|
@@ -93,7 +71,7 @@ rbgtk3_widget_init(void)
|
|
93
71
|
mGtk = rb_const_get(rb_cObject, rb_intern("Gtk"));
|
94
72
|
RG_TARGET_NAMESPACE = rb_const_get(mGtk, rb_intern("Widget"));
|
95
73
|
|
96
|
-
|
74
|
+
RG_DEF_PRIVATE_METHOD(initialize_post, 0);
|
97
75
|
|
98
76
|
rbgobj_set_signal_call_func(RG_TARGET_NAMESPACE,
|
99
77
|
"draw",
|
data/ext/gtk3/rb-gtk3.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C) 2015-
|
3
|
+
* Copyright (C) 2015-2022 Ruby-GNOME Project Team
|
4
4
|
*
|
5
5
|
* This library is free software; you can redistribute it and/or
|
6
6
|
* modify it under the terms of the GNU Lesser General Public
|
@@ -573,41 +573,6 @@ rb_gtk3_text_tag_table_mark(gpointer object)
|
|
573
573
|
gtk_text_tag_table_foreach(table, rb_gtk3_text_tag_table_mark_body, NULL);
|
574
574
|
}
|
575
575
|
|
576
|
-
void
|
577
|
-
rbgtk3_class_init_func(gpointer g_class, G_GNUC_UNUSED gpointer class_data)
|
578
|
-
{
|
579
|
-
VALUE rb_class;
|
580
|
-
|
581
|
-
rb_class = GTYPE2CLASS(G_TYPE_FROM_CLASS(g_class));
|
582
|
-
rb_funcall(rb_class, rb_intern("init"), 0);
|
583
|
-
}
|
584
|
-
|
585
|
-
void
|
586
|
-
rbgtk3_initialize(VALUE self)
|
587
|
-
{
|
588
|
-
GObject *object;
|
589
|
-
|
590
|
-
object = RVAL2GOBJ(self);
|
591
|
-
g_object_ref_sink(object);
|
592
|
-
|
593
|
-
rb_funcall(self, rb_intern("initialize_post"), 0);
|
594
|
-
}
|
595
|
-
|
596
|
-
#ifdef _WIN32
|
597
|
-
/* Workaround: See glib2/ext/glib2/rbglib.c for details. */
|
598
|
-
BOOL WINAPI
|
599
|
-
DllMain(G_GNUC_UNUSED HINSTANCE hinstDLL,
|
600
|
-
G_GNUC_UNUSED DWORD fdwReason,
|
601
|
-
G_GNUC_UNUSED LPVOID lpvReserved);
|
602
|
-
BOOL WINAPI
|
603
|
-
DllMain(G_GNUC_UNUSED HINSTANCE hinstDLL,
|
604
|
-
G_GNUC_UNUSED DWORD fdwReason,
|
605
|
-
G_GNUC_UNUSED LPVOID lpvReserved)
|
606
|
-
{
|
607
|
-
return TRUE;
|
608
|
-
}
|
609
|
-
#endif
|
610
|
-
|
611
576
|
void
|
612
577
|
Init_gtk3(void)
|
613
578
|
{
|
@@ -630,6 +595,7 @@ Init_gtk3(void)
|
|
630
595
|
rbgobj_register_mark_func(GTK_TYPE_TEXT_TAG_TABLE,
|
631
596
|
rb_gtk3_text_tag_table_mark);
|
632
597
|
|
598
|
+
rbgtk3_accel_map_init();
|
633
599
|
rbgtk3_cell_layout_init();
|
634
600
|
rbgtk3_container_init();
|
635
601
|
rbgtk3_spin_button_init();
|
data/gtk3.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- ruby -*-
|
2
2
|
#
|
3
|
-
# Copyright (C) 2018 Ruby-GNOME Project Team
|
3
|
+
# Copyright (C) 2018-2022 Ruby-GNOME Project Team
|
4
4
|
#
|
5
5
|
# This library is free software; you can redistribute it and/or
|
6
6
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -42,9 +42,6 @@ Gem::Specification.new do |s|
|
|
42
42
|
s.files += Dir.glob("sample/**/*")
|
43
43
|
s.files += Dir.glob("test/**/*")
|
44
44
|
|
45
|
-
s.add_runtime_dependency("gio2", "= #{s.version}")
|
46
45
|
s.add_runtime_dependency("atk", "= #{s.version}")
|
47
|
-
s.add_runtime_dependency("pango", "= #{s.version}")
|
48
|
-
s.add_runtime_dependency("gdk_pixbuf2", "= #{s.version}")
|
49
46
|
s.add_runtime_dependency("gdk3", "= #{s.version}")
|
50
47
|
end
|
data/lib/gtk3/loader.rb
CHANGED
@@ -245,6 +245,12 @@ module Gtk
|
|
245
245
|
when "events_pending"
|
246
246
|
name = "events_pending?"
|
247
247
|
end
|
248
|
+
when "Gtk::AccelMap"
|
249
|
+
case name
|
250
|
+
when "each", "foreach_unfiltered"
|
251
|
+
# Implemented in C
|
252
|
+
return
|
253
|
+
end
|
248
254
|
when "Gtk::Widget"
|
249
255
|
case name
|
250
256
|
when "default_style"
|
data/lib/gtk3/widget.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2015-
|
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
|
@@ -17,9 +17,6 @@
|
|
17
17
|
module Gtk
|
18
18
|
class Widget
|
19
19
|
class << self
|
20
|
-
def init
|
21
|
-
end
|
22
|
-
|
23
20
|
def have_template?
|
24
21
|
@have_template ||= false
|
25
22
|
end
|
@@ -144,8 +141,19 @@ module Gtk
|
|
144
141
|
@style_context ||= style_context_raw
|
145
142
|
end
|
146
143
|
|
144
|
+
alias_method :insert_action_group_raw, :insert_action_group
|
145
|
+
def insert_action_group(name, group)
|
146
|
+
insert_action_group_raw(name, group)
|
147
|
+
@action_groups ||= {}
|
148
|
+
if group.nil?
|
149
|
+
@action_groups.delete(name)
|
150
|
+
else
|
151
|
+
@action_groups[name] = group
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
147
155
|
private
|
148
|
-
def
|
156
|
+
def initialize_template
|
149
157
|
klass = self.class
|
150
158
|
return unless klass.have_template?
|
151
159
|
return unless respond_to?(:init_template)
|
@@ -344,14 +344,12 @@ class ToolpaletteDemo
|
|
344
344
|
group = Gtk::ToolItemGroup.new("Radio Item")
|
345
345
|
@palette.add(group)
|
346
346
|
|
347
|
-
|
348
|
-
|
347
|
+
item = nil
|
349
348
|
(1..10).each do |i|
|
350
349
|
label = "##{i}"
|
351
|
-
item = Gtk::RadioToolButton.new(
|
350
|
+
item = Gtk::RadioToolButton.new(item)
|
352
351
|
item.label = label
|
353
|
-
group
|
354
|
-
toggle_group = item.group
|
352
|
+
group.insert(item, -1)
|
355
353
|
end
|
356
354
|
end
|
357
355
|
|
@@ -0,0 +1,103 @@
|
|
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
|
+
class TestGtkAccelMap < Test::Unit::TestCase
|
18
|
+
class << self
|
19
|
+
def startup
|
20
|
+
Gtk::AccelMap.add_entry("<category1>/a",
|
21
|
+
Gdk::Keyval::KEY_a,
|
22
|
+
0)
|
23
|
+
Gtk::AccelMap.add_entry("<category2>/b",
|
24
|
+
Gdk::Keyval::KEY_b,
|
25
|
+
0)
|
26
|
+
Gtk::AccelMap.add_filter("*category1*")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
sub_test_case("#each") do
|
31
|
+
def test_default
|
32
|
+
values = []
|
33
|
+
Gtk::AccelMap.each do |*args|
|
34
|
+
values << args
|
35
|
+
end
|
36
|
+
assert_equal([
|
37
|
+
[
|
38
|
+
"<category2>/b",
|
39
|
+
Gdk::Keyval::KEY_b,
|
40
|
+
Gdk::ModifierType.new(0),
|
41
|
+
false,
|
42
|
+
],
|
43
|
+
],
|
44
|
+
values)
|
45
|
+
end
|
46
|
+
|
47
|
+
test("filter: true") do
|
48
|
+
values = []
|
49
|
+
Gtk::AccelMap.each(filter: true) do |*args|
|
50
|
+
values << args
|
51
|
+
end
|
52
|
+
assert_equal([
|
53
|
+
[
|
54
|
+
"<category2>/b",
|
55
|
+
Gdk::Keyval::KEY_b,
|
56
|
+
Gdk::ModifierType.new(0),
|
57
|
+
false,
|
58
|
+
],
|
59
|
+
],
|
60
|
+
values)
|
61
|
+
end
|
62
|
+
|
63
|
+
test("filter: false") do
|
64
|
+
values = []
|
65
|
+
Gtk::AccelMap.each(filter: false) do |*args|
|
66
|
+
values << args
|
67
|
+
end
|
68
|
+
assert_equal([
|
69
|
+
[
|
70
|
+
"<category2>/b",
|
71
|
+
Gdk::Keyval::KEY_b,
|
72
|
+
Gdk::ModifierType.new(0),
|
73
|
+
false,
|
74
|
+
],
|
75
|
+
[
|
76
|
+
"<category1>/a",
|
77
|
+
Gdk::Keyval::KEY_a,
|
78
|
+
Gdk::ModifierType.new(0),
|
79
|
+
false,
|
80
|
+
],
|
81
|
+
],
|
82
|
+
values)
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_enumerator
|
86
|
+
assert_equal([
|
87
|
+
[
|
88
|
+
"<category2>/b",
|
89
|
+
Gdk::Keyval::KEY_b,
|
90
|
+
Gdk::ModifierType.new(0),
|
91
|
+
false,
|
92
|
+
],
|
93
|
+
[
|
94
|
+
"<category1>/a",
|
95
|
+
Gdk::Keyval::KEY_a,
|
96
|
+
Gdk::ModifierType.new(0),
|
97
|
+
false,
|
98
|
+
],
|
99
|
+
],
|
100
|
+
Gtk::AccelMap.each(filter: false).to_a)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
data/test/test-gtk-builder.rb
CHANGED
@@ -250,15 +250,6 @@ EOX
|
|
250
250
|
EOX
|
251
251
|
end
|
252
252
|
|
253
|
-
def ui_definition_with_signal
|
254
|
-
<<-EOX
|
255
|
-
<interface>
|
256
|
-
<object class="GtkWindow" id="main-window">
|
257
|
-
</object>
|
258
|
-
</interface>
|
259
|
-
EOX
|
260
|
-
end
|
261
|
-
|
262
253
|
def ui_definition_file
|
263
254
|
xml = Tempfile.new("Gtk::Builder")
|
264
255
|
xml.print(ui_definition)
|
data/test/test-gtk-icon-theme.rb
CHANGED
@@ -8,11 +8,13 @@ class TestGtkIconTheme < Test::Unit::TestCase
|
|
8
8
|
def test_choose_icon
|
9
9
|
assert_nil(@theme.choose_icon("non-existent", 100))
|
10
10
|
|
11
|
-
icon = @theme.choose_icon("face-cool", 10)
|
11
|
+
icon = @theme.choose_icon("face-cool-symbolic", 10)
|
12
12
|
assert_not_nil(icon)
|
13
|
-
assert_match(/face-cool/, icon.filename)
|
13
|
+
assert_match(/face-cool-symbolic/, icon.filename)
|
14
14
|
|
15
|
-
assert_not_nil(@theme.choose_icon("face-cool",
|
15
|
+
assert_not_nil(@theme.choose_icon("face-cool-symbolic",
|
16
|
+
29,
|
17
|
+
[:use_builtin]))
|
16
18
|
end
|
17
19
|
|
18
20
|
def test_contexts
|
@@ -21,7 +23,7 @@ class TestGtkIconTheme < Test::Unit::TestCase
|
|
21
23
|
|
22
24
|
class TestIcons < self
|
23
25
|
def test_no_argument
|
24
|
-
assert_operator(@theme.icons, :include?, "face-cool")
|
26
|
+
assert_operator(@theme.icons, :include?, "face-cool-symbolic")
|
25
27
|
end
|
26
28
|
|
27
29
|
def test_context
|
data/test/test-gtk-widget.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2008-
|
1
|
+
# Copyright (C) 2008-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
|
@@ -242,7 +242,13 @@ class TestGtkWidget < Test::Unit::TestCase
|
|
242
242
|
type_register "BindTemplateChildNothing"
|
243
243
|
|
244
244
|
singleton_class.send(:define_method, :init) do
|
245
|
+
super()
|
245
246
|
set_template(:data => data)
|
247
|
+
set_connect_func do |handler_name|
|
248
|
+
lambda do
|
249
|
+
# Do nothing
|
250
|
+
end
|
251
|
+
end
|
246
252
|
end
|
247
253
|
end
|
248
254
|
widget = widget_class.new
|
@@ -255,8 +261,14 @@ class TestGtkWidget < Test::Unit::TestCase
|
|
255
261
|
type_register "BindTemplateChildBind"
|
256
262
|
|
257
263
|
singleton_class.send(:define_method, :init) do
|
264
|
+
super()
|
258
265
|
set_template(:data => data)
|
259
266
|
bind_template_child(:label)
|
267
|
+
set_connect_func do |handler_name|
|
268
|
+
lambda do
|
269
|
+
# Do nothing
|
270
|
+
end
|
271
|
+
end
|
260
272
|
end
|
261
273
|
end
|
262
274
|
widget = widget_class.new
|
@@ -278,6 +290,7 @@ class TestGtkWidget < Test::Unit::TestCase
|
|
278
290
|
type_register "SetConnectFunc"
|
279
291
|
|
280
292
|
singleton_class.send(:define_method, :init) do
|
293
|
+
super()
|
281
294
|
set_template(:data => data)
|
282
295
|
bind_template_child(:label)
|
283
296
|
set_connect_func do |handler_name|
|
@@ -292,4 +305,23 @@ class TestGtkWidget < Test::Unit::TestCase
|
|
292
305
|
assert_equal(["on_move_cursor"], handler_names)
|
293
306
|
end
|
294
307
|
end
|
308
|
+
|
309
|
+
def test_gc_action_group
|
310
|
+
GC.start
|
311
|
+
n_alive_action_groups_before =
|
312
|
+
ObjectSpace.each_object(Gio::SimpleActionGroup) {}
|
313
|
+
n_tries = 100
|
314
|
+
n_tries.times do |i|
|
315
|
+
action_prefix = "test#{i}"
|
316
|
+
action_group = Gio::SimpleActionGroup.new
|
317
|
+
@widget.insert_action_group(action_prefix, action_group)
|
318
|
+
end
|
319
|
+
GC.start
|
320
|
+
n_alive_action_groups_after =
|
321
|
+
ObjectSpace.each_object(Gio::SimpleActionGroup) {}
|
322
|
+
n_alive_action_groups =
|
323
|
+
n_alive_action_groups_after -
|
324
|
+
n_alive_action_groups_before
|
325
|
+
assert_equal(n_tries, n_alive_action_groups)
|
326
|
+
end
|
295
327
|
end
|
metadata
CHANGED
@@ -1,85 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gtk3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Ruby-GNOME Project Team
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01
|
11
|
+
date: 2022-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: gio2
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 3.5.1
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 3.5.1
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: atk
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
17
|
- - '='
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 3.5.1
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: pango
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 3.5.1
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - '='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 3.5.1
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: gdk_pixbuf2
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 3.5.1
|
19
|
+
version: 4.0.0
|
62
20
|
type: :runtime
|
63
21
|
prerelease: false
|
64
22
|
version_requirements: !ruby/object:Gem::Requirement
|
65
23
|
requirements:
|
66
24
|
- - '='
|
67
25
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
26
|
+
version: 4.0.0
|
69
27
|
- !ruby/object:Gem::Dependency
|
70
28
|
name: gdk3
|
71
29
|
requirement: !ruby/object:Gem::Requirement
|
72
30
|
requirements:
|
73
31
|
- - '='
|
74
32
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
33
|
+
version: 4.0.0
|
76
34
|
type: :runtime
|
77
35
|
prerelease: false
|
78
36
|
version_requirements: !ruby/object:Gem::Requirement
|
79
37
|
requirements:
|
80
38
|
- - '='
|
81
39
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
40
|
+
version: 4.0.0
|
83
41
|
description: Ruby/GTK3 is a Ruby binding of GTK+-3.x.
|
84
42
|
email: ruby-gnome2-devel-en@lists.sourceforge.net
|
85
43
|
executables: []
|
@@ -92,6 +50,7 @@ files:
|
|
92
50
|
- Rakefile
|
93
51
|
- ext/gtk3/depend
|
94
52
|
- ext/gtk3/extconf.rb
|
53
|
+
- ext/gtk3/rb-gtk3-accel-map.c
|
95
54
|
- ext/gtk3/rb-gtk3-cell-layout.c
|
96
55
|
- ext/gtk3/rb-gtk3-container.c
|
97
56
|
- ext/gtk3/rb-gtk3-private.h
|
@@ -553,6 +512,7 @@ files:
|
|
553
512
|
- test/test-gtk-about-dialog.rb
|
554
513
|
- test/test-gtk-accel-group.rb
|
555
514
|
- test/test-gtk-accel-key.rb
|
515
|
+
- test/test-gtk-accel-map.rb
|
556
516
|
- test/test-gtk-accessible.rb
|
557
517
|
- test/test-gtk-action-bar.rb
|
558
518
|
- test/test-gtk-action-group.rb
|
@@ -639,7 +599,7 @@ homepage: https://ruby-gnome2.osdn.jp/
|
|
639
599
|
licenses:
|
640
600
|
- LGPL-2.1+
|
641
601
|
metadata: {}
|
642
|
-
post_install_message:
|
602
|
+
post_install_message:
|
643
603
|
rdoc_options: []
|
644
604
|
require_paths:
|
645
605
|
- lib
|
@@ -655,7 +615,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
655
615
|
version: '0'
|
656
616
|
requirements: []
|
657
617
|
rubygems_version: 3.4.0.dev
|
658
|
-
signing_key:
|
618
|
+
signing_key:
|
659
619
|
specification_version: 4
|
660
620
|
summary: Ruby/GTK3 is a Ruby binding of GTK+-3.x.
|
661
621
|
test_files: []
|