Sha256: dade6b3b76ca71bc9da9ccbfaf2f75a8d1bb5b1b37be87ae8c9d3b4becc8e01e

Contents?: true

Size: 738 Bytes

Versions: 2

Compression:

Stored size: 738 Bytes

Contents

class Shoes
  module Swt
    class Link
      include Common::Clickable
      include Common::Fill
      include Common::Stroke

      attr_reader :app, :link_segments, :dsl

      def initialize(dsl, app)
        @app = app
        @link_segments = []
        @dsl = dsl
      end

      def remove
        @link_segments.clear
        app.click_listener.remove_listeners_for(self)
      end

      def create_links_in(text_segment_ranges)
        @link_segments.clear
        text_segment_ranges.each do |text_segment, range|
          @link_segments << LinkSegment.new(text_segment, range)
        end
      end

      def in_bounds?(x, y)
        @link_segments.any? { |segment| segment.in_bounds?(x, y) }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shoes-swt-4.0.0.pre6 lib/shoes/swt/link.rb
shoes-swt-4.0.0.pre5 lib/shoes/swt/link.rb