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