Sha256: eb893a309abc6e1b8336b7cd62170e2314cbf86f4664b175571c528cd2ed4534

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

module CyberarmEngine
  class Element
    class Progress < Element
      def initialize(options = {}, block = nil)
        super(options, block)

        @fraction_background = Background.new(background: @style.fraction_background)
        self.value = options[:fraction] ? options[:fraction] : 0.0
      end

      def render
        @fraction_background.draw
      end

      def recalculate
        _width = dimensional_size(@style.width, :width)
        _height= dimensional_size(@style.height,:height)
        @width = _width
        @height= _height

        update_background
      end

      def update_background
        super

        @fraction_background.x = @style.border_thickness_left + @style.padding_left + @x
        @fraction_background.y = @style.border_thickness_top + @style.padding_top + @y
        @fraction_background.z = @z
        @fraction_background.width = @width * @fraction
        @fraction_background.height = @height

        @fraction_background.background = @style.fraction_background
      end

      def value
        @fraction
      end

      def value=(decimal)
        raise "value must be number" unless decimal.is_a?(Numeric)

        @fraction = decimal.clamp(0.0, 1.0)
        update_background

        return @fraction
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cyberarm_engine-0.13.0 lib/cyberarm_engine/ui/elements/progress.rb