home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 December
/
PCWorld_2000-12_cd.bin
/
Komunikace
/
Comanche
/
gui
/
guiMultipleChoice.tcl
< prev
next >
Wrap
Text File
|
2000-11-02
|
2KB
|
68 lines
class guiMultipleChoice {
inherit guiObject
variable listBox
variable nameMap
constructor {frame xuiObject} {
set subject $xuiObject
set label [$subject getLabel]
set contframe [ frame $frame.f]
set scwin [ScrolledWindow $contframe.scwin]
set listBox [ ListBox [$scwin getframe].listbox -multicolumn 0 \
-background white -height 8 -selectbackground DarkBlue \
-selectforeground white]
$listBox bindText <Button-1> [code $this toggleItem ]
$listBox bindImage <Button-1> [code $this toggleItem ]
$scwin setwidget $listBox
pack [label $contframe.label -text $label ] -fill x
pack $scwin -fill both -expand true
pack $contframe -fill both -expand true
foreach {name text} [$subject getChoices] {
#puts "Adding $name $text"
addItem $name $text
}
foreach name [$subject getSelected] {
toggleItem $nameMap($name)
}
}
method sync {}
method addItem { name text }
method toggleItem { item }
}
body guiMultipleChoice::addItem { name text} {
set id [unique::newId]
set nameMap($name) $id
$listBox insert end $id \
-text $text \
-data $name -image unchecked
}
body guiMultipleChoice::toggleItem { item } {
switch [$listBox itemcget $item -image] {
checked {
$listBox itemconfigure $item -image unchecked
} default {
$listBox itemconfigure $item -image checked
}
}
sync
}
body guiMultipleChoice::sync {} {
set result ""
foreach one [$listBox items] {
switch [$listBox itemcget $one -image] {
checked {
append result " [$listBox itemcget $one -data]"
} unchecked {
#do nothing
}
}
}
$subject selectItem $result
}