gtk3 3.2.9 → 3.3.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-widget.c +31 -1
- data/lib/gtk3/list-store.rb +8 -0
- data/test/fixture/simple_window.ui +1 -0
- data/test/test-gtk-list-store.rb +28 -0
- data/test/test-gtk-widget.rb +28 -0
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed7ce36fe6005666b9e51ba0155dc822b29d49abc725e343705fefcb640db699
|
4
|
+
data.tar.gz: a341c695ba2e7f891347893b229433109783820b5d026c6655387affbfc71d75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7812aecaf900383c5c53eb015873b751ccec81fd21a7098b24ff9b9996db4f78681faad661151c7b0251a98ac9ec4af1310688b9738f624281a8b52d18f62eab
|
7
|
+
data.tar.gz: 2f09d6ecbc7d0c26d81b38555985dcee4951dadde10117b633d4c4f7a8d980fd89d8bf7d630d2d03256276b5c84d7a925d517d43a70dbd2b7fac4e9b781d4e92
|
data/ext/gtk3/rb-gtk3-widget.c
CHANGED
@@ -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-2018 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
|
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
#include "rb-gtk3-private.h"
|
22
22
|
|
23
|
+
#include <rb_cairo.h>
|
24
|
+
|
23
25
|
#define RG_TARGET_NAMESPACE cWidget
|
24
26
|
#define _SELF(self) (RVAL2GTKWIDGET(self))
|
25
27
|
|
@@ -58,6 +60,30 @@ rg_s_type_register(int argc, VALUE *argv, VALUE klass)
|
|
58
60
|
return Qnil;
|
59
61
|
}
|
60
62
|
|
63
|
+
static void
|
64
|
+
rb_gtk3_widget_draw(RGClosureCallData *data)
|
65
|
+
{
|
66
|
+
VALUE rb_widget;
|
67
|
+
VALUE rb_cairo_context;
|
68
|
+
VALUE rb_args;
|
69
|
+
VALUE rb_stop_propagate;
|
70
|
+
|
71
|
+
rb_widget = GVAL2RVAL(&(data->param_values[0]));
|
72
|
+
rb_cairo_context = GVAL2RVAL(&(data->param_values[1]));
|
73
|
+
rb_args = rb_ary_new_from_args(2, rb_widget, rb_cairo_context);
|
74
|
+
if (!NIL_P(data->extra_args)) {
|
75
|
+
rb_ary_concat(rb_args, data->extra_args);
|
76
|
+
}
|
77
|
+
rb_stop_propagate = rb_apply(data->callback,
|
78
|
+
rb_intern("call"),
|
79
|
+
rb_args);
|
80
|
+
if (!RVAL2CBOOL(rb_funcall(rb_cairo_context, rb_intern("destroyed?"), 0))) {
|
81
|
+
rb_funcall(rb_cairo_context, rb_intern("destroy"), 0);
|
82
|
+
}
|
83
|
+
g_value_set_boolean(data->return_value,
|
84
|
+
RVAL2CBOOL(rb_stop_propagate));
|
85
|
+
}
|
86
|
+
|
61
87
|
void
|
62
88
|
rbgtk3_widget_init(void)
|
63
89
|
{
|
@@ -68,4 +94,8 @@ rbgtk3_widget_init(void)
|
|
68
94
|
RG_TARGET_NAMESPACE = rb_const_get(mGtk, rb_intern("Widget"));
|
69
95
|
|
70
96
|
RG_DEF_SMETHOD(type_register, -1);
|
97
|
+
|
98
|
+
rbgobj_set_signal_call_func(RG_TARGET_NAMESPACE,
|
99
|
+
"draw",
|
100
|
+
rb_gtk3_widget_draw);
|
71
101
|
}
|
data/lib/gtk3/list-store.rb
CHANGED
@@ -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/test/test-gtk-list-store.rb
CHANGED
@@ -190,6 +190,34 @@ class TestGtkListStore < Test::Unit::TestCase
|
|
190
190
|
normalized_data)
|
191
191
|
end
|
192
192
|
|
193
|
+
sub_test_case "#set_column_types" do
|
194
|
+
class SubListStore < Gtk::ListStore
|
195
|
+
type_register
|
196
|
+
end
|
197
|
+
|
198
|
+
def setup
|
199
|
+
@store = SubListStore.new
|
200
|
+
end
|
201
|
+
|
202
|
+
test "Array" do
|
203
|
+
@store.set_column_types([String, Integer])
|
204
|
+
iter = @store.append
|
205
|
+
iter[0] = "string"
|
206
|
+
iter[1] = 29
|
207
|
+
assert_equal(["string", 29],
|
208
|
+
[iter[0], iter[1]])
|
209
|
+
end
|
210
|
+
|
211
|
+
test "String, Integer" do
|
212
|
+
@store.set_column_types(String, Integer)
|
213
|
+
iter = @store.append
|
214
|
+
iter[0] = "string"
|
215
|
+
iter[1] = 29
|
216
|
+
assert_equal(["string", 29],
|
217
|
+
[iter[0], iter[1]])
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
193
221
|
sub_test_case "GC" do
|
194
222
|
test "iter" do
|
195
223
|
GC.start
|
data/test/test-gtk-widget.rb
CHANGED
@@ -218,4 +218,32 @@ class TestGtkWidget < Test::Unit::TestCase
|
|
218
218
|
widget.get_template_child(widget_class, :label).class)
|
219
219
|
end
|
220
220
|
end
|
221
|
+
|
222
|
+
sub_test_case ".set_connect_func" do
|
223
|
+
setup do
|
224
|
+
only_gtk_version(3, 12, 0)
|
225
|
+
@resource_data = File.read(fixture_path("simple_window.ui"))
|
226
|
+
end
|
227
|
+
|
228
|
+
test "connect" do
|
229
|
+
data = @resource_data
|
230
|
+
handler_names = []
|
231
|
+
widget_class = Class.new(Gtk::Window) do
|
232
|
+
type_register "SetConnectFunc"
|
233
|
+
|
234
|
+
singleton_class.send(:define_method, :init) do
|
235
|
+
set_template(:data => data)
|
236
|
+
bind_template_child(:label)
|
237
|
+
set_connect_func do |handler_name|
|
238
|
+
handler_names << handler_name
|
239
|
+
lambda do
|
240
|
+
# Do nothing
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|
245
|
+
widget_class.new
|
246
|
+
assert_equal(["on_move_cursor"], handler_names)
|
247
|
+
end
|
248
|
+
end
|
221
249
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gtk3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Ruby-GNOME2 Project Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gio2
|
@@ -16,70 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.3.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: atk
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.
|
33
|
+
version: 3.3.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.
|
40
|
+
version: 3.3.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pango
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 3.
|
47
|
+
version: 3.3.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 3.
|
54
|
+
version: 3.3.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: gdk_pixbuf2
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
61
|
+
version: 3.3.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
68
|
+
version: 3.3.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: gdk3
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
75
|
+
version: 3.3.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
82
|
+
version: 3.3.0
|
83
83
|
description: Ruby/GTK3 is a Ruby binding of GTK+-3.x.
|
84
84
|
email: ruby-gnome2-devel-en@lists.sourceforge.net
|
85
85
|
executables: []
|