require 'rabbit/element/base'

module Rabbit
  module Element
    module BlockHorizontalCentering
      attr_reader :ox, :oy, :ow, :oh # dirty!!!!

      def do_horizontal_centering(canvas, x, y, w, h)
        @ox, @oy, @ow, @oh = @x, @y, @w, @h
        adjust_width = ((w - width) / 2.0).ceil
        x += adjust_width
        w -= adjust_width
        @centering_adjusted_width = adjust_width
        compile_for_horizontal_centering(canvas, x, @y, w, h)
        draw(true)
      end

      def reset_horizontal_centering(canvas, x, y, w, h)
        # TODO
      end

      def clear_theme
        @ox = @oy = @ow = @oh = nil
        super
      end
    end

    module BlockElement
      def inline_element?
        false
      end

      def adjust_y_padding(y, h)
        y += @padding_bottom
        h -= @padding_bottom
        [y, h]
      end
    end
  end
end
