lib/savio/Button.rb in savio-0.1.3 vs lib/savio/Button.rb in savio-0.1.4

- old
+ new

@@ -13,16 +13,15 @@ def initialize(args = {}) super(args) @@buttons.push(self) - @value = args[:value] || 0 + @baseColor = args[:baseColor] || Savio::Colors::White + @selectedColor = args[:selectedColor] || Savio::Colors::Blue + @labelActiveColor = args[:labelActiveColor] || Savio::Colors::White + @labelInactiveColor = args[:labelInactiveColor] || Savio::Colors::White - @baseColor = args[:baseColor] || '#F5F5F5' - @selectedColor = args[:selectedColor] || '#00B3EC' - @labelColor = args[:labelColor] || '#F5F5F5' - @cooldownTime = args[:cooldownTime] || 0.0 @timeLastClicked = 0.0 @selected = args[:selected] || false @@ -39,23 +38,25 @@ @style = 'badge' end if @style == 'box' @size *= 2 - @labelColor = args[:baseColor] || '#757575' + @labelActiveColor = args[:labelActiveColor] || Savio::Colors::White + @labelInactiveColor = args[:labelInactiveColor] || Savio::Colors::Gray end + @length = args[:length] || @size * 10 - @height = args[:height] || @size * 1.2 + @height = args[:height] || @size * 2 @onClick = Proc.new {} build() end def size=(size) @length = size * 10 - @height = size * 1.2 + @height = size * 2 super(size) end def type=(newType) if newType == 'toggle' || newType == 'clicker' @type = newType @@ -121,16 +122,19 @@ click() if enforce == true && @buttonManager != nil @buttonManager.select(self) else @selectCircle.add + @nameLabel.color = @labelActiveColor @selected = true if @type == 'clicker' fade = Thread.new { @selectCircle.add + @nameLabel.color = @labelActiveColor sleep(0.06) @selectCircle.remove + @nameLabel.color = @labelInactiveColor } deselect(enforce) end end end @@ -139,10 +143,11 @@ def deselect(enforce = @enforceManager) if enforce == true && @buttonManager != nil @buttonManager.deselect(self) else @selectCircle.remove + @nameLabel.color = @labelInactiveColor @selected = false end end def toggle(enforce = @enforceManager) @@ -194,13 +199,14 @@ ) @nameLabel = Text.new( @displayName.to_s, x: @x + @size * 2, y: @y - @size * 1.5, size: @size * 2, - color: @labelColor, + color: @labelInactiveColor, z: @z ) + @nameLabel.y = @baseCircle.y - @baseCircle.radius / 4 - @nameLabel.height / 2 when 'box' @baseCircle = Rectangle.new( x: @x, y: @y, height: @height, width: @length, color: @baseColor, @@ -214,10 +220,10 @@ ) @nameLabel = Text.new( @displayName.to_s, x: @x, y: @y, size: @size, - color: @labelColor, + color: @labelInactiveColor, z: @z+2 ) @nameLabel.x = @baseCircle.x + @baseCircle.width / 2 - @nameLabel.width / 2 @nameLabel.y = @baseCircle.y + @baseCircle.height / 2 - @nameLabel.height / 2 end