gir_ffi-gtk 0.11.0 → 0.12.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 +5 -5
- data/Changelog.md +6 -1
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/examples/05_notification.rb +2 -2
- data/examples/10_completion_provider.rb +62 -0
- data/lib/gir_ffi-gtk/base.rb +5 -6
- data/lib/gir_ffi-gtk/builder.rb +5 -1
- data/lib/gir_ffi-gtk/container.rb +2 -0
- data/lib/gir_ffi-gtk/gtk2/list_store.rb +2 -0
- data/lib/gir_ffi-gtk/gtk2/radio_action.rb +2 -0
- data/lib/gir_ffi-gtk/gtk2/radio_button.rb +2 -0
- data/lib/gir_ffi-gtk/gtk2/target_entry.rb +2 -0
- data/lib/gir_ffi-gtk/gtk2/tree_store.rb +2 -0
- data/lib/gir_ffi-gtk/gtk3/target_entry.rb +2 -0
- data/lib/gir_ffi-gtk/list_store.rb +3 -3
- data/lib/gir_ffi-gtk/menu.rb +3 -0
- data/lib/gir_ffi-gtk/message_dialog.rb +2 -0
- data/lib/gir_ffi-gtk/tree_path.rb +2 -0
- data/lib/gir_ffi-gtk/tree_store.rb +3 -3
- data/lib/gir_ffi-gtk/tree_view_column.rb +4 -0
- data/lib/gir_ffi-gtk2.rb +2 -0
- data/lib/gir_ffi-gtk3.rb +2 -0
- data/tasks/test.rake +2 -0
- data/test/gir_ffi-gtk/generated_gtk_test.rb +1 -1
- data/test/gir_ffi-gtk/list_store_test.rb +1 -1
- data/test/gir_ffi-gtk/tree_store_test.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 70b8158b4866b624d8052257006e3e3679405b0de894644246d6a1dec4312c01
|
4
|
+
data.tar.gz: a3ae2ecaa38c55bd7bf54b58ba994ab801460183ad75de5b46f1becb892510c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb60974008d5b2801c2575889657577c62590c5b5ce5a135f09bd4d454571e7967c0715cfa11d48af4049d19bda9f1e1e0b75baf0b307d7d8d751f1005ef869b
|
7
|
+
data.tar.gz: 87f488e6f3af1297759e3d21b11fec168f7fe2c2758fac9ec69a324cd30c2e8d8901fa9b1c07f508ec8e4c7405ad59adbb2022dbaf16d39750368a75aedf8041
|
data/Changelog.md
CHANGED
@@ -1,8 +1,13 @@
|
|
1
|
-
#
|
1
|
+
# Changelog
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file. See the
|
4
4
|
Git log for all changes.
|
5
5
|
|
6
|
+
## 0.12.0 / 2016-10-16
|
7
|
+
|
8
|
+
* Depend on GirFFI 0.12.0
|
9
|
+
* Drop support for Ruby versions below 2.3
|
10
|
+
|
6
11
|
## 0.11.0 / 2016-10-16
|
7
12
|
|
8
13
|
* Depend on GirFFI 0.11.0
|
data/README.md
CHANGED
@@ -46,7 +46,7 @@ and for Gtk+ 2:
|
|
46
46
|
|
47
47
|
## License
|
48
48
|
|
49
|
-
Copyright © 2012–
|
49
|
+
Copyright © 2012–2017 [Matijs van Zuijlen](http://www.matijs.net)
|
50
50
|
|
51
51
|
GirFFI-Gtk is free software, distributed under the terms of the GNU Lesser
|
52
52
|
General Public License, version 2.1 or later. See the file COPYING.LIB for
|
data/Rakefile
CHANGED
data/examples/05_notification.rb
CHANGED
@@ -15,9 +15,9 @@ nf.timeout = 3000
|
|
15
15
|
nf.urgency = :critical
|
16
16
|
|
17
17
|
# Show a button 'Test' in the notification, with a callback function.
|
18
|
-
nf.add_action
|
18
|
+
nf.add_action("test", "Test") { |obj, action, user_data|
|
19
19
|
puts "Action #{action} clicked."
|
20
|
-
}
|
20
|
+
}
|
21
21
|
|
22
22
|
# In this case, we want the program to end once the notification is gone,
|
23
23
|
# but not before.
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'gir_ffi-gtk3'
|
2
|
+
|
3
|
+
# This is an example of creating a derived class with vfunc implementations.
|
4
|
+
|
5
|
+
GirFFI.setup :GtkSource
|
6
|
+
|
7
|
+
Gtk.init
|
8
|
+
|
9
|
+
class TestProvider < GObject::Object
|
10
|
+
include GtkSource::CompletionProvider
|
11
|
+
|
12
|
+
def get_name
|
13
|
+
'Test Provider'
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_priority
|
17
|
+
1
|
18
|
+
end
|
19
|
+
|
20
|
+
def match(_context)
|
21
|
+
true
|
22
|
+
end
|
23
|
+
|
24
|
+
def populate(context)
|
25
|
+
icon = Gtk::IconTheme.get_default.load_icon(Gtk::STOCK_DIALOG_INFO, 16, 0)
|
26
|
+
|
27
|
+
proposals = [
|
28
|
+
GtkSource::CompletionItem.new("Proposal 1", "Proposal 1", icon, "blah 1"),
|
29
|
+
GtkSource::CompletionItem.new("Proposal 2", "Proposal 2", icon, "blah 2"),
|
30
|
+
GtkSource::CompletionItem.new("Proposal 3", "Proposal 3", icon, "blah 3"),
|
31
|
+
]
|
32
|
+
context.add_proposals(self, proposals, true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
GirFFI.define_type TestProvider do |info|
|
37
|
+
info.install_vfunc_implementation :get_name
|
38
|
+
info.install_vfunc_implementation :get_priority
|
39
|
+
info.install_vfunc_implementation :match
|
40
|
+
info.install_vfunc_implementation :populate
|
41
|
+
end
|
42
|
+
|
43
|
+
win = Gtk::Window.new :toplevel
|
44
|
+
win.show
|
45
|
+
GObject.signal_connect(win, "destroy") { Gtk.main_quit }
|
46
|
+
|
47
|
+
vbox = Gtk::VBox.new(false, 0)
|
48
|
+
win.add vbox
|
49
|
+
|
50
|
+
lm = GtkSource::LanguageManager.get_default
|
51
|
+
lang = lm.get_language "ruby"
|
52
|
+
buffer = GtkSource::Buffer.new_with_language lang
|
53
|
+
@source = GtkSource::View.new_with_buffer buffer
|
54
|
+
|
55
|
+
test_provider = TestProvider.new
|
56
|
+
completion = @source.get_completion
|
57
|
+
completion.add_provider test_provider
|
58
|
+
|
59
|
+
vbox.pack_start @source, true, true, 0
|
60
|
+
|
61
|
+
win.show_all
|
62
|
+
Gtk.main
|
data/lib/gir_ffi-gtk/base.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module GirFFIGtk
|
2
4
|
# Override init to automatically use ARGV as its argument.
|
3
5
|
module AutoArgv
|
@@ -22,6 +24,8 @@ module GirFFIGtk
|
|
22
24
|
# Override main to start an idle thread to allow Ruby threads to run during
|
23
25
|
# the main loop, and to handle exceptions
|
24
26
|
module MainLoopOverride
|
27
|
+
# Class to represent a loop-like interface to the main loop exception
|
28
|
+
# handing interface in GLib::MainLoop.
|
25
29
|
class DummyLoop
|
26
30
|
def quit
|
27
31
|
Gtk.main_quit
|
@@ -39,12 +43,7 @@ module GirFFIGtk
|
|
39
43
|
# Implementation of class methods for MainLoopOverride
|
40
44
|
module ClassMethods
|
41
45
|
def main_with_override
|
42
|
-
|
43
|
-
when 'jruby'
|
44
|
-
when 'rbx'
|
45
|
-
else # 'ruby' most likely
|
46
|
-
GLib::MainLoop::ThreadEnabler.instance.setup_idle_handler
|
47
|
-
end
|
46
|
+
GLib::MainLoop::ThreadEnabler.instance.setup_idle_handler if RUBY_ENGINE == 'ruby'
|
48
47
|
GLib::MainLoop::RUNNING_LOOPS << DummyLoop.new
|
49
48
|
result = main_without_override
|
50
49
|
ex = GLib::MainLoop::EXCEPTIONS.shift
|
data/lib/gir_ffi-gtk/builder.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gtk.load_class :Builder
|
2
4
|
module Gtk
|
3
5
|
# Overrides for GtkBuilder
|
@@ -17,7 +19,8 @@ module Gtk
|
|
17
19
|
AFTER_FLAG = GObject::ConnectFlags[:after]
|
18
20
|
|
19
21
|
def connect_signals
|
20
|
-
|
22
|
+
# rubocop:disable Metrics/ParameterLists
|
23
|
+
connect_signals_full do |_, object, signal_name, handler_name, _, flags, _|
|
21
24
|
handler = yield handler_name
|
22
25
|
return unless handler
|
23
26
|
|
@@ -27,6 +30,7 @@ module Gtk
|
|
27
30
|
object.signal_connect signal_name, &handler
|
28
31
|
end
|
29
32
|
end
|
33
|
+
# rubocop:enable Metrics/ParameterLists
|
30
34
|
end
|
31
35
|
end
|
32
36
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gtk.load_class :ListStore
|
2
4
|
module Gtk
|
3
5
|
# Overrides for GtkListStore
|
@@ -9,9 +11,7 @@ module Gtk
|
|
9
11
|
setup_instance_method :set_value
|
10
12
|
|
11
13
|
def set_value_with_value_conversion(iter, column, value)
|
12
|
-
if value.nil?
|
13
|
-
value = GObject::Value.for_gtype get_column_type(column)
|
14
|
-
end
|
14
|
+
value = GObject::Value.for_gtype get_column_type(column) if value.nil?
|
15
15
|
set_value_without_value_conversion iter, column, value
|
16
16
|
end
|
17
17
|
|
data/lib/gir_ffi-gtk/menu.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gtk.load_class :TreeStore
|
2
4
|
module Gtk
|
3
5
|
# Overrides for GtkTreeStore
|
4
6
|
class TreeStore
|
5
7
|
def set_value_with_value_conversion(iter, column, value)
|
6
|
-
if value.nil?
|
7
|
-
value = GObject::Value.for_gtype get_column_type(column)
|
8
|
-
end
|
8
|
+
value = GObject::Value.for_gtype get_column_type(column) if value.nil?
|
9
9
|
set_value_without_value_conversion iter, column, value
|
10
10
|
end
|
11
11
|
|
@@ -1,7 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gtk.load_class :TreeViewColumn
|
2
4
|
module Gtk
|
3
5
|
# Overrides for Gtk::TreeViewColumn
|
4
6
|
class TreeViewColumn
|
7
|
+
setup_method :new
|
8
|
+
|
5
9
|
def self.new_with_attributes(*args)
|
6
10
|
obj = allocate
|
7
11
|
obj.send :initialize_with_attributes, *args
|
data/lib/gir_ffi-gtk2.rb
CHANGED
data/lib/gir_ffi-gtk3.rb
CHANGED
data/tasks/test.rake
CHANGED
@@ -32,7 +32,7 @@ describe Gtk::ListStore do
|
|
32
32
|
store = Gtk::ListStore.new([GObject::TYPE_STRING, GObject::TYPE_INT])
|
33
33
|
row = store.insert_with_values(0, [0, 1], ['foo', 42])
|
34
34
|
store.set_value(row, 0, nil)
|
35
|
-
store.get_value(row, 0).
|
35
|
+
store.get_value(row, 0).must_be_nil
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -32,7 +32,7 @@ describe Gtk::TreeStore do
|
|
32
32
|
store = Gtk::TreeStore.new([GObject::TYPE_STRING, GObject::TYPE_INT])
|
33
33
|
row = store.insert_with_values(nil, 0, [0, 1], ['foo', 42])
|
34
34
|
store.set_value(row, 0, nil)
|
35
|
-
store.get_value(row, 0).
|
35
|
+
store.get_value(row, 0).must_be_nil
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gir_ffi-gtk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gir_ffi
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.12.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: 0.
|
26
|
+
version: 0.12.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '12.0'
|
62
62
|
type: :development
|
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: '
|
68
|
+
version: '12.0'
|
69
69
|
description: Bindings for Gtk+ 2 and 3, generated by GirFFI, with overrides.
|
70
70
|
email:
|
71
71
|
- matijs@matijs.net
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- examples/07_simple_gtk_application.rb
|
87
87
|
- examples/08_webkit_headless.rb
|
88
88
|
- examples/09_webkit2_headless.rb
|
89
|
+
- examples/10_completion_provider.rb
|
89
90
|
- lib/gir_ffi-gtk/base.rb
|
90
91
|
- lib/gir_ffi-gtk/builder.rb
|
91
92
|
- lib/gir_ffi-gtk/container.rb
|
@@ -131,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
132
|
requirements:
|
132
133
|
- - ">="
|
133
134
|
- !ruby/object:Gem::Version
|
134
|
-
version: 2.
|
135
|
+
version: 2.3.0
|
135
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
137
|
requirements:
|
137
138
|
- - ">="
|
@@ -139,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
140
|
version: '0'
|
140
141
|
requirements: []
|
141
142
|
rubyforge_project:
|
142
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.7.6
|
143
144
|
signing_key:
|
144
145
|
specification_version: 4
|
145
146
|
summary: GirFFI-based Ruby bindings for Gtk+ 2 and 3
|