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.
# File lib/taskjuggler/Painter/Primitives.rb, line 45 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 32 def color(*args) Color.new(*args) end
# File lib/taskjuggler/Painter/Primitives.rb, line 53 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 40 def group(attrs = {}, &block) @elements << (g = Group.new(attrs, &block)) g end
# File lib/taskjuggler/Painter/Primitives.rb, line 62 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 36 def points(arr) Points.new(arr) end
# File lib/taskjuggler/Painter/Primitives.rb, line 71 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 77 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
# File lib/taskjuggler/Painter/Primitives.rb, line 86 def text(x, y, str, attrs = {}) attrs[:x] = x attrs[:y] = y @elements << (t = Text.new(str, attrs)) t end