samples/xrc/xrc_sample.rb

Summary

Maintainability
A
0 mins
Test Coverage
begin
  require 'rubygems' 
rescue LoadError
end

begin
require 'rwx'
rescue LoadError
require "../../ext/rwx"
end

#STDERR.reopen("file.log","w")
# Basic Frame Class. This creates the dialog window
class SimpleFrame < WX::Frame 
  def initialize
    super nil, :title => "Sample", :position => [50, 50], :size => [300, 300]

    txt = "Choose 'Open Dialog' from the menu to see a dialog made with XRC"
    WX::StaticText.new self, :label => txt, :position => [20, 20]

    # Create a new menu
    self.menubar = WX::MenuBar.new(nil) {|mbar|
            mbar.append("File") {|menu|
                menu.append_normal(:open, "Open Dialog") {p SimpleDialog.new(self).show_modal }
                menu.append_normal(:exit, "Quit") { close }
            }
        }
  end
end

class SimpleDialog < WX::Dialog
  def initialize(parent)
    # To load a layout defined in XRC into a Ruby subclass of Dialog,
    WX::xrc_load_file("samples.xrc") {
        super(parent,'SAMPLE_DIALOG')
    }
    
    bind(:button_clicked,:ok) { end_modal(:ok) }
    bind(:button_clicked,:cancel) { end_modal(:cancel) }
    bind(:button_clicked,:SAMPLE_MESSAGE) { 
      WX::message_box(nil,"And now a message from our sponsors.")
     }

  end
end

# Application class.
class XrcApp < WX::App

  def on_init
    # Get a new resources object
    # Show the main frame.
    main = SimpleFrame.new
    main.show
  end
end

XrcApp.new.main_loop()