| 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.
| StrokeAttrs | = | [ :stroke, :stroke_opacity, :stroke_width ] |
| FillAttrs | = | [ :fill, :fill_opacity ] |
| FillAndStrokeAttrs | = | StrokeAttrs + FillAttrs |
| TextAttrs | = | FillAndStrokeAttrs + [ :font_family, :font_size ] |
# 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
# 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
# File lib/taskjuggler/Painter/Primitives.rb, line 42 def group(attrs = {}, &block) @elements << (g = Group.new(attrs, &block)) g end
# 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
# 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
# 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