home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 December
/
PCWorld_2000-12_cd.bin
/
Komunikace
/
Comanche
/
gui
/
guiStructure.tcl
< prev
Wrap
Text File
|
2000-11-02
|
2KB
|
98 lines
class guiStructure {
inherit guiObject
variable elements
variable containerFrames
variable bframe
constructor {frame xuiObject guiBuilder} {
set subject $xuiObject
set surrFrame $frame
if ![string compare [$subject getStyle] normal] {
set bframe [TitleFrame $frame.tf -relief groove \
-text [$subject getLabel]]
set surrFrame [$bframe getframe]
} else {
set surrFrame [set bframe [frame $frame.tf]]
}
pack $bframe -fill both -expand true
switch [$subject getAlign] {
horizontal {
set side left
} vertical {
set side top
} default {
set side top
}
}
set labeled {}
set maxLabelSize 0
set i 0
foreach structureItem [$subject getComponents] {
set newFrame [frame $surrFrame.$i]
lappend containerFrames $newFrame
set gui [$guiBuilder render $newFrame $structureItem]
lappend elements $gui
incr i
pack $newFrame -side $side -expand true -fill both -anchor w
if [ $gui isa guiLabeled ] {
lappend labeled $gui
if [expr [$gui getLabelLength] > $maxLabelSize] {
set maxLabelSize [$gui getLabelLength]
}
}
}
if [expr $maxLabelSize > 40] {
set maxLabelSize 40
}
foreach element $labeled {
$element setLabelLength $maxLabelSize
}
}
destructor {
eval delete object $elements
eval destroy $containerFrames
eval destroy $bframe
}
method enableAll {}
method disableAll {}
method enable {}
method disable {}
method queryState {}
}
body guiStructure::enableAll {} {
foreach element $elements {
$element enable
}
}
body guiStructure::disableAll {} {
foreach element $elements {
$element disable
}
}
body guiStructure::enable {} {
set state 1
enableAll
}
body guiStructure::disable {} {
set state 0
disableAll
}
body guiStructure::queryState {} {
return $state
}