Sha256: a12dfb714ea24d709bf9bf65997cf9c344fd4b8dff20df44d98c8875827101ba
Contents?: true
Size: 1.35 KB
Versions: 1
Compression:
Stored size: 1.35 KB
Contents
class Shoes module Swt class Star extend Forwardable include Common::Fill include Common::Stroke include Common::Clickable include Common::PainterUpdatesPosition include Common::Toggle include Common::Clear include ::Shoes::BackendDimensionsDelegations def_delegators :dsl, :angle, :outer, :inner, :points attr_reader :dsl, :app, :transform, :container def initialize(dsl, app, &blk) @dsl = dsl @app = app @container = @app.real @painter = Painter.new(self) @app.add_paint_listener @painter clickable blk if blk end class Painter < Common::Painter def fill(gc) gc.fillPolygon make_polygon(@obj) end def draw(gc) gc.drawPolygon make_polygon(@obj) end def make_polygon(obj) outer, inner, points, left, top = obj.outer, obj.inner, obj.points, obj.element_left, obj.element_top polygon = [] polygon << left << (top + outer) (1..points*2).each do |i| angle = i * ::Math::PI / points r = (i % 2 == 0) ? outer : inner polygon << (left + r * ::Math.sin(angle)) << (top + r * ::Math.cos(angle)) end polygon end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shoes-4.0.0.pre1 | lib/shoes/swt/star.rb |