gtk3 3.2.9 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|