var gtk2 = require('Gtk2') -> init; var gui = %s'Gtk2::Builder'.new; gui.add_from_string(DATA.slurp); func clicked_ok(*_) { var entry = gui.get_object('entry1'); var text = entry.get_text; var spinner = gui.get_object('spinbutton1'); var number = spinner.get_text; say "string: #{text}"; say "number: #{number}"; number == 75000 ? gtk2.main_quit : warn "Invalid number!"; } func clicked_cancel(*_) { gtk2.main_quit; } gui.get_object('button1').signal_connect('clicked', clicked_ok); gui.get_object('button2').signal_connect('clicked', clicked_cancel); gtk2.main; __DATA__ 100000 75000 1 10 True False True False True False Please insert a string and a number: True True 0 True False True False string: True True 55 0 True True False False True True True True 1 True True 1 True False True False number: True True 0 True True False False True True adjustment1 True True True 1 True True 2 True False spread gtk-ok True True True True False False 0 gtk-cancel True True True True False False 1 True True 3