œ_#ÁÕ§TE NAŒ“KeÉ:”(åŽÖJÞùY’‚ñùž7; «]Û ý`8g“¯B© jdÖÖ¸ðzœ¸¦4Ç3Kó^(ÍÖ¼ Õ€pvìwšõB4df$Èü^0˜…åÌC$#2FŽÑ§±¦ÛZ/÷š&m£ñzÒÖ ’.Î]!Î;ƒ(Õ–¢d/—#Kª+tZyuÏB>NÛÖ†(¸ŒSà'³„Y˜´-_•¦¼´˜OlNK§¶ÒàŠˆTHµƒeTPå·fïM’…þuÏÍüp6دªE£åü‡ZØ'CKF#â«;‹eyO Qp„†l"ö1èíÙP ÏŒúl! BÝ2ñª•_VÁÉ÷3eu`–F¸ìI--ö<¿žë¯4õ캿¢)34Å{wMÉ2ÆÖFŸ¥`e9Ú¶¸P‡.”FÔï rY ‚²ÈTB,{ÛœéJ}«àQ4¹0Rû4D‚B§S‘ dO•v¾„™Sן¯3FeŸ™«+ÓâwH dÕÛÌì·P4ë&¥#rÜÉ Ù¦ê†ý·xòqk¯2,¹§™E\ék‚×Sá”ÚºÙ⺷ö£6…à ʾ qSá³Å|;àû}4Ÿ($â¹VY~óÍ!èÜÒŒËX½Ù1j‚VíÍŸš³+œ]«½g{_{/vµ½\¢¶vÉWKÿ:ñám½ ¥ S²x‘t ŽšÝÙÿÀÇ^ný PK IW™k‚½÷ á _rels/.relsUT dìd dìd dìd’ÏNÃ0‡ï{ŠÈ÷ÕÝ@¡¥» ¤Ý*`%îÑ&QâÁöö‚J£ì°cœŸ¿|¶²ÙÆA½rL½wVE Šñ¶w†çúay * 9Kƒw¬áÈ ¶ÕbóÄIîI]’Ê—4t"á1™ŽGJ…ìòMããH’±Å@æ…ZÆuYÞ`üÍ€jÂT;«!îì T}|Û7MoøÞ›ýÈNN<|v–í2ÄÜ¥ÏèšbË¢Ázó˜Ë )„"£OÏ7ú{ZYÈ’yÞç#1'tuÉM?6o>Z´_å9›ëKÚ˜}?þ³žÏÌ·N>fµx PK IWª½e ¢ U € word/document.xmlUT dìdPK IWþË3” z €J¢ word/settings.xmlUT dìdPK IWC‡{š' ƒ €¤ docProps/custom.xmlUT dìdPK IW츱=Œ €‡¥ [Content_Types].xmlUT dìdPK IWV%ë±" €U§ docProps/app.xmlUT dìdPK IW€RŒ 3 €¶¨ docProps/core.xmlUT dìdPK IWkòDn ô €ª word/_rels/document.xml.relsUT dìdPK IW;$î €Î« word/fontTable.xmlUT dìdPK IW+åäz] ÷. €ý¬ word/numbering.xmlUT dìdPK IW¤2×r- ¿ €›° word/styles.xmlUT dìdPK IWMFÒ ø €´ word/header1.xmlUT dìdPK IWF— T e €· word/media/image1.jpegUT dìdPK IW!Yéáå €°Ë word/media/image2.pngUT dìdPK IW°Àºë ú €ÙÌ word/media/image3.pngUT dìdPK IW$“†ª L €Î word/footer1.xmlUT dìdPK IWzaGôM €ñÑ word/footer2.xmlUT dìdPK IW–µâº P €}Õ word/theme/theme1.xmlUT dìdPK IW™k‚½÷ á €{Û _rels/.relsUT PK ! bîh^ [Content_Types].xml ¢( ¬”ËNÃ0E÷HüCä-Jܲ@5í‚Ç*Q>Àēƪc[žiiÿž‰ûB¡j7±ÏÜ{2ñÍh²nm¶‚ˆÆ»R‹ÈÀU^7/ÅÇì%¿’rZYï @1__f› ˜q·ÃR4DáAJ¬h>€ãÚÇV߯¹ªZ¨9ÈÛÁàNVÞ8Ê©ÓãÑÔji){^óã-I‹"{Üv^¥P!XS)bR¹rú—K¾s(¸3Õ`cÞ0†½ÝÎß»¾7M4²©ŠôªZÆk+¿|\|z¿(Ž‹ôPúº6h_-[ž@!‚ÒØ Pk‹´2nÏ}Ä?£LËð Ýû%áÄßdºždN"m,à¥ÇžDO97*‚~§Èɸ8ÀOíc|n¦Ñ äEøÿöéºóÀBÉÀ!$}‡íàÈé;{ìÐå[ƒîñ–é2þ ÿÿ PK ! µU0#ô L _rels/.rels ¢( ¬’MOÃ0†ïHü‡È÷ÕÝBKwAH»!T~€Iܵ£$Ý¿'TƒG½~üÊÛÝ<êÈ!öâ4¬‹;#¶w†—úqu *&r–Fq¬áÄvÕõÕö™GJy(v½*«¸¨¡KÉß#FÓñD±Ï.W ¥†=™ZÆMYÞbø®ÕBS톰·7 ê“Ï›×–¦é ?ˆ9LìÒ™ÈsbgÙ®|Èl!õùUSh9i°bžr:"y_dlÀóD›¿ý|-NœÈR"4ø2ÏGÇ% õZ´4ñËyÄ7 ëÈðÉ‚‹¨Þ ÿÿ PK ! Q48wÛ — xl/workbook.xml¤UÙnâ0}iþ!cñ‡ *–¢AšVU×$dC¬&vÆv UÕŸë@XÊK§/¹p|Žï¹N÷b“¥Ö •Š ÞC¸î"‹òHÄŒ¯zèá~b·‘¥4á1I§=ôJºèÿüÑ] ù¼âÙ ®z(Ñ:GE ͈ª‹œrˆ,…̈†©\9*—”Ä*¡Tg©ã¹nàd„q´Eåg0ÄrÉ":Q‘Q®· ’¦D}•°\UhYô¸ŒÈç"·#‘å ±`)Ó¯%(²²(œ®¸d‘‚ì nZ w v¡ñª• t¶TÆ")”Xê:@;[Ògú±ë`|²›ó=ø’ïHúÂL÷¬dðEVÁ+8€a÷Ûh¬Uz%„Íû"ZsÏÍCýî’¥ôqk]‹äù5ÉL¦Rd¥Dé˘i÷P ¦bM/|dÉ",…¨çãFNoçiûéë>aêiçsó#ðÄ ÕTr¢éHp ÜIú®ÝJìQ"ÀÜÖ-ý[0I¡¦ÀZ Z…d¡nˆN¬B¦=4 g %PDF-1.4 %âãÏÓ 3 0 obj << /Linearized 1 /L 422775 ÿØÿà JFIF ÿÛ C ÿÛ C ÿÀ X" ÿÄ ÿÄ H !1A"Qaq2‘¡#±ÁBRÑ3Cbrá$S‚¢²ð4ñ%6DTc’ÂsÿÄ ÿÄ = !1AQ"aq‘Á2R¡±BÑð#3br’²4á$‚¢ÂñÿÚ ? áHBßÝ`„! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! ! stream
# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
# $Id: Control.tcl,v 1.9 2004/03/28 02:44:57 hobbs Exp $
#
# Control.tcl --
#
# Implements the TixControl Widget. It is called the "SpinBox"
# in other toolkits.
#
# Copyright (c) 1993-1999 Ioi Kim Lam.
# Copyright (c) 2000-2001 Tix Project Group.
# Copyright (c) 2004 ActiveState
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
tixWidgetClass tixControl {
-classname TixControl
-superclass tixLabelWidget
-method {
incr decr invoke update
}
-flag {
-allowempty -autorepeat -command -decrcmd -disablecallback
-disabledforeground -incrcmd -initwait -integer -llimit
-repeatrate -max -min -selectmode -step -state -validatecmd
-value -variable -ulimit
}
-forcecall {
-variable -state
}
-configspec {
{-allowempty allowEmpty AllowEmpty false}
{-autorepeat autoRepeat AutoRepeat true}
{-command command Command ""}
{-decrcmd decrCmd DecrCmd ""}
{-disablecallback disableCallback DisableCallback 0 tixVerifyBoolean}
{-disabledforeground disabledForeground DisabledForeground #303030}
{-incrcmd incrCmd IncrCmd ""}
{-initwait initWait InitWait 500}
{-integer integer Integer false}
{-max max Max ""}
{-min min Min ""}
{-repeatrate repeatRate RepeatRate 50}
{-step step Step 1}
{-state state State normal}
{-selectmode selectMode SelectMode normal}
{-validatecmd validateCmd ValidateCmd ""}
{-value value Value 0}
{-variable variable Variable ""}
}
-alias {
{-llimit -min}
{-ulimit -max}
}
-default {
{.borderWidth 0}
{*entry.relief sunken}
{*entry.width 5}
{*label.anchor e}
{*label.borderWidth 0}
{*Button.anchor c}
{*Button.borderWidth 2}
{*Button.highlightThickness 1}
{*Button.takeFocus 0}
}
}
proc tixControl:InitWidgetRec {w} {
upvar #0 $w data
tixChainMethod $w InitWidgetRec
set data(varInited) 0
set data(serial) 0
}
proc tixControl:ConstructFramedWidget {w frame} {
upvar #0 $w data
tixChainMethod $w ConstructFramedWidget $frame
set data(w:entry) [entry $frame.entry]
set data(w:incr) \
[button $frame.incr -bitmap [tix getbitmap incr] -takefocus 0]
set data(w:decr) \
[button $frame.decr -bitmap [tix getbitmap decr] -takefocus 0]
# tixForm $data(w:entry) -left 0 -top 0 -bottom -1 -right $data(w:decr)
# tixForm $data(w:incr) -right -1 -top 0 -bottom %50
# tixForm $data(w:decr) -right -1 -top $data(w:incr) -bottom -1
pack $data(w:entry) -side left -expand yes -fill both
pack $data(w:decr) -side bottom -fill both -expand yes
pack $data(w:incr) -side top -fill both -expand yes
$data(w:entry) delete 0 end
$data(w:entry) insert 0 $data(-value)
# This value is used to configure the disable/normal fg of the ebtry
set data(entryfg) [$data(w:entry) cget -fg]
set data(labelfg) [$data(w:label) cget -fg]
}
proc tixControl:SetBindings {w} {
upvar #0 $w data
tixChainMethod $w SetBindings
bind $data(w:incr) <ButtonPress-1> \
[list after idle tixControl:StartRepeat $w 1]
bind $data(w:decr) <ButtonPress-1> \
[list after idle tixControl:StartRepeat $w -1]
# These bindings will stop the button autorepeat when the
# mouse button is up
foreach btn [list $data(w:incr) $data(w:decr)] {
bind $btn <ButtonRelease-1> [list tixControl:StopRepeat $w]
}
tixSetMegaWidget $data(w:entry) $w
# If user press <return>, verify the value and call the -command
#
tixAddBindTag $data(w:entry) TixControl:Entry
}
proc tixControlBind {} {
tixBind TixControl:Entry <Return> {
tixControl:Invoke [tixGetMegaWidget %W] 1
}
tixBind TixControl:Entry <Escape> {
tixControl:Escape [tixGetMegaWidget %W]
}
tixBind TixControl:Entry <Up> {
[tixGetMegaWidget %W] incr
}
tixBind TixControl:Entry <Down> {
[tixGetMegaWidget %W] decr
}
tixBind TixControl:Entry <FocusOut> {
if {"%d" eq "NotifyNonlinear" || "%d" eq "NotifyNonlinearVirtual"} {
tixControl:Tab [tixGetMegaWidget %W] %d
}
}
tixBind TixControl:Entry <Any-KeyPress> {
tixControl:KeyPress [tixGetMegaWidget %W]
}
tixBind TixControl:Entry <Any-Tab> {
# This has a higher priority than the <Any-KeyPress> binding
# --> so that data(edited) is not set
}
}
#----------------------------------------------------------------------
# CONFIG OPTIONS
#----------------------------------------------------------------------
proc tixControl:config-state {w arg} {
upvar #0 $w data
if {$arg eq "normal"} {
$data(w:incr) config -state $arg
$data(w:decr) config -state $arg
catch {
$data(w:label) config -fg $data(labelfg)
}
$data(w:entry) config -state $arg -fg $data(entryfg)
} else {
$data(w:incr) config -state $arg
$data(w:decr) config -state $arg
catch {
$data(w:label) config -fg $data(-disabledforeground)
}
$data(w:entry) config -state $arg -fg $data(-disabledforeground)
}
}
proc tixControl:config-value {w value} {
upvar #0 $w data
tixControl:SetValue $w $value 0 1
# This will tell the Intrinsics: "Please use this value"
# because "value" might be altered by SetValues
#
return $data(-value)
}
proc tixControl:config-variable {w arg} {
upvar #0 $w data
if {[tixVariable:ConfigVariable $w $arg]} {
# The value of data(-value) is changed if tixVariable:ConfigVariable
# returns true
tixControl:SetValue $w $data(-value) 1 1
}
catch {
unset data(varInited)
}
set data(-variable) $arg
}
#----------------------------------------------------------------------
# User Commands
#----------------------------------------------------------------------
proc tixControl:incr {w {by 1}} {
upvar #0 $w data
if {$data(-state) ne "disabled"} {
if {![catch {$data(w:entry) index sel.first}]} {
$data(w:entry) select from end
$data(w:entry) select to end
}
# CYGNUS - why set value before changing it?
#tixControl:SetValue $w [$data(w:entry) get] 0 1
tixControl:AdjustValue $w $by
}
}
proc tixControl:decr {w {by 1}} {
upvar #0 $w data
if {$data(-state) ne "disabled"} {
if {![catch {$data(w:entry) index sel.first}]} {
$data(w:entry) select from end
$data(w:entry) select to end
}
# CYGNUS - why set value before changing it?
#tixControl:SetValue $w [$data(w:entry) get] 0 1
tixControl:AdjustValue $w [expr {0 - $by}]
}
}
proc tixControl:invoke {w} {
upvar #0 $w data
tixControl:Invoke $w 0
}
proc tixControl:update {w} {
upvar #0 $w data
if {[info exists data(edited)]} {
tixControl:invoke $w
}
}
#----------------------------------------------------------------------
# Internal Commands
#----------------------------------------------------------------------
# Change the value by a multiple of the data(-step)
#
proc tixControl:AdjustValue {w amount} {
upvar #0 $w data
if {$amount == 1 && [llength $data(-incrcmd)]} {
set newValue [tixEvalCmdBinding $w $data(-incrcmd) "" $data(-value)]
} elseif {$amount == -1 && [llength $data(-decrcmd)]} {
set newValue [tixEvalCmdBinding $w $data(-decrcmd) "" $data(-value)]
} else {
set newValue [expr {$data(-value) + $amount * $data(-step)}]
}
if {$data(-state) ne "disabled"} {
tixControl:SetValue $w $newValue 0 1
}
}
proc tixControl:SetValue {w newvalue noUpdate forced} {
upvar #0 $w data
if {[$data(w:entry) selection present]} {
set oldSelection [list [$data(w:entry) index sel.first] \
[$data(w:entry) index sel.last]]
}
set oldvalue $data(-value)
set oldCursor [$data(w:entry) index insert]
set changed 0
if {[llength $data(-validatecmd)]} {
# Call the user supplied validation command
#
set data(-value) [tixEvalCmdBinding $w $data(-validatecmd) "" $newvalue]
} else {
# Here we only allow int or floating numbers
#
# If the new value is not a valid number, the old value will be
# kept due to the "catch" statements
#
if {[catch {expr 0+$newvalue}]} {
set newvalue 0
set data(-value) 0
set changed 1
}
if {$newvalue == ""} {
if {![string is true -strict $data(-allowempty)]} {
set newvalue 0
set changed 1
} else {
set data(-value) ""
}
}
if {$newvalue != ""} {
# Change this to a valid decimal string (trim leading 0)
#
regsub -- {^[0]*} $newvalue "" newvalue
if {[catch {expr 0+$newvalue}]} {
set newvalue 0
set data(-value) 0
set changed 1
}
if {$newvalue == ""} {
set newvalue 0
}
if {[string is true -strict $data(-integer)]} {
set data(-value) [tixGetInt -nocomplain $newvalue]
} else {
if {[catch {set data(-value) [format "%d" $newvalue]}]} {
if {[catch {set data(-value) [expr $newvalue+0.0]}]} {
set data(-value) $oldvalue
}
}
}
# Now perform boundary checking
#
if {$data(-max) != "" && $data(-value) > $data(-max)} {
set data(-value) $data(-max)
}
if {$data(-min) != "" && $data(-value) < $data(-min)} {
set data(-value) $data(-min)
}
}
}
if {! $noUpdate} {
tixVariable:UpdateVariable $w
}
if {$forced || ($newvalue ne $data(-value)) || $changed} {
$data(w:entry) delete 0 end
$data(w:entry) insert 0 $data(-value)
$data(w:entry) icursor $oldCursor
if {[info exists oldSelection]} {
eval [list $data(w:entry) selection range] $oldSelection
}
}
if {!$data(-disablecallback) && $data(-command) != ""} {
if {![info exists data(varInited)]} {
set bind(specs) ""
tixEvalCmdBinding $w $data(-command) bind $data(-value)
}
}
}
proc tixControl:Invoke {w forced} {
upvar #0 $w data
catch {
unset data(edited)
}
if {[catch {$data(w:entry) index sel.first}] == 0} {
# THIS ENTRY OWNS SELECTION --> TURN IT OFF
#
$data(w:entry) select from end
$data(w:entry) select to end
}
tixControl:SetValue $w [$data(w:entry) get] 0 $forced
}
#----------------------------------------------------------------------
# The three functions StartRepeat, Repeat and StopRepeat make use of the
# data(serial) variable to discard spurious repeats: If a button is clicked
# repeatedly but is not hold down, the serial counter will increase
# successively and all "after" time event handlers will be discarded
#----------------------------------------------------------------------
proc tixControl:StartRepeat {w amount} {
if {![winfo exists $w]} {
return
}
upvar #0 $w data
incr data(serial)
# CYGNUS bug fix
# Need to set a local variable because otherwise the buttonrelease
# callback could change the value of data(serial) between now and
# the time the repeat is scheduled.
set serial $data(serial)
if {![catch {$data(w:entry) index sel.first}]} {
$data(w:entry) select from end
$data(w:entry) select to end
}
if {[info exists data(edited)]} {
unset data(edited)
tixControl:SetValue $w [$data(w:entry) get] 0 1
}
tixControl:AdjustValue $w $amount
if {$data(-autorepeat)} {
after $data(-initwait) tixControl:Repeat $w $amount $serial
}
focus $data(w:entry)
}
proc tixControl:Repeat {w amount serial} {
if {![winfo exists $w]} {
return
}
upvar #0 $w data
if {$serial eq $data(serial)} {
tixControl:AdjustValue $w $amount
if {$data(-autorepeat)} {
after $data(-repeatrate) tixControl:Repeat $w $amount $serial
}
}
}
proc tixControl:StopRepeat {w} {
upvar #0 $w data
incr data(serial)
}
proc tixControl:Destructor {w} {
tixVariable:DeleteVariable $w
# Chain this to the superclass
#
tixChainMethod $w Destructor
}
# ToDo: maybe should return -code break if the value is not good ...
#
proc tixControl:Tab {w detail} {
upvar #0 $w data
if {![info exists data(edited)]} {
return
} else {
unset data(edited)
}
tixControl:invoke $w
}
proc tixControl:Escape {w} {
upvar #0 $w data
$data(w:entry) delete 0 end
$data(w:entry) insert 0 $data(-value)
}
proc tixControl:KeyPress {w} {
upvar #0 $w data
if {$data(-selectmode) eq "normal"} {
set data(edited) 0
return
} else {
# == "immediate"
after 1 tixControl:invoke $w
}
}