class Glimmer::LibUI::ControlProxy::ColorButtonProxy

Proxy for LibUI color button objects

Follows the Proxy Design Pattern

Public Instance Methods

a(value = nil)
Alias for: alpha
a=(value = nil)
Alias for: alpha
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
Also aliased as: alpha=, set_alpha, a, a=, set_a
alpha=(value = nil)
Alias for: alpha
b(value = nil)
Alias for: blue
b=(value = nil)
Alias for: blue
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
Also aliased as: blue=, set_blue, b, b=, set_b
blue=(value = nil)
Alias for: blue
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
Also aliased as: color=, set_color
color=(value = nil)
Alias for: color
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
g(value = nil)
Alias for: green
g=(value = nil)
Alias for: green
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
Also aliased as: green=, set_green, g, g=, set_g
green=(value = nil)
Alias for: green
r(value = nil)
Alias for: red
r=(value = nil)
Alias for: red
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
Also aliased as: red=, set_red, r, r=, set_r
red=(value = nil)
Alias for: red
set_a(value = nil)
Alias for: alpha
set_alpha(value = nil)
Alias for: alpha
set_b(value = nil)
Alias for: blue
set_blue(value = nil)
Alias for: blue
set_color(value = nil)
Alias for: color
set_g(value = nil)
Alias for: green
set_green(value = nil)
Alias for: green
set_r(value = nil)
Alias for: red
set_red(value = nil)
Alias for: red