In Files

Parent

Class Index [+]

Quicksearch

Magick::RVG::Utility::GraphicContext

Constants

FONT_STRETCH
FONT_STYLE
FONT_WEIGHT
TEXT_ANCHOR
ANCHOR_TO_ALIGN
TEXT_DECORATION
TEXT_STRATEGIES

Attributes

gc[R]
text_attrs[R]

Public Class Methods

degrees_to_radians(deg) click to toggle source
     # File lib/rvg/misc.rb, line 509
509:                 def GraphicContext.degrees_to_radians(deg)
510:                     Math::PI * (deg % 360.0) / 180.0
511:                 end
new() click to toggle source
     # File lib/rvg/misc.rb, line 537
537:                 def initialize()
538:                     @gc = Magick::Draw.new
539:                     @shadow = Array.new
540:                     @shadow << Magick::Draw.new
541:                     @text_attrs = TextAttributes.new
542:                     init_matrix()
543:                 end

Public Instance Methods

affine(sx, rx, ry, sy, tx, ty) click to toggle source
     # File lib/rvg/misc.rb, line 549
549:                 def affine(sx, rx, ry, sy, tx, ty)
550:                     sx, rx, ry, sy, tx, ty = Magick::RVG.convert_to_float(sx, rx, ry, sy, tx, ty)
551:                     @gc.affine(sx, rx, ry, sy, tx, ty)
552:                     @text_attrs.set_affine(sx, rx, ry, sy, tx, ty)
553:                     nil
554:                 end
baseline_shift(value) click to toggle source
     # File lib/rvg/misc.rb, line 556
556:                 def baseline_shift(value)
557:                     @text_attrs.baseline_shift = case value
558:                         when 'baseline', 'sub', 'super'
559:                             value.intern
560:                         when /[-+]?\d+%/, Numeric
561:                             value
562:                         else
563:                             :baseline
564:                         end
565:                     nil
566:                 end
font(name) click to toggle source
     # File lib/rvg/misc.rb, line 568
568:                 def font(name)
569:                     @gc.font(name)
570:                     @shadow[1].font = name
571:                     nil
572:                 end
font_family(name) click to toggle source
     # File lib/rvg/misc.rb, line 574
574:                 def font_family(name)
575:                     @gc.font_family(name)
576:                     @shadow[1].font_family = name
577:                     nil
578:                 end
font_size(points) click to toggle source
     # File lib/rvg/misc.rb, line 580
580:                 def font_size(points)
581:                     @gc.font_size(points)
582:                     @shadow[1].pointsize = points
583:                     nil
584:                 end
font_stretch(stretch) click to toggle source
     # File lib/rvg/misc.rb, line 586
586:                 def font_stretch(stretch)
587:                     stretch = FONT_STRETCH.fetch(stretch.intern, Magick::NormalStretch)
588:                     @gc.font_stretch(stretch)
589:                     @shadow[1].font_stretch = stretch
590:                     nil
591:                 end
font_style(style) click to toggle source
     # File lib/rvg/misc.rb, line 593
593:                 def font_style(style)
594:                     style = FONT_STYLE.fetch(style.intern, Magick::NormalStyle)
595:                     @gc.font_style(style)
596:                     @shadow[1].font_style = style
597:                     nil
598:                 end
font_weight(weight) click to toggle source
     # File lib/rvg/misc.rb, line 600
600:                 def font_weight(weight)
601:                     # If the arg is not in the hash use it directly. Handles numeric values.
602:                     weight = FONT_WEIGHT.fetch(weight) {|key| key}
603:                     @gc.font_weight(weight)
604:                     @shadow[1].font_weight = weight
605:                     nil
606:                 end
glyph_orientation_horizontal(deg) click to toggle source
     # File lib/rvg/misc.rb, line 608
608:                 def glyph_orientation_horizontal(deg)
609:                     deg = Magick::RVG.convert_one_to_float(deg)
610:                     @text_attrs.glyph_orientation_horizontal = (deg % 360) / 90 * 90
611:                     nil
612:                 end
glyph_orientation_vertical(deg) click to toggle source
     # File lib/rvg/misc.rb, line 614
614:                 def glyph_orientation_vertical(deg)
615:                     deg = Magick::RVG.convert_one_to_float(deg)
616:                     @text_attrs.glyph_orientation_vertical = (deg % 360) / 90 * 90
617:                     nil
618:                 end
inspect() click to toggle source
     # File lib/rvg/misc.rb, line 620
620:                 def inspect()
621:                     @gc.inspect
622:                 end
letter_spacing(value) click to toggle source
     # File lib/rvg/misc.rb, line 624
624:                 def letter_spacing(value)
625:                     @text_attrs.letter_spacing = Magick::RVG.convert_one_to_float(value)
626:                     nil
627:                 end
method_missing(methID, *args, &block) click to toggle source
     # File lib/rvg/misc.rb, line 545
545:                 def method_missing(methID, *args, &block)
546:                     @gc.__send__(methID, *args, &block)
547:                 end
pop() click to toggle source
     # File lib/rvg/misc.rb, line 636
636:                 def pop()
637:                     @gc.pop
638:                     @shadow.pop
639:                     @text_attrs.pop
640:                     nil
641:                 end
push() click to toggle source
     # File lib/rvg/misc.rb, line 629
629:                 def push()
630:                     @gc.push
631:                     @shadow.push(@shadow.last.dup)
632:                     @text_attrs.push
633:                     nil
634:                 end
rotate(degrees) click to toggle source
     # File lib/rvg/misc.rb, line 643
643:                 def rotate(degrees)
644:                     degrees = Magick::RVG.convert_one_to_float(degrees)
645:                     @gc.rotate(degrees)
646:                     @sx =  Math.cos(GraphicContext.degrees_to_radians(degrees))
647:                     @rx =  Math.sin(GraphicContext.degrees_to_radians(degrees))
648:                     @ry = -Math.sin(GraphicContext.degrees_to_radians(degrees))
649:                     @sy =  Math.cos(GraphicContext.degrees_to_radians(degrees))
650:                     concat_matrix()
651:                     nil
652:                 end
scale(sx, sy) click to toggle source
     # File lib/rvg/misc.rb, line 654
654:                 def scale(sx, sy)
655:                     sx, sy = Magick::RVG.convert_to_float(sx, sy)
656:                     @gc.scale(sx, sy)
657:                     @sx, @sy = sx, sy
658:                     concat_matrix()
659:                     nil
660:                 end
shadow() click to toggle source
     # File lib/rvg/misc.rb, line 662
662:                 def shadow()
663:                     @shadow.last
664:                 end
skewX(degrees) click to toggle source
     # File lib/rvg/misc.rb, line 666
666:                 def skewX(degrees)
667:                     degrees = Magick::RVG.convert_one_to_float(degrees)
668:                     @gc.skewX(degrees)
669:                     @ry = Math.tan(GraphicContext.degrees_to_radians(degrees))
670:                     concat_matrix()
671:                     nil
672:                 end
skewY(degrees) click to toggle source
     # File lib/rvg/misc.rb, line 674
674:                 def skewY(degrees)
675:                     degrees = Magick::RVG.convert_one_to_float(degrees)
676:                     @gc.skewY(degrees)
677:                     @rx = Math.tan(GraphicContext.degrees_to_radians(degrees))
678:                     concat_matrix()
679:                     nil
680:                 end
stroke_width(width) click to toggle source
     # File lib/rvg/misc.rb, line 682
682:                 def stroke_width(width)
683:                     width = Magick::RVG.convert_one_to_float(width)
684:                     @gc.stroke_width(width)
685:                     @shadow[1].stroke_width = width
686:                     nil
687:                 end
text(x, y, text) click to toggle source
     # File lib/rvg/misc.rb, line 689
689:                 def text(x, y, text)
690:                     return if text.length == 0
691:                     if @text_attrs.non_default?
692:                         text_renderer = TEXT_STRATEGIES[@text_attrs.writing_mode].new(self)
693:                     else
694:                         text_renderer = DefaultTextStrategy.new(self)
695:                     end
696: 
697:                     return text_renderer.render(x, y, text)
698:                 end
text_anchor(anchor) click to toggle source
     # File lib/rvg/misc.rb, line 700
700:                 def text_anchor(anchor)
701:                     anchor = anchor.intern
702:                     anchor_enum = TEXT_ANCHOR.fetch(anchor, Magick::StartAnchor)
703:                     @gc.text_anchor(anchor_enum)
704:                     align = ANCHOR_TO_ALIGN.fetch(anchor, Magick::LeftAlign)
705:                     @shadow[1].align = align
706:                     @text_attrs.text_anchor = anchor
707:                     nil
708:                 end
text_decoration(decoration) click to toggle source
     # File lib/rvg/misc.rb, line 710
710:                 def text_decoration(decoration)
711:                     decoration = TEXT_DECORATION.fetch(decoration.intern, Magick::NoDecoration)
712:                     @gc.decorate(decoration)
713:                     @shadow[1].decorate = decoration
714:                     nil
715:                 end
translate(tx, ty) click to toggle source
     # File lib/rvg/misc.rb, line 717
717:                 def translate(tx, ty)
718:                     tx, ty = Magick::RVG.convert_to_float(tx, ty)
719:                     @gc.translate(tx, ty)
720:                     @tx, @ty = tx, ty
721:                     concat_matrix()
722:                     nil
723:                 end
word_spacing(value) click to toggle source
     # File lib/rvg/misc.rb, line 725
725:                 def word_spacing(value)
726:                     @text_attrs.word_spacing = Magick::RVG.convert_one_to_float(value)
727:                     nil
728:                 end
writing_mode(mode) click to toggle source
     # File lib/rvg/misc.rb, line 730
730:                 def writing_mode(mode)
731:                     @text_attrs.writing_mode = mode
732:                     nil
733:                 end

Private Instance Methods

concat_matrix() click to toggle source
     # File lib/rvg/misc.rb, line 521
521:                 def concat_matrix()
522:                     curr = @text_attrs.affine
523:                     sx = curr.sx * @sx + curr.ry * @rx
524:                     rx = curr.rx * @sx + curr.sy * @rx
525:                     ry = curr.sx * @ry + curr.ry * @sy
526:                     sy = curr.rx * @ry + curr.sy * @sy
527:                     tx = curr.sx * @tx + curr.ry * @ty + curr.tx
528:                     ty = curr.rx * @tx + curr.sy * @ty + curr.ty
529:                     @text_attrs.set_affine(sx, rx, ry, sy, tx, ty)
530:                     init_matrix()
531:                 end
init_matrix() click to toggle source
     # File lib/rvg/misc.rb, line 515
515:                 def init_matrix()
516:                     @rx = @ry = 0
517:                     @sx = @sy = 1
518:                     @tx = @ty = 0
519:                 end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.