class Fzeet::Application
Attributes
accelerators[R]
devcaps[R]
dialogs[R]
images[R]
name[RW]
quitWhenMainWindowCloses[RW]
version[RW]
window[R]
Public Class Methods
quit(code = 0)
click to toggle source
# File lib/fzeet/windows.rb, line 110 def self.quit(code = 0) accelerators.each(&:dispose) images.values.each(&:dispose) Windows.PostQuitMessage(code) end
run(windowOrOpts = {}, &block)
click to toggle source
# File lib/fzeet/windows.rb, line 78 def self.run(windowOrOpts = {}, &block) @window = case windowOrOpts when BasicWindow; windowOrOpts.tap { |window| block.call(window) if block } when Hash if windowOrOpts[:deferCreateWindow].tap { windowOrOpts.delete_if { |k, v| k == :deferCreateWindow } } Window.new(windowOrOpts, &block) else Window.new(windowOrOpts).tap { |window| block.call(window) if block } end else raise ArgumentError end return 0 if window.handle.null? @window.on(:destroy) { quit } if @quitWhenMainWindowCloses @window.show.update msg = Message.new while msg.get! msg.translate.dispatch unless (window.client && Windows.TranslateMDISysAccel(window.client.handle, msg) != 0) || accelerators.any? { |table| table.translate?(msg, @window) } || dialogs.any? { |dialog| dialog.dlgmsg?(msg) } end msg[:wParam] rescue Fzeet.message %Q{#{$!}\n\n#{$!.backtrace.join("\n")}}, icon: :error end
window=(window)
click to toggle source
# File lib/fzeet/windows.rb, line 72 def self.window=(window) raise 'Application.window already set.' if @window @window = window end