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