pango 3.4.4 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89a2f5485a25b1f51f74084d2cba8b9979a77d5ec0cf3817e674714499acb4a1
4
- data.tar.gz: a88c6c65fb5b4024774cfbd7e86e4f72a5689307e660b159b6d81eccb5b57e9f
3
+ metadata.gz: b9b3e5f7a71267c411ad7db4e2a00ee4eee2b600e831bd8bcffda25cf5075dab
4
+ data.tar.gz: 8a0d67cd3b6f40082e05ecd2ea052c0af8485fe7f6ecabd46267e72e5720da16
5
5
  SHA512:
6
- metadata.gz: 615dd6a3049f5d60c4a0e58e042a1a49dd4a97a63e262fbf0b29475c0df30143d548e8341e277f8569e9ae2f132fcef1c3a9c0d8c5e225fdfc3446910e9c2988
7
- data.tar.gz: 2d335a5d2d0ceb7c6f89ca47940bb7a743465553e905207af9d89c53fb5d00158bfce5ba48c2cafbdcaefbb4f0d4d9d6d71e37350a4b25d6811dc2079c8cb075
6
+ metadata.gz: 1c629195ebae785ef93ce2ccb0adf71d037b6400ff7062adb84dde97e2b93b597edff40b0a65e8bdb848e1820dddd6b02a4d352a1f2a1f1a33320e9c480eca66
7
+ data.tar.gz: 95fcdb73b29e62eafbc86b24e6c99caba80b513f1a6c7f82ae622888ea0ce72663c1501abfd9d4263cdd90b87abbc149e26eb6dbea9677a18aac5829c2bca90f
data/lib/pango.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2017-2018 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2017-2021 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
@@ -20,6 +20,9 @@ require "cairo-gobject"
20
20
 
21
21
  require "pango/loader"
22
22
  require "pango/cairo-loader"
23
+ require "pango/fc-loader"
24
+ require "pango/ft2-loader"
25
+ require "pango/ot-loader"
23
26
 
24
27
  module Pango
25
28
  LOG_DOMAIN = "Pango"
@@ -30,4 +33,19 @@ module Pango
30
33
 
31
34
  cairo_loader = CairoLoader.new(self)
32
35
  cairo_loader.load("PangoCairo")
36
+
37
+ fc_loader = FcLoader.new(self)
38
+ begin
39
+ fc_loader.load("PangoFc")
40
+ rescue GObjectIntrospection::RepositoryError::TypelibNotFound
41
+ end
42
+
43
+ ft2_loader = FT2Loader.new(self)
44
+ ft2_loader.load("PangoFT2")
45
+
46
+ ot_loader = OTLoader.new(self)
47
+ begin
48
+ ot_loader.load("PangoOT")
49
+ rescue GObjectIntrospection::RepositoryError::TypelibNotFound
50
+ end
33
51
  end
@@ -21,6 +21,20 @@ module Pango
21
21
  @context_class = @base_module.const_get(:Context)
22
22
  end
23
23
 
24
+ def post_load(repository, namespace)
25
+ font_map = @base_module.const_get("CairoFontMap")
26
+ font_types = []
27
+ font_types << :quartz if Cairo::FontFace.quartz_supported?
28
+ font_types << :win32 if Cairo::Surface.quartz_supported?
29
+ font_types << :ft if Cairo::FontFace.freetype_supported?
30
+ font_types.each do |font_type|
31
+ font_map = font_map.new_for_font_type(font_type)
32
+ next if font_map.nil?
33
+ @base_module.const_set(font_map.class.gtype.name.gsub(/\APango/, ""),
34
+ font_map.class)
35
+ end
36
+ end
37
+
24
38
  def rubyish_class_name(info)
25
39
  "Cairo#{super}"
26
40
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2017 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2021 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
@@ -14,10 +14,11 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- class TestPango < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def test_pixels
21
- assert_in_delta(29, Pango.pixels(29 * Pango::SCALE), 0.00001)
17
+ module Pango
18
+ class FcLoader < GObjectIntrospection::Loader
19
+ private
20
+ def rubyish_class_name(info)
21
+ "Fc#{super}"
22
+ end
22
23
  end
23
24
  end
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2021 Ruby-GNOME Project Team
4
2
  #
5
3
  # This library is free software; you can redistribute it and/or
6
4
  # modify it under the terms of the GNU Lesser General Public
@@ -16,11 +14,11 @@
16
14
  # License along with this library; if not, write to the Free Software
17
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
16
 
19
- class TestPangoAnalysis < Test::Unit::TestCase
20
- include PangoTestUtils
21
-
22
- def test_level
23
- analysis = Pango::Analysis.new
24
- assert_equal(0, analysis.level)
17
+ module Pango
18
+ class FT2Loader < GObjectIntrospection::Loader
19
+ private
20
+ def rubyish_class_name(info)
21
+ "FT2#{super}"
22
+ end
25
23
  end
26
24
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2019 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2021 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
@@ -14,11 +14,11 @@
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
- class TestAttrType < Test::Unit::TestCase
18
- sub_test_case(".to_class") do
19
- test("AttrFontDesc") do
20
- assert_equal(Pango::AttrFontDesc,
21
- Pango::AttrType::FONT_DESC.to_class)
17
+ module Pango
18
+ class OTLoader < GObjectIntrospection::Loader
19
+ private
20
+ def rubyish_class_name(info)
21
+ "OT#{super}"
22
22
  end
23
23
  end
24
24
  end
data/pango.gemspec CHANGED
@@ -21,7 +21,7 @@ require_relative "../glib2/version"
21
21
  Gem::Specification.new do |s|
22
22
  s.name = "pango"
23
23
  s.summary = "Ruby/Pango is a Ruby binding of pango-1.x."
24
- s.description = "Ruby/Pango is a Ruby binding of pango-1.x."
24
+ s.description = "Ruby/Pango is a Ruby binding of pango-1.x based on GObject-Introspection."
25
25
  s.author = "The Ruby-GNOME Project Team"
26
26
  s.email = "ruby-gnome2-devel-en@lists.sourceforge.net"
27
27
  s.homepage = "https://ruby-gnome2.osdn.jp/"
@@ -39,10 +39,16 @@ Gem::Specification.new do |s|
39
39
  ]
40
40
  s.files += Dir.glob("lib/**/*.rb")
41
41
  s.files += Dir.glob("ext/#{s.name}/*.{c,h,def,rb}")
42
- s.files += Dir.glob("test/**/*")
43
42
 
44
43
  s.add_runtime_dependency("cairo-gobject", "= #{s.version}")
45
44
  s.add_runtime_dependency("gobject-introspection", "= #{s.version}")
46
45
 
47
- s.metadata["msys2_mingw_dependencies"] = "pango"
46
+ s.metadata = {
47
+ "bug_tracker_uri" => "https://github.com/ruby-gnome/ruby-gnome/issues",
48
+ "changelog_uri" => "https://github.com/ruby-gnome/ruby-gnome/blob/master/NEWS",
49
+ "documentation_uri" => "https://ruby-gnome2.osdn.jp/hiki.cgi?Ruby%2FPango",
50
+ "mailing_list_uri" => "https://sourceforge.net/p/ruby-gnome2/mailman/ruby-gnome2-devel-en",
51
+ "source_code_uri" => "https://github.com/ruby-gnome/ruby-gnome/tree/master/pango",
52
+ "msys2_mingw_dependencies" => "pango"
53
+ }
48
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pango
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.4
4
+ version: 3.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME Project Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-22 00:00:00.000000000 Z
11
+ date: 2021-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cairo-gobject
@@ -16,29 +16,29 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.4.4
19
+ version: 3.4.5
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.4.4
26
+ version: 3.4.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gobject-introspection
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.4.4
33
+ version: 3.4.5
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.4.4
41
- description: Ruby/Pango is a Ruby binding of pango-1.x.
40
+ version: 3.4.5
41
+ description: Ruby/Pango is a Ruby binding of pango-1.x based on GObject-Introspection.
42
42
  email: ruby-gnome2-devel-en@lists.sourceforge.net
43
43
  executables: []
44
44
  extensions:
@@ -66,38 +66,27 @@ files:
66
66
  - lib/pango/cairo-loader.rb
67
67
  - lib/pango/color.rb
68
68
  - lib/pango/deprecated.rb
69
+ - lib/pango/fc-loader.rb
69
70
  - lib/pango/font-description.rb
71
+ - lib/pango/ft2-loader.rb
70
72
  - lib/pango/language.rb
71
73
  - lib/pango/layout.rb
72
74
  - lib/pango/loader.rb
73
75
  - lib/pango/markup.rb
74
76
  - lib/pango/matrix.rb
77
+ - lib/pango/ot-loader.rb
75
78
  - lib/pango/rectangle.rb
76
79
  - lib/pango/version.rb
77
80
  - pango.gemspec
78
- - test/pango-test-utils.rb
79
- - test/run-test.rb
80
- - test/test-analysis.rb
81
- - test/test-attr-iterator.rb
82
- - test/test-attr-list.rb
83
- - test/test-attr-type.rb
84
- - test/test-attribute.rb
85
- - test/test-color.rb
86
- - test/test-context.rb
87
- - test/test-enum.rb
88
- - test/test-font-description.rb
89
- - test/test-language.rb
90
- - test/test-layout.rb
91
- - test/test-log-attr.rb
92
- - test/test-markup.rb
93
- - test/test-matrix.rb
94
- - test/test-pango.rb
95
- - test/test-rectangle.rb
96
- - test/test-version.rb
97
81
  homepage: https://ruby-gnome2.osdn.jp/
98
82
  licenses:
99
83
  - LGPL-2.1+
100
84
  metadata:
85
+ bug_tracker_uri: https://github.com/ruby-gnome/ruby-gnome/issues
86
+ changelog_uri: https://github.com/ruby-gnome/ruby-gnome/blob/master/NEWS
87
+ documentation_uri: https://ruby-gnome2.osdn.jp/hiki.cgi?Ruby%2FPango
88
+ mailing_list_uri: https://sourceforge.net/p/ruby-gnome2/mailman/ruby-gnome2-devel-en
89
+ source_code_uri: https://github.com/ruby-gnome/ruby-gnome/tree/master/pango
101
90
  msys2_mingw_dependencies: pango
102
91
  post_install_message:
103
92
  rdoc_options: []
@@ -1,34 +0,0 @@
1
- # Copyright (C) 2008-2021 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
- require "pango"
18
-
19
- module PangoTestUtils
20
- private
21
- def only_pango_version(major, minor, micro=nil)
22
- micro ||= 0
23
- unless Pango::Version.or_later?(major, minor, micro)
24
- omit("Require Pango >= #{major}.#{minor}.#{micro}")
25
- end
26
- end
27
-
28
- def only_gi_version(major, minor, micro=nil)
29
- micro ||= 0
30
- if (GObjectIntrospection::BUILD_VERSION <=> [major, minor, micro]) < 0
31
- omit("Require GObject Introspection >= #{major}.#{minor}.#{micro}")
32
- end
33
- end
34
- end
data/test/run-test.rb DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # Copyright (C) 2017-2021 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, MA 02110-1301 USA
18
-
19
- require_relative "../../glib2/test/run-test"
20
-
21
- run_test(__dir__,
22
- [
23
- "glib2",
24
- "gobject-introspection",
25
- "cairo-gobject",
26
- "pango",
27
- ]) do
28
- require_relative "pango-test-utils"
29
- end
@@ -1,36 +0,0 @@
1
- # Copyright (C) 2017 Ruby-GNOME2 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 TestAttrIterator < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def setup
21
- attrs, = Pango.parse_markup("Hello <b>world</b>!")
22
- @iterator = attrs.iterator
23
- end
24
-
25
- def test_attrs
26
- @iterator.next
27
- indexes = @iterator.attrs.collect do |attr|
28
- [
29
- attr.start_index,
30
- attr.end_index,
31
- attr.value,
32
- ]
33
- end
34
- assert_equal([[6, 11, Pango::Weight::BOLD]], indexes)
35
- end
36
- end
@@ -1,46 +0,0 @@
1
- # Copyright (C) 2017-2019 Ruby-GNOME2 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 TestAttrList < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def setup
21
- @attrs = Pango::AttrList.new
22
- end
23
-
24
- def test_insert
25
- attribute = Pango::AttrLanguage.new(Pango::Language.default)
26
- @attrs.insert(attribute)
27
- assert_equal([
28
- [attribute.value.to_s],
29
- [],
30
- ],
31
- @attrs.collect {|iter| iter.attrs.collect {|a| a.value.to_s}})
32
- end
33
-
34
- def test_change
35
- only_gi_version(1, 60)
36
- first_attribute = Pango::AttrLanguage.new(Pango::Language.new("ja-jp"))
37
- @attrs.insert(first_attribute)
38
- second_attribute = Pango::AttrLanguage.new(Pango::Language.new("en-us"))
39
- @attrs.change(second_attribute)
40
- assert_equal([
41
- [second_attribute.value.to_s],
42
- [],
43
- ],
44
- @attrs.collect {|iter| iter.attrs.collect {|a| a.value.to_s}})
45
- end
46
- end
@@ -1,19 +0,0 @@
1
- class TestAttribute < Test::Unit::TestCase
2
- include PangoTestUtils
3
-
4
- def setup
5
- @attribute = Pango::AttrLanguage.new(Pango::Language.default)
6
- end
7
-
8
- def test_start_index
9
- assert_equal(0, @attribute.start_index)
10
- @attribute.start_index = 5
11
- assert_equal(5, @attribute.start_index)
12
- end
13
-
14
- def test_end_index
15
- assert_equal(GLib::MAXUINT, @attribute.end_index)
16
- @attribute.end_index = 5
17
- assert_equal(5, @attribute.end_index)
18
- end
19
- end
data/test/test-color.rb DELETED
@@ -1,45 +0,0 @@
1
- # Copyright (C) 2013-2017 Ruby-GNOME2 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 TestPangoColor < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def test_red
21
- color = Pango::Color.new(0, 0, 0)
22
- assert_equal(0, color.red)
23
- color.red = 32768
24
- assert_equal(32768, color.red)
25
- end
26
-
27
- def test_blue
28
- color = Pango::Color.new(0, 0, 0)
29
- assert_equal(0, color.blue)
30
- color.blue = 32768
31
- assert_equal(32768, color.blue)
32
- end
33
-
34
- def test_green
35
- color = Pango::Color.new(0, 0, 0)
36
- assert_equal(0, color.green)
37
- color.green = 32768
38
- assert_equal(32768, color.green)
39
- end
40
-
41
- def test_to_a
42
- color = Pango::Color.new(65535, 32768, 0)
43
- assert_equal([65535, 32768, 0], color.to_a)
44
- end
45
- end
data/test/test-context.rb DELETED
@@ -1,133 +0,0 @@
1
- # Copyright (C) 2016-2019 Ruby-GNOME2 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 TestContext < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def setup
21
- font_map = Pango::CairoFontMap.default
22
- @context = font_map.create_context
23
- end
24
-
25
- def test_set_font_map
26
- font_map = Pango::CairoFontMap.default
27
- @context.font_map = font_map
28
- assert_equal(font_map, @context.font_map)
29
- end
30
-
31
- def test_set_font_description
32
- description = Pango::FontDescription.new("monospace")
33
- description.size = 10 * Pango::SCALE
34
- @context.font_description = description
35
- assert_equal("monospace 10", @context.font_description.to_s)
36
- end
37
-
38
- def test_set_language
39
- @context.language = Pango::Language.new("fr")
40
- assert_equal("fr", @context.language.to_s)
41
- end
42
-
43
- def test_set_base_dir
44
- @context.base_dir = :ltr
45
- assert_equal(Pango::Direction::LTR, @context.base_dir)
46
- end
47
-
48
- def test_set_gravity
49
- @context.gravity_hint = :strong
50
- assert_equal(Pango::GravityHint::STRONG, @context.gravity_hint)
51
- end
52
-
53
- def test_set_matrix
54
- matrix = Pango::Matrix.new(0.1, 0.2, 0.3, 0.4, 0.5, 0.6)
55
- @context.matrix = matrix
56
- assert_equal(0.1, @context.matrix.xx)
57
- assert_equal(0.2, @context.matrix.xy)
58
- assert_equal(0.3, @context.matrix.yx)
59
- assert_equal(0.4, @context.matrix.yy)
60
- assert_equal(0.5, @context.matrix.x0)
61
- assert_equal(0.6, @context.matrix.y0)
62
- end
63
-
64
- def test_load_font
65
- description = Pango::FontDescription.new("monospace")
66
- description.size = 10 * Pango::SCALE
67
- font = @context.load_font(description)
68
- assert_equal(10,
69
- (font.describe.size.to_f / Pango::SCALE).round)
70
- end
71
-
72
- def test_load_fontset
73
- description = Pango::FontDescription.new("monospace")
74
- description.size = 10 * Pango::SCALE
75
- language = Pango::Language.new("fr")
76
- fontset = @context.load_fontset(description, language)
77
- a_unicode = GLib::UTF8.get_char("a")
78
- font = fontset.get_font(a_unicode)
79
- assert_equal(10,
80
- (font.describe.size.to_f / Pango::SCALE).round)
81
- end
82
-
83
- def test_get_metrics
84
- description = Pango::FontDescription.new("monospace")
85
- description.size = 10 * Pango::SCALE
86
- language = Pango::Language.new("fr")
87
- metrics = @context.get_metrics(description, language)
88
- assert do
89
- metrics.ascent > metrics.descent
90
- end
91
- end
92
-
93
- def test_families
94
- family_names = @context.families.collect(&:name)
95
- assert do
96
- family_names.include?("Monospace")
97
- end
98
- end
99
-
100
- def test_font_options
101
- options = Cairo::FontOptions.new
102
- options.antialias = Cairo::Antialias::BEST
103
- @context.font_options = options
104
- assert_equal(Cairo::Antialias::BEST,
105
- @context.font_options.antialias)
106
- end
107
-
108
- def test_resolution
109
- dpi = 72
110
- @context.resolution = dpi
111
- assert_equal(dpi, @context.resolution)
112
- end
113
-
114
- sub_test_case("#set_shape_renderer") do
115
- def test_gc
116
- GC.start
117
- n_contexts = ObjectSpace.each_object(Pango::Context) {}
118
- n_procs = ObjectSpace.each_object(Proc) {}
119
- n = 1000
120
- n.times do
121
- context = Pango::CairoFontMap.default.create_context
122
- context.set_shape_renderer do
123
- end
124
- end
125
- GC.start
126
- n_contexts_after = ObjectSpace.each_object(Pango::Context) {}
127
- n_procs_after = ObjectSpace.each_object(Proc) {}
128
- assert do
129
- (n_contexts_after < n_contexts + n) and (n_procs_after < n_procs + n)
130
- end
131
- end
132
- end
133
- end
data/test/test-enum.rb DELETED
@@ -1,37 +0,0 @@
1
- # Copyright (C) 2017 Ruby-GNOME2 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 TestEnum < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def test_alignment
21
- assert do
22
- Pango::Alignment.const_defined?(:LEFT)
23
- end
24
- end
25
-
26
- def test_ellipsize_mode
27
- assert do
28
- Pango::EllipsizeMode.const_defined?(:MIDDLE)
29
- end
30
- end
31
-
32
- def test_wrap_mode
33
- assert do
34
- Pango::WrapMode.const_defined?(:CHAR)
35
- end
36
- end
37
- end
@@ -1,31 +0,0 @@
1
- # Copyright (C) 2017 Ruby-GNOME2 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 TestFontDescription < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- sub_test_case(".new") do
21
- test("no argument") do
22
- assert_equal("Normal",
23
- Pango::FontDescription.new.to_s)
24
- end
25
-
26
- test("description") do
27
- assert_equal("Monospace 18",
28
- Pango::FontDescription.new("Monospace 18").to_s)
29
- end
30
- end
31
- end
@@ -1,13 +0,0 @@
1
- class TestLanguage < Test::Unit::TestCase
2
- include PangoTestUtils
3
-
4
- def test_default
5
- assert_match(/\A(?:[a-z]{2}-[a-z]{2}|(?i:c))\z/,
6
- Pango::Language.default.to_s)
7
- end
8
-
9
- def test_sample_string
10
- assert_equal("The quick brown fox jumps over the lazy dog.",
11
- Pango::Language.new("en").sample_string)
12
- end
13
- end
data/test/test-layout.rb DELETED
@@ -1,52 +0,0 @@
1
- class TestLayout < Test::Unit::TestCase
2
- include PangoTestUtils
3
-
4
- def setup
5
- @font_map = Pango::CairoFontMap.default
6
- @context = @font_map.create_context
7
- @layout = Pango::Layout.new(@context)
8
- end
9
-
10
- def test_set_font_description
11
- assert_nil(@layout.font_description)
12
-
13
- @layout.font_description = "sans 14"
14
- assert_equal("sans 14", @layout.font_description.to_s)
15
-
16
- description = Pango::FontDescription.new("monospace")
17
- description.size = 10 * Pango::SCALE
18
- @layout.font_description = description
19
- assert_equal("monospace 10", @layout.font_description.to_s)
20
- end
21
-
22
- def test_height
23
- assert_equal(-1, @layout.height)
24
- end
25
-
26
- def test_set_height
27
- new_height = 29 * Pango::SCALE
28
- @layout.height = new_height
29
- assert_equal(new_height, @layout.height)
30
- end
31
-
32
- def test_ellipsized?
33
- assert_false(@layout.ellipsized?)
34
- end
35
-
36
- def test_baseline
37
- only_pango_version(1, 22, 0)
38
- assert_kind_of(Integer, @layout.baseline)
39
- end
40
-
41
- def test_set_text
42
- text = "こんにちは <b>World</b>!"
43
- @layout.text = text
44
- assert_equal(text, @layout.text)
45
- end
46
-
47
- def test_set_markup
48
- markup = "こんにちは <b>World</b>!"
49
- @layout.markup = markup
50
- assert_equal("こんにちは World!", @layout.text)
51
- end
52
- end
@@ -1,26 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2013 Ruby-GNOME2 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, MA 02110-1301 USA
18
-
19
- class TestPangoLogAttr < Test::Unit::TestCase
20
- include PangoTestUtils
21
-
22
- def test_line_break?
23
- attribute = Pango::LogAttr.new
24
- assert_false(attribute.line_break?)
25
- end
26
- end
data/test/test-markup.rb DELETED
@@ -1,30 +0,0 @@
1
- # Copyright (C) 2017 Ruby-GNOME2 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 TestPangoMarkup < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def test_plain
21
- result = Pango.parse_markup("Hello")
22
- result[0] = result[0].class
23
- assert_equal([
24
- Pango::AttrList,
25
- "Hello",
26
- nil,
27
- ],
28
- result)
29
- end
30
- end
data/test/test-matrix.rb DELETED
@@ -1,153 +0,0 @@
1
- # Copyright (C) 2013-2018 Ruby-GNOME2 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 TestPangoMatrix < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def test_new
21
- matrix = Pango::Matrix.new
22
- assert_equal([
23
- 1.0, 0.0,
24
- 0.0, 1.0,
25
- 0.0,
26
- 0.0,
27
- ],
28
- matrix.to_a)
29
- end
30
-
31
- def test_translate
32
- matrix = Pango::Matrix.new
33
- new_matrix = matrix.translate(10, 20)
34
- assert_equal([
35
- 1.0, 0.0,
36
- 0.0, 1.0,
37
- 10.0,
38
- 20.0,
39
- ],
40
- new_matrix.to_a)
41
- assert_equal(Pango::Matrix.new.to_a,
42
- matrix.to_a)
43
- end
44
-
45
- def test_translate!
46
- matrix = Pango::Matrix.new
47
- matrix.translate!(10, 20)
48
- assert_equal([
49
- 1.0, 0.0,
50
- 0.0, 1.0,
51
- 10.0,
52
- 20.0,
53
- ],
54
- matrix.to_a)
55
- end
56
-
57
- def test_scale
58
- matrix = Pango::Matrix.new
59
- new_matrix = matrix.scale(3, 5)
60
- assert_equal([
61
- 3.0, 0.0,
62
- 0.0, 5.0,
63
- 0.0,
64
- 0.0,
65
- ],
66
- new_matrix.to_a)
67
- assert_equal(Pango::Matrix.new.to_a,
68
- matrix.to_a)
69
- end
70
-
71
- def test_scale!
72
- matrix = Pango::Matrix.new
73
- matrix.scale!(3, 5)
74
- assert_equal([
75
- 3.0, 0.0,
76
- 0.0, 5.0,
77
- 0.0,
78
- 0.0,
79
- ],
80
- matrix.to_a)
81
- end
82
-
83
- def test_rotate
84
- matrix = Pango::Matrix.new
85
- new_matrix = matrix.rotate(60)
86
- sin = Math.sin(60 * Math::PI / 180)
87
- cos = Math.cos(60 * Math::PI / 180)
88
- assert_equal([
89
- cos, sin,
90
- -sin, cos,
91
- 0.0,
92
- 0.0,
93
- ],
94
- new_matrix.to_a)
95
- assert_equal(Pango::Matrix.new.to_a,
96
- matrix.to_a)
97
- end
98
-
99
- def test_rotate!
100
- matrix = Pango::Matrix.new
101
- matrix.rotate!(60)
102
- sin = Math.sin(60 * Math::PI / 180)
103
- cos = Math.cos(60 * Math::PI / 180)
104
- n_digits = 10
105
- assert_equal([
106
- cos, sin,
107
- -sin, cos,
108
- 0.0,
109
- 0.0,
110
- ].collect {|number| number.round(n_digits)},
111
- matrix.to_a.collect {|number| number.round(n_digits)})
112
- end
113
-
114
- def test_concat
115
- matrix = Pango::Matrix.new
116
- new_matrix = matrix.concat(Pango::Matrix.new.scale(3, 5))
117
- assert_equal([
118
- 3.0, 0.0,
119
- 0.0, 5.0,
120
- 0.0,
121
- 0.0,
122
- ],
123
- new_matrix.to_a)
124
- assert_equal(Pango::Matrix.new.to_a,
125
- matrix.to_a)
126
- end
127
-
128
- def test_plus
129
- matrix = Pango::Matrix.new
130
- new_matrix = matrix + Pango::Matrix.new.scale(3, 5)
131
- assert_equal([
132
- 3.0, 0.0,
133
- 0.0, 5.0,
134
- 0.0,
135
- 0.0,
136
- ],
137
- new_matrix.to_a)
138
- assert_equal(Pango::Matrix.new.to_a,
139
- matrix.to_a)
140
- end
141
-
142
- def test_concat!
143
- matrix = Pango::Matrix.new
144
- matrix.concat!(Pango::Matrix.new.scale(3, 5))
145
- assert_equal([
146
- 3.0, 0.0,
147
- 0.0, 5.0,
148
- 0.0,
149
- 0.0,
150
- ],
151
- matrix.to_a)
152
- end
153
- end
@@ -1,59 +0,0 @@
1
- # Copyright (C) 2013-2018 Ruby-GNOME2 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 TestPangoRectangle < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- def test_x
21
- rectangle = Pango::Rectangle.new(0, 10, 20, 30)
22
- assert_equal(0, rectangle.x)
23
- end
24
-
25
- def test_y
26
- rectangle = Pango::Rectangle.new(0, 10, 20, 30)
27
- assert_equal(10, rectangle.y)
28
- end
29
-
30
- def test_width
31
- rectangle = Pango::Rectangle.new(0, 10, 20, 30)
32
- assert_equal(20, rectangle.width)
33
- end
34
-
35
- def test_height
36
- rectangle = Pango::Rectangle.new(0, 10, 20, 30)
37
- assert_equal(30, rectangle.height)
38
- end
39
-
40
- def test_ascent
41
- rectangle = Pango::Rectangle.new(5, 10, 20, 30)
42
- assert_equal(-10, rectangle.ascent)
43
- end
44
-
45
- def test_descent
46
- rectangle = Pango::Rectangle.new(5, 10, 20, 30)
47
- assert_equal(40, rectangle.descent)
48
- end
49
-
50
- def test_left_bearing
51
- rectangle = Pango::Rectangle.new(5, 10, 20, 30)
52
- assert_equal(5, rectangle.left_bearing)
53
- end
54
-
55
- def test_right_bearing
56
- rectangle = Pango::Rectangle.new(5, 10, 20, 30)
57
- assert_equal(25, rectangle.right_bearing)
58
- end
59
- end
data/test/test-version.rb DELETED
@@ -1,47 +0,0 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 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 TestPangoVersion < Test::Unit::TestCase
18
- include PangoTestUtils
19
-
20
- test "STRING" do
21
- major = Pango::Version::MAJOR
22
- minor = Pango::Version::MINOR
23
- micro = Pango::Version::MICRO
24
- assert_equal([major, minor, micro].join("."),
25
- Pango::Version::STRING)
26
- end
27
-
28
- sub_test_case("#or_later?") do
29
- test "same" do
30
- assert_true(Pango::Version.or_later?(Pango::Version::MAJOR,
31
- Pango::Version::MINOR,
32
- Pango::Version::MICRO))
33
- end
34
-
35
- test "later" do
36
- assert_true(Pango::Version.or_later?(Pango::Version::MAJOR,
37
- Pango::Version::MINOR,
38
- Pango::Version::MICRO - 1))
39
- end
40
-
41
- test "earlier" do
42
- assert_false(Pango::Version.or_later?(Pango::Version::MAJOR,
43
- Pango::Version::MINOR,
44
- Pango::Version::MICRO + 1))
45
- end
46
- end
47
- end