class Glimmer::LibUI::ControlProxy::ColorButtonProxy
Proxy for LibUI
color button objects
Follows the Proxy Design Pattern
Public Instance Methods
alpha(value = nil)
click to toggle source
# File lib/glimmer/libui/control_proxy/color_button_proxy.rb, line 96 def alpha(value = nil) if value.nil? color[:a] else self.color = {a: value} end end
blue(value = nil)
click to toggle source
# File lib/glimmer/libui/control_proxy/color_button_proxy.rb, line 83 def blue(value = nil) if value.nil? color[:b] else self.color = {b: value} end end
color(value = nil)
click to toggle source
# File lib/glimmer/libui/control_proxy/color_button_proxy.rb, line 31 def color(value = nil) if value.nil? @red ||= Fiddle::Pointer.malloc(8) # double @green ||= Fiddle::Pointer.malloc(8) # double @blue ||= Fiddle::Pointer.malloc(8) # double @alpha ||= Fiddle::Pointer.malloc(8) # double ::LibUI.color_button_color(@libui, @red, @green, @blue, @alpha) { r: @red[0, 8].unpack1('d') * 255.0, g: @green[0, 8].unpack1('d') * 255.0, b: @blue[0, 8].unpack1('d') * 255.0, a: @alpha[0, 8].unpack1('d') } else current_color = color value = Glimmer::LibUI.interpret_color(value) value[:r] ||= current_color[:r] value[:g] ||= current_color[:g] value[:b] ||= current_color[:b] value[:a] ||= current_color[:a] ::LibUI.color_button_set_color(@libui, value[:r].to_f / 255.0, value[:g].to_f / 255.0, value[:b].to_f / 255.0, value[:a]) end end
data_bind_write(property, model_binding)
click to toggle source
# File lib/glimmer/libui/control_proxy/color_button_proxy.rb, line 117 def data_bind_write(property, model_binding) handle_listener('on_changed') { model_binding.call(color) } if property == 'color' end
destroy()
click to toggle source
Calls superclass method
Glimmer::LibUI::ControlProxy#destroy
# File lib/glimmer/libui/control_proxy/color_button_proxy.rb, line 109 def destroy Fiddle.free @red unless @red.nil? Fiddle.free @green unless @green.nil? Fiddle.free @blue unless @blue.nil? Fiddle.free @alpha unless @alpha.nil? super end
green(value = nil)
click to toggle source
# File lib/glimmer/libui/control_proxy/color_button_proxy.rb, line 70 def green(value = nil) if value.nil? color[:g] else self.color = {g: value} end end
red(value = nil)
click to toggle source
# File lib/glimmer/libui/control_proxy/color_button_proxy.rb, line 57 def red(value = nil) if value.nil? color[:r] else self.color = {r: value} end end