summaryrefslogtreecommitdiffstats
path: root/doc/tk4.0.ps
diff options
context:
space:
mode:
Diffstat (limited to 'doc/tk4.0.ps')
-rw-r--r--doc/tk4.0.ps4602
1 files changed, 4602 insertions, 0 deletions
diff --git a/doc/tk4.0.ps b/doc/tk4.0.ps
new file mode 100644
index 0000000..d79642d
--- /dev/null
+++ b/doc/tk4.0.ps
@@ -0,0 +1,4602 @@
+%!
+%%BoundingBox: (atend)
+%%Pages: (atend)
+%%DocumentFonts: (atend)
+%%EndComments
+%%BeginProlog
+%
+% FrameMaker postscript_prolog 3.0, for use with FrameMaker 3.0
+% This postscript_prolog file is Copyright (c) 1986-1991 Frame Technology
+% Corporation. All rights reserved. This postscript_prolog file may be
+% freely copied and distributed in conjunction with documents created using
+% FrameMaker.
+% NOTE
+% This file fixes the problem with NeWS printers dithering color output.
+% Any questions should be sent to mickey@magickingdom.eng.sun.com
+%
+% Known Problems:
+% Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1
+/FMversion (3.0) def
+% Set up Color vs. Black-and-White
+
+/FMPrintInColor { % once-thru loop gimmick
+ % See if we're a NeWSprint printer
+ /currentcanvas where {
+ pop systemdict /separationdict known
+ exit
+ } if
+% originally had the following, which should always be false:
+% /currentcanvas where {
+% pop currentcanvas /Color known {
+% currentcanvas /Color get
+% exit
+% } if
+% } if
+ systemdict /colorimage known
+ systemdict /currentcolortransfer known and
+exit } loop def
+
+% Uncomment the following line to force b&w on color printer
+% /FMPrintInColor false def
+/FrameDict 195 dict def
+systemdict /errordict known not {/errordict 10 dict def
+ errordict /rangecheck {stop} put} if
+% The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
+FrameDict /tmprangecheck errordict /rangecheck get put
+errordict /rangecheck {FrameDict /bug true put} put
+FrameDict /bug false put
+mark
+% Some PS machines read past the CR, so keep the following 3 lines together!
+currentfile 5 string readline
+00
+0000000000
+cleartomark
+errordict /rangecheck FrameDict /tmprangecheck get put
+FrameDict /bug get {
+ /readline {
+ /gstring exch def
+ /gfile exch def
+ /gindex 0 def
+ {
+ gfile read pop
+ dup 10 eq {exit} if
+ dup 13 eq {exit} if
+ gstring exch gindex exch put
+ /gindex gindex 1 add def
+ } loop
+ pop
+ gstring 0 gindex getinterval true
+ } def
+ } if
+/FMVERSION {
+ FMversion ne {
+ /Times-Roman findfont 18 scalefont setfont
+ 100 100 moveto
+ (FrameMaker version does not match postscript_prolog!)
+ dup =
+ show showpage
+ } if
+ } def
+/FMLOCAL {
+ FrameDict begin
+ 0 def
+ end
+ } def
+ /gstring FMLOCAL
+ /gfile FMLOCAL
+ /gindex FMLOCAL
+ /orgxfer FMLOCAL
+ /orgproc FMLOCAL
+ /organgle FMLOCAL
+ /orgfreq FMLOCAL
+ /yscale FMLOCAL
+ /xscale FMLOCAL
+ /manualfeed FMLOCAL
+ /paperheight FMLOCAL
+ /paperwidth FMLOCAL
+/FMDOCUMENT {
+ array /FMfonts exch def
+ /#copies exch def
+ FrameDict begin
+ 0 ne dup {setmanualfeed} if
+ /manualfeed exch def
+ /paperheight exch def
+ /paperwidth exch def
+ /yscale exch def
+ /xscale exch def
+ currenttransfer cvlit /orgxfer exch def
+ currentscreen cvlit /orgproc exch def
+ /organgle exch def /orgfreq exch def
+ setpapername
+ manualfeed {true} {papersize} ifelse
+ {manualpapersize} {false} ifelse
+ {desperatepapersize} if
+ end
+ } def
+ /pagesave FMLOCAL
+ /orgmatrix FMLOCAL
+ /landscape FMLOCAL
+/FMBEGINPAGE {
+ FrameDict begin
+ /pagesave save def
+ 3.86 setmiterlimit
+ /landscape exch 0 ne def
+ landscape {
+ 90 rotate 0 exch neg translate pop
+ }
+ {pop pop}
+ ifelse
+ xscale yscale scale
+ /orgmatrix matrix def
+ gsave
+ } def
+/FMENDPAGE {
+ grestore
+ pagesave restore
+ end
+ showpage
+ } def
+/FMFONTDEFINE {
+ FrameDict begin
+ findfont
+ ReEncode
+ 1 index exch
+ definefont
+ FMfonts 3 1 roll
+ put
+ end
+ } def
+/FMFILLS {
+ FrameDict begin
+ array /fillvals exch def
+ end
+ } def
+/FMFILL {
+ FrameDict begin
+ fillvals 3 1 roll put
+ end
+ } def
+/FMNORMALIZEGRAPHICS {
+ newpath
+ 0.0 0.0 moveto
+ 1 setlinewidth
+ 0 setlinecap
+ 0 0 0 sethsbcolor
+ 0 setgray
+ } bind def
+ /fx FMLOCAL
+ /fy FMLOCAL
+ /fh FMLOCAL
+ /fw FMLOCAL
+ /llx FMLOCAL
+ /lly FMLOCAL
+ /urx FMLOCAL
+ /ury FMLOCAL
+/FMBEGINEPSF {
+ end
+ /FMEPSF save def
+ /showpage {} def
+ FMNORMALIZEGRAPHICS
+ [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall
+ fx fy translate
+ rotate
+ fw urx llx sub div fh ury lly sub div scale
+ llx neg lly neg translate
+ } bind def
+/FMENDEPSF {
+ FMEPSF restore
+ FrameDict begin
+ } bind def
+FrameDict begin
+/setmanualfeed {
+%%BeginFeature *ManualFeed True
+ statusdict /manualfeed true put
+%%EndFeature
+ } def
+/max {2 copy lt {exch} if pop} bind def
+/min {2 copy gt {exch} if pop} bind def
+/inch {72 mul} def
+/pagedimen {
+ paperheight sub abs 16 lt exch
+ paperwidth sub abs 16 lt and
+ {/papername exch def} {pop} ifelse
+ } def
+ /papersizedict FMLOCAL
+/setpapername {
+ /papersizedict 14 dict def
+ papersizedict begin
+ /papername /unknown def
+ /Letter 8.5 inch 11.0 inch pagedimen
+ /LetterSmall 7.68 inch 10.16 inch pagedimen
+ /Tabloid 11.0 inch 17.0 inch pagedimen
+ /Ledger 17.0 inch 11.0 inch pagedimen
+ /Legal 8.5 inch 14.0 inch pagedimen
+ /Statement 5.5 inch 8.5 inch pagedimen
+ /Executive 7.5 inch 10.0 inch pagedimen
+ /A3 11.69 inch 16.5 inch pagedimen
+ /A4 8.26 inch 11.69 inch pagedimen
+ /A4Small 7.47 inch 10.85 inch pagedimen
+ /B4 10.125 inch 14.33 inch pagedimen
+ /B5 7.16 inch 10.125 inch pagedimen
+ end
+ } def
+/papersize {
+ papersizedict begin
+ /Letter {lettertray letter} def
+ /LetterSmall {lettertray lettersmall} def
+ /Tabloid {11x17tray 11x17} def
+ /Ledger {ledgertray ledger} def
+ /Legal {legaltray legal} def
+ /Statement {statementtray statement} def
+ /Executive {executivetray executive} def
+ /A3 {a3tray a3} def
+ /A4 {a4tray a4} def
+ /A4Small {a4tray a4small} def
+ /B4 {b4tray b4} def
+ /B5 {b5tray b5} def
+ /unknown {unknown} def
+ papersizedict dup papername known {papername} {/unknown} ifelse get
+ end
+ /FMdicttop countdictstack 1 add def
+ statusdict begin stopped end
+ countdictstack -1 FMdicttop {pop end} for
+ } def
+/manualpapersize {
+ papersizedict begin
+ /Letter {letter} def
+ /LetterSmall {lettersmall} def
+ /Tabloid {11x17} def
+ /Ledger {ledger} def
+ /Legal {legal} def
+ /Statement {statement} def
+ /Executive {executive} def
+ /A3 {a3} def
+ /A4 {a4} def
+ /A4Small {a4small} def
+ /B4 {b4} def
+ /B5 {b5} def
+ /unknown {unknown} def
+ papersizedict dup papername known {papername} {/unknown} ifelse get
+ end
+ stopped
+ } def
+/desperatepapersize {
+ statusdict /setpageparams known
+ {
+ paperwidth paperheight 0 1
+ statusdict begin
+ {setpageparams} stopped pop
+ end
+ } if
+ } def
+/savematrix {
+ orgmatrix currentmatrix pop
+ } bind def
+/restorematrix {
+ orgmatrix setmatrix
+ } bind def
+/dmatrix matrix def
+/dpi 72 0 dmatrix defaultmatrix dtransform
+ dup mul exch dup mul add sqrt def
+/freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
+/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
+/DiacriticEncoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
+/numbersign /dollar /percent /ampersand /quotesingle /parenleft
+/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
+/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
+/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
+/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
+/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
+/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
+/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
+/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
+/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
+/udieresis /dagger /.notdef /cent /sterling /section /bullet
+/paragraph /germandbls /registered /copyright /trademark /acute
+/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
+/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
+/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
+/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
+/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
+/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
+/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
+/periodcentered /quotesinglbase /quotedblbase /perthousand
+/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
+/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
+/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
+/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
+] def
+/ReEncode {
+ dup
+ length
+ dict begin
+ {
+ 1 index /FID ne
+ {def}
+ {pop pop} ifelse
+ } forall
+ 0 eq {/Encoding DiacriticEncoding def} if
+ currentdict
+ end
+ } bind def
+/graymode true def
+ /bwidth FMLOCAL
+ /bpside FMLOCAL
+ /bstring FMLOCAL
+ /onbits FMLOCAL
+ /offbits FMLOCAL
+ /xindex FMLOCAL
+ /yindex FMLOCAL
+ /x FMLOCAL
+ /y FMLOCAL
+/setpattern {
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+ /onbits 0 def /offbits 0 def
+ freq sangle landscape {90 add} if
+ {/y exch def
+ /x exch def
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+ bstring yindex bwidth mul xindex 8 idiv add get
+ 1 7 xindex 8 mod sub bitshift and 0 ne
+ {/onbits onbits 1 add def 1}
+ {/offbits offbits 1 add def 0}
+ ifelse
+ }
+ setscreen
+ {} settransfer
+ offbits offbits onbits add div FMsetgray
+ /graymode false def
+ } bind def
+/grayness {
+ FMsetgray
+ graymode not {
+ /graymode true def
+ orgxfer cvx settransfer
+ orgfreq organgle orgproc cvx setscreen
+ } if
+ } bind def
+ /HUE FMLOCAL
+ /SAT FMLOCAL
+ /BRIGHT FMLOCAL
+ /Colors FMLOCAL
+FMPrintInColor
+
+ {
+ /HUE 0 def
+ /SAT 0 def
+ /BRIGHT 0 def
+ % array of arrays Hue and Sat values for the separations [HUE BRIGHT]
+ /Colors
+ [[0 0 ] % black
+ [0 0 ] % white
+ [0.00 1.0] % red
+ [0.37 1.0] % green
+ [0.60 1.0] % blue
+ [0.50 1.0] % cyan
+ [0.83 1.0] % magenta
+ [0.16 1.0] % comment / yellow
+ ] def
+
+ /BEGINBITMAPCOLOR {
+ BITMAPCOLOR} def
+ /BEGINBITMAPCOLORc {
+ BITMAPCOLORc} def
+ /BEGINBITMAPTRUECOLOR {
+ BITMAPTRUECOLOR } def
+ /BEGINBITMAPTRUECOLORc {
+ BITMAPTRUECOLORc } def
+ /K {
+ Colors exch get dup
+ 0 get /HUE exch store
+ 1 get /BRIGHT exch store
+ HUE 0 eq BRIGHT 0 eq and
+ {1.0 SAT sub setgray}
+ {HUE SAT BRIGHT sethsbcolor}
+ ifelse
+ } def
+ /FMsetgray {
+ /SAT exch 1.0 exch sub store
+ HUE 0 eq BRIGHT 0 eq and
+ {1.0 SAT sub setgray}
+ {HUE SAT BRIGHT sethsbcolor}
+ ifelse
+ } bind def
+ }
+
+ {
+ /BEGINBITMAPCOLOR {
+ BITMAPGRAY} def
+ /BEGINBITMAPCOLORc {
+ BITMAPGRAYc} def
+ /BEGINBITMAPTRUECOLOR {
+ BITMAPTRUEGRAY } def
+ /BEGINBITMAPTRUECOLORc {
+ BITMAPTRUEGRAYc } def
+ /FMsetgray {setgray} bind def
+ /K {
+ pop
+ } def
+ }
+ifelse
+/normalize {
+ transform round exch round exch itransform
+ } bind def
+/dnormalize {
+ dtransform round exch round exch idtransform
+ } bind def
+/lnormalize {
+ 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
+ } bind def
+/H {
+ lnormalize setlinewidth
+ } bind def
+/Z {
+ setlinecap
+ } bind def
+ /fillvals FMLOCAL
+/X {
+ fillvals exch get
+ dup type /stringtype eq
+ {8 1 setpattern}
+ {grayness}
+ ifelse
+ } bind def
+/V {
+ gsave eofill grestore
+ } bind def
+/N {
+ stroke
+ } bind def
+/M {newpath moveto} bind def
+/E {lineto} bind def
+/D {curveto} bind def
+/O {closepath} bind def
+ /n FMLOCAL
+/L {
+ /n exch def
+ newpath
+ normalize
+ moveto
+ 2 1 n {pop normalize lineto} for
+ } bind def
+/Y {
+ L
+ closepath
+ } bind def
+ /x1 FMLOCAL
+ /x2 FMLOCAL
+ /y1 FMLOCAL
+ /y2 FMLOCAL
+ /rad FMLOCAL
+/R {
+ /y2 exch def
+ /x2 exch def
+ /y1 exch def
+ /x1 exch def
+ x1 y1
+ x2 y1
+ x2 y2
+ x1 y2
+ 4 Y
+ } bind def
+/RR {
+ /rad exch def
+ normalize
+ /y2 exch def
+ /x2 exch def
+ normalize
+ /y1 exch def
+ /x1 exch def
+ newpath
+ x1 y1 rad add moveto
+ x1 y2 x2 y2 rad arcto
+ x2 y2 x2 y1 rad arcto
+ x2 y1 x1 y1 rad arcto
+ x1 y1 x1 y2 rad arcto
+ closepath
+ 16 {pop} repeat
+ } bind def
+/C {
+ grestore
+ gsave
+ R
+ clip
+ } bind def
+ /FMpointsize FMLOCAL
+/F {
+ FMfonts exch get
+ FMpointsize scalefont
+ setfont
+ } bind def
+/Q {
+ /FMpointsize exch def
+ F
+ } bind def
+/T {
+ moveto show
+ } bind def
+/RF {
+ rotate
+ 0 ne {-1 1 scale} if
+ } bind def
+/TF {
+ gsave
+ moveto
+ RF
+ show
+ grestore
+ } bind def
+/P {
+ moveto
+ 0 32 3 2 roll widthshow
+ } bind def
+/PF {
+ gsave
+ moveto
+ RF
+ 0 32 3 2 roll widthshow
+ grestore
+ } bind def
+/S {
+ moveto
+ 0 exch ashow
+ } bind def
+/SF {
+ gsave
+ moveto
+ RF
+ 0 exch ashow
+ grestore
+ } bind def
+/B {
+ moveto
+ 0 32 4 2 roll 0 exch awidthshow
+ } bind def
+/BF {
+ gsave
+ moveto
+ RF
+ 0 32 4 2 roll 0 exch awidthshow
+ grestore
+ } bind def
+/G {
+ gsave
+ newpath
+ normalize translate 0.0 0.0 moveto
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath fill
+ grestore
+ } bind def
+/A {
+ gsave
+ savematrix
+ newpath
+ 2 index 2 div add exch 3 index 2 div sub exch
+ normalize 2 index 2 div sub exch 3 index 2 div add exch
+ translate
+ scale
+ 0.0 0.0 1.0 5 3 roll arc
+ restorematrix
+ stroke
+ grestore
+ } bind def
+ /x FMLOCAL
+ /y FMLOCAL
+ /w FMLOCAL
+ /h FMLOCAL
+ /xx FMLOCAL
+ /yy FMLOCAL
+ /ww FMLOCAL
+ /hh FMLOCAL
+ /FMsaveobject FMLOCAL
+ /FMoptop FMLOCAL
+ /FMdicttop FMLOCAL
+/BEGINPRINTCODE {
+ /FMdicttop countdictstack 1 add def
+ /FMoptop count 4 sub def
+ /FMsaveobject save def
+ userdict begin
+ /showpage {} def
+ FMNORMALIZEGRAPHICS
+ 3 index neg 3 index neg translate
+ } bind def
+/ENDPRINTCODE {
+ count -1 FMoptop {pop pop} for
+ countdictstack -1 FMdicttop {pop end} for
+ FMsaveobject restore
+ } bind def
+/gn {
+ 0
+ { 46 mul
+ cf read pop
+ 32 sub
+ dup 46 lt {exit} if
+ 46 sub add
+ } loop
+ add
+ } bind def
+ /str FMLOCAL
+/cfs {
+ /str sl string def
+ 0 1 sl 1 sub {str exch val put} for
+ str def
+ } bind def
+/ic [
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
+ 0
+ {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
+ {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
+ {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
+ {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
+ {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
+ {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
+ {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
+ {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
+ {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
+ ] def
+ /sl FMLOCAL
+ /val FMLOCAL
+ /ws FMLOCAL
+ /im FMLOCAL
+ /bs FMLOCAL
+ /cs FMLOCAL
+ /len FMLOCAL
+ /pos FMLOCAL
+/ms {
+ /sl exch def
+ /val 255 def
+ /ws cfs
+ /im cfs
+ /val 0 def
+ /bs cfs
+ /cs cfs
+ } bind def
+400 ms
+/ip {
+ is
+ 0
+ cf cs readline pop
+ { ic exch get exec
+ add
+ } forall
+ pop
+
+ } bind def
+/wh {
+ /len exch def
+ /pos exch def
+ ws 0 len getinterval im pos len getinterval copy pop
+ pos len
+ } bind def
+/bl {
+ /len exch def
+ /pos exch def
+ bs 0 len getinterval im pos len getinterval copy pop
+ pos len
+ } bind def
+/s1 1 string def
+/fl {
+ /len exch def
+ /pos exch def
+ /val cf s1 readhexstring pop 0 get def
+ pos 1 pos len add 1 sub {im exch val put} for
+ pos len
+ } bind def
+/hx {
+ 3 copy getinterval
+ cf exch readhexstring pop pop
+ } bind def
+ /h FMLOCAL
+ /w FMLOCAL
+ /d FMLOCAL
+ /lb FMLOCAL
+ /bitmapsave FMLOCAL
+ /is FMLOCAL
+ /cf FMLOCAL
+/wbytes {
+ dup
+ 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
+ } bind def
+/BEGINBITMAPBWc {
+ 1 {} COMMONBITMAPc
+ } bind def
+/BEGINBITMAPGRAYc {
+ 8 {} COMMONBITMAPc
+ } bind def
+/BEGINBITMAP2BITc {
+ 2 {} COMMONBITMAPc
+ } bind def
+/COMMONBITMAPc {
+ /r exch def
+ /d exch def
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /lb w d wbytes def
+ sl lb lt {lb ms} if
+ /bitmapsave save def
+ r
+ /is im 0 lb getinterval def
+ ws 0 lb getinterval is copy pop
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {ip} image
+ bitmapsave restore
+ grestore
+ } bind def
+/BEGINBITMAPBW {
+ 1 {} COMMONBITMAP
+ } bind def
+/BEGINBITMAPGRAY {
+ 8 {} COMMONBITMAP
+ } bind def
+/BEGINBITMAP2BIT {
+ 2 {} COMMONBITMAP
+ } bind def
+/COMMONBITMAP {
+ /r exch def
+ /d exch def
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /bitmapsave save def
+ r
+ /is w d wbytes string def
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {cf is readhexstring pop} image
+ bitmapsave restore
+ grestore
+ } bind def
+ /proc1 FMLOCAL
+ /proc2 FMLOCAL
+ /newproc FMLOCAL
+/Fmcc {
+ /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+} bind def
+/ngrayt 256 array def
+/nredt 256 array def
+/nbluet 256 array def
+/ngreent 256 array def
+ /gryt FMLOCAL
+ /blut FMLOCAL
+ /grnt FMLOCAL
+ /redt FMLOCAL
+ /indx FMLOCAL
+ /cynu FMLOCAL
+ /magu FMLOCAL
+ /yelu FMLOCAL
+ /k FMLOCAL
+ /u FMLOCAL
+/colorsetup {
+ currentcolortransfer
+ /gryt exch def
+ /blut exch def
+ /grnt exch def
+ /redt exch def
+ 0 1 255 {
+ /indx exch def
+ /cynu 1 red indx get 255 div sub def
+ /magu 1 green indx get 255 div sub def
+ /yelu 1 blue indx get 255 div sub def
+ /k cynu magu min yelu min def
+ /u k currentundercolorremoval exec def
+ nredt indx 1 0 cynu u sub max sub redt exec put
+ ngreent indx 1 0 magu u sub max sub grnt exec put
+ nbluet indx 1 0 yelu u sub max sub blut exec put
+ ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
+ } for
+ {255 mul cvi nredt exch get}
+ {255 mul cvi ngreent exch get}
+ {255 mul cvi nbluet exch get}
+ {255 mul cvi ngrayt exch get}
+ setcolortransfer
+ {pop 0} setundercolorremoval
+ {} setblackgeneration
+ } bind def
+ /tran FMLOCAL
+/fakecolorsetup {
+ /tran 256 string def
+ 0 1 255 {/indx exch def
+ tran indx
+ red indx get 77 mul
+ green indx get 151 mul
+ blue indx get 28 mul
+ add add 256 idiv put} for
+ currenttransfer
+ {255 mul cvi tran exch get 255.0 div}
+ exch Fmcc settransfer
+} bind def
+/BITMAPCOLOR {
+ /d 8 def
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /bitmapsave save def
+ colorsetup
+ /is w d wbytes string def
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {cf is readhexstring pop} {is} {is} true 3 colorimage
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPCOLORc {
+ /d 8 def
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /lb w d wbytes def
+ sl lb lt {lb ms} if
+ /bitmapsave save def
+ colorsetup
+ /is im 0 lb getinterval def
+ ws 0 lb getinterval is copy pop
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {ip} {is} {is} true 3 colorimage
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPTRUECOLORc {
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /bitmapsave save def
+
+ /is w string def
+
+ ws 0 w getinterval is copy pop
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ {ip} {gip} {bip} true 3 colorimage
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPTRUECOLOR {
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /bitmapsave save def
+ /is w string def
+ /gis w string def
+ /bis w string def
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ { cf is readhexstring pop }
+ { cf gis readhexstring pop }
+ { cf bis readhexstring pop }
+ true 3 colorimage
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPTRUEGRAYc {
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /bitmapsave save def
+
+ /is w string def
+
+ ws 0 w getinterval is copy pop
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ {ip gip bip w gray} image
+ bitmapsave restore
+ grestore
+ } bind def
+/ww FMLOCAL
+/r FMLOCAL
+/g FMLOCAL
+/b FMLOCAL
+/i FMLOCAL
+/gray {
+ /ww exch def
+ /b exch def
+ /g exch def
+ /r exch def
+ 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
+ b i get .114 mul add add r i 3 -1 roll floor cvi put } for
+ r
+ } bind def
+/BITMAPTRUEGRAY {
+ gsave
+ translate rotate scale /h exch def /w exch def
+ /bitmapsave save def
+ /is w string def
+ /gis w string def
+ /bis w string def
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ { cf is readhexstring pop
+ cf gis readhexstring pop
+ cf bis readhexstring pop w gray} image
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPGRAY {
+ 8 {fakecolorsetup} COMMONBITMAP
+ } bind def
+/BITMAPGRAYc {
+ 8 {fakecolorsetup} COMMONBITMAPc
+ } bind def
+/ENDBITMAP {
+ } bind def
+end
+ /ALDsave FMLOCAL
+ /ALDmatrix matrix def ALDmatrix currentmatrix pop
+/StartALD {
+ /ALDsave save def
+ savematrix
+ ALDmatrix setmatrix
+ } bind def
+/InALD {
+ restorematrix
+ } bind def
+/DoneALD {
+ ALDsave restore
+ } bind def
+%%EndProlog
+%%BeginSetup
+(3.0) FMVERSION
+1 1 612 792 0 1 13 FMDOCUMENT
+0 0 /Helvetica-Bold FMFONTDEFINE
+1 0 /Times-Bold FMFONTDEFINE
+2 0 /Times-Italic FMFONTDEFINE
+3 0 /Times-Roman FMFONTDEFINE
+4 0 /Helvetica FMFONTDEFINE
+5 0 /Courier FMFONTDEFINE
+6 0 /Courier-Oblique FMFONTDEFINE
+32 FMFILLS
+0 0 FMFILL
+1 0.1 FMFILL
+2 0.3 FMFILL
+3 0.5 FMFILL
+4 0.7 FMFILL
+5 0.9 FMFILL
+6 0.97 FMFILL
+7 1 FMFILL
+8 <0f1e3c78f0e1c387> FMFILL
+9 <0f87c3e1f0783c1e> FMFILL
+10 <cccccccccccccccc> FMFILL
+11 <ffff0000ffff0000> FMFILL
+12 <8142241818244281> FMFILL
+13 <03060c183060c081> FMFILL
+14 <8040201008040201> FMFILL
+16 1 FMFILL
+17 0.9 FMFILL
+18 0.7 FMFILL
+19 0.5 FMFILL
+20 0.3 FMFILL
+21 0.1 FMFILL
+22 0.03 FMFILL
+23 0 FMFILL
+24 <f0e1c3870f1e3c78> FMFILL
+25 <f0783c1e0f87c3e1> FMFILL
+26 <3333333333333333> FMFILL
+27 <0000ffff0000ffff> FMFILL
+28 <7ebddbe7e7dbbd7e> FMFILL
+29 <fcf9f3e7cf9f3f7e> FMFILL
+30 <7fbfdfeff7fbfdfe> FMFILL
+%%EndSetup
+%%Page: "1" 1
+%%BeginPaperSize: Letter
+%%EndPaperSize
+612 792 0 FMBEGINPAGE
+98.1 675 512.1 675 2 L
+7 X
+0 K
+V
+2 H
+0 Z
+0 X
+N
+98.1 450 512.1 450 2 L
+7 X
+V
+2 Z
+0 X
+N
+98.1 108 512.1 126 R
+7 X
+V
+0 10 Q
+0 X
+(1) 506.54 119.33 T
+1 24 Q
+-0.48 (Tk4.0 Overview and Porting Guide) 152.1 605 S
+2 12 Q
+(John Ouster) 152.1 563 T
+(hout) 210.84 563 T
+98.1 135 512.1 423 R
+7 X
+V
+3 10 Q
+0 X
+(Tk version 4.0 is a major new release with many improvements, new features, and bug) 152.1 416.33 T
+(\336xes. This document provides an introduction to the new features and describes the most) 152.1 404.33 T
+-0.18 (common problems you are likely to encounter when porting scripts from Tk 3.6, the previ-) 152.1 392.33 P
+(ous release. This is) 152.1 380.33 T
+2 F
+(not) 230.66 380.33 T
+3 F
+( an introduction to Tk: I assume that you are already familiar with) 243.43 380.33 T
+(Tk 3.6 as described in the book) 152.1 368.33 T
+2 F
+(T) 279.79 368.33 T
+(cl and the Tk T) 284.43 368.33 T
+(oolkit) 343.48 368.33 T
+3 F
+(.) 366.24 368.33 T
+-0.26 (The good news about Tk 4.0 is that it has many improvements over Tk 3.6. Here are a) 170.1 356.33 P
+(few of the most important new features:) 152.1 344.33 T
+3 12 Q
+(\245) 152.1 329.33 T
+3 10 Q
+(Tk 4.0 includes a general-purpose mechanism for manipulating color images \050Tk 3.6) 162.9 329.33 T
+(supports only monochrome images\051.) 162.9 317.33 T
+3 12 Q
+(\245) 152.1 302.33 T
+3 10 Q
+-0.17 (The text widget in Tk 4.0 includes many new features such as tab stops, embedded win-) 162.9 302.33 P
+(dows, horizontal scrolling, and many new formatting options.) 162.9 290.33 T
+3 12 Q
+(\245) 152.1 275.33 T
+3 10 Q
+(The binding mechanism in Tk 4.0 is much more powerful in Tk 3.6.) 162.9 275.33 T
+3 12 Q
+(\245) 152.1 260.33 T
+3 10 Q
+(Motif compliance is much better) 162.9 260.33 T
+(. For example, there is now support for keyboard tra-) 292.82 260.33 T
+(versal and focus highlights.) 162.9 248.33 T
+3 12 Q
+(\245) 152.1 233.33 T
+3 10 Q
+(Many widgets have been improved. For example, buttons and labels can display multi-) 162.9 233.33 T
+(line justi\336ed text, and scales can handle real values.) 162.9 221.33 T
+(The bad news about Tk 4.0 is that it contains several incompatibilities with Tk 3.6.) 170.1 206.33 T
+(Ever since the \336rst release of Tk I have assumed that there would eventually be a major) 152.1 194.33 T
+(new release of Tk with substantial incompatibilities. I knew that I wouldn\325) 152.1 182.33 T
+(t be able to get) 450.06 182.33 T
+(all of the features of Tk right the \336rst time; rather than live forever with all of my early) 152.1 170.33 T
+(mistakes, I wanted to have a chance to correct them. Tk 4.0 is that correction. I apologize) 152.1 158.33 T
+-0.05 (for the incompatibilities, but I hope they improve Tk enough to justify the dif) 152.1 146.33 P
+-0.05 (\336culties you) 460.55 146.33 P
+44.1 351 98.1 423 C
+35.1 360 197.1 414 R
+7 X
+0 K
+V
+1 9 Q
+0 X
+(FIGURE 1) 35.1 408 T
+(T) 35.1 387 T
+(ABLE 1) 40.43 387 T
+26.1 351 125.1 423 R
+7 X
+V
+40.5 63 571.5 729 C
+FMENDPAGE
+%%EndPage: "1" 2
+%%Page: "2" 2
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(2) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+(encounter during porting. Tk 4.0 is a one-time correction: we will try very hard to avoid) 152.1 632.33 T
+(substantial incompatibilities \050especially in Tk\325) 152.1 620.3 T
+(s T) 337 620.3 T
+(cl-level interfaces\051 in future releases.) 348.79 620.3 T
+-0.4 (Sections 1-1) 170.1 608.3 P
+-0.4 (1 cover the major areas of change in Tk 4.0: bindings, focus, text widgets,) 219.02 608.3 P
+-0 (Motif compliance, other widget changes, images, color management, event handling, sup-) 152.1 596.26 P
+(port for multiple displays, the) 152.1 584.23 T
+5 F
+(send) 273.14 584.23 T
+3 F
+( command, and the selection. Section 12 summarizes) 297.13 584.23 T
+(several smaller changes. Section 13 lists all of the incompatibilities that af) 152.1 572.19 T
+(fect T) 448.4 572.19 T
+(cl scripts,) 471.29 572.19 T
+-0.02 (along with suggestions for how to deal with them. The explanations here are not intended) 152.1 560.16 P
+(to be comprehensive, but rather to introduce you to the issues; for complete information) 152.1 548.12 T
+(on new or modi\336ed commands, refer to the reference documentation that comes with the) 152.1 536.09 T
+(distribution.) 152.1 524.05 T
+98.1 480.7 512.1 483.72 C
+152.1 481.92 512.1 481.92 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 482.21 143.1 482.21 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(1) 134.63 487.72 T
+(Bindings) 152.1 487.72 T
+3 10 Q
+-0.35 (The changes for Tk 4.0 that are most likely to af) 152.1 464.03 P
+-0.35 (fect existing T) 341.31 464.03 P
+-0.35 (cl scripts are those related to) 397.64 464.03 P
+(bindings. The new binding mechanism in Tk 4.0 is much more powerful than that of Tk) 152.1 452 T
+(3.6, particularly in the way it allows behaviors to be combined, but several incompatible) 152.1 439.96 T
+(changes were required to implement the new features. These changes are likely to break) 152.1 427.93 T
+(most Tk 3.6 scripts. Fortunately) 152.1 415.89 T
+(, it is relatively easy to upgrade your bindings to work) 279.16 415.89 T
+(under Tk 4.0.) 152.1 403.86 T
+-0.27 (The basic mechanism for bindings is the same as in Tk 3.6. A binding associates a T) 170.1 391.86 P
+-0.27 (cl) 502.65 391.86 P
+(script with a particular event \050or sequence of events\051 occurring in one or more windows;) 152.1 379.82 T
+-0.11 (the script will be invoked automatically whenever the event sequence occurs in any of the) 152.1 367.79 P
+-0.13 (speci\336ed windows. The Tk 4.0 binding mechanism has three major feature changes. First,) 152.1 355.75 P
+(there is a more general mechanism for specifying the relationship between windows and) 152.1 343.72 T
+(bindings, called) 152.1 331.68 T
+2 F
+(binding tags) 217.89 331.68 T
+3 F
+(. Second, the con\337ict resolution mechanism \050which is) 267.6 331.68 T
+(invoked when more than one binding matches an event\051 has been changed to allow more) 152.1 319.65 T
+(than one binding script to execute for a single event. Third, the) 152.1 307.61 T
+5 F
+(Any) 405.81 307.61 T
+3 F
+( modi\336er is now) 423.8 307.61 T
+(implicit in all binding patterns. These changes are discussed separately in the subsections) 152.1 295.58 T
+(that follow) 152.1 283.54 T
+(.) 195.04 283.54 T
+-0.16 (Overall, the main ef) 170.1 271.54 P
+-0.16 (fect of Tk 4.0\325) 249.37 271.54 P
+-0.16 (s binding changes is that it allows more bindings to) 306.06 271.54 P
+(trigger than Tk 3.6 does. Feedback from the T) 152.1 259.51 T
+(cl/Tk community about the Tk 3.6 binding) 335.71 259.51 T
+(mechanism indicated that it was too conservative about triggering bindings. This caused) 152.1 247.47 T
+(the system to lose behaviors relatively easily and made the binding structure fragile. It) 152.1 235.44 T
+-0.35 (appears to be easier to deal with too many binding invocations than too few) 152.1 223.4 P
+-0.35 (, so Tk 4.0 tries) 449.17 223.4 P
+(to err in this direction.) 152.1 211.37 T
+0 F
+(1.1) 127.41 181.37 T
+(Binding tags) 152.1 181.37 T
+3 F
+(In Tk 3.6 you specify the window\050s\051 for a binding in one of three ways:) 152.1 165.37 T
+3 12 Q
+(\245) 152.1 150.37 T
+3 10 Q
+(Y) 162.9 150.37 T
+(ou give the name of a window) 169.12 150.37 T
+(, such as) 289.49 150.37 T
+5 F
+(.a.b.c) 326.13 150.37 T
+3 F
+(, in which case the binding applies) 362.11 150.37 T
+(only to that window) 162.9 138.33 T
+(.) 242.49 138.33 T
+FMENDPAGE
+%%EndPage: "2" 3
+%%Page: "3" 3
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(1 Bindings) 98.1 668.33 T
+0 F
+(3) 506.54 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 12 Q
+0 X
+(\245) 152.1 632.33 T
+3 10 Q
+-0.06 (Y) 162.9 632.33 P
+-0.06 (ou give the name of a class, such as) 169.12 632.33 P
+5 F
+-0.15 (Button) 313.45 632.33 P
+3 F
+-0.06 (, in which case the binding applies to all) 349.43 632.33 P
+(the windows of that class.) 162.9 620.33 T
+3 12 Q
+(\245) 152.1 605.33 T
+3 10 Q
+(Y) 162.9 605.33 T
+(ou specify) 169.12 605.33 T
+5 F
+(all) 212.97 605.33 T
+3 F
+(, in which case the binding applies to all windows.) 230.96 605.33 T
+-0.3 (In Tk4.0 you specify the window\050s\051 using a more general mechanism called a) 170.1 590.33 P
+2 F
+-0.3 (binding) 479.35 590.33 P
+(tag) 152.1 578.33 T
+3 F
+(. A binding tag may be an arbitrary string, but if it starts with a \322.\323 then it must be the) 164.87 578.33 T
+(name of a window) 152.1 566.33 T
+(. If you specify a class name or) 225.56 566.33 T
+5 F
+(all) 352.4 566.33 T
+3 F
+( as a binding tag, it will usually) 370.39 566.33 T
+-0.1 (have the same ef) 152.1 554.33 P
+-0.1 (fect as in Tk 3.6, but you may also specify other strings that were not per-) 218.51 554.33 P
+(mitted in Tk 3.6.) 152.1 542.33 T
+-0.07 (Each window in Tk 4.0 has a list of binding tags. When an event occurs in a window) 170.1 530.33 P
+-0.07 (,) 507.17 530.33 P
+-0.19 (Tk fetches the window\325) 152.1 518.33 P
+-0.19 (s binding tags and matches the event against all of the bindings for) 245.62 518.33 P
+-0.09 (any of the tags. By default, the binding tags for a window consist of the window name, its) 152.1 506.33 P
+-0.14 (class name, the name of its nearest toplevel ancestor) 152.1 494.33 P
+-0.14 (, and) 359.61 494.33 P
+5 F
+-0.33 (all) 381.26 494.33 P
+3 F
+-0.14 (. For example, a button win-) 399.25 494.33 P
+(dow named) 152.1 482.33 T
+5 F
+(.b) 200.95 482.33 T
+3 F
+( will have the tags) 212.95 482.33 T
+5 9 Q
+(.b Button . all) 179.1 468 T
+3 10 Q
+(by default and all of the following bindings will apply to the window:) 152.1 454.33 T
+5 9 Q
+(bind .b <Enter> {identify "press here to exit"}) 179.1 440 T
+(bind Button <Button-Release-1> {%W invoke}) 179.1 430 T
+(bind all <Help> {help %W}) 179.1 420 T
+3 10 Q
+(So far) 152.1 406.33 T
+(, this mechanism produces the same behavior as in Tk 3.6 except that bindings cre-) 175.85 406.33 T
+(ated for a toplevel also apply to its descendants \050see Section 1.5 for more on this issue\051.) 152.1 394.33 T
+(Y) 170.1 382.33 T
+(ou can use the) 176.32 382.33 T
+5 F
+(bindtags) 235.71 382.33 T
+3 F
+( command to change the binding tags for a window or) 283.69 382.33 T
+(their order) 152.1 370.33 T
+(. For example, the command) 193.46 370.33 T
+5 9 Q
+(bindtags .b {.b MyButton all}) 179.1 356 T
+3 10 Q
+(will change the binding tags for) 152.1 342.33 T
+5 F
+(.b) 281.46 342.33 T
+3 F
+( to the three values in the list. This provides a simple) 293.45 342.33 T
+(way to make radical changes the behavior of a window) 152.1 330.33 T
+(. After the above command is) 371.55 330.33 T
+(invoked none of the) 152.1 318.33 T
+5 F
+(Button) 234.26 318.33 T
+3 F
+( class bindings will apply to) 270.24 318.33 T
+5 F
+(.b) 384.63 318.33 T
+3 F
+(. Instead, bindings for) 396.63 318.33 T
+5 F
+-0.81 (MyButton) 152.1 306.33 P
+3 F
+-0.34 ( will apply; this might give the button a totally dif) 200.07 306.33 P
+-0.34 (ferent set of behaviors than a) 395.88 306.33 P
+(normal button. In addition, the) 152.1 294.33 T
+5 F
+(bindtags) 276.75 294.33 T
+3 F
+( command removes the \322.\323 tag, so bindings on) 324.72 294.33 T
+(\322.\323 will not apply to) 152.1 282.33 T
+5 F
+(.b) 234.27 282.33 T
+3 F
+(.) 246.27 282.33 T
+(Y) 170.1 270.33 T
+(ou can also place additional tags on a window with the) 176.32 270.33 T
+5 F
+(bindtags) 397.55 270.33 T
+3 F
+( command to) 445.53 270.33 T
+(combine a number of behaviors. For example,) 152.1 258.33 T
+5 9 Q
+(bindtags .b {.b MyButton Button . all}) 179.1 244 T
+3 10 Q
+(gives) 152.1 230.33 T
+5 F
+(.b) 175.7 230.33 T
+3 F
+( the behaviors of) 187.69 230.33 T
+5 F
+(MyButton) 257.08 230.33 T
+3 F
+( bindings as well as those speci\336ed by) 305.06 230.33 T
+5 F
+(Button) 459.96 230.33 T
+3 F
+(bindings.) 152.1 218.33 T
+(Overall, binding tags are similar to the tag mechanisms already used internally by) 170.1 206.33 T
+(canvas and text widgets in Tk 3.6, except that binding tags apply to windows instead of) 152.1 194.33 T
+(graphical objects or textual characters.) 152.1 182.33 T
+FMENDPAGE
+%%EndPage: "3" 4
+%%Page: "4" 4
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(4) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+0 F
+0 X
+(1.2) 127.41 632.33 T
+(Con\337ict resolution) 152.1 632.33 T
+3 F
+(It is possible for several bindings to match a particular event. In Tk 3.6 at most one event) 152.1 616.33 T
+(is actually allowed to trigger: a set of con\337ict resolution rules determines the winner) 152.1 604.22 T
+(. In) 488.27 604.22 T
+(general, a more speci\336c binding takes precedence over a less speci\336c binding. For exam-) 152.1 592.11 T
+-0.27 (ple, any binding for a speci\336c widget takes precedence over any class or) 152.1 580 P
+5 F
+-0.66 (all) 439.96 580 P
+3 F
+-0.27 ( binding, and) 457.95 580 P
+(a binding on) 152.1 567.89 T
+5 F
+(<Control-a>) 204.57 567.89 T
+3 F
+( takes precedence over a binding on) 270.54 567.89 T
+5 F
+(<KeyPress>.) 416.24 567.89 T
+3 F
+-0.26 (The mechanism for con\337ict resolution is similar in Tk 4.0 except that one binding can) 170.1 555.89 P
+-0.35 (trigger for) 152.1 543.78 P
+2 F
+-0.35 (each) 194.7 543.78 P
+3 F
+-0.35 ( binding tag on the window where the event occurs. The bindings trigger in) 213.57 543.78 P
+(the order of the tags. Thus if button) 152.1 531.67 T
+5 F
+(.b) 296.17 531.67 T
+3 F
+( has the default binding tags, one binding for) 308.16 531.67 T
+5 F
+(.b) 489.71 531.67 T
+3 F
+(can trigger) 152.1 519.56 T
+(, followed by one for) 194.72 519.56 T
+5 F
+(Button) 281.32 519.56 T
+3 F
+(, followed by one for \322) 317.3 519.56 T
+5 F
+(.) 408.34 519.56 T
+3 F
+(\323, followed by one for) 414.34 519.56 T
+5 F
+(all) 152.1 507.44 T
+3 F
+(. If there are no matching bindings for a given tag then none will trigger) 170.09 507.44 T
+(, and if there) 456.98 507.44 T
+(are several matching bindings for a given tag then a single one is chosen using the same) 152.1 495.33 T
+(rules as in Tk 3.6.) 152.1 483.22 T
+(The philosophy behind binding tags in Tk 4.0 is that each binding tag corresponds to) 170.1 471.22 T
+(an independent behavior) 152.1 459.11 T
+(, so bindings with dif) 249.96 459.11 T
+(ferent tags should usually be additive. Sup-) 334.46 459.11 T
+(pose you de\336ned the following binding:) 152.1 447 T
+5 9 Q
+(bind .b <Enter> {puts "press here to exit"}) 179.1 432.67 T
+3 10 Q
+(This binding will add to the behavior de\336ned by the Button class binding for) 152.1 419 T
+5 F
+(<Enter>) 460.81 419 T
+3 F
+(.) 502.79 419 T
+(In Tk 3.6, the widget-speci\336c binding will replace the class binding, which will break the) 152.1 406.89 T
+(behavior of the button so that it no longer has normal button behavior) 152.1 394.78 T
+(.) 429.71 394.78 T
+(Sometimes there need to be interactions between binding tags. For example, you) 170.1 382.78 T
+(might wish to keep most of the default button behavior for) 152.1 370.67 T
+5 F
+(.b) 388.34 370.67 T
+3 F
+( but replace the default) 400.33 370.67 T
+(behavior for) 152.1 358.56 T
+5 F
+(<ButtonRelease>) 203.72 358.56 T
+3 F
+( with some other behavior) 293.67 358.56 T
+(. T) 397.49 358.56 T
+(o allow bindings to be) 407.9 358.56 T
+-0.17 (overridden, Tk 4.0 allows the) 152.1 346.44 P
+5 F
+-0.41 (break) 271.44 346.44 P
+3 F
+-0.17 ( command to be invoked from inside a binding. This) 301.43 346.44 P
+(causes all remaining binding tags for that binding to be skipped. Consider the following) 152.1 334.33 T
+(binding:) 152.1 322.22 T
+5 9 Q
+(bind .b <ButtonRelease-1> {myRelease .b; break}) 179.1 307.89 T
+3 10 Q
+-0.21 (This will cause the) 152.1 294.22 P
+5 F
+-0.5 (myRelease) 228.99 294.22 P
+3 F
+-0.21 ( procedure to be invoked, then the) 282.96 294.22 P
+5 F
+-0.5 (break) 420.28 294.22 P
+3 F
+-0.21 ( command will) 450.26 294.22 P
+-0.37 (cause the class binding for the event to be skipped \050assuming that the widget name appears) 152.1 282.11 P
+(before its class in the binding tags for) 152.1 270 T
+5 F
+(.b) 304.78 270 T
+3 F
+(\051, along with any bindings for other tags.) 316.77 270 T
+2 F
+(Note:) 119.09 254 T
+-0.07 (Y) 152.1 254 P
+-0.07 (ou cannot invoke) 156.74 254 P
+6 F
+-0.17 (break) 227.31 254 P
+2 F
+-0.07 ( fr) 257.29 254 P
+-0.07 (om within the) 266.02 254 P
+6 F
+-0.17 (myRelease) 322.73 254 P
+2 F
+-0.07 ( pr) 376.7 254 P
+-0.07 (ocedur) 387.64 254 P
+-0.07 (e in the above example:) 415.03 254 P
+-0.02 (this will generate a T) 152.1 242.89 P
+-0.02 (cl err) 236.05 242.89 P
+-0.02 (or) 257.59 242.89 P
+-0.02 (. However) 265.37 242.89 P
+-0.02 (, you can invoke the command \322) 305.31 242.89 P
+6 F
+-0.05 (return -code) 434.25 242.89 P
+(break) 152.1 231.78 T
+2 F
+(\323 in the pr) 182.08 231.78 T
+(ocedur) 223.64 231.78 T
+(e to achieve the same effect as the) 251.03 231.78 T
+6 F
+(break) 389.25 231.78 T
+2 F
+( in the binding script.) 419.23 231.78 T
+0 F
+(1.3) 127.41 202.78 T
+(Implicit Any) 152.1 202.78 T
+3 F
+-0.13 (In Tk 3.6 extraneous modi\336ers prevent a binding from matching an event. For example, if) 152.1 186.78 P
+(a binding is de\336ned for) 152.1 174.67 T
+5 F
+(<Button-1>) 247.32 174.67 T
+3 F
+( and the mouse button is pressed with the) 307.29 174.67 T
+5 F
+(Num-) 474.68 174.67 T
+(Lock) 152.1 162.56 T
+3 F
+( key down, then the binding will not match. If you want a binding to trigger even) 176.09 162.56 T
+(when extraneous modi\336ers are present, you must specify the) 152.1 150.45 T
+5 F
+(Any) 396.37 150.45 T
+3 F
+( modi\336er) 414.36 150.45 T
+(, as in) 450.33 150.45 T
+5 F
+(<Any-) 476.42 150.45 T
+(Button-1>) 152.1 138.33 T
+3 F
+(.) 206.07 138.33 T
+FMENDPAGE
+%%EndPage: "4" 5
+%%Page: "5" 5
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(1 Bindings) 98.1 668.33 T
+0 F
+(5) 506.54 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+-0.06 (In Tk 4.0, all bindings have the) 170.1 632.33 P
+5 F
+-0.15 (Any) 297.08 632.33 P
+3 F
+-0.06 ( modi\336er present implicitly) 315.08 632.33 P
+-0.06 (. The) 423.35 632.33 P
+5 F
+-0.15 (Any) 446.26 632.33 P
+3 F
+-0.06 ( modi\336er is) 464.25 632.33 P
+(still allowed for compatibility) 152.1 620.33 T
+(, but it has no meaning. Thus a binding for) 270.55 620.33 T
+5 F
+(<Button-1>) 443.23 620.33 T
+3 F
+(will match a button press event even if) 152.1 608.33 T
+5 F
+(NumLock) 309.21 608.33 T
+3 F
+(,) 351.19 608.33 T
+5 F
+(Shift) 356.19 608.33 T
+3 F
+(,) 386.17 608.33 T
+5 F
+(Control) 391.17 608.33 T
+3 F
+(, or any combina-) 433.15 608.33 T
+(tion of them. If you wish for a binding not to trigger when a modi\336er is present, you can) 152.1 596.33 T
+(just de\336ne an empty binding for that modi\336er combination. For example,) 152.1 584.33 T
+5 9 Q
+(bind .b <Control-ButtonPress-1> {# this script is a no-op}) 179.1 570 T
+3 10 Q
+(creates a binding that will trigger on mouse button presses when the) 152.1 556.33 T
+5 F
+(Control) 426.36 556.33 T
+3 F
+( key is) 468.34 556.33 T
+-0.22 (down. If there is also a) 152.1 544.33 P
+5 F
+-0.52 (<ButtonPress-1>) 244.35 544.33 P
+3 F
+-0.22 ( binding for) 334.3 544.33 P
+5 F
+-0.52 (.b) 383.35 544.33 P
+3 F
+-0.22 (, it will no longer be invoked) 395.34 544.33 P
+-0.02 (if the) 152.1 532.33 P
+5 F
+-0.05 (Control) 175.37 532.33 P
+3 F
+-0.02 ( key is down, due to the con\337ict resolution rules. The script for the above) 217.35 532.33 P
+(binding is just a T) 152.1 520.33 T
+(cl comment, so it has no ef) 223.59 520.33 T
+(fect when it is invoked. Alternatively) 330.84 520.33 T
+(, you) 478.98 520.33 T
+(could use) 152.1 508.33 T
+5 F
+(%s) 192.63 508.33 T
+3 F
+( in the binding script to extract the modi\336er state, then test to see that only) 204.62 508.33 T
+(desired modi\336ers are present.) 152.1 496.33 T
+0 F
+(1.4) 127.41 466.33 T
+(Porting problems: widget bindings vs. class bindings) 152.1 466.33 T
+3 F
+-0.38 (Y) 152.1 450.33 P
+-0.38 (ou are likely to encounter two problems with bindings when you port Tk 3.6 scripts to Tk) 158.32 450.33 P
+-0.18 (4.0: widget bindings vs. class bindings, and events on top-level windows. This section dis-) 152.1 438.33 P
+(cusses the \336rst problem and the following section discusses the second problem.) 152.1 426.33 T
+(In Tk 3.6, if a widget-speci\336c binding matches an event then no class binding will) 170.1 414.33 T
+-0.15 (trigger for the event; in Tk 4.0 both bindings will trigger) 152.1 402.33 P
+-0.15 (. Because of this change, you will) 375.75 402.33 P
+-0.09 (need to modify most of your widget-speci\336c bindings in one of two ways. If a widget-spe-) 152.1 390.33 P
+(ci\336c binding in Tk 3.6 was intended to supplement the class binding, this could only be) 152.1 378.33 T
+(done by duplicating the code of the class binding in the widget binding script. This dupli-) 152.1 366.33 T
+-0.02 (cated code is no longer necessary in Tk 4.0 and will probably interfere with the new class) 152.1 354.33 P
+(bindings in Tk 4.0; you should remove the duplicated class code, leaving only the widget-) 152.1 342.33 T
+(speci\336c code in the binding script. If a widget-speci\336c binding in Tk 3.6 was intended to) 152.1 330.33 T
+-0.17 (override the class binding, this will no longer occur by default in Tk 4.0; you should add a) 152.1 318.33 P
+5 F
+-0.54 (break) 152.1 306.33 P
+3 F
+-0.22 ( command at the end of the binding script to prevent the class binding from trigger-) 182.08 306.33 P
+(ing. If a widget binding in Tk 3.6 didn\325) 152.1 294.33 T
+(t con\337ict with a class binding, then you will not) 308.49 294.33 T
+(need to modify it for Tk 4.0. For example, a widget binding for) 152.1 282.33 T
+5 F
+(<Help>) 407.49 282.33 T
+3 F
+( in a text widget) 443.47 282.33 T
+(would not need to be modi\336ed, since it doesn\325) 152.1 270.33 T
+(t con\337ict with a class binding.) 336.53 270.33 T
+0 F
+(1.5) 127.41 240.33 T
+(Porting problems: events on top-levels) 152.1 240.33 T
+3 F
+-0.26 (The second binding problem you are likely to encounter in porting Tk 3.6 scripts to Tk 4.0) 152.1 224.33 P
+(is that in Tk 4.0 a binding on a toplevel will match events on any of the internal windows) 152.1 212.33 T
+(within that top-level. For example, suppose you have a binding created as follows:) 152.1 200.33 T
+5 9 Q
+(toplevel .t) 179.1 186 T
+(button .t.b1 ...) 179.1 176 T
+(button .t.b2 ...) 179.1 166 T
+(bind .t <Enter> action) 179.1 156 T
+FMENDPAGE
+%%EndPage: "5" 6
+%%Page: "6" 6
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(6) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+-0.27 (This binding will trigger not only when the mouse enters) 152.1 632.33 P
+5 F
+-0.64 (.t) 379.29 632.33 P
+3 F
+-0.27 (, but also when it enters either) 391.28 632.33 P
+5 F
+(.t.b1) 152.1 620.33 T
+3 F
+( or) 182.08 620.33 T
+5 F
+(.t.b2) 195.41 620.33 T
+3 F
+(. This is because the binding tags for a window include its nearest) 225.39 620.33 T
+(ancestor toplevel by default. The toplevel is present in the binding tags to make it easy to) 152.1 608.33 T
+(set up accelerator keys that apply in all the windows of a panel. For example,) 152.1 596.33 T
+5 9 Q
+(bind .t <Control-a> {controlAProc %W}) 179.1 582 T
+3 10 Q
+(will cause) 152.1 568.33 T
+5 F
+(controlAProc) 194.85 568.33 T
+3 F
+( to be invoked whenever) 266.81 568.33 T
+5 F
+(Control-a) 367.56 568.33 T
+3 F
+( is typed in any of the) 421.53 568.33 T
+-0.12 (windows in) 152.1 556.33 P
+5 F
+-0.29 (.t) 200.72 556.33 P
+3 F
+-0.12 (. The procedure will receive the name of the focus window as its ar) 212.71 556.33 P
+-0.12 (gument.) 479.62 556.33 P
+(Unfortunately) 170.1 544.33 T
+(, if you have created bindings on toplevel windows in your Tk 3.6) 225.52 544.33 T
+-0.16 (scripts, they probably expect to trigger only for events in the toplevel, so the bindings will) 152.1 532.33 P
+(misbehave under Tk 4.0. Fortunately you can reproduce the behavior of Tk 3.6 by using) 152.1 520.33 T
+(the) 152.1 508.33 T
+5 F
+(%W) 166.81 508.33 T
+3 F
+( substitution in the binding script. For example, to ensure that) 178.8 508.33 T
+5 F
+(action) 427.28 508.33 T
+3 F
+( is invoked) 463.26 508.33 T
+(only for) 152.1 496.33 T
+5 F
+(Enter) 186.52 496.33 T
+3 F
+( events in a toplevel window itself, create the following binding in place) 216.51 496.33 T
+(of the one above:) 152.1 484.33 T
+5 9 Q
+(bind .t <Enter> {) 179.1 470 T
+(if {"%W" == ".t"} {) 200.63 460 T
+(action) 222.23 450 T
+(}) 200.63 440 T
+(}) 179.1 430 T
+3 10 Q
+-0.01 (When an) 152.1 416.33 P
+5 F
+-0.03 (Enter) 190.38 416.33 P
+3 F
+-0.01 ( event occurs in a descendant of) 220.36 416.33 P
+5 F
+-0.03 (.t) 350.45 416.33 P
+3 F
+-0.01 ( such as) 362.45 416.33 P
+5 F
+-0.03 (.t.x) 396.56 416.33 P
+3 F
+-0.01 (, a binding for) 420.54 416.33 P
+5 F
+-0.03 (Enter) 479.63 416.33 P
+3 F
+(in) 152.1 404.33 T
+5 F
+(.t.x) 162.37 404.33 T
+3 F
+( will trigger \336rst, if there is one. Then the above binding will trigger) 186.36 404.33 T
+(. Since) 457.58 404.33 T
+5 F
+(%W) 487.29 404.33 T
+3 F
+(will be substituted with) 152.1 392.33 T
+5 F
+(.t.x) 248.17 392.33 T
+3 F
+(, the) 272.15 392.33 T
+5 F
+(if) 291.86 392.33 T
+3 F
+( condition will not be satis\336ed and the binding will) 303.86 392.33 T
+(not do anything.) 152.1 380.33 T
+-0.14 ( An alternative solution is to remove the toplevel window from the binding tags of all) 170.1 368.33 P
+-0.12 (its internal windows. However) 152.1 356.33 P
+-0.12 (, this means that you won\325) 274.03 356.33 P
+-0.12 (t be able to take advantage of the) 378.73 356.33 P
+(tag to create key bindings that apply everywhere within the toplevel.) 152.1 344.33 T
+0 F
+(1.6) 127.41 314.33 T
+(Internal bindings in canvases and texts) 152.1 314.33 T
+3 F
+(The same changes in con\337ict resolution described in Section 1.2 also apply to bindings) 152.1 298.33 T
+-0.05 (created internally for the items of a canvas or the tags of a text widget. If a canvas item or) 152.1 286.33 P
+-0.29 (character of text has multiple tags, then one binding can trigger for each tag on each event.) 152.1 274.33 P
+-0.32 (The bindings trigger in the priority order of the tags. Similar porting problems are likely to) 152.1 262.33 P
+-0.19 (occur as described in Section 1.4; if a binding for one tag needs to override that of another) 152.1 250.33 P
+(tag, you\325ll need to add a) 152.1 238.33 T
+5 F
+(break) 251.2 238.33 T
+3 F
+( command under Tk 4.0; if a binding for one tag dupli-) 281.18 238.33 T
+-0.28 (cated the code from another tag\325) 152.1 226.33 P
+-0.28 (s binding, so that they will compose in Tk 3.6, you\325ll have) 279.76 226.33 P
+(to remove the duplicated code in Tk 4.0.) 152.1 214.33 T
+FMENDPAGE
+%%EndPage: "6" 7
+%%Page: "7" 7
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(2 Focus management) 98.1 668.33 T
+0 F
+(7) 506.54 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+98.1 623.98 512.1 627 C
+152.1 625.2 512.1 625.2 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 625.49 143.1 625.49 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(2) 134.63 631 T
+(Focus management) 152.1 631 T
+3 10 Q
+(The input focus is another area where Tk 4.0 contains major changes. Fortunately) 152.1 607.31 T
+(, the) 477.87 607.31 T
+-0.09 (focus changes should not require as many modi\336cations to your Tk 3.6 scripts as the bind-) 152.1 595.31 P
+(ing changes.) 152.1 583.31 T
+0 F
+(2.1) 127.41 553.31 T
+(One focus window per toplevel) 152.1 553.31 T
+3 F
+(Tk 3.6 only keeps track of a single focus window for each application, and this results in) 152.1 537.31 T
+(two problems. First, it doesn\325) 152.1 525.31 T
+(t allow an application to use multiple displays since this) 269.64 525.31 T
+-0.16 (could result in multiple simultaneous focus windows, one on each display) 152.1 513.31 P
+-0.16 (. Second, the Tk) 444.99 513.31 P
+(3.6 model doesn\325) 152.1 501.31 T
+(t work very well for applications that have multiple toplevels: when the) 221.04 501.31 T
+(mouse moves from one toplevel to another) 152.1 489.31 T
+(, the focus window should switch to whatever) 322.7 489.31 T
+-0.24 (window had the focus the last time the mouse was in the new toplevel, but Tk 3.6 does not) 152.1 477.31 P
+(remember this information.) 152.1 465.31 T
+(Tk 4.0 corrects both of these problems. It remembers one focus window for each) 170.1 453.31 T
+(toplevel, which can be queried with the) 152.1 441.31 T
+5 F
+(focus -lastfor) 311.98 441.31 T
+3 F
+( command. When the win-) 395.94 441.31 T
+(dow manager gives the focus to a toplevel window \050because the mouse entered the win-) 152.1 429.31 T
+(dow or because you clicked on the window) 152.1 417.31 T
+(, depending on the focus model being used by) 324.38 417.31 T
+(the window manager\051, Tk passes the focus on to the remembered window) 152.1 405.31 T
+(. Several win-) 446.23 405.31 T
+(dows in an application can have the focus at the same time, one on each display the appli-) 152.1 393.31 T
+(cation is using. When asking for the current focus window in the) 152.1 381.31 T
+5 F
+(focus) 413.31 381.31 T
+3 F
+( command, you) 443.29 381.31 T
+(can use the) 152.1 369.31 T
+5 F
+(-displayof) 199 369.31 T
+3 F
+( switch to specify a particular display) 258.97 369.31 T
+(.) 407.66 369.31 T
+(When you set the focus to a window with the) 170.1 357.31 T
+5 F
+(focus) 353.31 357.31 T
+3 F
+( command, Tk remembers that) 383.29 357.31 T
+(window as the most recent focus window for its toplevel. In addition, if the application) 152.1 345.31 T
+(currently has the focus for the window\325) 152.1 333.31 T
+(s display) 309.2 333.31 T
+(, Tk moves the focus to the speci\336ed win-) 343.82 333.31 T
+-0.35 (dow; this can be used, for example to move the focus to a dialog when the dialog is posted,) 152.1 321.31 P
+(or to perform keyboard traversal among the toplevels of an application. If the application) 152.1 309.31 T
+(doesn\325) 152.1 297.31 T
+(t currently have the focus for the display) 178.57 297.31 T
+(, then Tk will not normally take the focus) 339.74 297.31 T
+(from its current owner) 152.1 285.31 T
+(. However) 241.2 285.31 T
+(, you can specify the) 282.43 285.31 T
+5 F
+(-force) 367.36 285.31 T
+3 F
+( ar) 403.34 285.31 T
+(gument to) 413.43 285.31 T
+5 F
+(focus) 456.18 285.31 T
+3 F
+( to) 486.17 285.31 T
+(insist that Tk grab the focus for this application \050in general this is probably not a good) 152.1 273.31 T
+(idea, since it may clash with the window manager) 152.1 261.31 T
+(\325) 352.05 261.31 T
+(s focus policy\051.) 354.83 261.31 T
+0 F
+(2.2) 127.41 231.31 T
+(Keyboard traversal) 152.1 231.31 T
+3 F
+-0.38 (Tk 4.0 has a much more complete implementation of keyboard traversal than Tk 3.6. In Tk) 152.1 215.31 P
+(3.6 there is built-in support only for keyboard traversal of menus. In Tk 4.0 keyboard tra-) 152.1 203.31 T
+(versal is implemented for all widgets. Y) 152.1 191.31 T
+(ou can type) 311.27 191.31 T
+5 F
+(Tab) 359.85 191.31 T
+3 F
+( to move the focus among the) 377.84 191.31 T
+-0.4 (windows within a toplevel and) 152.1 179.31 P
+5 F
+-0.95 (Shift+Tab) 275.31 179.31 P
+3 F
+-0.4 ( to move in the reverse direction. The order of) 329.28 179.31 P
+-0.11 (traversal is de\336ned by the stacking order of widgets, with the lowest widget \336rst in the tra-) 152.1 167.31 P
+(versal order) 152.1 155.31 T
+(. All Tk widgets now provide a) 199 155.31 T
+5 F
+(-takefocus) 326.14 155.31 T
+3 F
+( option, which determines) 386.11 155.31 T
+FMENDPAGE
+%%EndPage: "7" 8
+%%Page: "8" 8
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(8) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+(whether the window should accept the focus during traversal or be skipped. This option) 152.1 632.33 T
+(has several features; see the) 152.1 620.33 T
+5 F
+(options.n) 265.61 620.33 T
+3 F
+( manual entry for details.) 319.58 620.33 T
+(All of the Tk widgets provide a traversal highlight ring as required by Motif. The) 170.1 608.33 T
+(highlight ring turns dark when the widget has the input focus. Its size and colors are con-) 152.1 596.33 T
+(trolled by the) 152.1 584.33 T
+5 F
+(-highlightthickness) 207.9 584.33 T
+3 F
+(,) 321.84 584.33 T
+5 F
+(-highlightbackground) 326.83 584.33 T
+3 F
+(, and) 446.77 584.33 T
+5 F
+(-) 152.1 572.33 T
+(highlightcolor) 158.1 572.33 T
+3 F
+( options. Y) 242.05 572.33 T
+(ou may notice that widgets appear to have extra space) 285.2 572.33 T
+(around them in Tk 4.0; this is due to the traversal highlight ring, which is normally the) 152.1 560.33 T
+(same color as the background for widgets.) 152.1 548.33 T
+0 F
+(2.3) 127.41 518.33 T
+(Support for focus-follows-mouse) 152.1 518.33 T
+3 F
+(Both Tk 3.6 and Tk 4.0 use an) 152.1 502.33 T
+2 F
+(explicit focus model) 275.91 502.33 T
+3 F
+( within a toplevel. This means that) 355.86 502.33 T
+(moving the mouse among the windows of a toplevel does not normally move the focus;) 152.1 490.33 T
+-0.06 (you have to click or perform some other action \050such as pressing) 152.1 478.33 P
+5 F
+-0.15 (Tab) 412.26 478.33 P
+3 F
+-0.06 (\051 to move the focus.) 430.25 478.33 P
+(Tk 3.6 has no support for an) 152.1 466.33 T
+2 F
+(implicit focus model) 267.58 466.33 T
+3 F
+( where the window under the mouse) 348.64 466.33 T
+(always has the focus. In Tk 4.0 you can invoke the library procedure) 152.1 454.33 T
+5 F
+(tk_focusFol-) 428.83 454.33 T
+(lowsMouse) 152.1 442.33 T
+3 F
+( to switch to an implicit focus model; in this mode whenever the mouse) 206.07 442.33 T
+(enters a new window the focus will switch to that window) 152.1 430.33 T
+(.) 384.07 430.33 T
+0 F
+(2.4) 127.41 400.33 T
+(No default focus window) 152.1 400.33 T
+(, no \322none\323 focus.) 269.45 400.33 T
+3 F
+-0.16 (Tk 3.6 has the notion of a default focus window) 152.1 384.33 P
+-0.16 (, which receives the focus if the focus win-) 341.56 384.33 P
+(dow is deleted. It is also possible for an application to abandon the input focus by setting) 152.1 372.33 T
+(the focus to) 152.1 360.33 T
+5 F
+(none) 201.23 360.33 T
+3 F
+(. In Tk 4.0 both of these features have been eliminated. There is no) 225.22 360.33 T
+(default focus window) 152.1 348.33 T
+(, and the focus can never be explicitly abandoned. If the focus win-) 238.05 348.33 T
+(dow is destroyed, Tk resets the input focus to the toplevel containing the old focus win-) 152.1 336.33 T
+(dow) 152.1 324.33 T
+(. If the toplevel is destroyed, the window manager will reclaim the focus and move it) 168.66 324.33 T
+(elsewhere.) 152.1 312.33 T
+-0.18 (If you really want to abandon the focus in Tk 4.0 so that keyboard events are ignored,) 170.1 300.33 P
+(you can create a dummy window with no key bindings \050set its binding tags to an empty) 152.1 288.33 T
+(string to be sure\051, make sure that is never mapped, and give it the input focus.) 152.1 276.33 T
+0 F
+(2.5) 127.41 246.33 T
+(Better focus events) 152.1 246.33 T
+3 F
+-0.13 (Tk 3.6 has a quirky event model for) 152.1 230.33 P
+5 F
+-0.32 (FocusIn) 296.77 230.33 P
+3 F
+-0.13 ( and) 338.75 230.33 P
+5 F
+-0.32 (FocusOut) 357.92 230.33 P
+3 F
+-0.13 ( events: when the window) 405.89 230.33 P
+-0.23 (manager gives the focus to a toplevel, Tk generates a) 152.1 218.33 P
+5 F
+-0.55 (FocusIn) 364.36 218.33 P
+3 F
+-0.23 ( event for the toplevel and) 406.33 218.33 P
+(another) 152.1 206.33 T
+5 F
+(FocusIn) 184.57 206.33 T
+3 F
+( event for the focus window) 226.55 206.33 T
+(, but no events for any other windows.) 337.76 206.33 T
+(When the window manager moves the focus somewhere else,) 152.1 194.33 T
+5 F
+(FocusOut) 400.79 194.33 T
+3 F
+( events are gen-) 448.77 194.33 T
+-0 (erated for these same two windows. In Tk 4.0,) 152.1 182.33 P
+5 F
+-0 (FocusIn) 339.73 182.33 P
+3 F
+-0 ( and) 381.71 182.33 P
+5 F
+-0 (FocusOut) 401.13 182.33 P
+3 F
+-0 ( events are gen-) 449.11 182.33 P
+-0.26 (erated in the same way as) 152.1 170.33 P
+5 F
+-0.63 (Enter) 255.43 170.33 P
+3 F
+-0.26 ( and) 285.41 170.33 P
+5 F
+-0.63 (Leave) 304.31 170.33 P
+3 F
+-0.26 ( events: when the focus arrives, a) 334.29 170.33 P
+5 F
+-0.63 (FocusIn) 467.89 170.33 P
+3 F
+-0.05 (event is generated for each window from the toplevel down to the focus window) 152.1 158.33 P
+-0.05 (, with dif-) 472.5 158.33 P
+FMENDPAGE
+%%EndPage: "8" 9
+%%Page: "9" 9
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(3 T) 98.1 668.33 T
+(ext widgets) 111.43 668.33 T
+0 F
+(9) 506.54 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+-0.33 (ferent detail \336elds for dif) 152.1 632.33 P
+-0.33 (ferent windows \050see Xlib documentation for information on these) 250.53 632.33 P
+(values\051. The reverse happens when the focus leaves a window) 152.1 620.33 T
+(.) 399.57 620.33 T
+0 F
+(2.6) 127.41 590.33 T
+(Porting issues) 152.1 590.33 T
+3 F
+(If you didn\325) 152.1 574.33 T
+(t have any special focus-related code in Tk 3.6, then you shouldn\325) 199.66 574.33 T
+(t need to) 462.9 574.33 T
+(make any changes for 4.0; things will just work better) 152.1 562.33 T
+(. If you wrote code in Tk 3.6 to get) 366.96 562.33 T
+(around the weaknesses with its focus mechanism, then you should remove most or all of) 152.1 550.33 T
+(that code. For example, if you implemented keyboard traversal yourself, or if you built) 152.1 538.33 T
+(your own mechanism to remember a separate focus window for each toplevel and give it) 152.1 526.33 T
+(the input focus whenever the toplevel gets the focus, you can simply remove this code,) 152.1 514.33 T
+-0.33 (since Tk 4.0 performs these functions for you. If you wrote code that depends on the weird) 152.1 502.33 P
+-0.03 (event model in Tk 3.6, that code will need to be rewritten for Tk 4.0. The Tk 4.0 model is) 152.1 490.33 P
+(general enough to duplicate any ef) 152.1 478.33 T
+(fects that were possible in Tk 3.6.) 289.86 478.33 T
+98.1 434.98 512.1 438 C
+152.1 436.2 512.1 436.2 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 436.49 143.1 436.49 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(3) 134.63 442 T
+(T) 152.1 442 T
+(ext widgets) 158.54 442 T
+3 10 Q
+(T) 152.1 418.31 T
+(ext widgets have under) 157.51 418.31 T
+(gone a major overhaul for Tk 4.0 and they have improved in) 249.76 418.31 T
+(many ways. The changes to text widgets are almost entirely upward-compatible from Tk) 152.1 406.31 T
+(3.6.) 152.1 394.31 T
+0 F
+(3.1) 127.41 364.31 T
+(Embedded windows.) 152.1 364.31 T
+3 F
+(Tk 3.6 supported two kinds of annotations in texts: marks and tags. In Tk 4.0 a third kind) 152.1 348.31 T
+-0.04 (of annotation is available: an embedded window) 152.1 336.31 P
+-0.04 (. This allows you to embed other widgets) 344.99 336.31 P
+(inside a text widget, mixed in with the text. The text widget acts as a geometry manager) 152.1 324.31 T
+(for these windows, laying them out and wrapping them just as if each embedded window) 152.1 312.31 T
+(were a single character in the text. Y) 152.1 300.31 T
+(ou can even have texts with nothing in them but) 297.64 300.31 T
+(embedded windows. The) 152.1 288.31 T
+5 F
+(window) 254.8 288.31 T
+3 F
+( widget command for text widgets provides several) 290.78 288.31 T
+(options to manage embedded windows.) 152.1 276.31 T
+0 F
+(3.2) 127.41 246.31 T
+(More options for tags.) 152.1 246.31 T
+3 F
+(In Tk 4.0 tags support many new options providing additional control over how informa-) 152.1 230.31 T
+(tion is displayed. Here is a summary of the new options:) 152.1 218.31 T
+3 12 Q
+(\245) 152.1 203.31 T
+3 10 Q
+(Y) 162.9 203.31 T
+(ou can now specify tab stops with the) 169.12 203.31 T
+5 F
+(-tabs) 321.79 203.31 T
+3 F
+( option. Each tab stop can use left, cen-) 351.78 203.31 T
+(ter) 162.9 191.31 T
+(, right, or numeric justi\336cation. T) 173.04 191.31 T
+(ab stops can also be speci\336ed for the widget as a) 305.6 191.31 T
+(whole.) 162.9 179.31 T
+3 12 Q
+(\245) 152.1 164.31 T
+3 10 Q
+(Y) 162.9 164.31 T
+(ou can specify justi\336cation \050left, center or right\051 with the) 169.12 164.31 T
+5 F
+(-justify) 398.12 164.31 T
+3 F
+( option.) 446.09 164.31 T
+FMENDPAGE
+%%EndPage: "9" 10
+%%Page: "10" 10
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(10) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 12 Q
+0 X
+(\245) 152.1 632.33 T
+3 10 Q
+(Y) 162.9 632.33 T
+(ou can now specify line spacing with three options,) 169.12 632.33 T
+5 F
+(-spacing1) 376.75 632.33 T
+3 F
+(,) 430.72 632.33 T
+5 F
+(-spacing2) 435.72 632.33 T
+3 F
+(, and) 489.69 632.33 T
+5 F
+(-) 162.9 620.2 T
+(spacing3) 168.9 620.2 T
+3 F
+(, which control the spacing above a line, between wrapped lines, and) 216.87 620.2 T
+(below a line.) 162.9 608.06 T
+3 12 Q
+(\245) 152.1 593.06 T
+3 10 Q
+(Y) 162.9 593.06 T
+(ou can now specify mar) 169.12 593.06 T
+(gins with the) 264.41 593.06 T
+5 F
+(-lmargin1) 318.55 593.06 T
+3 F
+(,) 372.52 593.06 T
+5 F
+(-lmargin2) 377.52 593.06 T
+3 F
+(, and) 431.49 593.06 T
+5 F
+(-rmargin) 453.42 593.06 T
+3 F
+(options.) 162.9 580.92 T
+3 12 Q
+(\245) 152.1 565.92 T
+3 10 Q
+-0.25 (Y) 162.9 565.92 P
+-0.25 (ou can now adjust the vertical position of text \050e.g. for superscripts or subscripts\051 with) 169.12 565.92 P
+(the) 162.9 553.79 T
+5 F
+(-offset) 177.61 553.79 T
+3 F
+( option.) 219.59 553.79 T
+3 12 Q
+(\245) 152.1 538.79 T
+3 10 Q
+-0.03 (Y) 162.9 538.79 P
+-0.03 (ou can now specify the wrapping style \050word wrapping, character wrapping, or none\051) 169.12 538.79 P
+(with the) 162.9 526.65 T
+5 F
+(-wrap) 197.88 526.65 T
+3 F
+( option.) 227.86 526.65 T
+3 12 Q
+(\245) 152.1 511.65 T
+3 10 Q
+(Y) 162.9 511.65 T
+(ou can now request overstriking with the) 169.12 511.65 T
+5 F
+(-overstrike) 334.83 511.65 T
+3 F
+( option.) 400.8 511.65 T
+0 F
+(3.3) 127.41 481.65 T
+(Bindings) 152.1 481.65 T
+3 F
+-0.19 (The default bindings for text widgets have been completely rewritten in Tk 4.0. They now) 152.1 465.65 P
+(support almost all of the Motif behavior \050everything except add mode and secondary) 152.1 453.52 T
+-0.36 (selections\051. They also include a substantial subset of the Emacs bindings for cursor motion) 152.1 441.38 P
+(and basic editing. The) 152.1 429.24 T
+5 F
+(tk_strictMotif) 242.87 429.24 T
+3 F
+( variable disables the Emacs bindings.) 326.82 429.24 T
+0 F
+(3.4) 127.41 399.24 T
+(Miscellaneous new features) 152.1 399.24 T
+3 F
+(In addition to the major changes described above, text widgets also include the following) 152.1 383.24 T
+(new features:) 152.1 371.11 T
+1 F
+(Horizontal scr) 162.9 356.11 T
+(olling) 224.07 356.11 T
+3 F
+(. T) 247.95 356.11 T
+(ext widgets can now be scrolled horizontally as well as verti-) 258.36 356.11 T
+(cally) 162.9 343.97 T
+(, using the) 181.68 343.97 T
+5 F
+(-) 225.55 343.97 T
+(xscrollcommand) 231.54 343.97 T
+3 F
+( option and the) 315.5 343.97 T
+5 F
+(xview) 377.68 343.97 T
+3 F
+( widget command.) 407.67 343.97 T
+1 F
+(Sear) 162.9 328.97 T
+(ching) 182.15 328.97 T
+3 F
+(. T) 205.48 328.97 T
+(ext widgets have a new) 215.88 328.97 T
+5 F
+(search) 311.64 328.97 T
+3 F
+( widget command, which provides ef) 347.62 328.97 T
+(\336-) 495.67 328.97 T
+-0.19 (cient searching of text widgets using either exact matching, glob-style matching, or reg-) 162.9 316.83 P
+(ular expressions. Y) 162.9 304.7 T
+(ou can search forwards or backwards.) 238.79 304.7 T
+1 F
+(Mark gravity) 162.9 289.7 T
+3 F
+(. In Tk 3.6 marks always had \322right gravity\323, which means they stick to) 219.71 289.7 T
+(the character on the right side of the mark; if you insert at the position of a mark, the) 162.9 277.56 T
+-0.1 (new character goes before the mark. In Tk 4.0 you can specify whether marks have left) 162.9 265.42 P
+(or right gravity) 162.9 253.29 T
+(.) 222.77 253.29 T
+1 F
+(Scr) 162.9 238.29 T
+(een information) 177.15 238.29 T
+3 F
+(. In Tk 4.0 there are two new widget commands for text widgets) 245.16 238.29 T
+(that return information about the screen layout. The) 162.9 226.15 T
+5 F
+(dlineinfo) 371.92 226.15 T
+3 F
+( widget command) 425.89 226.15 T
+(returns the bounding box of a display line \050all the information displayed on one line of) 162.9 214.02 T
+(the window) 162.9 201.88 T
+(, which may be either a whole line of text or a partial line if wrapping has) 209.16 201.88 T
+(occurred\051. The) 162.9 189.74 T
+5 F
+(bbox) 224.23 189.74 T
+3 F
+( widget command returns the screen area occupied by a single) 248.21 189.74 T
+(character) 162.9 177.61 T
+(.) 198.97 177.61 T
+1 F
+(Extended insert command) 162.9 162.61 T
+3 F
+(. The) 275.06 162.61 T
+5 F
+(insert) 298.1 162.61 T
+3 F
+( widget command now supports an addi-) 334.08 162.61 T
+-0.32 (tional ar) 162.9 150.47 P
+-0.32 (gument giving a list of tags to apply to the new characters. Y) 195.43 150.47 P
+-0.32 (ou can also include) 434 150.47 P
+(several text and tag ar) 162.9 138.33 T
+(guments in a single) 250.42 138.33 T
+5 F
+(insert) 330.38 138.33 T
+3 F
+( command.) 366.36 138.33 T
+FMENDPAGE
+%%EndPage: "10" 11
+%%Page: "11" 11
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(4 Better Motif compliance) 98.1 668.33 T
+0 F
+(1) 501.54 668.33 T
+(1) 506.54 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+1 F
+0 X
+(See command) 162.9 632.33 T
+3 F
+(. There is a new) 222.03 632.33 T
+5 F
+(see) 288.08 632.33 T
+3 F
+( widget command, which adjusts the view in the) 306.07 632.33 T
+(widget if needed to ensure that a particular character is visible in the window) 162.9 620.29 T
+(.) 470.07 620.29 T
+0 F
+(3.5) 127.41 590.29 T
+(Porting issues: tag stickiness, change in end) 152.1 590.29 T
+3 F
+(There are two changes in text widgets that may require modi\336cations to Tk 3.6 scripts.) 152.1 574.29 T
+-0.06 (The \336rst change has to do with tag stickiness. In Tk 3.6, tags are sticky to the right: if you) 152.1 562.24 P
+(insert new text just after a tagged range, the new text acquires the tags of the preceding) 152.1 550.19 T
+(character) 152.1 538.14 T
+(. If you insert text before a tagged range in Tk 3.6, the new characters do not) 188.17 538.14 T
+-0.34 (acquire the tags of the range. In Tk 4.0, tags are not sticky on either side: new text acquires) 152.1 526.09 P
+(a tag from surrounding characters only if the tag is present on both sides of the insertion) 152.1 514.05 T
+(position. The sticky behavior in Tk 3.6 was rarely useful and special code was often) 152.1 502 T
+(needed to work around it. Y) 152.1 489.95 T
+(ou should be able to eliminate this code in Tk 4.0.) 263.24 489.95 T
+(The second incompatible change in text widgets is that the index) 170.1 477.95 T
+5 F
+(end) 431.32 477.95 T
+3 F
+( now refers to) 449.31 477.95 T
+-0.14 (the position just after the \336nal newline in the text, whereas in Tk 3.6 it referred to the posi-) 152.1 465.9 P
+-0.1 (tion just before the \336nal newline. This makes it possible to apply tags to the \336nal newline,) 152.1 453.86 P
+(which was not possible in Tk 3.6, but you may need to modify your scripts if you depend) 152.1 441.81 T
+(on the old position of) 152.1 429.76 T
+5 F
+(end) 240.11 429.76 T
+3 F
+(.) 258.1 429.76 T
+98.1 386.4 512.1 389.43 C
+152.1 387.63 512.1 387.63 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 387.92 143.1 387.92 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(4) 134.63 393.43 T
+(Better Motif compliance) 152.1 393.43 T
+3 10 Q
+(All of the widgets have been modi\336ed in Tk 4.0 to improve their Motif compliance. This) 152.1 369.74 T
+-0.3 (was done by adding features that were missing and reworking the bindings to comply with) 152.1 357.69 P
+(Motif conventions. I believe that the widgets are now completely Motif compliant except) 152.1 345.64 T
+(for the following missing features:) 152.1 333.6 T
+3 12 Q
+(\245) 152.1 318.6 T
+3 10 Q
+(There is no support for secondary selections.) 162.9 318.6 T
+3 12 Q
+(\245) 152.1 303.6 T
+3 10 Q
+(There is no support for \322add mode\323 in widgets such as texts and listboxes.) 162.9 303.6 T
+3 12 Q
+(\245) 152.1 288.6 T
+3 10 Q
+(There is no support for drag and drop.) 162.9 288.6 T
+-0.02 (Please let me know if you \336nd any other discrepancies between the Tk widgets and Motif) 152.1 273.59 P
+(widgets. W) 152.1 261.55 T
+(e plan to eliminate the remaining incompatibilities over the next year or two.) 196.82 261.55 T
+98.1 218.19 512.1 221.21 C
+152.1 219.41 512.1 219.41 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 219.7 143.1 219.7 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(5) 134.63 225.21 T
+(W) 152.1 225.21 T
+(idget changes) 163.31 225.21 T
+3 10 Q
+-0.07 (All of the Tk 4.0 widgets have been improved over their 3.6 counterparts, mostly in small) 152.1 201.52 P
+-0.23 (and backwards compatible ways. Here is a summary of the widget improvements; see Sec-) 152.1 189.48 P
+(tion 13 for information about incompatible changes.) 152.1 177.43 T
+3 12 Q
+(\245) 152.1 162.43 T
+3 10 Q
+(All widgets now have a) 162.9 162.43 T
+5 F
+(cget) 259.78 162.43 T
+3 F
+( command, which provides an easier way to retrieve the) 283.76 162.43 T
+(value of a con\336guration option. In other situations where con\336guration options are) 162.9 150.38 T
+(used, such as for menu entries or text tags, a) 162.9 138.33 T
+5 F
+(cget) 342.21 138.33 T
+3 F
+( command is also available.) 366.2 138.33 T
+FMENDPAGE
+%%EndPage: "11" 12
+%%Page: "12" 12
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(12) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 12 Q
+0 X
+(\245) 152.1 632.33 T
+3 10 Q
+-0.22 (All widgets now have) 162.9 632.33 P
+5 F
+-0.53 (-highlightthickness) 251.96 632.33 P
+3 F
+-0.22 (,) 365.9 632.33 P
+5 F
+-0.53 (-highlightbackground) 370.68 632.33 P
+3 F
+-0.22 (, and) 490.61 632.33 P
+5 F
+(-) 162.9 620.33 T
+(highlightcolor) 168.9 620.33 T
+3 F
+( options for displaying a highlight ring when the widget \050or one) 252.85 620.33 T
+(of its descendants\051 has the input focus.) 162.9 608.33 T
+3 12 Q
+(\245) 152.1 593.33 T
+3 10 Q
+(Entry widgets now support justi\336cation and provide a) 162.9 593.33 T
+5 F
+(-show) 379.99 593.33 T
+3 F
+( option for \050not\051 display-) 409.97 593.33 T
+(ing passwords. They will autosize to \336t their text if) 162.9 581.33 T
+5 F
+(-width 0) 369.17 581.33 T
+3 F
+( is speci\336ed.) 417.14 581.33 T
+3 12 Q
+(\245) 152.1 566.33 T
+3 10 Q
+-0.16 (The label/button family of widgets now supports multiline text and justi\336cation, includ-) 162.9 566.33 P
+(ing new options) 162.9 554.33 T
+5 F
+(-wraplength) 229.25 554.33 T
+3 F
+( and) 295.22 554.33 T
+5 F
+(-justify) 314.65 554.33 T
+3 F
+(. These features make the message) 361.97 554.33 T
+-0.04 (widget obsolete. There is also a new) 162.9 542.33 P
+5 F
+-0.1 (-underline) 310.27 542.33 P
+3 F
+-0.04 ( option for highlighting a character) 370.23 542.33 P
+(for keyboard traversal.) 162.9 530.33 T
+3 12 Q
+(\245) 152.1 515.33 T
+3 10 Q
+-0.23 (Listboxes now support all of the Motif selection modes, including single selection, mul-) 162.9 515.33 P
+(tiple selection, and multiple disjoint selections, via the) 162.9 503.33 T
+5 F
+(-selectmode) 382.78 503.33 T
+3 F
+( option. They) 448.74 503.33 T
+(will autosize to \336t their contents if) 162.9 491.33 T
+5 F
+(-width 0) 302.54 491.33 T
+3 F
+( or) 350.52 491.33 T
+5 F
+(-height 0) 363.84 491.33 T
+3 F
+( is speci\336ed. There are) 417.81 491.33 T
+(new) 162.9 479.33 T
+5 F
+(see) 182.05 479.33 T
+3 F
+(,) 200.04 479.33 T
+5 F
+(bbox) 205.04 479.33 T
+3 F
+(, and) 229.02 479.33 T
+5 F
+(activate) 250.95 479.33 T
+3 F
+( widget commands.) 298.92 479.33 T
+3 12 Q
+(\245) 152.1 464.33 T
+3 10 Q
+(Canvas polygons now support) 162.9 464.33 T
+5 F
+(-outline) 286.16 464.33 T
+3 F
+( and) 334.14 464.33 T
+5 F
+(-width) 353.57 464.33 T
+3 F
+( options for drawing outlines.) 389.55 464.33 T
+3 12 Q
+(\245) 152.1 449.33 T
+3 10 Q
+-0.03 (Scale widgets now support real values as well as integers \050see the) 162.9 449.33 P
+5 F
+-0.08 (-resolution) 426.77 449.33 P
+3 F
+-0.03 ( and) 492.73 449.33 P
+5 F
+-0.54 (-digits) 162.9 437.33 P
+3 F
+-0.22 ( options\051, and they have a) 204.88 437.33 P
+5 F
+-0.54 (-variable) 308.73 437.33 P
+3 F
+-0.22 ( option to link to a T) 362.7 437.33 P
+-0.22 (cl variable. They) 442.83 437.33 P
+-0.28 (have two new widget commands,) 162.9 425.33 P
+5 F
+-0.67 (coords) 297.52 425.33 P
+3 F
+-0.28 ( and) 333.5 425.33 P
+5 F
+-0.67 (identify) 352.37 425.33 P
+3 F
+-0.28 (, and their bindings are now) 399.69 425.33 P
+(de\336ned in T) 162.9 413.33 T
+(cl rather than being hardwired in C code as in Tk 3.6.) 210.5 413.33 T
+3 12 Q
+(\245) 152.1 398.33 T
+3 10 Q
+(Scrollbar widgets now have a new interface to the controlling widget, which provides) 162.9 398.33 T
+-0.04 (more \337exibility than the old style \050but the old style is still supported for compatibility\051.) 162.9 386.33 P
+(There is a new option) 162.9 374.33 T
+5 F
+(-jump) 252 374.33 T
+3 F
+( to prevent continuous updates while dragging the slider) 281.98 374.33 T
+(,) 505.88 374.33 T
+-0.24 (and a new option) 162.9 362.33 P
+5 F
+-0.59 (-elementborderwidth) 232.98 362.33 P
+3 F
+-0.24 ( to control the border width of the arrows) 346.92 362.33 P
+(and slider separately from the widget\325) 162.9 350.33 T
+(s outer border) 314.18 350.33 T
+(. There are four new widget com-) 369.14 350.33 T
+(mands,) 162.9 338.33 T
+5 F
+(activate) 193.99 338.33 T
+3 F
+(,) 241.97 338.33 T
+5 F
+(delta) 246.96 338.33 T
+3 F
+(,) 276.95 338.33 T
+5 F
+(fraction) 281.95 338.33 T
+3 F
+(, and) 329.92 338.33 T
+5 F
+(identify) 351.85 338.33 T
+3 F
+(, and the default bindings) 399.17 338.33 T
+(are now de\336ned in T) 162.9 326.33 T
+(cl rather than being hardwired in C code as in Tk 3.6.) 244.91 326.33 T
+3 12 Q
+(\245) 152.1 311.33 T
+3 10 Q
+-0.13 (Menu entries now have several new con\336guration options such as) 162.9 311.33 P
+5 F
+-0.31 (-foreground) 426.97 311.33 P
+3 F
+-0.13 ( and) 492.93 311.33 P
+5 F
+-0.41 (-) 162.9 299.33 P
+-0.41 (indicatoron) 168.9 299.33 P
+3 F
+-0.17 (, and tear) 234.86 299.33 P
+-0.17 (-of) 271.23 299.33 P
+-0.17 (f menus have been reimplemented to be more Motif-like.) 282.7 299.33 P
+(New menu entries can be created in the middle of a menu using the) 162.9 287.33 T
+5 F
+(insert) 434.36 287.33 T
+3 F
+( widget) 470.34 287.33 T
+(command, and there is a) 162.9 275.33 T
+5 F
+(type) 262.83 275.33 T
+3 F
+( widget command that returns the type of a menu entry) 286.81 275.33 T
+(.) 505.45 275.33 T
+3 12 Q
+(\245) 152.1 260.33 T
+3 10 Q
+(Menubuttons now have a) 162.9 260.33 T
+5 F
+(-indicatoron) 266.16 260.33 T
+3 F
+( option for displaying an option menu indi-) 338.12 260.33 T
+-0.38 (cator) 162.9 248.33 P
+-0.38 (. There is now support for option menus via the) 182.33 248.33 P
+5 F
+-0.91 (tk_optionMenu) 370.9 248.33 P
+3 F
+-0.38 ( procedure, and) 448.86 248.33 P
+(popups are simpli\336ed with the) 162.9 236.33 T
+5 F
+(tk_popup) 286.44 236.33 T
+3 F
+( procedure.) 334.42 236.33 T
+3 12 Q
+(\245) 152.1 221.33 T
+3 10 Q
+-0.03 (The variable) 162.9 221.33 P
+5 F
+-0.07 (tk_strictMotif) 215.57 221.33 P
+3 F
+-0.03 ( is used in more places to enforce even stricter Motif) 299.53 221.33 P
+(compliance.) 162.9 209.33 T
+FMENDPAGE
+%%EndPage: "12" 13
+%%Page: "13" 13
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(6 Images) 98.1 668.33 T
+0 F
+(13) 500.99 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+98.1 623.98 512.1 627 C
+152.1 625.2 512.1 625.2 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 625.49 143.1 625.49 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(6) 134.63 631 T
+(Images) 152.1 631 T
+3 10 Q
+(Tk 4.0 contains a general-purpose image mechanism for displaying color pictures and) 152.1 607.31 T
+(other complex objects. There is a new command,) 152.1 595.26 T
+5 F
+(image) 350.84 595.26 T
+3 F
+(, which may be used to create) 380.82 595.26 T
+(image objects. For example, the command) 152.1 583.21 T
+5 9 Q
+(image create photo myFace -f) 179.1 568.88 T
+(ile picture.ppm) 330.09 568.88 T
+3 10 Q
+(creates a new image named) 152.1 555.21 T
+5 F
+(myFace) 264.5 555.21 T
+3 F
+(. The image is of type) 300.48 555.21 T
+5 F
+(photo) 390.14 555.21 T
+3 F
+( \050a full-color represen-) 420.12 555.21 T
+(tation that dithers on monochrome or color) 152.1 543.17 T
+(-mapped displays\051 and the source data for the) 323.46 543.17 T
+(image is in the \336le named) 152.1 531.12 T
+5 F
+(picture.ppm) 257.59 531.12 T
+3 F
+(. Once an image has been created, it can be) 323.56 531.12 T
+-0.15 (used in many dif) 152.1 519.07 P
+-0.15 (ferent places by specifying a) 218.37 519.07 P
+5 F
+-0.36 (-image) 334.46 519.07 P
+3 F
+-0.15 ( option. For example, the command) 370.44 519.07 P
+5 9 Q
+(label .l -image myFace) 179.1 504.74 T
+3 10 Q
+(will create a label widget that displays the image, and if) 152.1 491.07 T
+5 F
+(.c) 377.5 491.07 T
+3 F
+( is a canvas widget the com-) 389.49 491.07 T
+(mand) 152.1 479.02 T
+5 9 Q
+(.c create image 400 200 -image myFace) 179.1 464.69 T
+3 10 Q
+(will create an image item in the canvas that displays) 152.1 451.02 T
+5 F
+(myFace) 363.06 451.02 T
+3 F
+(.) 399.04 451.02 T
+(The image mechanism provides a great deal of \337exibility:) 170.1 439.02 T
+3 12 Q
+(\245) 152.1 424.02 T
+3 10 Q
+-0.18 (Once an image has been de\336ned, it can be used in many dif) 162.9 424.02 P
+-0.18 (ferent places, even on dif) 397.84 424.02 P
+-0.18 (fer-) 497.68 424.02 P
+(ent displays.) 162.9 411.98 T
+3 12 Q
+(\245) 152.1 396.98 T
+3 10 Q
+(Images provide image commands, analogous to widget commands, that can be used to) 162.9 396.98 T
+(manipulate the image; any changes in an image are automatically re\337ected in all of its) 162.9 384.93 T
+(instances.) 162.9 372.88 T
+3 12 Q
+(\245) 152.1 357.88 T
+3 10 Q
+-0.21 (There can be many dif) 162.9 357.88 P
+-0.21 (ferent types of images. Tk 4.0 has two built-in types,) 251.78 357.88 P
+5 F
+-0.51 (photo) 463.11 357.88 P
+3 F
+-0.21 ( and) 493.1 357.88 P
+5 F
+(bitmap) 162.9 345.83 T
+3 F
+(. Other image types can be de\336ned in C as extensions \050see the documentation) 198.88 345.83 T
+-0.16 (for the) 162.9 333.79 P
+5 F
+-0.39 (Tk_CreateImageType) 191.44 333.79 P
+3 F
+-0.16 ( library procedure\051. The photo image type was imple-) 299.38 333.79 P
+(mented by Paul Mackerras, based on his earlier photo widget.) 162.9 321.74 T
+3 12 Q
+(\245) 152.1 306.74 T
+3 10 Q
+(W) 162.9 306.74 T
+(ithin the photo image type, there can be many dif) 171.93 306.74 T
+(ferent \336le formats. In Tk 4.0, only) 368.29 306.74 T
+-0.11 (PPM, PGM, and GIF formats are built-in, but other formats can be added as extensions) 162.9 294.69 P
+(\050see the documentation for the) 162.9 282.64 T
+5 F
+(Tk_CreatePhotoImageFormat) 286.97 282.64 T
+3 F
+( library proce-) 436.89 282.64 T
+(dure\051. Readers for XPM, TIFF) 162.9 270.59 T
+(, and others are available from the T) 284.23 270.59 T
+(cl community) 428.41 270.59 T
+(.) 483.01 270.59 T
+98.1 227.24 512.1 230.26 C
+152.1 228.46 512.1 228.46 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 228.75 143.1 228.75 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(7) 134.63 234.26 T
+(Color management) 152.1 234.26 T
+3 10 Q
+(Tk 3.6 suf) 152.1 210.57 T
+(fers from a relatively weak mechanism for managing colors. It uses only the) 192.73 210.57 T
+(default colormap for a screen, and if all the entries in that colormap \336ll up then Tk) 152.1 198.52 T
+(switches to monochrome mode and \322rounds\323 all future colors to black or white. This) 152.1 186.48 T
+(approach is becoming increasingly unpleasant because of applications such as Frame and) 152.1 174.43 T
+(W) 152.1 162.38 T
+(eb browsers that use up all the entries in the default colormap.) 160.74 162.38 T
+(Tk 4.0 has a much more powerful color management mechanism. If a colormap \336lls) 170.1 150.38 T
+(up, Tk allocates future colors by picking the closest match from the available colors, so) 152.1 138.33 T
+FMENDPAGE
+%%EndPage: "13" 14
+%%Page: "14" 14
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(14) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+(that it need not revert to monochrome mode. Tk also manages colors better by delaying) 152.1 632.33 T
+-0.3 (color allocation until colors are actually needed; in many cases, such as 3D borders, colors) 152.1 620.33 P
+(are never needed. When colors are scarce Tk changes the way it displays beveled borders) 152.1 608.33 T
+-0.38 (so that it uses stippling instead of additional colors for the light and dark shadows. Y) 152.1 596.33 P
+-0.38 (ou can) 484.01 596.33 P
+(\336nd out whether a colormap has \336lled up using the new command) 152.1 584.33 T
+5 F
+(winfo colormap-) 418.59 584.33 T
+(full) 152.1 572.33 T
+3 F
+(.) 176.09 572.33 T
+-0.26 (Tk 4.0 also allows you to allocate new colormaps for toplevel and frame widgets with) 170.1 560.33 P
+(the) 152.1 548.33 T
+5 F
+(-colormap) 166.81 548.33 T
+3 F
+( option, and you change the visual type in these widgets \050with the) 220.78 548.33 T
+5 F
+(-) 152.1 536.33 T
+(visual) 158.1 536.33 T
+3 F
+( option\051 to take advantage of visuals other than the default visual for a screen.) 194.08 536.33 T
+(New commands) 152.1 524.33 T
+5 F
+(winfo visualsavailable) 219.27 524.33 T
+3 F
+( and) 351.2 524.33 T
+5 F
+(wm colormapwindows) 370.63 524.33 T
+3 F
+( have) 478.57 524.33 T
+(been added to help manage colormaps and visuals.) 152.1 512.33 T
+(The default color scheme in Tk 4.0 has changed from a tan palette \050\322bisque\323\051 to a) 170.1 500.33 T
+(gray palette, which seems to becoming standard for Motif. There is a new T) 152.1 488.33 T
+(cl procedure) 454.78 488.33 T
+5 F
+-0.36 (tk_setPalette) 152.1 476.33 P
+3 F
+-0.15 ( that changes the palette of an application on the \337y) 230.06 476.33 P
+-0.15 (, and there is also a) 433.89 476.33 P
+(procedure) 152.1 464.33 T
+5 F
+(tk_bisque) 194.56 464.33 T
+3 F
+( to restore the palette to the old bisque colors.) 248.53 464.33 T
+(The Tk 3.6 color model mechanism is no longer necessary so it has been removed in) 170.1 452.33 T
+(Tk 4.0. If you want to \336nd out whether a screen is monochrome or color) 152.1 440.33 T
+(, you cannot use) 440.38 440.33 T
+(the) 152.1 428.33 T
+5 F
+(tk colormodel) 166.81 428.33 T
+3 F
+( command anymore; use) 244.77 428.33 T
+5 F
+(winfo depth) 345.25 428.33 T
+3 F
+( instead.) 411.22 428.33 T
+98.1 384.98 512.1 388 C
+152.1 386.2 512.1 386.2 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 386.49 143.1 386.49 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(8) 134.63 392 T
+(Event handling: \336leevent and after) 152.1 392 T
+3 10 Q
+(Tk 4.0 contains several improvements in the area of event handling besides those already) 152.1 368.31 T
+(mentioned for bindings:) 152.1 356.31 T
+3 12 Q
+(\245) 152.1 341.31 T
+3 10 Q
+(There is a new command) 162.9 341.31 T
+5 F
+(f) 265.87 341.31 T
+(ileevent) 271.87 341.31 T
+3 F
+( for performing event-driven I/O to and from) 319.84 341.31 T
+-0.12 (\336les. The) 162.9 329.31 P
+5 F
+-0.29 (f) 202.35 329.31 P
+-0.29 (ileevent) 208.35 329.31 P
+3 F
+-0.12 ( command is modelled very closely after Mark Diekhans\325) 256.33 329.31 P
+5 F
+-0.29 (add-) 488.11 329.31 P
+(input) 162.9 317.31 T
+3 F
+( extension, which has been used widely with Tk 3.6.) 192.88 317.31 T
+3 12 Q
+(\245) 152.1 302.31 T
+3 10 Q
+-0.34 (The) 162.9 302.31 P
+5 F
+-0.82 (after) 180.6 302.31 P
+3 F
+-0.34 ( command has two new options,) 210.58 302.31 P
+5 F
+-0.82 (idle) 339.82 302.31 P
+3 F
+-0.34 ( and) 363.81 302.31 P
+5 F
+-0.82 (cancel) 382.55 302.31 P
+3 F
+-0.34 (.) 418.53 302.31 P
+5 F
+-0.82 (After idle) 423.19 302.31 P
+3 F
+-0.34 ( can be) 482.33 302.31 P
+-0.2 (used to schedule a script as an \322idle handler\323, which means it runs the next time that Tk) 162.9 290.31 P
+(enters the event loop and \336nds no work to do.) 162.9 278.31 T
+5 F
+(After cancel) 348.06 278.31 T
+3 F
+( may be used to delete) 420.02 278.31 T
+(a previously-scheduled) 162.9 266.31 T
+5 F
+(after) 257.83 266.31 T
+3 F
+( script, so that it will no longer be invoked.) 287.81 266.31 T
+98.1 222.95 512.1 225.98 C
+152.1 224.18 512.1 224.18 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 224.46 143.1 224.46 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(9) 134.63 229.98 T
+(Multiple displays) 152.1 229.98 T
+3 10 Q
+(Although Tk has always allowed a single application to open windows on several dis-) 152.1 206.29 T
+(plays, the support for multiple displays is weak in Tk 3.6. For example, many of the bind-) 152.1 194.29 T
+(ings break if users work simultaneously in windows on dif) 152.1 182.29 T
+(ferent displays, and) 385.94 182.29 T
+(mechanisms like the selection and the input focus have insuf) 152.1 170.29 T
+(\336cient support for multiple) 394.26 170.29 T
+(displays.) 152.1 158.29 T
+FMENDPAGE
+%%EndPage: "14" 15
+%%Page: "15" 15
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(10 The send command) 98.1 668.33 T
+0 F
+(15) 500.99 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+-0.33 (Tk 4.0 contains numerous modi\336cations to improve the handling of multiple displays.) 170.1 632.33 P
+-0.18 (Several commands, such as) 152.1 620.24 P
+5 F
+-0.44 (selection) 263.78 620.24 P
+3 F
+-0.18 (,) 317.76 620.24 P
+5 F
+-0.44 (send) 322.57 620.24 P
+3 F
+-0.18 (, and) 346.55 620.24 P
+5 F
+-0.44 (focus) 368.12 620.24 P
+3 F
+-0.18 (, have a new) 398.1 620.24 P
+5 F
+-0.44 (-displayof) 449.82 620.24 P
+3 F
+(ar) 152.1 608.15 T
+(gument so that you can select a particular display) 159.69 608.15 T
+(. In addition, the bindings have been) 356.12 608.15 T
+(reworked to handle interactions occurring simultaneously on dif) 152.1 596.05 T
+(ferent displays. W) 408.13 596.05 T
+(ith Tk) 480.73 596.05 T
+(4.0 it should be possible to create applications that really use multiple displays gracefully) 152.1 583.96 T
+(.) 508.44 583.96 T
+98.1 540.6 512.1 543.63 C
+152.1 541.83 512.1 541.83 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 542.12 143.1 542.12 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(10) 127.96 547.63 T
+(The send command) 152.1 547.63 T
+3 10 Q
+-0.2 (The) 152.1 523.94 P
+5 F
+-0.48 (send) 169.94 523.94 P
+3 F
+-0.2 ( command has been completely overhauled for Tk 4.0 to eliminate several prob-) 193.93 523.94 P
+(lems in Tk 3.6 and add a number of new features:) 152.1 511.85 T
+3 12 Q
+(\245) 152.1 496.85 T
+3 10 Q
+(Tk 3.6 aborts a) 162.9 496.85 T
+5 F
+(send) 225.36 496.85 T
+3 F
+( command if no response is received within 5 seconds; this made) 249.34 496.85 T
+(it very dif) 162.9 484.75 T
+(\336cult to invoke long-running commands. Tk 4.0 eliminates the timeout and) 202.14 484.75 T
+(uses a dif) 162.9 472.66 T
+(ferent mechanism to tell if the tar) 200.47 472.66 T
+(get application has crashed.) 333.53 472.66 T
+3 12 Q
+(\245) 152.1 457.66 T
+3 10 Q
+-0.36 (The) 162.9 457.66 P
+5 F
+-0.87 (winfo interps) 180.58 457.66 P
+3 F
+-0.36 ( command no longer returns the names of applications that have) 257.66 457.66 P
+(exited or crashed.) 162.9 445.57 T
+3 12 Q
+(\245) 152.1 430.57 T
+3 10 Q
+(Asynchronous sends are possible using the) 162.9 430.57 T
+5 F
+(-async) 336.67 430.57 T
+3 F
+( switch.) 372.65 430.57 T
+3 12 Q
+(\245) 152.1 415.57 T
+3 10 Q
+(Commands can be sent to displays other than that of the root window) 162.9 415.57 T
+(, using the) 439.3 415.57 T
+5 F
+(-) 162.9 403.47 T
+(displayof) 168.9 403.47 T
+3 F
+( switch.) 222.87 403.47 T
+3 12 Q
+(\245) 152.1 388.47 T
+3 10 Q
+(W) 162.9 388.47 T
+(indow server security is now checked on each) 171.93 388.47 T
+5 F
+(send) 357.89 388.47 T
+3 F
+(, so Tk 4.0 deals better with) 381.88 388.47 T
+(changes in the security of the server) 162.9 376.38 T
+(.) 306.12 376.38 T
+3 12 Q
+(\245) 152.1 361.38 T
+3 10 Q
+(More complete error information \050including the) 162.9 361.38 T
+5 F
+(errorCode) 356.09 361.38 T
+3 F
+( and) 410.06 361.38 T
+5 F
+(errorInfo) 429.49 361.38 T
+3 F
+( vari-) 483.46 361.38 T
+(ables\051 is propagated back to the sender after errors.) 162.9 349.29 T
+3 12 Q
+(\245) 152.1 334.29 T
+3 10 Q
+(Y) 162.9 334.29 T
+(ou can query and change the name of an application with the) 169.12 334.29 T
+5 F
+(tk appname) 414.48 334.29 T
+3 F
+( com-) 474.45 334.29 T
+(mand.) 162.9 322.19 T
+(Unfortunately the improvements to the Tk 4.0) 152.1 307.19 T
+5 F
+(send) 338.65 307.19 T
+3 F
+( mechanism required substantial) 362.63 307.19 T
+(changes to the transport protocol for sends; this makes it impossible for Tk 4.0 applica-) 152.1 295.1 T
+(tions to communicate with Tk 3.6 applications via) 152.1 283.01 T
+5 F
+(send) 355.04 283.01 T
+3 F
+(. The new transport protocol is) 379.02 283.01 T
+(more \337exible than the old protocol, so it should be possible to make protocol improve-) 152.1 270.91 T
+(ments in an upward-compatible way) 152.1 258.82 T
+(.) 296.9 258.82 T
+98.1 215.47 512.1 218.49 C
+152.1 216.69 512.1 216.69 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 216.98 143.1 216.98 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(1) 128.62 222.49 T
+(1) 134.63 222.49 T
+(The selection and clipboard) 152.1 222.49 T
+3 10 Q
+(In Tk 3.6 the selection mechanism can deal only with the display of the root window and) 152.1 198.8 T
+-0.13 (with the primary selection; there is no support for multiple displays, secondary selections,) 152.1 186.71 P
+(or the clipboard. Tk 4.0 eliminates all of these shortcomings. The) 152.1 174.61 T
+5 F
+(-displayof) 415.82 174.61 T
+3 F
+( option) 475.78 174.61 T
+-0.12 (can be used to specify a particular display in the selection command, and there is now full) 152.1 162.52 P
+(access to all of the X selection types. Tk 4.0 also includes a new) 152.1 150.43 T
+5 F
+(clipboard) 411.36 150.43 T
+3 F
+( command) 465.33 150.43 T
+(for manipulating the clipboard.) 152.1 138.33 T
+FMENDPAGE
+%%EndPage: "15" 16
+%%Page: "16" 16
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(16) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+98.1 623.98 512.1 627 C
+152.1 625.2 512.1 625.2 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 625.49 143.1 625.49 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(12) 127.96 631 T
+(Miscellaneous changes) 152.1 631 T
+3 10 Q
+(Here is a quick summary of the remaining changes in Tk 4.0:) 152.1 607.31 T
+3 12 Q
+(\245) 152.1 592.31 T
+3 10 Q
+-0.17 (The) 162.9 592.31 P
+5 F
+-0.42 (wish) 180.76 592.31 P
+3 F
+-0.17 ( application has been modi\336ed so that the) 204.75 592.31 P
+5 F
+-0.42 (-f) 371.58 592.31 P
+-0.42 (ile) 383.57 592.31 P
+3 F
+-0.17 ( switch is no longer needed) 401.56 592.31 P
+(or recommended. This makes) 162.9 580.31 T
+5 F
+(wish) 283.64 580.31 T
+3 F
+( just like) 307.63 580.31 T
+5 F
+(tclsh) 344.56 580.31 T
+3 F
+(, where you specify the script \336le) 374.54 580.31 T
+(as the \336rst ar) 162.9 568.31 T
+(gument to the program, e.g.) 214.07 568.31 T
+5 F
+(wish foo.tcl) 327.33 568.31 T
+3 F
+(. The) 399.29 568.31 T
+5 F
+(-f) 422.33 568.31 T
+(ile) 434.32 568.31 T
+3 F
+( switch is still) 452.31 568.31 T
+(permitted for backward compatibility) 162.9 556.31 T
+(, but its use is deprecated.) 311.87 556.31 T
+3 12 Q
+(\245) 152.1 541.31 T
+5 10 Q
+(Wish) 162.9 541.31 T
+3 F
+( now sets the application\325) 186.89 541.31 T
+(s class from the application name \050what appears in the) 288.49 541.31 T
+-0.37 (title bar of the window by default\051, rather than always using) 162.9 529.31 P
+5 F
+-0.88 (Tk) 400.9 529.31 P
+3 F
+-0.37 ( as the class as in Tk 3.6.) 412.89 529.31 P
+(This makes application-speci\336c options easier to use.) 162.9 517.31 T
+3 12 Q
+(\245) 152.1 502.31 T
+3 10 Q
+(T) 162.9 502.31 T
+(oplevel windows are now resizable by default, whereas in Tk 3.6 they were not. Y) 168.31 502.31 T
+(ou) 496.22 502.31 T
+(can use the) 162.9 490.31 T
+5 F
+(wm resizable) 209.8 490.31 T
+3 F
+( command to make windows non-reiszable.) 281.77 490.31 T
+3 12 Q
+(\245) 152.1 475.31 T
+3 10 Q
+(Tk 4.0 patches around an Xlib bug whereby long-running applications tended to reach) 162.9 475.31 T
+(the end of the space of X resource ids, wrap around to 0 again, and then crash. Tk now) 162.9 463.31 T
+(reuses resource identi\336ers so that wrap-around should never occur) 162.9 451.31 T
+(.) 427.14 451.31 T
+3 12 Q
+(\245) 152.1 436.31 T
+3 10 Q
+-0.13 (There is a new) 162.9 436.31 P
+5 F
+-0.31 (winfo manager) 223.43 436.31 P
+3 F
+-0.13 ( command that tells which geometry manager is con-) 301.08 436.31 P
+(trolling a particular widget.) 162.9 424.31 T
+3 12 Q
+(\245) 152.1 409.31 T
+3 10 Q
+(There is a new) 162.9 409.31 T
+5 F
+(bell) 223.96 409.31 T
+3 F
+( command that does what its name suggests.) 247.94 409.31 T
+3 12 Q
+(\245) 152.1 394.31 T
+3 10 Q
+(There are new) 162.9 394.31 T
+5 F
+(winfo pointerx) 222.56 394.31 T
+3 F
+(,) 306.51 394.31 T
+5 F
+(winfo pointery) 311.51 394.31 T
+3 F
+(, and) 394.81 394.31 T
+5 F
+(winfo pointerxy) 416.74 394.31 T
+3 F
+(commands that can be used to query the position of the mouse pointer) 162.9 382.31 T
+(.) 442.17 382.31 T
+98.1 338.95 512.1 341.98 C
+152.1 340.18 512.1 340.18 2 L
+0.5 H
+2 Z
+0 X
+0 K
+N
+98.1 340.46 143.1 340.46 2 L
+0 Z
+N
+40.5 63 571.5 729 C
+0 12 Q
+0 X
+0 K
+(13) 127.96 345.98 T
+(Summary of Incompatibilites) 152.1 345.98 T
+3 10 Q
+-0.24 (This section lists all of the incompatible changes in Tk 4.0 that may require changes in T) 152.1 322.29 P
+-0.24 (cl) 502.62 322.29 P
+-0.22 (scripts written for T) 152.1 310.29 P
+-0.22 (cl 3.6. Each incompatibility is described in terms of the problem it pro-) 230.42 310.29 P
+(duces when you run your Tk 3.6 script under Tk 4.0 and a possible work-around. Only) 152.1 298.29 T
+(T) 152.1 286.29 T
+(cl-level incompatibilities are covered here. For incompatible changes at the C level, see) 157.51 286.29 T
+(the) 152.1 274.29 T
+5 F
+(README) 166.81 274.29 T
+3 F
+( and) 202.79 274.29 T
+5 F
+(changes) 222.22 274.29 T
+3 F
+( \336les in the distribution. The problems and solutions are) 264.2 274.29 T
+(roughly in order of importance, with the most important problems \336rst.) 152.1 262.29 T
+1 F
+(Pr) 152.1 247.29 T
+(oblem #1:) 162.46 247.29 T
+3 F
+(When you change the background color of a widget, a small ring in the) 206.88 247.29 T
+(default background color remains around the edge of the widget.) 152.1 235.29 T
+2 F
+(Solution:) 170.1 223.29 T
+3 F
+(This is the focus traversal highlight, whose color is speci\336ed separately) 209.25 223.29 T
+(from) 170.1 211.29 T
+5 F
+(-background) 192.03 211.29 T
+3 F
+(; use the) 257.99 211.29 T
+5 F
+(-highlightbackground) 293.8 211.29 T
+3 F
+( option to change the) 413.74 211.29 T
+(color of the highlight. Or) 170.1 199.29 T
+(, you can set) 269.92 199.29 T
+5 F
+(-highlightthickness) 322.38 199.29 T
+3 F
+( to 0 to eliminate) 436.31 199.29 T
+(the traversal highlight altogether) 170.1 187.29 T
+(.) 299.74 187.29 T
+1 F
+(Pr) 152.1 172.29 T
+(oblem #2:) 162.46 172.29 T
+3 F
+(Bindings de\336ned for a widget no longer replace the corresponding class) 206.88 172.29 T
+(bindings, so unwanted class bindings get invoked in addition to the widget bindings.) 152.1 160.29 T
+FMENDPAGE
+%%EndPage: "16" 17
+%%Page: "17" 17
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(13 Summary of Incompatibilites) 98.1 668.33 T
+0 F
+(17) 500.99 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+2 F
+0 X
+(Solution:) 170.1 632.33 T
+3 F
+(Add a) 209.25 632.33 T
+5 F
+(break) 235.89 632.33 T
+3 F
+( command at the end of the widget binding, or rework the) 265.88 632.33 T
+(widget binding so that it\325) 170.1 620.33 T
+(s OK for the class binding to execute.) 270.05 620.33 T
+1 F
+(Pr) 152.1 605.33 T
+(oblem #3:) 162.46 605.33 T
+3 F
+(Bindings on toplevel windows are invoked when events occur for internal) 206.88 605.33 T
+(windows inside the toplevels.) 152.1 593.33 T
+2 F
+(Solution:) 170.1 581.33 T
+3 F
+(Use the) 209.25 581.33 T
+5 F
+(%W) 242 581.33 T
+3 F
+( substitution to extract the name of the window where the event) 253.99 581.33 T
+(actually occurred, and only execute the rest of the binding script if this matches the) 170.1 569.33 T
+(name of the toplevel.) 170.1 557.33 T
+1 F
+-0.15 (Pr) 152.1 542.33 P
+-0.15 (oblem #4:) 162.46 542.33 P
+3 F
+-0.15 (The) 206.58 542.33 P
+5 F
+-0.37 (-command) 224.46 542.33 P
+3 F
+-0.15 ( option for a cascade menu entry is no longer invoked when) 272.44 542.33 P
+(the submenu is posted.) 152.1 530.33 T
+2 F
+(Solution:) 170.1 518.33 T
+3 F
+(Use the) 209.25 518.33 T
+5 F
+(-postcommand) 242 518.33 T
+3 F
+( option for the submenu instead.) 313.96 518.33 T
+1 F
+(Pr) 152.1 503.33 T
+(oblem #5:) 162.46 503.33 T
+3 F
+(The) 206.88 503.33 T
+5 F
+(-geometry) 224.92 503.33 T
+3 F
+( option is no longer supported by listboxes, frames, and) 278.89 503.33 T
+(toplevels.) 152.1 491.33 T
+2 F
+(Solution:) 170.1 479.33 T
+3 F
+(Use the) 209.25 479.33 T
+5 F
+(-width) 242 479.33 T
+3 F
+( and) 277.98 479.33 T
+5 F
+(-height) 297.41 479.33 T
+3 F
+( options instead.) 339.39 479.33 T
+1 F
+(Pr) 152.1 464.33 T
+(oblem #6:) 162.46 464.33 T
+3 F
+(The procedure) 206.88 464.33 T
+5 F
+(tk_listboxSingleSelect) 267.38 464.33 T
+3 F
+( no longer exists.) 399.3 464.33 T
+2 F
+(Solution:) 170.1 452.33 T
+3 F
+(Use the) 209.25 452.33 T
+5 F
+(-selectmode) 242 452.33 T
+3 F
+( option on the listbox instead.) 307.96 452.33 T
+1 F
+(Pr) 152.1 437.33 T
+(oblem #7:) 162.46 437.33 T
+3 F
+(Canvases no longer have a) 206.88 437.33 T
+5 F
+(-scrollincrement) 315.96 437.33 T
+3 F
+( option.) 411.91 437.33 T
+2 F
+(Solution:) 170.1 425.33 T
+3 F
+(Use the new) 209.25 425.33 T
+5 F
+(-xscrollincrement) 261.15 425.33 T
+3 F
+( and) 363.09 425.33 T
+5 F
+(-yscrollincrement) 382.52 425.33 T
+3 F
+(options instead.) 170.1 413.33 T
+1 F
+(Pr) 152.1 398.33 T
+(oblem #8:) 162.46 398.33 T
+3 F
+(The) 206.88 398.33 T
+5 F
+(tk colormodel) 224.92 398.33 T
+3 F
+( command no longer exists.) 302.88 398.33 T
+2 F
+-0.28 (Solution:) 170.1 386.33 P
+3 F
+-0.28 (T) 208.97 386.33 P
+-0.28 (o \336nd out whether a window is monochrome or color) 214.37 386.33 P
+-0.28 (, use) 424.34 386.33 P
+5 F
+-0.68 (winfo depth) 444.6 386.33 P
+3 F
+(to extract the window\325) 170.1 374.33 T
+(s depth; a depth of 1 means monochrome.) 259.76 374.33 T
+1 F
+-0.08 (Pr) 152.1 359.33 P
+-0.08 (oblem #9:) 162.46 359.33 P
+3 F
+-0.08 (The class of Tk applications is no longer) 206.72 359.33 P
+5 F
+-0.19 (Tk) 370.97 359.33 P
+3 F
+-0.08 (, so options speci\336ed for the) 382.96 359.33 P
+5 F
+-0.19 (Tk) 497.69 359.33 P
+3 F
+(class in your) 152.1 347.33 T
+5 F
+(.Xdefaults) 205.12 347.33 T
+3 F
+( \336le are no longer used.) 265.09 347.33 T
+2 F
+(Solution:) 170.1 335.33 T
+3 F
+(Modify your) 209.25 335.33 T
+5 F
+(.Xdefaults) 262.55 335.33 T
+3 F
+( \336le \050and any T) 322.52 335.33 T
+(cl code that sets options\051 to) 382.88 335.33 T
+(specify the name of the application \050with the \336rst letter capitalized\051 as the class) 170.1 323.33 T
+(instead of) 170.1 311.33 T
+5 F
+(Tk) 211.74 311.33 T
+3 F
+(.) 223.73 311.33 T
+1 F
+-0.15 (Pr) 152.1 296.33 P
+-0.15 (oblem #10:) 162.46 296.33 P
+3 F
+-0.15 (When text is added to a text widget just after a tagged area, the new text no) 211.57 296.33 P
+(longer receives the tag.) 152.1 284.33 T
+2 F
+-0.1 (Solution:) 170.1 272.33 P
+3 F
+-0.1 (Explicitly tag the new text with the desired tags. If you want the tags on the) 209.15 272.33 P
+-0.08 (new text to be the same as those at some other point in the text, you can use the) 170.1 260.33 P
+5 F
+-0.2 (tag) 488.31 260.33 P
+(names) 170.1 248.33 T
+3 F
+( widget command to query existing tags.) 200.08 248.33 T
+1 F
+(Pr) 152.1 233.33 T
+(oblem #1) 162.46 233.33 T
+(1:) 200.5 233.33 T
+3 F
+(W) 211.33 233.33 T
+(idgets appear lar) 220.36 233.33 T
+(ger than they did in Tk 3.6.) 286.24 233.33 T
+2 F
+(Solution:) 170.1 221.33 T
+3 F
+(There are two issues here. The \336rst is that all widgets now have a focus tra-) 209.25 221.33 T
+-0.24 (versal highlight ring that turns dark when the widget has the focus; this is required for) 170.1 209.33 P
+(Motif compliance but you can eliminate it by specifying a 0 value for the) 170.1 197.33 T
+5 F
+( -high-) 462.4 197.33 T
+(lightthickness) 170.1 185.33 T
+3 F
+( option. The second issue is that the default padding for buttons) 254.05 185.33 T
+-0.17 (and menubuttons has been increased to match the sizes of Motif widgets. If you don\325) 170.1 173.33 P
+-0.17 (t) 506.99 173.33 P
+(mind being dif) 170.1 161.33 T
+(ferent from Motif, you can set the) 228.78 161.33 T
+5 F
+(-padx) 366.45 161.33 T
+3 F
+( and) 396.44 161.33 T
+5 F
+(-) 415.86 161.33 T
+(pady) 421.86 161.33 T
+3 F
+( options back to) 445.85 161.33 T
+FMENDPAGE
+%%EndPage: "17" 18
+%%Page: "18" 18
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(18) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+3 F
+0 X
+(their Tk 3.6 values \050use the) 170.1 632.33 T
+5 F
+(conf) 281.41 632.33 T
+(igure) 305.4 632.33 T
+3 F
+( widget command in Tk 3.6 to see what the) 335.38 632.33 T
+(old values were\051.) 170.1 620.33 T
+1 F
+(Pr) 152.1 605.33 T
+(oblem #12:) 162.46 605.33 T
+3 F
+(Listboxes now return the selection as a string with newlines separating the) 211.88 605.33 T
+(values, rather than a T) 152.1 593.33 T
+(cl, list.) 240.49 593.33 T
+2 F
+(Solution:) 170.1 581.33 T
+3 F
+(Modify your code to handle the new format. Y) 209.25 581.33 T
+(ou can convert the selection) 395.06 581.33 T
+(back into the old list format with a script like the following:) 170.1 569.33 T
+5 9 Q
+(split [selection get] \134n) 179.1 555 T
+1 10 Q
+(Pr) 152.1 541.33 T
+(oblem #13:) 162.46 541.33 T
+3 F
+(Tk 4.0 applications cannot) 211.88 541.33 T
+5 F
+(send) 320.42 541.33 T
+3 F
+( to or be sent from Tk 3.6 applications.) 344.4 541.33 T
+2 F
+(Solution:) 170.1 529.33 T
+3 F
+(The only solution is to upgrade all your applications to Tk 4.0.) 209.25 529.33 T
+1 F
+-0.17 (Pr) 152.1 514.33 P
+-0.17 (oblem #14:) 162.46 514.33 P
+3 F
+-0.17 (In texts,) 211.54 514.33 P
+5 F
+-0.4 (end) 245.91 514.33 P
+3 F
+-0.17 ( now refers to a position just after the \336nal newline, instead of) 263.9 514.33 P
+(the \336nal newline.) 152.1 502.33 T
+2 F
+-0.08 (Solution:) 170.1 490.33 P
+3 F
+-0.08 (If you wish to refer to the \336nal newline, use the index) 209.17 490.33 P
+5 F
+-0.19 (end-1char) 424.98 490.33 P
+3 F
+-0.08 ( instead) 478.95 490.33 P
+(of) 170.1 478.33 T
+5 F
+(end) 180.92 478.33 T
+3 F
+(.) 198.91 478.33 T
+1 F
+(Pr) 152.1 463.33 T
+(oblem #15:) 162.46 463.33 T
+3 F
+(In entry widgets,) 211.88 463.33 T
+5 F
+(sel.last) 281.83 463.33 T
+3 F
+( now refers to the character just after the last) 329.8 463.33 T
+(selected one, rather than the last selected one. The second index for the) 152.1 451.33 T
+5 F
+(delete) 438.81 451.33 T
+3 F
+( widget) 474.79 451.33 T
+(command has changed in the same way) 152.1 439.33 T
+(.) 309.66 439.33 T
+2 F
+(Solution:) 170.1 427.33 T
+3 F
+(Add one to the values used in your scripts.) 209.25 427.33 T
+1 F
+(Pr) 152.1 412.33 T
+(oblem #16:) 162.46 412.33 T
+3 F
+(Because) 211.88 412.33 T
+5 F
+(Any) 247.68 412.33 T
+3 F
+( is implicit in all bindings, bindings trigger when extra modi-) 265.67 412.33 T
+(\336ers are present, whereas they didn\325) 152.1 400.33 T
+(t trigger in Tk 3.6.) 296.24 400.33 T
+2 F
+(Solution:) 170.1 388.33 T
+3 F
+(In most cases it\325) 209.25 388.33 T
+(s probably \336ne to ignore the extra modi\336ers. If you really) 273.93 388.33 T
+-0.12 (don\325) 170.1 376.33 P
+-0.12 (t want any actions to be taken when extra modi\336ers are present, create additional) 188.24 376.33 P
+(bindings for the cases with extra modi\336ers, and specify a single blank character \050or) 170.1 364.33 T
+(any script that does nothing\051 as the script for those bindings. Alternatively) 170.1 352.33 T
+(, you can) 465.93 352.33 T
+(use the) 170.1 340.33 T
+5 F
+(%s) 200.63 340.33 T
+3 F
+( substitution to extract the mouse and modi\336er state in the event binding,) 212.63 340.33 T
+(then you can test this value for modi\336ers you do or don\325) 170.1 328.33 T
+(t want.) 394.5 328.33 T
+1 F
+(Pr) 152.1 313.33 T
+(oblem #17:) 162.46 313.33 T
+3 F
+(In scrollbars there is no longer a) 211.88 313.33 T
+5 F
+(-foreground) 343.17 313.33 T
+3 F
+( or) 409.13 313.33 T
+5 F
+(-activefore-) 422.45 313.33 T
+(ground) 152.1 301.33 T
+3 F
+( option, and) 188.08 301.33 T
+5 F
+(-background) 238.05 301.33 T
+3 F
+( has a dif) 304.02 301.33 T
+(ferent meaning.) 340.2 301.33 T
+2 F
+-0.4 (Solution:) 170.1 289.33 P
+3 F
+-0.4 (Use) 208.85 289.33 P
+5 F
+-0.96 (-troughcolor) 226.49 289.33 P
+3 F
+-0.4 ( everywhere that you used) 298.45 289.33 P
+5 F
+-0.96 (-background) 403.87 289.33 P
+3 F
+-0.4 ( in Tk 3.6,) 469.83 289.33 P
+5 F
+(-background) 170.1 277.33 T
+3 F
+( everywhere you used to use) 236.06 277.33 T
+5 F
+(-foreground) 352.08 277.33 T
+3 F
+(, and) 418.04 277.33 T
+5 F
+(-activeback-) 439.97 277.33 T
+(ground) 170.1 265.33 T
+3 F
+( everywhere you used to use) 206.08 265.33 T
+5 F
+(-activeforeground) 322.1 265.33 T
+3 F
+(.) 424.04 265.33 T
+1 F
+(Pr) 152.1 250.33 T
+(oblem #18:) 162.46 250.33 T
+3 F
+(Options for colors seem to have changed in scale widgets.) 211.88 250.33 T
+2 F
+(Solution:) 170.1 238.33 T
+3 F
+(Use) 209.25 238.33 T
+5 F
+(-background) 227.29 238.33 T
+3 F
+( where you used to use) 293.25 238.33 T
+5 F
+(-sliderforeground) 387.07 238.33 T
+3 F
+(,) 489.02 238.33 T
+5 F
+(-) 170.1 226.33 T
+(troughcolor) 176.1 226.33 T
+3 F
+( where you used to use) 242.06 226.33 T
+5 F
+(-background) 335.88 226.33 T
+3 F
+(, and) 401.84 226.33 T
+5 F
+( -activeback-) 421.27 226.33 T
+(ground) 170.1 214.33 T
+3 F
+( everywhere you used to use) 206.08 214.33 T
+5 F
+(-activeforeground) 322.1 214.33 T
+3 F
+(.) 424.04 214.33 T
+1 F
+(Pr) 152.1 199.33 T
+(oblem #19:) 162.46 199.33 T
+3 F
+(Scale widgets no longer accept hexadecimal or octal numbers in the) 211.88 199.33 T
+5 F
+(set) 485.84 199.33 T
+3 F
+(command or the) 152.1 187.33 T
+5 F
+(-from) 219.55 187.33 T
+3 F
+( and) 249.54 187.33 T
+5 F
+(-to) 268.97 187.33 T
+3 F
+( options.) 286.96 187.33 T
+2 F
+(Solution:) 170.1 175.33 T
+3 F
+(Use) 209.25 175.33 T
+5 F
+(format) 227.29 175.33 T
+3 F
+( or) 263.27 175.33 T
+5 F
+(expr) 276.59 175.33 T
+3 F
+( to convert the values to decimal.) 300.58 175.33 T
+1 F
+(Pr) 152.1 160.33 T
+(oblem #20:) 162.46 160.33 T
+3 F
+(In checkbuttons, radiobuttons, and menu entries, the) 211.88 160.33 T
+5 F
+(-selector) 423.4 160.33 T
+3 F
+( option) 477.37 160.33 T
+(no longer exists.) 152.1 148.33 T
+FMENDPAGE
+%%EndPage: "18" 19
+%%Page: "19" 19
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(13 Summary of Incompatibilites) 98.1 668.33 T
+0 F
+(19) 500.99 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+2 F
+0 X
+(Solution:) 170.1 632.33 T
+3 F
+(Use) 209.25 632.33 T
+5 F
+(-selectcolor) 227.29 632.33 T
+3 F
+( instead of) 299.25 632.33 T
+5 F
+(-select) 343.39 632.33 T
+3 F
+(. T) 385.36 632.33 T
+(o specify that no indicator) 395.77 632.33 T
+(should be drawn at all, use the) 170.1 620.33 T
+5 F
+(-indicatoron) 293.9 620.33 T
+3 F
+( option instead of setting) 365.86 620.33 T
+5 F
+(-select) 467.2 620.33 T
+3 F
+(to an empty string.) 170.1 608.33 T
+1 F
+-0.12 (Pr) 152.1 593.33 P
+-0.12 (oblem #21:) 162.46 593.33 P
+3 F
+-0.12 (The indices of menu entries have changed, and operations on menu entry 0) 211.64 593.33 P
+(no longer work.) 152.1 581.33 T
+2 F
+(Solution:) 170.1 569.33 T
+3 F
+(This is because menus now have a tearof) 209.25 569.33 T
+(f entry at the top by default, and) 372.55 569.33 T
+(this occupies entry 0, so your \336rst entry is now entry 1. Y) 170.1 557.33 T
+(ou can either set the) 398.95 557.33 T
+5 F
+(-) 170.1 545.33 T
+(tearoff) 176.1 545.33 T
+3 F
+( option to 0 to eliminate the tearof) 218.07 545.33 T
+(f entry or add 1 to all the indices you) 354.2 545.33 T
+(use in your scripts.) 170.1 533.33 T
+1 F
+-0.22 (Pr) 152.1 518.33 P
+-0.22 (oblem #22:) 162.46 518.33 P
+3 F
+-0.22 (The) 211.44 518.33 P
+5 F
+-0.53 (enable) 229.26 518.33 P
+3 F
+-0.22 ( and) 265.24 518.33 P
+5 F
+-0.53 (disable) 284.23 518.33 P
+3 F
+-0.22 ( widget commands are no longer supported by) 326.21 518.33 P
+(menus.) 152.1 506.33 T
+2 F
+(Solution:) 170.1 494.33 T
+3 F
+(Use the) 209.25 494.33 T
+5 F
+(-state) 242 494.33 T
+3 F
+( con\336guration option instead.) 277.98 494.33 T
+1 F
+(Pr) 152.1 479.33 T
+(oblem #23:) 162.46 479.33 T
+3 F
+(The) 211.88 479.33 T
+5 F
+(activate) 229.92 479.33 T
+3 F
+( and) 277.89 479.33 T
+5 F
+(deactivate) 297.32 479.33 T
+3 F
+( widget commands are no longer sup-) 357.29 479.33 T
+(ported by buttons, checkbuttons, radiobuttons, and menus.) 152.1 467.33 T
+2 F
+(Solution:) 170.1 455.33 T
+3 F
+(Use the) 209.25 455.33 T
+5 F
+(-state) 242 455.33 T
+3 F
+( con\336guration option instead.) 277.98 455.33 T
+1 F
+(Pr) 152.1 440.33 T
+(oblem #24:) 162.46 440.33 T
+3 F
+(Canvas arc items no longer use the) 211.88 440.33 T
+5 F
+(-f) 353.72 440.33 T
+(ill) 365.71 440.33 T
+3 F
+( and) 383.7 440.33 T
+5 F
+(-stipple) 403.13 440.33 T
+3 F
+( options for) 451.11 440.33 T
+(drawing when the) 152.1 428.33 T
+5 F
+(-style) 226.21 428.33 T
+3 F
+( option is) 262.19 428.33 T
+5 F
+(arc) 301.9 428.33 T
+3 F
+(.) 319.89 428.33 T
+2 F
+(Solution:) 170.1 416.33 T
+3 F
+(Use the) 209.25 416.33 T
+5 F
+(-outline) 242 416.33 T
+3 F
+( and) 289.97 416.33 T
+5 F
+(-outlinestipple) 309.4 416.33 T
+3 F
+( options instead.) 399.35 416.33 T
+1 F
+-0.29 (Pr) 152.1 401.33 P
+-0.29 (oblem #25:) 162.46 401.33 P
+3 F
+-0.29 (The variable) 211.29 401.33 P
+5 F
+-0.7 (tkVersion) 263.43 401.33 P
+3 F
+-0.29 ( no longer exists \050it has been obsolete for several) 317.4 401.33 P
+(releases\051.) 152.1 389.33 T
+2 F
+(Solution:) 170.1 377.33 T
+3 F
+(Use) 209.25 377.33 T
+5 F
+(tk_version) 227.29 377.33 T
+3 F
+( instead.) 287.26 377.33 T
+1 F
+(Pr) 152.1 362.33 T
+(oblem #26:) 162.46 362.33 T
+3 F
+(The syntax of the) 211.88 362.33 T
+5 F
+(scan) 284.05 362.33 T
+3 F
+( widget commands for texts has changed.) 308.03 362.33 T
+2 F
+(Solution:) 170.1 350.33 T
+3 F
+(Modify your code to use the new syntax.) 209.25 350.33 T
+1 F
+(Pr) 152.1 335.33 T
+(oblem #27:) 162.46 335.33 T
+5 F
+(wish) 211.88 335.33 T
+3 F
+( no longer recognizes the) 235.86 335.33 T
+5 F
+(-help) 338.84 335.33 T
+3 F
+( option.) 368.82 335.33 T
+2 F
+(Solution:) 170.1 323.33 T
+3 F
+(Implement this option yourself in your) 209.25 323.33 T
+5 F
+(wish) 366.38 323.33 T
+3 F
+( scripts.) 390.37 323.33 T
+1 F
+(Pr) 152.1 308.33 T
+(oblem #28:) 162.46 308.33 T
+3 F
+(Tk 4.0 always prints real numbers such as canvas coordinates with a deci-) 211.88 308.33 T
+(mal point. This can cause syntax errors if you later use them in situations where integers) 152.1 296.33 T
+(are expected.) 152.1 284.33 T
+2 F
+(Solution:) 170.1 272.33 T
+3 F
+(Change your code so that real numbers work OK, or use the) 209.25 272.33 T
+5 F
+(expr) 451.57 272.33 T
+3 F
+( com-) 475.55 272.33 T
+(mand \050with the) 170.1 260.33 T
+5 F
+(round) 233.12 260.33 T
+3 F
+( function\051 to convert the numbers to integers.) 263.1 260.33 T
+1 F
+(Pr) 152.1 245.33 T
+(oblem #29:) 162.46 245.33 T
+3 F
+(The) 211.88 245.33 T
+5 F
+(pack info) 229.92 245.33 T
+3 F
+( command returns dif) 283.89 245.33 T
+(ferent information, and) 369.48 245.33 T
+5 F
+(pack) 464.41 245.33 T
+(newinfo) 152.1 233.33 T
+3 F
+( no longer exists.) 194.08 233.33 T
+2 F
+(Solution:) 170.1 221.33 T
+3 F
+(Use) 209.25 221.33 T
+5 F
+(pack info) 227.29 221.33 T
+3 F
+( where you used to use) 281.26 221.33 T
+5 F
+(pack newinfo) 375.08 221.33 T
+3 F
+(.) 447.04 221.33 T
+5 F
+(Pack info) 452.04 221.33 T
+3 F
+(was obsolete, so it has been eliminated.) 170.1 209.33 T
+1 F
+(Pr) 152.1 194.33 T
+(oblem #30:) 162.46 194.33 T
+3 F
+(The) 211.88 194.33 T
+5 F
+(view) 229.92 194.33 T
+3 F
+( widget command for entries no longer exists, nor does the) 253.9 194.33 T
+5 F
+(-) 152.1 182.33 T
+(scrollcommand) 158.1 182.33 T
+3 F
+( option.) 236.05 182.33 T
+2 F
+-0.29 (Solution:) 170.1 170.33 P
+3 F
+-0.29 (Use) 208.96 170.33 P
+5 F
+-0.69 (xview) 226.71 170.33 P
+3 F
+-0.29 ( where you used to use) 256.7 170.33 P
+5 F
+-0.69 (view) 348.8 170.33 P
+3 F
+-0.29 (; use) 372.78 170.33 P
+5 F
+-0.69 (-xscrollcommand) 393.31 170.33 P
+3 F
+-0.29 ( where) 483.26 170.33 P
+(you used to use) 170.1 158.33 T
+5 F
+(-scrollcommand) 234.51 158.33 T
+3 F
+(.) 318.46 158.33 T
+FMENDPAGE
+%%EndPage: "19" 20
+%%Page: "20" 20
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(20) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+1 F
+0 X
+(Pr) 152.1 632.33 T
+(oblem #31:) 162.46 632.33 T
+3 F
+(The) 211.88 632.33 T
+5 F
+(-padx) 229.92 632.33 T
+3 F
+( and) 259.9 632.33 T
+5 F
+(-pady) 279.33 632.33 T
+3 F
+( options are ignored for the button family of wid-) 309.31 632.33 T
+(gets if a bitmap or image is being displayed: the padding is always 0.) 152.1 620.02 T
+2 F
+-0.27 (Solution:) 170.1 608.02 P
+3 F
+-0.27 (Pack the button inside a frame, with extra padding in the frame. Or) 208.98 608.02 P
+-0.27 (, redo the) 472.94 608.02 P
+(image or bitmap to incorporate padding into it.) 170.1 595.71 T
+1 F
+(Pr) 152.1 580.71 T
+(oblem #32:) 162.46 580.71 T
+3 F
+(In radiobuttons, the) 211.88 580.71 T
+5 F
+(-value) 292.38 580.71 T
+3 F
+( option no longer defaults to the name of the) 328.36 580.71 T
+(widget; it defaults to an empty string.) 152.1 568.4 T
+2 F
+(Solution:) 170.1 556.4 T
+3 F
+(Specify the widget\325) 209.25 556.4 T
+(s name explicitly as the value of the option.) 286.98 556.4 T
+1 F
+(Pr) 152.1 541.4 T
+(oblem #33:) 162.46 541.4 T
+3 F
+(The) 211.88 541.4 T
+5 F
+(-menu) 229.92 541.4 T
+3 F
+( option for menubuttons and cascade menu entries may refer) 259.9 541.4 T
+(only to a child of the menubutton or menu.) 152.1 529.08 T
+2 F
+(Solution:) 170.1 517.08 T
+3 F
+(Rename menus to meet this requirement.) 209.25 517.08 T
+1 F
+(Pr) 152.1 502.08 T
+(oblem #34:) 162.46 502.08 T
+3 F
+(The interpretation of) 211.88 502.08 T
+5 F
+(@y) 297.09 502.08 T
+3 F
+( in menus has changed: it never returns) 309.08 502.08 T
+5 F
+(none) 467.86 502.08 T
+3 F
+(,) 491.84 502.08 T
+(even if the y-coordinate is outside the menu \050it returns the index of the closest entry\051.) 152.1 489.77 T
+2 F
+(Solution:) 170.1 477.77 T
+3 F
+(If you care about this distinction, check the y-coordinate explicitly to see if) 209.25 477.77 T
+-0.17 (it is less than 0 or greater than or equal to the window\325) 170.1 465.46 P
+-0.17 (s height \050use) 385.7 465.46 P
+5 F
+-0.41 (winfo height) 438.21 465.46 P
+3 F
+(to get the height\051.) 170.1 453.15 T
+1 F
+-0.13 (Pr) 152.1 438.15 P
+-0.13 (oblem #35:) 162.46 438.15 P
+3 F
+-0.13 (The) 211.62 438.15 P
+5 F
+-0.3 (invoke) 229.54 438.15 P
+3 F
+-0.13 ( and) 265.52 438.15 P
+5 F
+-0.3 (activate) 284.7 438.15 P
+3 F
+-0.13 ( widget commands for menus no longer post) 332.67 438.15 P
+(cascaded submenus.) 152.1 425.83 T
+2 F
+(Solution:) 170.1 413.83 T
+3 F
+(Use the) 209.25 413.83 T
+5 F
+(postcascade) 242 413.83 T
+3 F
+( widget command to post submenus.) 307.96 413.83 T
+1 F
+(Pr) 152.1 398.83 T
+(oblem #36:) 162.46 398.83 T
+3 F
+(The selection tar) 211.88 398.83 T
+(gets) 278.31 398.83 T
+5 F
+(APPLICATION) 296.91 398.83 T
+3 F
+( and) 362.87 398.83 T
+5 F
+(WINDOW_NAME) 382.3 398.83 T
+3 F
+( are no longer) 448.27 398.83 T
+(supported.) 152.1 386.52 T
+2 F
+(Solution:) 170.1 374.52 T
+3 F
+(Use tar) 209.25 374.52 T
+(gets) 237.65 374.52 T
+5 F
+(TK_APPLICATION) 256.25 374.52 T
+3 F
+( and) 340.21 374.52 T
+5 F
+(TK_WINDOW) 359.64 374.52 T
+3 F
+( instead.) 413.61 374.52 T
+1 F
+(Pr) 152.1 359.52 T
+(oblem #37:) 162.46 359.52 T
+3 F
+(There is no longer a default focus.) 211.88 359.52 T
+2 F
+(Solution:) 170.1 347.52 T
+3 F
+(None: modify your code not to depend on this feature.) 209.25 347.52 T
+1 F
+(Pr) 152.1 332.52 T
+(oblem #38:) 162.46 332.52 T
+3 F
+(The) 211.88 332.52 T
+5 F
+(focus) 229.92 332.52 T
+3 F
+( command now returns an empty string to indicate that the) 259.9 332.52 T
+(application doesn\325) 152.1 320.21 T
+(t have the input focus, instead of) 225.48 320.21 T
+5 F
+(none) 358.17 320.21 T
+3 F
+(.) 382.15 320.21 T
+2 F
+(Solution:) 170.1 308.21 T
+3 F
+(Modify your code to check for an empty string instead of) 209.25 308.21 T
+5 F
+(none) 440.47 308.21 T
+3 F
+(.) 464.46 308.21 T
+1 F
+(Pr) 152.1 293.21 T
+(oblem #39:) 162.46 293.21 T
+5 F
+(FocusIn) 211.88 293.21 T
+3 F
+( and) 253.85 293.21 T
+5 F
+(FocusOut) 273.28 293.21 T
+3 F
+( events are delivered to more windows than) 321.26 293.21 T
+(they used to be.) 152.1 280.9 T
+2 F
+-0.02 (Solution:) 170.1 268.9 P
+3 F
+-0.02 (Modify your code to use the new set of events. The old event set was some-) 209.23 268.9 P
+(what bizarre, and the new set matches more closely what happens elsewhere, such as) 170.1 256.58 T
+(with) 170.1 244.27 T
+5 F
+(Enter) 190.37 244.27 T
+3 F
+( and) 220.35 244.27 T
+5 F
+(Leave) 239.78 244.27 T
+3 F
+( events.) 269.77 244.27 T
+1 F
+-0.28 (Pr) 152.1 229.27 P
+-0.28 (oblem #40:) 162.46 229.27 P
+5 F
+-0.67 (wm maxsize) 211.32 229.27 P
+3 F
+-0.28 ( and) 270.62 229.27 P
+5 F
+-0.67 (wm minsize) 289.49 229.27 P
+3 F
+-0.28 ( no longer accept empty ar) 348.79 229.27 P
+-0.28 (guments. This) 453.52 229.27 P
+(means that you cannot use these commands to make windows non-resizable.) 152.1 216.96 T
+2 F
+(Solution:) 170.1 204.96 T
+3 F
+(Use the) 209.25 204.96 T
+5 F
+(wm resizable) 242 204.96 T
+3 F
+( command to make windows resizable.) 313.96 204.96 T
+1 F
+(Pr) 152.1 189.96 T
+(oblem #41:) 162.46 189.96 T
+3 F
+(In the placer) 211.88 189.96 T
+(, if you specify both) 261.43 189.96 T
+5 F
+(-x) 344.15 189.96 T
+3 F
+( and) 356.15 189.96 T
+5 F
+(-relx) 375.58 189.96 T
+3 F
+( then they add, instead of) 405.56 189.96 T
+(the most recent speci\336cation replacing the earlier one. Ditto for) 152.1 177.65 T
+5 F
+(-y) 407.74 177.65 T
+3 F
+( and) 419.73 177.65 T
+5 F
+(-rely) 439.16 177.65 T
+3 F
+(,) 468.5 177.65 T
+5 F
+(-width) 473.49 177.65 T
+3 F
+(and) 152.1 165.33 T
+5 F
+(-relwidth) 169.03 165.33 T
+3 F
+(, and) 223 165.33 T
+5 F
+(-height) 244.93 165.33 T
+3 F
+( and) 286.91 165.33 T
+5 F
+(-relheight) 306.33 165.33 T
+3 F
+(.) 366.3 165.33 T
+2 F
+(Solution:) 170.1 153.33 T
+3 F
+(If you no longer want one of these options to be used, set it to 0 explicitly) 209.25 153.33 T
+(.) 503.14 153.33 T
+1 F
+(Pr) 152.1 138.33 T
+(oblem #42:) 162.46 138.33 T
+3 F
+(The command \322) 211.88 138.33 T
+5 F
+(focus none) 276.27 138.33 T
+3 F
+(\323 doesn\325) 336.24 138.33 T
+(t work in Tk 4.0.) 369.64 138.33 T
+FMENDPAGE
+%%EndPage: "20" 21
+%%Page: "21" 21
+612 792 0 FMBEGINPAGE
+4 10 Q
+0 X
+0 K
+(13 Summary of Incompatibilites) 98.1 668.33 T
+0 F
+(21) 500.99 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+2 F
+0 X
+(Solution:) 170.1 632.33 T
+3 F
+(Create a dummy widget that is never mapped and set the focus to that wid-) 209.25 632.33 T
+(get.) 170.1 620.33 T
+1 F
+(Pr) 152.1 605.33 T
+(oblem #43:) 162.46 605.33 T
+5 F
+(%D) 211.88 605.33 T
+3 F
+( substitutions are no longer supported in bindings, nor are the event) 223.87 605.33 T
+(types) 152.1 593.33 T
+5 F
+(CirculateRequest) 175.7 593.33 T
+3 F
+(,) 271.64 593.33 T
+5 F
+(Conf) 276.64 593.33 T
+(igureRequest) 300.63 593.33 T
+3 F
+(,) 372.59 593.33 T
+5 F
+(MapRequest) 377.59 593.33 T
+3 F
+(, and) 437.55 593.33 T
+5 F
+(Resiz-) 459.48 593.33 T
+(eRequest) 152.1 581.33 T
+3 F
+(.) 200.07 581.33 T
+2 F
+-0.25 (Solution:) 170.1 569.33 P
+3 F
+-0.25 (Use the name of the display instead of %D to identify a display; you can get) 209 569.33 P
+(the display name with the) 170.1 557.33 T
+5 F
+(winfo screen) 275.31 557.33 T
+3 F
+( command. The desupported event types) 347.27 557.33 T
+(never really worked anyway) 170.1 545.33 T
+(, so there should be no code that depends on them.) 282.96 545.33 T
+1 F
+(Pr) 152.1 530.33 T
+(oblem #44:) 162.46 530.33 T
+5 F
+(%) 211.88 530.33 T
+3 F
+( binding substitutions that return window identi\336ers, such as) 217.87 530.33 T
+5 F
+(%a) 461.63 530.33 T
+3 F
+( and) 473.62 530.33 T
+5 F
+(%S) 493.05 530.33 T
+3 F
+(,) 505.05 530.33 T
+(now produce hexadecimal results instead of decimal.) 152.1 518.33 T
+2 F
+(Solution:) 170.1 506.33 T
+3 F
+(Use the) 209.25 506.33 T
+5 F
+(format) 242 506.33 T
+3 F
+( command to turn them back to decimal.) 277.98 506.33 T
+1 F
+(Pr) 152.1 491.33 T
+(oblem #45:) 162.46 491.33 T
+5 F
+(Enter) 211.88 491.33 T
+3 F
+(,) 241.46 491.33 T
+5 F
+(Leave) 246.46 491.33 T
+3 F
+(,) 276.44 491.33 T
+5 F
+(FocusIn) 281.44 491.33 T
+3 F
+(, and) 323.42 491.33 T
+5 F
+(FocusOut) 345.34 491.33 T
+3 F
+( events with detail) 393.32 491.33 T
+5 F
+(Notify-) 468.83 491.33 T
+(Inferior) 152.1 479.33 T
+3 F
+( are now ignored by the binding mechanism, so they\325re not visible to T) 200.07 479.33 T
+(cl) 483.08 479.33 T
+(scripts.) 152.1 467.33 T
+2 F
+-0.13 (Solution:) 170.1 455.33 P
+3 F
+-0.13 (In most cases, T) 209.12 455.33 P
+-0.13 (cl scripts work better if these bindings are ignored. Y) 273 455.33 P
+-0.13 (ou can) 483.49 455.33 P
+(still use C code to access these events if you really need them. Or) 170.1 443.33 T
+(, create bindings on) 431.18 443.33 T
+-0.33 (the inferior windows and use) 170.1 431.33 P
+5 F
+-0.8 (NotifyAncestor) 286.96 431.33 P
+3 F
+-0.33 ( bindings on the children instead of) 370.91 431.33 P
+5 F
+(NotifyInferior) 170.1 419.33 T
+3 F
+( bindings on the parent.) 254.05 419.33 T
+FMENDPAGE
+%%EndPage: "21" 22
+%%Page: "22" 22
+612 792 0 FMBEGINPAGE
+0 10 Q
+0 X
+0 K
+(22) 98.1 668.33 T
+4 F
+(Tk4.0 Overview and Porting Guide) 359.34 668.33 T
+98.1 660.6 512.1 660.6 2 L
+0.25 H
+0 Z
+N
+98.1 135 512.1 639 R
+7 X
+V
+FMENDPAGE
+%%EndPage: "22" 23
+%%Trailer
+%%BoundingBox: 0 0 612 792
+%%Pages: 22 1
+%%DocumentFonts: Helvetica-Bold
+%%+ Times-Bold
+%%+ Times-Italic
+%%+ Times-Roman
+%%+ Helvetica
+%%+ Courier
+%%+ Courier-Oblique