Module TaskJuggler::Painter::Primitives
In: lib/taskjuggler/Painter/Primitives.rb

This module contains utility methods to create the canvas Elements with minimal overhead. The element is added to it‘s current parent and mandatory arguments are enforced. It also eliminates the need to call ‘new’ methods of each Element.

Methods

circle   color   ellipse   group   line   points   polyline   rect   text  

Constants

StrokeAttrs = [ :stroke, :stroke_opacity, :stroke_width ]
FillAttrs = [ :fill, :fill_opacity ]
FillAndStrokeAttrs = StrokeAttrs + FillAttrs
TextAttrs = FillAndStrokeAttrs + [ :font_family, :font_size ]

Public Instance methods

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 47
      def circle(cx, cy, r, attrs = {})
        attrs[:cx] = cx
        attrs[:cy] = cy
        attrs[:r] = r
        @elements << (c = Circle.new(attrs))
        c
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 34
      def color(*args)
        Color.new(*args)
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 55
      def ellipse(cx, cy, rx, ry, attrs = {})
        attrs[:cx] = cx
        attrs[:cy] = cy
        attrs[:rx] = rx
        attrs[:ry] = ry
        @elements << (e = Ellipse.new(attrs))
        e
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 42
      def group(attrs = {}, &block)
        @elements << (g = Group.new(attrs, &block))
        g
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 64
      def line(x1, y1, x2, y2, attrs = {})
        attrs[:x1] = x1
        attrs[:y1] = y1
        attrs[:x2] = x2
        attrs[:y2] = y2
        @elements << (l = Line.new(attrs))
        l
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 38
      def points(arr)
        Points.new(arr)
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 73
      def polyline(points, attrs = {})
        attrs[:points] = points.is_a?(Array) ? Points.new(points) : points
        @elements << (l = PolyLine.new(attrs))
        l
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 79
      def rect(x, y, width, height, attrs = {})
        attrs[:x] = x
        attrs[:y] = y
        attrs[:width] = width
        attrs[:height] = height
        @elements << (r = Rect.new(attrs))
        r
      end

[Source]

# File lib/taskjuggler/Painter/Primitives.rb, line 88
      def text(x, y, str, attrs = {})
        attrs[:x] = x
        attrs[:y] = y
        @elements << (t = Text.new(str, attrs))
        t
      end

[Validate]