Sha256: 6568db29e39d8d69c9cc977d5fe8c9042634b21c8621f6aaebb8d7fe978d7589

Contents?: true

Size: 1.41 KB

Versions: 5

Compression:

Stored size: 1.41 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 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

5 entries across 5 versions & 1 rubygems

Version Path
wxruby-1.9.2-powerpc-darwin8.10.0 lib/wx/classes/app.rb
wxruby-1.9.2-i686-linux lib/wx/classes/app.rb
wxruby-1.9.2-i686-darwin8.8.2 lib/wx/classes/app.rb
wxruby-1.9.2-i386-mswin32 lib/wx/classes/app.rb
wxruby-1.9.2-x86_64-linux lib/wx/classes/app.rb