Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | # labelframe.tcl -- |
2 | # | |
3 | # This demonstration script creates a toplevel window containing | |
4 | # several labelframe widgets. | |
5 | # | |
6 | # RCS: @(#) $Id: labelframe.tcl,v 1.2 2001/10/30 11:21:50 dkf Exp $ | |
7 | ||
8 | if {![info exists widgetDemo]} { | |
9 | error "This script should be run from the \"widget\" demo." | |
10 | } | |
11 | ||
12 | set w .labelframe | |
13 | catch {destroy $w} | |
14 | toplevel $w | |
15 | wm title $w "Labelframe Demonstration" | |
16 | wm iconname $w "labelframe" | |
17 | positionWindow $w | |
18 | ||
19 | # Some information | |
20 | ||
21 | label $w.msg -font $font -wraplength 4i -justify left -text "Labelframes are\ | |
22 | used to group related widgets together. The label may be either \ | |
23 | plain text or another widget." | |
24 | pack $w.msg -side top | |
25 | ||
26 | # The bottom buttons | |
27 | ||
28 | frame $w.buttons | |
29 | pack $w.buttons -side bottom -fill x -pady 2m | |
30 | button $w.buttons.dismiss -text Dismiss -command "destroy $w" -width 15 | |
31 | button $w.buttons.code -text "See Code" -command "showCode $w" -width 15 | |
32 | pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 | |
33 | ||
34 | # Demo area | |
35 | ||
36 | frame $w.f | |
37 | pack $w.f -side bottom -fill both -expand 1 | |
38 | set w $w.f | |
39 | ||
40 | # A group of radiobuttons in a labelframe | |
41 | ||
42 | labelframe $w.f -text "Value" -padx 2 -pady 2 | |
43 | grid $w.f -row 0 -column 0 -pady 2m -padx 2m | |
44 | ||
45 | foreach value {1 2 3 4} { | |
46 | radiobutton $w.f.b$value -text "This is value $value" \ | |
47 | -variable lfdummy -value $value | |
48 | pack $w.f.b$value -side top -fill x -pady 2 | |
49 | } | |
50 | ||
51 | ||
52 | # Using a label window to control a group of options. | |
53 | ||
54 | proc lfEnableButtons {w} { | |
55 | foreach child [winfo children $w] { | |
56 | if {$child == "$w.cb"} continue | |
57 | if {$::lfdummy2} { | |
58 | $child configure -state normal | |
59 | } else { | |
60 | $child configure -state disabled | |
61 | } | |
62 | } | |
63 | } | |
64 | ||
65 | labelframe $w.f2 -pady 2 -padx 2 | |
66 | checkbutton $w.f2.cb -text "Use this option." -variable lfdummy2 \ | |
67 | -command "lfEnableButtons $w.f2" -padx 0 | |
68 | $w.f2 configure -labelwidget $w.f2.cb | |
69 | grid $w.f2 -row 0 -column 1 -pady 2m -padx 2m | |
70 | ||
71 | set t 0 | |
72 | foreach str {Option1 Option2 Option3} { | |
73 | checkbutton $w.f2.b$t -text $str | |
74 | pack $w.f2.b$t -side top -fill x -pady 2 | |
75 | incr t | |
76 | } | |
77 | lfEnableButtons $w.f2 | |
78 | ||
79 | ||
80 | grid columnconfigure $w {0 1} -weight 1 |