1# 2# form widget demo (called by 'widget') 3# 4 5# toplevel widget 6if defined?($form_demo) && $form_demo 7 $form_demo.destroy 8 $form_demo = nil 9end 10 11# demo toplevel widget 12$form_demo = TkToplevel.new {|w| 13 title("Form Demonstration") 14 iconname("form") 15 positionWindow(w) 16} 17 18base_frame = TkFrame.new($form_demo).pack(:fill=>:both, :expand=>true) 19 20# label 21msg = TkLabel.new(base_frame) { 22 font $font 23 wraplength '4i' 24 justify 'left' 25 text "This window contains a simple form where you can type in the various entries and use tabs to move circularly between the entries." 26} 27msg.pack('side'=>'top', 'fill'=>'x') 28 29# frame 30TkFrame.new(base_frame) {|frame| 31 TkButton.new(frame) { 32 text 'Dismiss' 33 command proc{ 34 tmppath = $form_demo 35 $form_demo = nil 36 tmppath.destroy 37 } 38 }.pack('side'=>'left', 'expand'=>'yes') 39 40 TkButton.new(frame) { 41 text 'Show Code' 42 command proc{showCode 'form'} 43 }.pack('side'=>'left', 'expand'=>'yes') 44}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m') 45 46# entry 47form_data = [] 48(1..5).each{|i| 49 f = TkFrame.new(base_frame, 'bd'=>2) 50 e = TkEntry.new(f, 'relief'=>'sunken', 'width'=>40) 51 l = TkLabel.new(f) 52 e.pack('side'=>'right') 53 l.pack('side'=>'left') 54 form_data[i] = {'frame'=>f, 'entry'=>e, 'label'=>l} 55} 56 57# 58form_data[1]['label'].text('Name:') 59form_data[2]['label'].text('Address:') 60form_data[5]['label'].text('Phone:') 61 62# pack 63(1..5).each{|i| form_data[i]['frame'].pack('side'=>'top', 'fill'=>'x')} 64 65