Sha256: e4a67f0ef03b38c9f100dc157024664e1fc593e449f6ab36a5b5d442b7bb03e3

Contents?: true

Size: 682 Bytes

Versions: 2

Compression:

Stored size: 682 Bytes

Contents

class Shoes
  module Swt
    class Link
      include Common::Clickable

      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.pre4 lib/shoes/swt/link.rb
shoes-swt-4.0.0.pre3 lib/shoes/swt/link.rb