Sha256: 853c83ca27eb119d5f76226039f154afb60d934c4e8339651942206e699074b5

Contents?: true

Size: 827 Bytes

Versions: 4

Compression:

Stored size: 827 Bytes

Contents

# frozen_string_literal: true
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 redraw_target
        @dsl.text_block
      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

4 entries across 4 versions & 1 rubygems

Version Path
shoes-swt-4.0.0.pre12 lib/shoes/swt/link.rb
shoes-swt-4.0.0.pre11 lib/shoes/swt/link.rb
shoes-swt-4.0.0.pre10 lib/shoes/swt/link.rb
shoes-swt-4.0.0.pre9 lib/shoes/swt/link.rb