Sha256: 4b9d9b06c3c256ce6179ae81d009e1af5c0dfec469168b44e5471c5be9bf2533

Contents?: true

Size: 1.9 KB

Versions: 11

Compression:

Stored size: 1.9 KB

Contents

class Wx::XmlResource
  class << self
    wx_get = self.instance_method(:get)
    define_method(:get) do 
      result = wx_get.bind(self).call
      result.init_all_handlers
      result
    end

    wx_add_subclass_factory = self.instance_method(:add_subclass_factory)
    define_method(:add_subclass_factory) do |factory|
      @factories ||= []
      @factories << factory # keep Ruby factories alive through GC
      wx_add_subclass_factory.bind(self).call(factory)
    end
  end

  # Again, if created via new, switch subclassing off and init_all_handlers
  wx_init = self.instance_method(:initialize)
  define_method(:initialize) do | *args |
    result = wx_init.bind(self).call(*args)
    result.init_all_handlers
  end

  # The standard .load method returns a boolean indicating success or
  # failure. Failure might result from bad XML, or a non-existent
  # file. In ruby, in these circumstances, it's more natural to raise an
  # Exception than expect the user to test the return value.
  wx_load = self.instance_method(:load)
  define_method(:load) do | fname |
    result = wx_load.bind(self).call(fname)
    if not result
      Kernel.raise( RuntimeError,
                    "Failed to load XRC from '#{fname}'; " +
                    "check the file exists and is valid XML")
    end
    fname
  end

  # Returns a Wx::Wizard object from the element named +name+ in the
  # loaded XRC file. The Wizard will have the parent +parent+.
  # 
  # This method is not available in wxWidgets, but is here for
  # completeness and also to document how to use load_object (see
  # below).
  def load_wizard(parent, name)
    wiz = Wx::Wizard.new()
    load_wizard_subclass(wiz, parent, name)
    wiz
  end

  # Completes the loading of an incomplete instance of Wx::Wizard.
  def load_wizard_subclass(wizard, parent, name)
    load_object(wizard, parent, name, "wxWizard")
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
wxruby3-0.9.0.pre.rc.3-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.rc.2-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.rc.1-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.14-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.13-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.11-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.10-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.9-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.8-x64-mingw-ucrt lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.2-x64-mingw-ucrt-3.2-3.2.2 lib/wx/core/xmlresource.rb
wxruby3-0.9.0.pre.beta.1-x64-mingw-ucrt-3.2 lib/wx/core/xmlresource.rb