Sha256: 426dfea04ecfe09e378ead527e0b52f2f824fed5f83c3d60df67dff2910d0562

Contents?: true

Size: 1.8 KB

Versions: 3

Compression:

Stored size: 1.8 KB

Contents

module WhirledPeas
  module Graphics
    class ContainerCoords
      def initialize(dimensions, settings, start_left, start_top)
        @dimensions = dimensions
        @settings = settings
        @start_left = start_left
        @start_top = start_top
      end

      def left
        start_left
      end

      def top
        start_top
      end

      def border_left
        left + settings.margin.left
      end

      def border_top
        top + settings.margin.top
      end

      def padding_left
        border_left + (settings.border.left? ? 1 : 0)
      end

      def padding_top
        border_top + (settings.border.top? ? 1 : 0)
      end

      def content_left(col_index=0)
        padding_left + settings.padding.left + col_index * dimensions.grid_width
      end

      def offset_content_left(col_index=0)
        if settings.content_start.left
          content_left(col_index) + settings.content_start.left
        elsif settings.content_start.right
          left_offset = dimensions.content_width - dimensions.children_width
          content_left(col_index) + left_offset - settings.content_start.right
        else
          content_left(col_index)
        end
      end

      def content_top(row_index=0)
        padding_top + settings.padding.top + row_index * dimensions.grid_height
      end

      def offset_content_top(row_index=0)
        if settings.content_start.top
          content_top(row_index) + settings.content_start.top
        elsif settings.content_start.bottom
          top_offset = dimensions.content_height - dimensions.children_height
          content_top(row_index) + top_offset - settings.content_start.bottom
        else
          content_top(row_index)
        end
      end

      private

      attr_reader :settings, :dimensions, :start_left, :start_top
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
whirled_peas-0.13.0 lib/whirled_peas/graphics/container_coords.rb
whirled_peas-0.12.0 lib/whirled_peas/graphics/container_coords.rb
whirled_peas-0.11.1 lib/whirled_peas/graphics/container_coords.rb