Import build of Tcl/Tk 8.6.10
This commit is contained in:
@@ -1,179 +1,179 @@
|
||||
# -*-mode: tcl; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
|
||||
#
|
||||
# $Id: ChkList.tcl,v 1.3 2001/12/09 05:31:07 idiscovery Exp $
|
||||
#
|
||||
# Tix Demostration Program
|
||||
#
|
||||
# This sample program is structured in such a way so that it can be
|
||||
# executed from the Tix demo program "widget": it must have a
|
||||
# procedure called "RunSample". It should also have the "if" statment
|
||||
# at the end of this file so that it can be run as a standalone
|
||||
# program using tixwish.
|
||||
|
||||
# This program demonstrates the use of the tixCheckList widget.
|
||||
#
|
||||
|
||||
proc RunSample {w} {
|
||||
set top [frame $w.f -bd 1 -relief raised]
|
||||
set box [tixButtonBox $w.b -bd 1 -relief raised]
|
||||
|
||||
pack $box -side bottom -fill both
|
||||
pack $top -side top -fill both -expand yes
|
||||
|
||||
#------------------------------------------------------------
|
||||
# Create the 1st CheckList (Multiple Selection)
|
||||
#
|
||||
set f [frame $top.f1]
|
||||
pack $f -side left -expand yes -fill both -padx 4
|
||||
|
||||
set l [label $f.l -text "Choose languages: "]
|
||||
pack $l -side top -fill x -padx 4 -pady 4
|
||||
|
||||
set c1 [tixCheckList $f.c -scrollbar auto]
|
||||
pack $c1 -expand yes -fill both -padx 4 -pady 4
|
||||
|
||||
set b1 [button $f.btn -text "Results >>" -command "ChkList_Result $c1"]
|
||||
pack $b1 -anchor c
|
||||
#------------------------------------------------------------
|
||||
# Create the 2nd CheckList (Single Selection, using the -radio option)
|
||||
#
|
||||
set f [frame $top.f2]
|
||||
pack $f -side left -expand yes -fill both -padx 4
|
||||
|
||||
set l [label $f.l -text "Choose one language: "]
|
||||
pack $l -side top -fill x -padx 4 -pady 4
|
||||
|
||||
set c2 [tixCheckList $f.c -scrollbar auto -radio true]
|
||||
pack $c2 -expand yes -fill both -padx 4 -pady 4
|
||||
|
||||
# Fill up the two checklists with languages
|
||||
#
|
||||
set names(1) "Ada"
|
||||
set names(2) "BCPL"
|
||||
set names(3) "C"
|
||||
set names(4) "Dylan"
|
||||
set names(5) "Eiffel"
|
||||
set names(6) "Fortran"
|
||||
set names(7) "Incr Tcl"
|
||||
set names(8) "Python"
|
||||
set names(9) "Scheme"
|
||||
set names(0) "TCL"
|
||||
|
||||
set h1 [$c1 subwidget hlist]
|
||||
set h2 [$c2 subwidget hlist]
|
||||
|
||||
foreach ent {1 2 3 4 5 6 7 8 9 0} {
|
||||
$h1 add $ent -itemtype imagetext -text $names($ent)
|
||||
}
|
||||
|
||||
foreach ent {1 2 3 4 5 6 7 8 9 0} {
|
||||
$h2 add $ent -itemtype imagetext -text $names($ent)
|
||||
$c2 setstatus $ent off
|
||||
}
|
||||
|
||||
$c1 setstatus 1 on
|
||||
$c1 setstatus 2 on
|
||||
$c1 setstatus 3 default
|
||||
$c1 setstatus 4 off
|
||||
$c1 setstatus 5 off
|
||||
$c1 setstatus 6 on
|
||||
$c1 setstatus 7 off
|
||||
$c1 setstatus 8 on
|
||||
$c1 setstatus 9 on
|
||||
$c1 setstatus 0 default
|
||||
|
||||
|
||||
#------------------------------------------------------------
|
||||
# Create the 3nd CheckList (a tree). Also, we disable some
|
||||
# sub-selections if the top-level selections are not selected.
|
||||
# i.e., if the user doesn't like any functional languages,
|
||||
# make sure he doesn't select Lisp.
|
||||
#
|
||||
set f [frame $top.f3]
|
||||
pack $f -side left -expand yes -fill both -padx 4
|
||||
|
||||
set l [label $f.l -text "Choose languages: "]
|
||||
pack $l -side top -fill x -padx 4 -pady 4
|
||||
|
||||
set c3 [tixCheckList $f.c -scrollbar auto -options {
|
||||
hlist.indicator 1
|
||||
hlist.indent 20
|
||||
}]
|
||||
pack $c3 -expand yes -fill both -padx 4 -pady 4
|
||||
|
||||
set h3 [$c3 subwidget hlist]
|
||||
|
||||
$h3 add 0 -itemtype imagetext -text "Functional Languages"
|
||||
$h3 add 1 -itemtype imagetext -text "Imperative Languages"
|
||||
|
||||
$h3 add 0.0 -itemtype imagetext -text Lisp
|
||||
$h3 add 0.1 -itemtype imagetext -text Scheme
|
||||
$h3 add 1.0 -itemtype imagetext -text C
|
||||
$h3 add 1.1 -itemtype imagetext -text Python
|
||||
|
||||
$c3 setstatus 0 on
|
||||
$c3 setstatus 1 on
|
||||
$c3 setstatus 0.0 off
|
||||
$c3 setstatus 0.1 off
|
||||
$c3 setstatus 1.0 on
|
||||
$c3 setstatus 1.1 off
|
||||
|
||||
$c3 config -browsecmd "ChkList:Monitor $c3"
|
||||
$c3 config -command "ChkList:Monitor $c3"
|
||||
|
||||
$c3 autosetmode
|
||||
|
||||
global chklist tixOption
|
||||
set chklist(disabled) [tixDisplayStyle imagetext -fg $tixOption(disabled_fg) \
|
||||
-refwindow [$c3 subwidget hlist]]
|
||||
set chklist(normal) [tixDisplayStyle imagetext -fg black \
|
||||
-refwindow [$c3 subwidget hlist]]
|
||||
|
||||
# Create the buttons
|
||||
#
|
||||
$box add ok -text Ok -command "destroy $w" -width 6
|
||||
$box add cancel -text Cancel -command "destroy $w" -width 6
|
||||
}
|
||||
|
||||
proc ChkList_Result {clist} {
|
||||
tixDemo:Status "Selected items: [$clist getselection on]"
|
||||
tixDemo:Status "Unselected items: [$clist getselection off]"
|
||||
tixDemo:Status "Default items: [$clist getselection default]"
|
||||
}
|
||||
|
||||
# This function monitors if any of the two "general groups"
|
||||
# (functional and imperative languages) are de-selected. If so, it
|
||||
# sets all the sub-selections to non-selectable by setting their -state
|
||||
# to disabled.
|
||||
#
|
||||
proc ChkList:Monitor {c3 ent} {
|
||||
global chklist
|
||||
|
||||
set h [$c3 subwidget hlist]
|
||||
|
||||
if {[$c3 getstatus 0] == "on"} {
|
||||
set state normal
|
||||
} else {
|
||||
set state disabled
|
||||
}
|
||||
|
||||
$h entryconfig 0.0 -state $state -style $chklist($state)
|
||||
$h entryconfig 0.1 -state $state -style $chklist($state)
|
||||
|
||||
if {[$c3 getstatus 1] == "on"} {
|
||||
set state normal
|
||||
} else {
|
||||
set state disabled
|
||||
}
|
||||
|
||||
$h entryconfig 1.0 -state $state -style $chklist($state)
|
||||
$h entryconfig 1.1 -state $state -style $chklist($state)
|
||||
}
|
||||
|
||||
if {![info exists tix_demo_running]} {
|
||||
wm withdraw .
|
||||
set w .demo
|
||||
toplevel $w; wm transient $w ""
|
||||
RunSample $w
|
||||
bind $w <Destroy> exit
|
||||
}
|
||||
# -*-mode: tcl; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
|
||||
#
|
||||
# $Id: ChkList.tcl,v 1.3 2001/12/09 05:31:07 idiscovery Exp $
|
||||
#
|
||||
# Tix Demostration Program
|
||||
#
|
||||
# This sample program is structured in such a way so that it can be
|
||||
# executed from the Tix demo program "widget": it must have a
|
||||
# procedure called "RunSample". It should also have the "if" statment
|
||||
# at the end of this file so that it can be run as a standalone
|
||||
# program using tixwish.
|
||||
|
||||
# This program demonstrates the use of the tixCheckList widget.
|
||||
#
|
||||
|
||||
proc RunSample {w} {
|
||||
set top [frame $w.f -bd 1 -relief raised]
|
||||
set box [tixButtonBox $w.b -bd 1 -relief raised]
|
||||
|
||||
pack $box -side bottom -fill both
|
||||
pack $top -side top -fill both -expand yes
|
||||
|
||||
#------------------------------------------------------------
|
||||
# Create the 1st CheckList (Multiple Selection)
|
||||
#
|
||||
set f [frame $top.f1]
|
||||
pack $f -side left -expand yes -fill both -padx 4
|
||||
|
||||
set l [label $f.l -text "Choose languages: "]
|
||||
pack $l -side top -fill x -padx 4 -pady 4
|
||||
|
||||
set c1 [tixCheckList $f.c -scrollbar auto]
|
||||
pack $c1 -expand yes -fill both -padx 4 -pady 4
|
||||
|
||||
set b1 [button $f.btn -text "Results >>" -command "ChkList_Result $c1"]
|
||||
pack $b1 -anchor c
|
||||
#------------------------------------------------------------
|
||||
# Create the 2nd CheckList (Single Selection, using the -radio option)
|
||||
#
|
||||
set f [frame $top.f2]
|
||||
pack $f -side left -expand yes -fill both -padx 4
|
||||
|
||||
set l [label $f.l -text "Choose one language: "]
|
||||
pack $l -side top -fill x -padx 4 -pady 4
|
||||
|
||||
set c2 [tixCheckList $f.c -scrollbar auto -radio true]
|
||||
pack $c2 -expand yes -fill both -padx 4 -pady 4
|
||||
|
||||
# Fill up the two checklists with languages
|
||||
#
|
||||
set names(1) "Ada"
|
||||
set names(2) "BCPL"
|
||||
set names(3) "C"
|
||||
set names(4) "Dylan"
|
||||
set names(5) "Eiffel"
|
||||
set names(6) "Fortran"
|
||||
set names(7) "Incr Tcl"
|
||||
set names(8) "Python"
|
||||
set names(9) "Scheme"
|
||||
set names(0) "TCL"
|
||||
|
||||
set h1 [$c1 subwidget hlist]
|
||||
set h2 [$c2 subwidget hlist]
|
||||
|
||||
foreach ent {1 2 3 4 5 6 7 8 9 0} {
|
||||
$h1 add $ent -itemtype imagetext -text $names($ent)
|
||||
}
|
||||
|
||||
foreach ent {1 2 3 4 5 6 7 8 9 0} {
|
||||
$h2 add $ent -itemtype imagetext -text $names($ent)
|
||||
$c2 setstatus $ent off
|
||||
}
|
||||
|
||||
$c1 setstatus 1 on
|
||||
$c1 setstatus 2 on
|
||||
$c1 setstatus 3 default
|
||||
$c1 setstatus 4 off
|
||||
$c1 setstatus 5 off
|
||||
$c1 setstatus 6 on
|
||||
$c1 setstatus 7 off
|
||||
$c1 setstatus 8 on
|
||||
$c1 setstatus 9 on
|
||||
$c1 setstatus 0 default
|
||||
|
||||
|
||||
#------------------------------------------------------------
|
||||
# Create the 3nd CheckList (a tree). Also, we disable some
|
||||
# sub-selections if the top-level selections are not selected.
|
||||
# i.e., if the user doesn't like any functional languages,
|
||||
# make sure he doesn't select Lisp.
|
||||
#
|
||||
set f [frame $top.f3]
|
||||
pack $f -side left -expand yes -fill both -padx 4
|
||||
|
||||
set l [label $f.l -text "Choose languages: "]
|
||||
pack $l -side top -fill x -padx 4 -pady 4
|
||||
|
||||
set c3 [tixCheckList $f.c -scrollbar auto -options {
|
||||
hlist.indicator 1
|
||||
hlist.indent 20
|
||||
}]
|
||||
pack $c3 -expand yes -fill both -padx 4 -pady 4
|
||||
|
||||
set h3 [$c3 subwidget hlist]
|
||||
|
||||
$h3 add 0 -itemtype imagetext -text "Functional Languages"
|
||||
$h3 add 1 -itemtype imagetext -text "Imperative Languages"
|
||||
|
||||
$h3 add 0.0 -itemtype imagetext -text Lisp
|
||||
$h3 add 0.1 -itemtype imagetext -text Scheme
|
||||
$h3 add 1.0 -itemtype imagetext -text C
|
||||
$h3 add 1.1 -itemtype imagetext -text Python
|
||||
|
||||
$c3 setstatus 0 on
|
||||
$c3 setstatus 1 on
|
||||
$c3 setstatus 0.0 off
|
||||
$c3 setstatus 0.1 off
|
||||
$c3 setstatus 1.0 on
|
||||
$c3 setstatus 1.1 off
|
||||
|
||||
$c3 config -browsecmd "ChkList:Monitor $c3"
|
||||
$c3 config -command "ChkList:Monitor $c3"
|
||||
|
||||
$c3 autosetmode
|
||||
|
||||
global chklist tixOption
|
||||
set chklist(disabled) [tixDisplayStyle imagetext -fg $tixOption(disabled_fg) \
|
||||
-refwindow [$c3 subwidget hlist]]
|
||||
set chklist(normal) [tixDisplayStyle imagetext -fg black \
|
||||
-refwindow [$c3 subwidget hlist]]
|
||||
|
||||
# Create the buttons
|
||||
#
|
||||
$box add ok -text Ok -command "destroy $w" -width 6
|
||||
$box add cancel -text Cancel -command "destroy $w" -width 6
|
||||
}
|
||||
|
||||
proc ChkList_Result {clist} {
|
||||
tixDemo:Status "Selected items: [$clist getselection on]"
|
||||
tixDemo:Status "Unselected items: [$clist getselection off]"
|
||||
tixDemo:Status "Default items: [$clist getselection default]"
|
||||
}
|
||||
|
||||
# This function monitors if any of the two "general groups"
|
||||
# (functional and imperative languages) are de-selected. If so, it
|
||||
# sets all the sub-selections to non-selectable by setting their -state
|
||||
# to disabled.
|
||||
#
|
||||
proc ChkList:Monitor {c3 ent} {
|
||||
global chklist
|
||||
|
||||
set h [$c3 subwidget hlist]
|
||||
|
||||
if {[$c3 getstatus 0] == "on"} {
|
||||
set state normal
|
||||
} else {
|
||||
set state disabled
|
||||
}
|
||||
|
||||
$h entryconfig 0.0 -state $state -style $chklist($state)
|
||||
$h entryconfig 0.1 -state $state -style $chklist($state)
|
||||
|
||||
if {[$c3 getstatus 1] == "on"} {
|
||||
set state normal
|
||||
} else {
|
||||
set state disabled
|
||||
}
|
||||
|
||||
$h entryconfig 1.0 -state $state -style $chklist($state)
|
||||
$h entryconfig 1.1 -state $state -style $chklist($state)
|
||||
}
|
||||
|
||||
if {![info exists tix_demo_running]} {
|
||||
wm withdraw .
|
||||
set w .demo
|
||||
toplevel $w; wm transient $w ""
|
||||
RunSample $w
|
||||
bind $w <Destroy> exit
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user