From: reavey Date: 2003-02-27T08:11:35+09:00 Subject: passing argument to execute a program I don't see how to add an argument to get this tutorial script to run. I've tried ruby -i [1] test1.rb etc... thanks in advance re-v require 'gtk' # This program takes an argument. # Make sure that we have an argument. unless which = ARGV.shift raise "This program takes a numeric argument from 1-3" Gtk::main_quit end # Make a box with button-labels. Arguments for the variables # we're interested are passed in to this function. def make_box(homogeneous, spacing, expand, fill, padding) hbox = Gtk::HBox.new(homogeneous, spacing) # Create some buttons. button = Gtk::Button.new "box.pack " hbox.pack_start button, expand, fill, padding button = Gtk::Button.new "button, " hbox.pack_start button, expand, fill, padding button = Gtk::Button.new "#{expand}, " hbox.pack_start button, expand, fill, padding button = Gtk::Button.new "#{fill}, " hbox.pack_start button, expand, fill, padding button = Gtk::Button.new "#{padding}" hbox.pack_start button, expand, fill, padding hbox end window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL) # This time we connect the 'delete_event' signal straight to Gtk.main_quit # so we don't need to connect the 'destroy' signal. window.signal_connect('delete_event') { Gtk.main_quit } window.border_width 10 # Create a vertical box to pack the horizontal boxes into. vbox = Gtk::VBox.new(false, 0) window.add vbox case which when '1' label = Gtk::Label.new "Gtk::HBox.new false, 0" vbox.pack_start label, false, false, 0 hbox = make_box false, 0, false, false, 0 vbox.pack_start hbox, false, false, 0 hbox = make_box false, 0, true, false, 0 vbox.pack_start hbox, false, false, 0 hbox = make_box false, 0, true, true, 0 vbox.pack_start hbox, false, false, 0 separator = Gtk::HSeparator.new vbox.pack_start separator, false, true, 5 label = Gtk::Label.new "Gtk::HBox.new true, 0" vbox.pack_start label, false, false, 0 hbox = make_box true, 0, true, false, 0 vbox.pack_start hbox, false, false, 0 hbox = make_box true, 0, true, true, 0 vbox.pack_start hbox, false, false, 0 separator = Gtk::HSeparator.new vbox.pack_start separator, false, true, 5 when '2' label = Gtk::Label.new "Gtk::HBox false, 10" vbox.pack_start label, false, false, 0 hbox = make_box false, 10, true, false, 0 vbox.pack_start hbox, false, false, 0 hbox = make_box false, 10, true, true, 0 vbox.pack_start hbox, false, false, 0 separator = Gtk::HSeparator.new vbox.pack_start separator, false, true, 5 label = Gtk::Label.new 'Gtk::Hbox.new false, 0' vbox.pack_start label, false, false, 0 hbox = make_box false, 0, true, false, 10 vbox.pack_start hbox, false, false, 0 hbox = make_box false, 0, true, true, 10 vbox.pack_start hbox, false, false, 0 separator = Gtk::HSeparator.new vbox.pack_start separator, false, true, 5 label = Gtk::Label.new 'Gtk::Hbox.new false, 0' vbox.pack_start label, false, false, 0 hbox = make_box false, 0, true, false, 10 vbox.pack_start hbox, false, false, 0 hbox = make_box false, 0, true, true, 10 vbox.pack_start hbox, false, false, 0 separator = Gtk::HSeparator.new vbox.pack_start separator, false, true, 5 when '3' # This demonstrates how we can use pack_end to right-justify # widgets. You will have to resize the window to see the # right justification. hbox = make_box false, 0, false, false, 0 label = Gtk::Label.new("end") # Pack label into an hbox and pack the hbox into a vbox. hbox.pack_end label, false, false, 0 vbox.pack_end hbox, false, false, 0 # Separator separator = Gtk::HSeparator.new vbox.pack_start separator, false, true, 5 else puts "Argument '#{which}' is not an integer from 1 to 3" end window.show_all Gtk.main