class Glimmer::LibUI::ControlProxy::MenuItemProxy::QuitMenuItemProxy
Proxy for LibUI
quit menu item object
Follows the Proxy Design Pattern
Public Instance Methods
can_handle_listener?(listener_name)
click to toggle source
Calls superclass method
Glimmer::LibUI::ControlProxy#can_handle_listener?
# File lib/glimmer/libui/control_proxy/menu_item_proxy/quit_menu_item_proxy.rb, line 32 def can_handle_listener?(listener_name) listener_name == 'on_clicked' || super end
destroy()
click to toggle source
Calls superclass method
Glimmer::LibUI::ControlProxy#destroy
# File lib/glimmer/libui/control_proxy/menu_item_proxy/quit_menu_item_proxy.rb, line 59 def destroy @on_clicked_listeners&.clear super end
handle_listener(listener_name, &listener)
click to toggle source
# File lib/glimmer/libui/control_proxy/menu_item_proxy/quit_menu_item_proxy.rb, line 36 def handle_listener(listener_name, &listener) if listener_name == 'on_clicked' @on_clicked_listeners ||= [] @on_clicked_listeners << listener @default_behavior_listener ||= Proc.new do return_value = nil @on_clicked_listeners.each do |l| return_value = l.call(self) break if return_value.is_a?(Numeric) end if return_value.is_a?(Numeric) return_value else ControlProxy.main_window_proxy&.destroy ::LibUI.quit 0 end end.tap do |default_behavior_listener| ::LibUI.on_should_quit(&default_behavior_listener) end end end
Private Instance Methods
build_control()
click to toggle source
# File lib/glimmer/libui/control_proxy/menu_item_proxy/quit_menu_item_proxy.rb, line 66 def build_control @libui = @parent_proxy.append_quit_item(*@args) # setup default on_clicked listener if no on_clicked listeners are setup handle_listener('on_clicked') {} if @on_clicked_listeners.nil? || @on_clicked_listeners.empty? end