4 source "boilerplate.tcl"
6 tlc
::Signal #auto flipflop
7 tlc
::Signal #auto alwaysfalse
8 $alwaysfalse set_state
1
10 proc lookup
{id name
} {
11 return [list 1 1 "Test"]
14 Form .form
-tooltipdelay 300 -schema {
16 "Dep1" {dep1
checkbutton}
18 "Child 3" {child3 vartextbox
}
19 "Child 4" {{child
4} date
}
20 "Child 5" {child5 lookup
}
25 "GE5" {{ge
5)d
} entry}
28 -headers {Foo Bar
} -item_schema {"Foo" {Foo date
} "Bar" Bar
}
29 -column_widths {Foo
50}
32 "Child 1" {child1
entry}
33 "Child 2" {child2
checkbutton}
34 "Tag Entry" {testtag tagentry
-policy space
}
36 {[string first
"boo" $dat(child3
)] != -1}
37 "Child 3 must contain \"boo\""
41 {$dat(child2
) == $dat(dep1
)}
42 "Dep1 and Child 2 must agree"
46 {$dat(child1
) == "Hello World"}
47 "Child 1 must be \"Hello World\""
50 _validation_not_blank
{
51 "%1 must be filled in"
59 label .valid
-text "Not valid"
61 .form itemconfig
"Child 1" -width 4
64 "Child 1" "This is an entry box!"
65 "Dep1" "This checkbox controlls many other elements"
68 .form itemconfig
"Child 5" -lookup_command lookup
70 .tools add
"Update" {.form mark_dirty
0} right
71 .tools add
"Show Data" {
73 array set tmp
[.form get_data
]
76 .tools add
"Close" {exit} right
77 .tools attach_signal
"Update" [.form dirty_gate_ref
]
79 proc update_valid_status
{isvalid desclist
} {
80 puts "update_valid_status: ($isvalid) ($desclist)"
81 .tools set_tips
"Update" [join $desclist \n]
84 .form register_handler valid_status_changed update_valid_status
85 .form force_form_valid_update
92 .form attach_signal
$alwaysfalse
93 .form attach_signal
$flipflop
95 set checked
[.form item_attach_expression
"Dep1" {$value == 1}]
97 .form item_attach_signal
"Child 1" $checked
98 .form item_attach_signal
"Child 2" $checked inverted
99 .form item_attach_signal
"Child 3" $checked
100 .form item_attach_signal
"Child 4" $checked
101 .form item_attach_signal
"Child 5" $checked
103 StateToggle
#auto toggles(valid_feedback) .valid \
104 -text {"Not Valid" "Valid"}
105 $toggles(valid_feedback
) attach_signal
[.form valid_gate_ref
]
109 $::flipflop toggle_state
110 puts "flipflop: ([$::flipflop state])"
111 .form set_data
[list name
[lindex {disabled enabled
} [$::flipflop state
]]]
113 #puts "gate: [.form explaingate]"
116 pack .form
-side top
-fill both
-expand true
117 pack .valid
-side top
-anchor w
118 pack .tools
-side top
-fill x
122 $flipflop set_state
1