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
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
Calls superclass method
Glimmer::LibUI::ControlProxy#handle_listener
# 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
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