Sha256: b5dfe5fbe23724ff141e8a18d2efdc137246f6f9a5c1479ea5bac3252d2c85ae

Contents?: true

Size: 1.56 KB

Versions: 24

Compression:

Stored size: 1.56 KB

Contents

# Copyright 2004-2006 by Kevin Smith
# released under the MIT-style wxruby2 license

# Controller class which creates and manages all windows.
class Wx::App
  # Convenience class method to create simple apps. Starts an
  # application main_loop, setting up initial windows etc as specified
  # in the passed block.
  # block 
  def self.run(&block)
    app_klass = Class.new(self)
    app_klass.class_eval do
      define_method(:on_init, &block)
    end
    the_app = app_klass.new
    the_app.main_loop
  end

  # This is a class method in Wx, but permit it to be an instance method
  # in wxRuby
  def is_main_loop_running
    Wx::App.is_main_loop_running
  end

  # This method handles failed assertions from within the WxWidgets C++
  # code. These messages are only generated by a DEBUG build of
  # WxRuby. Such messages usually indicate that the API is being used
  # incorrectly; the file/line reference points to the place in the
  # WxWidgets source code where the assertion was made.
  define_method(:on_assert_failure) do | file, line, condition, message |
    warn "Wx WARNING: #{message} (#{file}:#{line})"
  end

  # For use in development only, of no practical use in production code.
  # This method causes Ruby's garbage collection to run (roughly) at
  # interval +interval+ (seconds) - the default is 1, i.e. every
  # second. This should help ferret out bugs in memory management more
  # quickly.
  def gc_stress(interval = 1)
    t = Wx::Timer.new(self, 9999)
    evt_timer(9999) { Thread.pass }
    Thread.new { loop { sleep interval; GC.start } }
    t.start(100)
  end
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
wxruby-1.9.7-i386-mswin32 lib/wx/classes/app.rb
wxruby-1.9.5-i386-mswin32 lib/wx/classes/app.rb
wxruby-1.9.4-i386-mswin32 lib/wx/classes/app.rb
wxruby-1.9.3-i386-mswin32 lib/wx/classes/app.rb
wxruby-1.9.3-universal-darwin lib/wx/classes/app.rb
wxruby-1.9.3-x86-linux lib/wx/classes/app.rb
wxruby-1.9.4-x86-linux lib/wx/classes/app.rb
wxruby-1.9.4-x86_64-linux lib/wx/classes/app.rb
wxruby-1.9.5-universal-darwin-9 lib/wx/classes/app.rb
wxruby-1.9.5-x86-linux lib/wx/classes/app.rb
wxruby-1.9.5-x86_64-linux lib/wx/classes/app.rb
wxruby-1.9.6-universal-darwin-9 lib/wx/classes/app.rb
wxruby-1.9.6-x86-linux lib/wx/classes/app.rb
wxruby-1.9.6-x86-mingw32 lib/wx/classes/app.rb
wxruby-1.9.6-x86-mswin32-60 lib/wx/classes/app.rb
wxruby-1.9.7-universal-darwin-9 lib/wx/classes/app.rb
wxruby-1.9.7-x86-mswin32-60 lib/wx/classes/app.rb
wxruby-1.9.7-x86-linux lib/wx/classes/app.rb
wxruby-1.9.8-universal-darwin-9 lib/wx/classes/app.rb
wxruby-1.9.8-x86-linux lib/wx/classes/app.rb