Class: Magick::RVG::TextBase

Inherits:
Object
  • Object
show all
Includes:
Duplicatable, Stylable
Defined in:
lib/rvg/text.rb

Overview

Base class for Tspan, Tref and Text.

Direct Known Subclasses

Text, Tref, Tspan

Instance Method Summary collapse

Methods included from Duplicatable

#deep_copy

Methods included from Stylable

#styles

Instance Method Details

#add_primitives(gc) ⇒ Object

We do our own transformations.


53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/rvg/text.rb', line 53

def add_primitives(gc)  #:nodoc:
    if @text || @tspans.length > 0
        gc.push
        x = self.cx + @dx
        y = self.cy + @dy
        if @rotation != 0
            gc.translate(x, y)
            gc.rotate(@rotation)
            gc.translate(-x, -y)
        end
        add_style_primitives(gc)
        if @text
            x2, y2 = gc.text(x, y, @text)
            self.cx = x + x2
            self.cy = y + y2
        end
        @tspans.each do |tspan|
            tspan.add_primitives(gc)
        end
        gc.pop
    end
end

#d(x, y = 0) {|_self| ... } ⇒ Object

Add x and y to the current text position.

Yields:

  • (_self)

Yield Parameters:


39
40
41
42
43
# File 'lib/rvg/text.rb', line 39

def d(x, y=0)
    @dx, @dy = Magick::RVG.convert_to_float(x, y)
    yield(self) if block_given?
    self
end

#rotate(degrees) {|_self| ... } ⇒ Object

Rotate the text about the current text position.

Yields:

  • (_self)

Yield Parameters:


46
47
48
49
50
# File 'lib/rvg/text.rb', line 46

def rotate(degrees)
    @rotation = Magick::RVG.convert_to_float(degrees)[0]
    yield(self) if block_given?
    self
end

#tspan(text, x = nil, y = nil) ⇒ Object

Create a new text chunk. Each chunk can have its own initial position and styles. If x and y are omitted the text starts at the current text position.


31
32
33
34
35
36
# File 'lib/rvg/text.rb', line 31

def tspan(text, x=nil, y=nil)
    tspan = Tspan.new(text, x, y)
    tspan.parent = self
    @tspans << tspan
    return tspan
end