goocanvas 2.0.2 → 2.0.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 +7 -0
- data/README +1 -1
- data/Rakefile +1 -1
- data/sample/demo-animation.rb +176 -0
- data/sample/demo-arrowhead.rb +354 -315
- data/sample/demo-events.rb +187 -0
- data/sample/demo-features.rb +148 -0
- data/sample/demo-fifteen.rb +30 -22
- data/sample/demo-focus.rb +135 -0
- data/sample/demo-primitives.rb +3 -4
- data/sample/demo.rb +17 -7
- metadata +29 -15
@@ -0,0 +1,135 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This sample code is a port of
|
4
|
+
# goocanvas/demo/demo-focus.c. It is licensed
|
5
|
+
# under the terms of the GNU Library General Public License, version
|
6
|
+
# 2 or (at your option) later.
|
7
|
+
#
|
8
|
+
# Copyright (C) 2013 Ruby-GNOME2 Project Team
|
9
|
+
#
|
10
|
+
# This library is free software; you can redistribute it and/or
|
11
|
+
# modify it under the terms of the GNU Lesser General Public
|
12
|
+
# License as published by the Free Software Foundation; either
|
13
|
+
# version 2.1 of the License, or (at your option) any later version.
|
14
|
+
#
|
15
|
+
# This library is distributed in the hope that it will be useful,
|
16
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
18
|
+
# Lesser General Public License for more details.
|
19
|
+
#
|
20
|
+
# You should have received a copy of the GNU Lesser General Public
|
21
|
+
# License along with this library; if not, write to the Free Software
|
22
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
23
|
+
|
24
|
+
class CanvasSampleFocus < Gtk::Box
|
25
|
+
def initialize
|
26
|
+
super(:vertical, 4)
|
27
|
+
set_border_width(4)
|
28
|
+
show
|
29
|
+
create_focus_page(self)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
def create_focus_page(vbox)
|
34
|
+
label = Gtk::Label.new(<<-EOT)
|
35
|
+
Use Tab, Shift+Tab or the arrow keys to move the keyboard focus between the canvas items.
|
36
|
+
EOT
|
37
|
+
vbox.pack_start(label, :expand => false,
|
38
|
+
:fill => false,
|
39
|
+
:padding => 0)
|
40
|
+
label.show
|
41
|
+
|
42
|
+
scrolled_win = Gtk::ScrolledWindow.new
|
43
|
+
scrolled_win.shadow_type = :in
|
44
|
+
scrolled_win.show
|
45
|
+
vbox.pack_start(scrolled_win, :expand => true,
|
46
|
+
:fill => true,
|
47
|
+
:padding => 0)
|
48
|
+
|
49
|
+
canvas = Goo::Canvas.new
|
50
|
+
canvas.can_focus = true
|
51
|
+
canvas.set_size_request(600, 450)
|
52
|
+
canvas.set_bounds(0, 0, 1000, 1000)
|
53
|
+
canvas.show
|
54
|
+
scrolled_win.add(canvas)
|
55
|
+
|
56
|
+
setup_canvas(canvas)
|
57
|
+
end
|
58
|
+
|
59
|
+
def setup_canvas(canvas)
|
60
|
+
create_focus_box(canvas, 109, 80, 50, 30, "red")
|
61
|
+
create_focus_box(canvas, 300, 160, 50, 30, "orange")
|
62
|
+
create_focus_box(canvas, 500, 50, 50, 30, "yellow")
|
63
|
+
create_focus_box(canvas, 70, 400, 50, 30, "blue")
|
64
|
+
create_focus_box(canvas, 130, 200, 50, 30, "magenta")
|
65
|
+
create_focus_box(canvas, 200, 160, 50, 30, "green")
|
66
|
+
create_focus_box(canvas, 450, 450, 50, 30, "cyan")
|
67
|
+
create_focus_box(canvas, 300, 350, 50, 30, "grey")
|
68
|
+
create_focus_box(canvas, 900, 900, 50, 30, "gold")
|
69
|
+
create_focus_box(canvas, 800, 150, 50, 30, "thistle")
|
70
|
+
create_focus_box(canvas, 600, 800, 50, 30, "azure")
|
71
|
+
create_focus_box(canvas, 700, 250, 50, 30, "moccasin")
|
72
|
+
create_focus_box(canvas, 500, 100, 50, 30, "cornsilk")
|
73
|
+
create_focus_box(canvas, 200, 750, 50, 30, "plum")
|
74
|
+
create_focus_box(canvas, 400, 800, 50, 30, "orchid")
|
75
|
+
end
|
76
|
+
|
77
|
+
def create_focus_box(canvas, x, y, width, height, color)
|
78
|
+
root = canvas.root_item
|
79
|
+
item = Goo::CanvasRect.new(:parent => root,
|
80
|
+
:x => x,
|
81
|
+
:y => y,
|
82
|
+
:width => width,
|
83
|
+
:height => height,
|
84
|
+
:stroke_pattern => nil,
|
85
|
+
:fill_color => color,
|
86
|
+
:line_width => 5.0,
|
87
|
+
:can_focus => true)
|
88
|
+
|
89
|
+
item.signal_connect("focus-in-event") do |widget|
|
90
|
+
on_focus_in(widget, color)
|
91
|
+
end
|
92
|
+
item.signal_connect("focus-out-event") do |widget|
|
93
|
+
on_focus_out(widget, color)
|
94
|
+
end
|
95
|
+
|
96
|
+
item.signal_connect("button-press-event") do |widget|
|
97
|
+
on_button_press(widget, color)
|
98
|
+
end
|
99
|
+
|
100
|
+
item.signal_connect("key-press-event") do
|
101
|
+
on_key_press(color)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def on_focus_in (item, color)
|
106
|
+
puts "#{color} received focus-in event"
|
107
|
+
|
108
|
+
# Note that this is only for testing. Setting item properties to indicate
|
109
|
+
# focus isn't a good idea for real apps, as there may be multiple views.
|
110
|
+
item.stroke_color = "black"
|
111
|
+
|
112
|
+
false
|
113
|
+
end
|
114
|
+
|
115
|
+
def on_focus_out(item, color)
|
116
|
+
puts "#{color} received focus-out event"
|
117
|
+
|
118
|
+
# Note that this is only for testing. Setting item properties to indicate
|
119
|
+
# focus isn't a good idea for real apps, as there may be multiple views.
|
120
|
+
item.stroke_pattern = nil
|
121
|
+
|
122
|
+
false
|
123
|
+
end
|
124
|
+
|
125
|
+
def on_button_press(item, color)
|
126
|
+
puts "#{color} received button-press event"
|
127
|
+
item.canvas.grab_focus(item)
|
128
|
+
false
|
129
|
+
end
|
130
|
+
|
131
|
+
def on_key_press(color)
|
132
|
+
puts "#{color} received key-press event"
|
133
|
+
false
|
134
|
+
end
|
135
|
+
end
|
data/sample/demo-primitives.rb
CHANGED
@@ -20,10 +20,9 @@ Original Copyright:
|
|
20
20
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
21
|
GNU General Public License for more details.
|
22
22
|
|
23
|
-
You should have received a copy of the GNU General Public License
|
24
|
-
|
25
|
-
|
26
|
-
02111-1307, USA.
|
23
|
+
You should have received a copy of the GNU General Public License along
|
24
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
25
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
27
26
|
|
28
27
|
=end
|
29
28
|
class CanvasSamplePrimitives < Gtk::VBox
|
data/sample/demo.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
1
2
|
# -*- indent-tabs-mode: nil -*-
|
2
3
|
=begin header
|
3
4
|
|
@@ -21,10 +22,9 @@ Original Copyright:
|
|
21
22
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
22
23
|
GNU General Public License for more details.
|
23
24
|
|
24
|
-
You should have received a copy of the GNU General Public License
|
25
|
-
|
26
|
-
|
27
|
-
02111-1307, USA.
|
25
|
+
You should have received a copy of the GNU General Public License along
|
26
|
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
27
|
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
28
28
|
|
29
29
|
=end
|
30
30
|
|
@@ -40,10 +40,14 @@ require 'goocanvas'
|
|
40
40
|
require 'demo-primitives'
|
41
41
|
require 'demo-arrowhead'
|
42
42
|
require 'demo-fifteen'
|
43
|
+
require 'demo-features'
|
44
|
+
require 'demo-events'
|
45
|
+
require 'demo-focus'
|
46
|
+
require 'demo-animation'
|
43
47
|
|
44
48
|
class GooCanvasSample < Gtk::Window
|
45
49
|
def initialize
|
46
|
-
super(
|
50
|
+
super(:toplevel)
|
47
51
|
|
48
52
|
signal_connect("destroy") do |widget, event|
|
49
53
|
Gtk::main_quit()
|
@@ -69,8 +73,14 @@ class GooCanvasSample < Gtk::Window
|
|
69
73
|
Gtk::Label.new("Arrowhead"))
|
70
74
|
notebook.append_page(CanvasSampleFifteen.new,
|
71
75
|
Gtk::Label.new("Fifteen"))
|
72
|
-
|
73
|
-
|
76
|
+
notebook.append_page(CanvasSampleFeatures.new,
|
77
|
+
Gtk::Label.new("Reparent"))
|
78
|
+
notebook.append_page(CanvasSampleEvents.new,
|
79
|
+
Gtk::Label.new("Events"))
|
80
|
+
notebook.append_page(CanvasSampleFocus.new,
|
81
|
+
Gtk::Label.new("Focus"))
|
82
|
+
notebook.append_page(CanvasSampleAnimation.new,
|
83
|
+
Gtk::Label.new("Animation"))
|
74
84
|
# notebook.append_page(CanvasSampleRichText.new,
|
75
85
|
# Gtk::Label.new("Rich Text"))
|
76
86
|
# notebook.append_page(CanvasSampleBezierCurve.new,
|
metadata
CHANGED
@@ -1,32 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goocanvas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- The Ruby-GNOME2 Project Team
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-12-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
14
|
+
name: gtk3
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.0.
|
19
|
+
version: 2.0.3
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.0.
|
26
|
+
version: 2.0.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gobject-introspection
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.3
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.0.3
|
30
41
|
description: Ruby/GooCanvas is a Ruby binding of GooCanvas.
|
31
42
|
email: ruby-gnome2-devel-en@lists.sourceforge.net
|
32
43
|
executables: []
|
@@ -44,8 +55,12 @@ files:
|
|
44
55
|
- ext/goocanvas/goocanvas.def
|
45
56
|
- ext/goocanvas/rbgoocanvas.c
|
46
57
|
- ext/goocanvas/rbgoocanvas.h
|
58
|
+
- sample/demo-animation.rb
|
47
59
|
- sample/demo-arrowhead.rb
|
60
|
+
- sample/demo-events.rb
|
61
|
+
- sample/demo-features.rb
|
48
62
|
- sample/demo-fifteen.rb
|
63
|
+
- sample/demo-focus.rb
|
49
64
|
- sample/demo-primitives.rb
|
50
65
|
- sample/demo.rb
|
51
66
|
- sample/flower.png
|
@@ -57,26 +72,25 @@ files:
|
|
57
72
|
- sample/widgets-demo.rb
|
58
73
|
homepage: http://ruby-gnome2.sourceforge.jp/
|
59
74
|
licenses: []
|
75
|
+
metadata: {}
|
60
76
|
post_install_message:
|
61
77
|
rdoc_options: []
|
62
78
|
require_paths:
|
63
79
|
- lib
|
64
80
|
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
81
|
requirements:
|
67
|
-
- -
|
82
|
+
- - '>='
|
68
83
|
- !ruby/object:Gem::Version
|
69
|
-
version: 1.
|
84
|
+
version: 1.9.3
|
70
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - '>='
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
90
|
requirements: []
|
77
91
|
rubyforge_project:
|
78
|
-
rubygems_version:
|
92
|
+
rubygems_version: 2.0.14
|
79
93
|
signing_key:
|
80
|
-
specification_version:
|
94
|
+
specification_version: 4
|
81
95
|
summary: Ruby/GooCanvas is a Ruby binding of GooCanvas.
|
82
96
|
test_files: []
|