class Fzeet::Application

Attributes

accelerators[R]
authors[RW]
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