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 |
---|