class Glimmer::LibUI::ControlProxy::MenuItemProxy::RadioMenuItemProxy

Proxy for LibUI radio menu item object

Follows the Proxy Design Pattern

Public Class Methods

new(keyword, parent, args, &block) click to toggle source
Calls superclass method Glimmer::LibUI::ControlProxy::new
# File lib/glimmer/libui/control_proxy/menu_item_proxy/radio_menu_item_proxy.rb, line 32
def initialize(keyword, parent, args, &block)
  @last_checked = nil
  super
end

Public Instance Methods

checked(value = nil) click to toggle source
Calls superclass method
# File lib/glimmer/libui/control_proxy/menu_item_proxy/radio_menu_item_proxy.rb, line 37
def checked(value = nil)
  if value.nil?
    super()
  else
    super
    if Glimmer::LibUI.integer_to_boolean(value, allow_nil: false) != Glimmer::LibUI.integer_to_boolean(@last_checked, allow_nil: false)
      if Glimmer::LibUI.integer_to_boolean(value)
        (@parent_proxy.children - [self]).select {|c| c.is_a?(MenuItemProxy)}.each do |menu_item|
          menu_item.checked = false
        end
      end
      @last_checked = checked
    end
  end
end
Also aliased as: checked?, set_checked, checked=
checked=(value = nil)
Alias for: checked
checked?(value = nil)
Alias for: checked
data_bind_write(property, model_binding) click to toggle source
# File lib/glimmer/libui/control_proxy/menu_item_proxy/radio_menu_item_proxy.rb, line 68
def data_bind_write(property, model_binding)
  handle_listener('on_clicked') { model_binding.call(checked) } if property == 'checked'
end
handle_listener(listener_name, &listener) click to toggle source
# File lib/glimmer/libui/control_proxy/menu_item_proxy/radio_menu_item_proxy.rb, line 56
def handle_listener(listener_name, &listener)
  if listener_name.to_s == 'on_clicked'
    radio_listener = Proc.new do
      self.checked = true
      listener.call(self)
    end
    super(listener_name, &radio_listener)
  else
    super
  end
end
set_checked(value = nil)
Alias for: checked

Private Instance Methods

build_control() click to toggle source
# File lib/glimmer/libui/control_proxy/menu_item_proxy/radio_menu_item_proxy.rb, line 74
def build_control
  @libui = @parent_proxy.append_check_item(*@args)
end