lib/cyberarm_engine/ui/elements/button.rb in cyberarm_engine-0.19.0 vs lib/cyberarm_engine/ui/elements/button.rb in cyberarm_engine-0.19.1
- old
+ new
@@ -1,97 +1,97 @@
-module CyberarmEngine
- class Element
- class Button < TextBlock
- def initialize(text_or_image, options = {}, block = nil)
- @image = nil
- @scale_x = 1
- @scale_y = 1
-
- @image = text_or_image if text_or_image.is_a?(Gosu::Image)
-
- super(text_or_image, options, block)
-
- @style.background_canvas.background = @style.background
- end
-
- def render
- if @image
- draw_image
- else
- draw_text
- end
- end
-
- def draw_image
- @image.draw(
- @style.border_thickness_left + @style.padding_left + @x,
- @style.border_thickness_top + @style.padding_top + @y,
- @z + 2,
- @scale_x, @scale_y, @text.color
- )
- end
-
- def draw_text
- @text.draw
- end
-
- def recalculate
- unless @enabled
- @style.background_canvas.background = @style.disabled[:background]
- @text.color = @style.disabled[:color]
- else
- @style.background_canvas.background = @style.background
- @text.color = @style.color
- end
-
- if @image
- @width = 0
- @height = 0
-
- _width = dimensional_size(@style.image_width, :width)
- _height = dimensional_size(@style.image_height, :height)
-
- if _width && _height
- @scale_x = _width.to_f / @image.width
- @scale_y = _height.to_f / @image.height
- elsif _width
- @scale_x = _width.to_f / @image.width
- @scale_y = @scale_x
- elsif _height
- @scale_y = _height.to_f / @image.height
- @scale_x = @scale_y
- else
- @scale_x = 1
- @scale_y = 1
- end
-
- @width = _width || @image.width.round * @scale_x
- @height = _height || @image.height.round * @scale_y
-
- update_background
- else
- super
- end
- end
-
- def value
- @image || super
- end
-
- def value=(value)
- if value.is_a?(Gosu::Image)
- @image = value
- else
- super
- end
-
- old_width = width
- old_height = height
- recalculate
-
- root.gui_state.request_recalculate if old_width != width || old_height != height
-
- publish(:changed, self.value)
- end
- end
- end
-end
+module CyberarmEngine
+ class Element
+ class Button < TextBlock
+ def initialize(text_or_image, options = {}, block = nil)
+ @image = nil
+ @scale_x = 1
+ @scale_y = 1
+
+ @image = text_or_image if text_or_image.is_a?(Gosu::Image)
+
+ super(text_or_image, options, block)
+
+ @style.background_canvas.background = @style.background
+ end
+
+ def render
+ if @image
+ draw_image
+ else
+ draw_text
+ end
+ end
+
+ def draw_image
+ @image.draw(
+ @style.border_thickness_left + @style.padding_left + @x,
+ @style.border_thickness_top + @style.padding_top + @y,
+ @z + 2,
+ @scale_x, @scale_y, @text.color
+ )
+ end
+
+ def draw_text
+ @text.draw
+ end
+
+ def recalculate
+ unless @enabled
+ @style.background_canvas.background = @style.disabled[:background]
+ @text.color = @style.disabled[:color]
+ else
+ @style.background_canvas.background = @style.background
+ @text.color = @style.color
+ end
+
+ if @image
+ @width = 0
+ @height = 0
+
+ _width = dimensional_size(@style.image_width, :width)
+ _height = dimensional_size(@style.image_height, :height)
+
+ if _width && _height
+ @scale_x = _width.to_f / @image.width
+ @scale_y = _height.to_f / @image.height
+ elsif _width
+ @scale_x = _width.to_f / @image.width
+ @scale_y = @scale_x
+ elsif _height
+ @scale_y = _height.to_f / @image.height
+ @scale_x = @scale_y
+ else
+ @scale_x = 1
+ @scale_y = 1
+ end
+
+ @width = _width || @image.width.round * @scale_x
+ @height = _height || @image.height.round * @scale_y
+
+ update_background
+ else
+ super
+ end
+ end
+
+ def value
+ @image || super
+ end
+
+ def value=(value)
+ if value.is_a?(Gosu::Image)
+ @image = value
+ else
+ super
+ end
+
+ old_width = width
+ old_height = height
+ recalculate
+
+ root.gui_state.request_recalculate if old_width != width || old_height != height
+
+ publish(:changed, self.value)
+ end
+ end
+ end
+end