From b7bfc85005be1c01cd9eceb6ec8a594ba5ac445b Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Mon, 6 Aug 2007 12:55:38 +0200 Subject: [PATCH] Add tcl/tk, so gitk and git-gui will work --- bin/tcl84.dll | Bin 0 -> 809686 bytes bin/tcldde12.dll | Bin 0 -> 15360 bytes bin/tclpip84.dll | Bin 0 -> 16867 bytes bin/tclreg11.dll | Bin 0 -> 15360 bytes bin/tclsh84.exe | Bin 0 -> 20716 bytes bin/tk84.dll | Bin 0 -> 1103792 bytes bin/which.exe | Bin 0 -> 61440 bytes bin/wish.exe | Bin 0 -> 23743 bytes lib/tcl8.4/auto.tcl | 616 +++++++ lib/tcl8.4/encoding/ascii.enc | 20 + lib/tcl8.4/encoding/big5.enc | 1516 ++++++++++++++++ lib/tcl8.4/encoding/cp1250.enc | 20 + lib/tcl8.4/encoding/cp1251.enc | 20 + lib/tcl8.4/encoding/cp1252.enc | 20 + lib/tcl8.4/encoding/cp1253.enc | 20 + lib/tcl8.4/encoding/cp1254.enc | 20 + lib/tcl8.4/encoding/cp1255.enc | 20 + lib/tcl8.4/encoding/cp1256.enc | 20 + lib/tcl8.4/encoding/cp1257.enc | 20 + lib/tcl8.4/encoding/cp1258.enc | 20 + lib/tcl8.4/encoding/cp437.enc | 20 + lib/tcl8.4/encoding/cp737.enc | 20 + lib/tcl8.4/encoding/cp775.enc | 20 + lib/tcl8.4/encoding/cp850.enc | 20 + lib/tcl8.4/encoding/cp852.enc | 20 + lib/tcl8.4/encoding/cp855.enc | 20 + lib/tcl8.4/encoding/cp857.enc | 20 + lib/tcl8.4/encoding/cp860.enc | 20 + lib/tcl8.4/encoding/cp861.enc | 20 + lib/tcl8.4/encoding/cp862.enc | 20 + lib/tcl8.4/encoding/cp863.enc | 20 + lib/tcl8.4/encoding/cp864.enc | 20 + lib/tcl8.4/encoding/cp865.enc | 20 + lib/tcl8.4/encoding/cp866.enc | 20 + lib/tcl8.4/encoding/cp869.enc | 20 + lib/tcl8.4/encoding/cp874.enc | 20 + lib/tcl8.4/encoding/cp932.enc | 801 +++++++++ lib/tcl8.4/encoding/cp936.enc | 2162 ++++++++++++++++++++++ lib/tcl8.4/encoding/cp949.enc | 2128 ++++++++++++++++++++++ lib/tcl8.4/encoding/cp950.enc | 1499 ++++++++++++++++ lib/tcl8.4/encoding/dingbats.enc | 20 + lib/tcl8.4/encoding/ebcdic.enc | 19 + lib/tcl8.4/encoding/euc-cn.enc | 1397 +++++++++++++++ lib/tcl8.4/encoding/euc-jp.enc | 1353 ++++++++++++++ lib/tcl8.4/encoding/euc-kr.enc | 1533 ++++++++++++++++ lib/tcl8.4/encoding/gb12345.enc | 1414 +++++++++++++++ lib/tcl8.4/encoding/gb1988.enc | 20 + lib/tcl8.4/encoding/gb2312-raw.enc | 1380 ++++++++++++++ lib/tcl8.4/encoding/gb2312.enc | 1397 +++++++++++++++ lib/tcl8.4/encoding/iso2022-jp.enc | 12 + lib/tcl8.4/encoding/iso2022-kr.enc | 7 + lib/tcl8.4/encoding/iso2022.enc | 14 + lib/tcl8.4/encoding/iso8859-1.enc | 20 + lib/tcl8.4/encoding/iso8859-10.enc | 20 + lib/tcl8.4/encoding/iso8859-13.enc | 20 + lib/tcl8.4/encoding/iso8859-14.enc | 20 + lib/tcl8.4/encoding/iso8859-15.enc | 20 + lib/tcl8.4/encoding/iso8859-16.enc | 20 + lib/tcl8.4/encoding/iso8859-2.enc | 20 + lib/tcl8.4/encoding/iso8859-3.enc | 20 + lib/tcl8.4/encoding/iso8859-4.enc | 20 + lib/tcl8.4/encoding/iso8859-5.enc | 20 + lib/tcl8.4/encoding/iso8859-6.enc | 20 + lib/tcl8.4/encoding/iso8859-7.enc | 20 + lib/tcl8.4/encoding/iso8859-8.enc | 20 + lib/tcl8.4/encoding/iso8859-9.enc | 20 + lib/tcl8.4/encoding/jis0201.enc | 20 + lib/tcl8.4/encoding/jis0208.enc | 1319 ++++++++++++++ lib/tcl8.4/encoding/jis0212.enc | 1159 ++++++++++++ lib/tcl8.4/encoding/koi8-r.enc | 20 + lib/tcl8.4/encoding/koi8-u.enc | 20 + lib/tcl8.4/encoding/ksc5601.enc | 1516 ++++++++++++++++ lib/tcl8.4/encoding/macCentEuro.enc | 20 + lib/tcl8.4/encoding/macCroatian.enc | 20 + lib/tcl8.4/encoding/macCyrillic.enc | 20 + lib/tcl8.4/encoding/macDingbats.enc | 20 + lib/tcl8.4/encoding/macGreek.enc | 20 + lib/tcl8.4/encoding/macIceland.enc | 20 + lib/tcl8.4/encoding/macJapan.enc | 785 ++++++++ lib/tcl8.4/encoding/macRoman.enc | 20 + lib/tcl8.4/encoding/macRomania.enc | 20 + lib/tcl8.4/encoding/macThai.enc | 20 + lib/tcl8.4/encoding/macTurkish.enc | 20 + lib/tcl8.4/encoding/macUkraine.enc | 20 + lib/tcl8.4/encoding/shiftjis.enc | 690 +++++++ lib/tcl8.4/encoding/symbol.enc | 20 + lib/tcl8.4/encoding/tis-620.enc | 20 + lib/tcl8.4/history.tcl | 375 ++++ lib/tcl8.4/http1.0/http.tcl | 379 ++++ lib/tcl8.4/http1.0/pkgIndex.tcl | 11 + lib/tcl8.4/http2.4/http.tcl | 914 ++++++++++ lib/tcl8.4/http2.4/pkgIndex.tcl | 12 + lib/tcl8.4/http2.5/http.tcl | 1039 +++++++++++ lib/tcl8.4/http2.5/pkgIndex.tcl | 12 + lib/tcl8.4/init.tcl | 747 ++++++++ lib/tcl8.4/ldAout.tcl | 233 +++ lib/tcl8.4/msgcat1.3/msgcat.tcl | 485 +++++ lib/tcl8.4/msgcat1.3/pkgIndex.tcl | 2 + lib/tcl8.4/opt0.4/optparse.tcl | 1074 +++++++++++ lib/tcl8.4/opt0.4/pkgIndex.tcl | 12 + lib/tcl8.4/package.tcl | 828 +++++++++ lib/tcl8.4/parray.tcl | 29 + lib/tcl8.4/safe.tcl | 924 ++++++++++ lib/tcl8.4/tclIndex | 83 + lib/tcl8.4/tcltest2.2/pkgIndex.tcl | 12 + lib/tcl8.4/tcltest2.2/tcltest.tcl | 3354 +++++++++++++++++++++++++++++++++++ lib/tcl8.4/word.tcl | 132 ++ lib/tclConfig.sh | 182 ++ lib/tk8.4/bgerror.tcl | 276 +++ lib/tk8.4/button.tcl | 637 +++++++ lib/tk8.4/choosedir.tcl | 291 +++ lib/tk8.4/clrpick.tcl | 696 ++++++++ lib/tk8.4/comdlg.tcl | 303 ++++ lib/tk8.4/console.tcl | 957 ++++++++++ lib/tk8.4/demos/README | 46 + lib/tk8.4/demos/arrow.tcl | 239 +++ lib/tk8.4/demos/bind.tcl | 79 + lib/tk8.4/demos/bitmap.tcl | 55 + lib/tk8.4/demos/browse | 66 + lib/tk8.4/demos/button.tcl | 36 + lib/tk8.4/demos/check.tcl | 33 + lib/tk8.4/demos/clrpick.tcl | 56 + lib/tk8.4/demos/colors.tcl | 101 ++ lib/tk8.4/demos/cscroll.tcl | 96 + lib/tk8.4/demos/ctext.tcl | 147 ++ lib/tk8.4/demos/dialog1.tcl | 15 + lib/tk8.4/demos/dialog2.tcl | 19 + lib/tk8.4/demos/entry1.tcl | 36 + lib/tk8.4/demos/entry2.tcl | 48 + lib/tk8.4/demos/entry3.tcl | 187 ++ lib/tk8.4/demos/filebox.tcl | 70 + lib/tk8.4/demos/floor.tcl | 1370 ++++++++++++++ lib/tk8.4/demos/form.tcl | 40 + lib/tk8.4/demos/hello | 22 + lib/tk8.4/demos/hscale.tcl | 47 + lib/tk8.4/demos/icon.tcl | 52 + lib/tk8.4/demos/image1.tcl | 36 + lib/tk8.4/demos/image2.tcl | 104 ++ lib/tk8.4/demos/images/earth.gif | Bin 0 -> 51712 bytes lib/tk8.4/demos/images/earthris.gif | Bin 0 -> 6343 bytes lib/tk8.4/demos/images/face.bmp | 173 ++ lib/tk8.4/demos/images/flagdown.bmp | 27 + lib/tk8.4/demos/images/flagup.bmp | 27 + lib/tk8.4/demos/images/gray25.bmp | 6 + lib/tk8.4/demos/images/letters.bmp | 27 + lib/tk8.4/demos/images/noletter.bmp | 27 + lib/tk8.4/demos/images/pattern.bmp | 6 + lib/tk8.4/demos/images/tcllogo.gif | Bin 0 -> 2341 bytes lib/tk8.4/demos/images/teapot.ppm | 31 + lib/tk8.4/demos/items.tcl | 285 +++ lib/tk8.4/demos/ixset | 335 ++++ lib/tk8.4/demos/label.tcl | 40 + lib/tk8.4/demos/labelframe.tcl | 80 + lib/tk8.4/demos/license.terms | 39 + lib/tk8.4/demos/menu.tcl | 160 ++ lib/tk8.4/demos/menubu.tcl | 94 + lib/tk8.4/demos/msgbox.tcl | 65 + lib/tk8.4/demos/paned1.tcl | 34 + lib/tk8.4/demos/paned2.tcl | 76 + lib/tk8.4/demos/plot.tcl | 99 ++ lib/tk8.4/demos/puzzle.tcl | 84 + lib/tk8.4/demos/radio.tcl | 59 + lib/tk8.4/demos/rmt | 210 +++ lib/tk8.4/demos/rolodex | 196 ++ lib/tk8.4/demos/ruler.tcl | 173 ++ lib/tk8.4/demos/sayings.tcl | 46 + lib/tk8.4/demos/search.tcl | 141 ++ lib/tk8.4/demos/spin.tcl | 55 + lib/tk8.4/demos/square | 55 + lib/tk8.4/demos/states.tcl | 45 + lib/tk8.4/demos/style.tcl | 152 ++ lib/tk8.4/demos/tclIndex | 67 + lib/tk8.4/demos/tcolor | 366 ++++ lib/tk8.4/demos/text.tcl | 88 + lib/tk8.4/demos/timer | 47 + lib/tk8.4/demos/twind.tcl | 197 ++ lib/tk8.4/demos/vscale.tcl | 48 + lib/tk8.4/demos/widget | 393 ++++ lib/tk8.4/dialog.tcl | 210 +++ lib/tk8.4/entry.tcl | 652 +++++++ lib/tk8.4/focus.tcl | 181 ++ lib/tk8.4/images/README | 12 + lib/tk8.4/images/logo.eps | 2091 ++++++++++++++++++++++ lib/tk8.4/images/logo100.gif | Bin 0 -> 2341 bytes lib/tk8.4/images/logo64.gif | Bin 0 -> 1670 bytes lib/tk8.4/images/logoLarge.gif | Bin 0 -> 11000 bytes lib/tk8.4/images/logoMed.gif | Bin 0 -> 3889 bytes lib/tk8.4/images/pwrdLogo.eps | 1897 ++++++++++++++++++++ lib/tk8.4/images/pwrdLogo100.gif | Bin 0 -> 1615 bytes lib/tk8.4/images/pwrdLogo150.gif | Bin 0 -> 2489 bytes lib/tk8.4/images/pwrdLogo175.gif | Bin 0 -> 2981 bytes lib/tk8.4/images/pwrdLogo200.gif | Bin 0 -> 3491 bytes lib/tk8.4/images/pwrdLogo75.gif | Bin 0 -> 1171 bytes lib/tk8.4/images/tai-ku.gif | Bin 0 -> 5473 bytes lib/tk8.4/listbox.tcl | 519 ++++++ lib/tk8.4/menu.tcl | 1294 ++++++++++++++ lib/tk8.4/mkpsenc.tcl | 1367 ++++++++++++++ lib/tk8.4/msgbox.tcl | 413 +++++ lib/tk8.4/msgs/cs.msg | 70 + lib/tk8.4/msgs/de.msg | 70 + lib/tk8.4/msgs/el.msg | 86 + lib/tk8.4/msgs/en.msg | 70 + lib/tk8.4/msgs/en_gb.msg | 3 + lib/tk8.4/msgs/eo.msg | 73 + lib/tk8.4/msgs/es.msg | 70 + lib/tk8.4/msgs/es_ES.msg | 5 + lib/tk8.4/msgs/fr.msg | 70 + lib/tk8.4/msgs/it.msg | 70 + lib/tk8.4/msgs/nl.msg | 109 ++ lib/tk8.4/msgs/pl.msg | 73 + lib/tk8.4/msgs/pt.msg | 70 + lib/tk8.4/msgs/ru.msg | 73 + lib/tk8.4/obsolete.tcl | 21 + lib/tk8.4/optMenu.tcl | 45 + lib/tk8.4/palette.tcl | 246 +++ lib/tk8.4/panedwindow.tcl | 188 ++ lib/tk8.4/pkgIndex.tcl | 2 + lib/tk8.4/prolog.ps | 284 +++ lib/tk8.4/safetk.tcl | 277 +++ lib/tk8.4/scale.tcl | 285 +++ lib/tk8.4/scrlbar.tcl | 427 +++++ lib/tk8.4/spinbox.tcl | 568 ++++++ lib/tk8.4/tclIndex | 277 +++ lib/tk8.4/tearoff.tcl | 165 ++ lib/tk8.4/text.tcl | 1156 ++++++++++++ lib/tk8.4/tk.tcl | 590 ++++++ lib/tk8.4/tkAppInit.c | 136 ++ lib/tk8.4/tkfbox.tcl | 1815 +++++++++++++++++++ lib/tk8.4/unsupported.tcl | 297 ++++ lib/tk8.4/xmfbox.tcl | 963 ++++++++++ lib/tkConfig.sh | 87 + 231 files changed, 62306 insertions(+) create mode 100644 bin/tcl84.dll create mode 100644 bin/tcldde12.dll create mode 100644 bin/tclpip84.dll create mode 100644 bin/tclreg11.dll create mode 100644 bin/tclsh84.exe create mode 100644 bin/tk84.dll create mode 100644 bin/which.exe create mode 100644 bin/wish.exe create mode 100644 lib/tcl8.4/auto.tcl create mode 100644 lib/tcl8.4/encoding/ascii.enc create mode 100644 lib/tcl8.4/encoding/big5.enc create mode 100644 lib/tcl8.4/encoding/cp1250.enc create mode 100644 lib/tcl8.4/encoding/cp1251.enc create mode 100644 lib/tcl8.4/encoding/cp1252.enc create mode 100644 lib/tcl8.4/encoding/cp1253.enc create mode 100644 lib/tcl8.4/encoding/cp1254.enc create mode 100644 lib/tcl8.4/encoding/cp1255.enc create mode 100644 lib/tcl8.4/encoding/cp1256.enc create mode 100644 lib/tcl8.4/encoding/cp1257.enc create mode 100644 lib/tcl8.4/encoding/cp1258.enc create mode 100644 lib/tcl8.4/encoding/cp437.enc create mode 100644 lib/tcl8.4/encoding/cp737.enc create mode 100644 lib/tcl8.4/encoding/cp775.enc create mode 100644 lib/tcl8.4/encoding/cp850.enc create mode 100644 lib/tcl8.4/encoding/cp852.enc create mode 100644 lib/tcl8.4/encoding/cp855.enc create mode 100644 lib/tcl8.4/encoding/cp857.enc create mode 100644 lib/tcl8.4/encoding/cp860.enc create mode 100644 lib/tcl8.4/encoding/cp861.enc create mode 100644 lib/tcl8.4/encoding/cp862.enc create mode 100644 lib/tcl8.4/encoding/cp863.enc create mode 100644 lib/tcl8.4/encoding/cp864.enc create mode 100644 lib/tcl8.4/encoding/cp865.enc create mode 100644 lib/tcl8.4/encoding/cp866.enc create mode 100644 lib/tcl8.4/encoding/cp869.enc create mode 100644 lib/tcl8.4/encoding/cp874.enc create mode 100644 lib/tcl8.4/encoding/cp932.enc create mode 100644 lib/tcl8.4/encoding/cp936.enc create mode 100644 lib/tcl8.4/encoding/cp949.enc create mode 100644 lib/tcl8.4/encoding/cp950.enc create mode 100644 lib/tcl8.4/encoding/dingbats.enc create mode 100644 lib/tcl8.4/encoding/ebcdic.enc create mode 100644 lib/tcl8.4/encoding/euc-cn.enc create mode 100644 lib/tcl8.4/encoding/euc-jp.enc create mode 100644 lib/tcl8.4/encoding/euc-kr.enc create mode 100644 lib/tcl8.4/encoding/gb12345.enc create mode 100644 lib/tcl8.4/encoding/gb1988.enc create mode 100644 lib/tcl8.4/encoding/gb2312-raw.enc create mode 100644 lib/tcl8.4/encoding/gb2312.enc create mode 100644 lib/tcl8.4/encoding/iso2022-jp.enc create mode 100644 lib/tcl8.4/encoding/iso2022-kr.enc create mode 100644 lib/tcl8.4/encoding/iso2022.enc create mode 100644 lib/tcl8.4/encoding/iso8859-1.enc create mode 100644 lib/tcl8.4/encoding/iso8859-10.enc create mode 100644 lib/tcl8.4/encoding/iso8859-13.enc create mode 100644 lib/tcl8.4/encoding/iso8859-14.enc create mode 100644 lib/tcl8.4/encoding/iso8859-15.enc create mode 100644 lib/tcl8.4/encoding/iso8859-16.enc create mode 100644 lib/tcl8.4/encoding/iso8859-2.enc create mode 100644 lib/tcl8.4/encoding/iso8859-3.enc create mode 100644 lib/tcl8.4/encoding/iso8859-4.enc create mode 100644 lib/tcl8.4/encoding/iso8859-5.enc create mode 100644 lib/tcl8.4/encoding/iso8859-6.enc create mode 100644 lib/tcl8.4/encoding/iso8859-7.enc create mode 100644 lib/tcl8.4/encoding/iso8859-8.enc create mode 100644 lib/tcl8.4/encoding/iso8859-9.enc create mode 100644 lib/tcl8.4/encoding/jis0201.enc create mode 100644 lib/tcl8.4/encoding/jis0208.enc create mode 100644 lib/tcl8.4/encoding/jis0212.enc create mode 100644 lib/tcl8.4/encoding/koi8-r.enc create mode 100644 lib/tcl8.4/encoding/koi8-u.enc create mode 100644 lib/tcl8.4/encoding/ksc5601.enc create mode 100644 lib/tcl8.4/encoding/macCentEuro.enc create mode 100644 lib/tcl8.4/encoding/macCroatian.enc create mode 100644 lib/tcl8.4/encoding/macCyrillic.enc create mode 100644 lib/tcl8.4/encoding/macDingbats.enc create mode 100644 lib/tcl8.4/encoding/macGreek.enc create mode 100644 lib/tcl8.4/encoding/macIceland.enc create mode 100644 lib/tcl8.4/encoding/macJapan.enc create mode 100644 lib/tcl8.4/encoding/macRoman.enc create mode 100644 lib/tcl8.4/encoding/macRomania.enc create mode 100644 lib/tcl8.4/encoding/macThai.enc create mode 100644 lib/tcl8.4/encoding/macTurkish.enc create mode 100644 lib/tcl8.4/encoding/macUkraine.enc create mode 100644 lib/tcl8.4/encoding/shiftjis.enc create mode 100644 lib/tcl8.4/encoding/symbol.enc create mode 100644 lib/tcl8.4/encoding/tis-620.enc create mode 100644 lib/tcl8.4/history.tcl create mode 100644 lib/tcl8.4/http1.0/http.tcl create mode 100644 lib/tcl8.4/http1.0/pkgIndex.tcl create mode 100644 lib/tcl8.4/http2.4/http.tcl create mode 100644 lib/tcl8.4/http2.4/pkgIndex.tcl create mode 100644 lib/tcl8.4/http2.5/http.tcl create mode 100644 lib/tcl8.4/http2.5/pkgIndex.tcl create mode 100644 lib/tcl8.4/init.tcl create mode 100644 lib/tcl8.4/ldAout.tcl create mode 100644 lib/tcl8.4/msgcat1.3/msgcat.tcl create mode 100644 lib/tcl8.4/msgcat1.3/pkgIndex.tcl create mode 100644 lib/tcl8.4/opt0.4/optparse.tcl create mode 100644 lib/tcl8.4/opt0.4/pkgIndex.tcl create mode 100644 lib/tcl8.4/package.tcl create mode 100644 lib/tcl8.4/parray.tcl create mode 100644 lib/tcl8.4/safe.tcl create mode 100644 lib/tcl8.4/tclIndex create mode 100644 lib/tcl8.4/tcltest2.2/pkgIndex.tcl create mode 100644 lib/tcl8.4/tcltest2.2/tcltest.tcl create mode 100644 lib/tcl8.4/word.tcl create mode 100644 lib/tclConfig.sh create mode 100644 lib/tk8.4/bgerror.tcl create mode 100644 lib/tk8.4/button.tcl create mode 100644 lib/tk8.4/choosedir.tcl create mode 100644 lib/tk8.4/clrpick.tcl create mode 100644 lib/tk8.4/comdlg.tcl create mode 100644 lib/tk8.4/console.tcl create mode 100644 lib/tk8.4/demos/README create mode 100644 lib/tk8.4/demos/arrow.tcl create mode 100644 lib/tk8.4/demos/bind.tcl create mode 100644 lib/tk8.4/demos/bitmap.tcl create mode 100644 lib/tk8.4/demos/browse create mode 100644 lib/tk8.4/demos/button.tcl create mode 100644 lib/tk8.4/demos/check.tcl create mode 100644 lib/tk8.4/demos/clrpick.tcl create mode 100644 lib/tk8.4/demos/colors.tcl create mode 100644 lib/tk8.4/demos/cscroll.tcl create mode 100644 lib/tk8.4/demos/ctext.tcl create mode 100644 lib/tk8.4/demos/dialog1.tcl create mode 100644 lib/tk8.4/demos/dialog2.tcl create mode 100644 lib/tk8.4/demos/entry1.tcl create mode 100644 lib/tk8.4/demos/entry2.tcl create mode 100644 lib/tk8.4/demos/entry3.tcl create mode 100644 lib/tk8.4/demos/filebox.tcl create mode 100644 lib/tk8.4/demos/floor.tcl create mode 100644 lib/tk8.4/demos/form.tcl create mode 100644 lib/tk8.4/demos/hello create mode 100644 lib/tk8.4/demos/hscale.tcl create mode 100644 lib/tk8.4/demos/icon.tcl create mode 100644 lib/tk8.4/demos/image1.tcl create mode 100644 lib/tk8.4/demos/image2.tcl create mode 100644 lib/tk8.4/demos/images/earth.gif create mode 100644 lib/tk8.4/demos/images/earthris.gif create mode 100644 lib/tk8.4/demos/images/face.bmp create mode 100644 lib/tk8.4/demos/images/flagdown.bmp create mode 100644 lib/tk8.4/demos/images/flagup.bmp create mode 100644 lib/tk8.4/demos/images/gray25.bmp create mode 100644 lib/tk8.4/demos/images/letters.bmp create mode 100644 lib/tk8.4/demos/images/noletter.bmp create mode 100644 lib/tk8.4/demos/images/pattern.bmp create mode 100644 lib/tk8.4/demos/images/tcllogo.gif create mode 100644 lib/tk8.4/demos/images/teapot.ppm create mode 100644 lib/tk8.4/demos/items.tcl create mode 100644 lib/tk8.4/demos/ixset create mode 100644 lib/tk8.4/demos/label.tcl create mode 100644 lib/tk8.4/demos/labelframe.tcl create mode 100644 lib/tk8.4/demos/license.terms create mode 100644 lib/tk8.4/demos/menu.tcl create mode 100644 lib/tk8.4/demos/menubu.tcl create mode 100644 lib/tk8.4/demos/msgbox.tcl create mode 100644 lib/tk8.4/demos/paned1.tcl create mode 100644 lib/tk8.4/demos/paned2.tcl create mode 100644 lib/tk8.4/demos/plot.tcl create mode 100644 lib/tk8.4/demos/puzzle.tcl create mode 100644 lib/tk8.4/demos/radio.tcl create mode 100644 lib/tk8.4/demos/rmt create mode 100644 lib/tk8.4/demos/rolodex create mode 100644 lib/tk8.4/demos/ruler.tcl create mode 100644 lib/tk8.4/demos/sayings.tcl create mode 100644 lib/tk8.4/demos/search.tcl create mode 100644 lib/tk8.4/demos/spin.tcl create mode 100644 lib/tk8.4/demos/square create mode 100644 lib/tk8.4/demos/states.tcl create mode 100644 lib/tk8.4/demos/style.tcl create mode 100644 lib/tk8.4/demos/tclIndex create mode 100644 lib/tk8.4/demos/tcolor create mode 100644 lib/tk8.4/demos/text.tcl create mode 100644 lib/tk8.4/demos/timer create mode 100644 lib/tk8.4/demos/twind.tcl create mode 100644 lib/tk8.4/demos/vscale.tcl create mode 100644 lib/tk8.4/demos/widget create mode 100644 lib/tk8.4/dialog.tcl create mode 100644 lib/tk8.4/entry.tcl create mode 100644 lib/tk8.4/focus.tcl create mode 100644 lib/tk8.4/images/README create mode 100644 lib/tk8.4/images/logo.eps create mode 100644 lib/tk8.4/images/logo100.gif create mode 100644 lib/tk8.4/images/logo64.gif create mode 100644 lib/tk8.4/images/logoLarge.gif create mode 100644 lib/tk8.4/images/logoMed.gif create mode 100644 lib/tk8.4/images/pwrdLogo.eps create mode 100644 lib/tk8.4/images/pwrdLogo100.gif create mode 100644 lib/tk8.4/images/pwrdLogo150.gif create mode 100644 lib/tk8.4/images/pwrdLogo175.gif create mode 100644 lib/tk8.4/images/pwrdLogo200.gif create mode 100644 lib/tk8.4/images/pwrdLogo75.gif create mode 100644 lib/tk8.4/images/tai-ku.gif create mode 100644 lib/tk8.4/listbox.tcl create mode 100644 lib/tk8.4/menu.tcl create mode 100644 lib/tk8.4/mkpsenc.tcl create mode 100644 lib/tk8.4/msgbox.tcl create mode 100644 lib/tk8.4/msgs/cs.msg create mode 100644 lib/tk8.4/msgs/de.msg create mode 100644 lib/tk8.4/msgs/el.msg create mode 100644 lib/tk8.4/msgs/en.msg create mode 100644 lib/tk8.4/msgs/en_gb.msg create mode 100644 lib/tk8.4/msgs/eo.msg create mode 100644 lib/tk8.4/msgs/es.msg create mode 100644 lib/tk8.4/msgs/es_ES.msg create mode 100644 lib/tk8.4/msgs/fr.msg create mode 100644 lib/tk8.4/msgs/it.msg create mode 100644 lib/tk8.4/msgs/nl.msg create mode 100644 lib/tk8.4/msgs/pl.msg create mode 100644 lib/tk8.4/msgs/pt.msg create mode 100644 lib/tk8.4/msgs/ru.msg create mode 100644 lib/tk8.4/obsolete.tcl create mode 100644 lib/tk8.4/optMenu.tcl create mode 100644 lib/tk8.4/palette.tcl create mode 100644 lib/tk8.4/panedwindow.tcl create mode 100644 lib/tk8.4/pkgIndex.tcl create mode 100644 lib/tk8.4/prolog.ps create mode 100644 lib/tk8.4/safetk.tcl create mode 100644 lib/tk8.4/scale.tcl create mode 100644 lib/tk8.4/scrlbar.tcl create mode 100644 lib/tk8.4/spinbox.tcl create mode 100644 lib/tk8.4/tclIndex create mode 100644 lib/tk8.4/tearoff.tcl create mode 100644 lib/tk8.4/text.tcl create mode 100644 lib/tk8.4/tk.tcl create mode 100644 lib/tk8.4/tkAppInit.c create mode 100644 lib/tk8.4/tkfbox.tcl create mode 100644 lib/tk8.4/unsupported.tcl create mode 100644 lib/tk8.4/xmfbox.tcl create mode 100644 lib/tkConfig.sh diff --git a/bin/tcl84.dll b/bin/tcl84.dll new file mode 100644 index 0000000000000000000000000000000000000000..fffad8eb3f86ddc72421c3c42e09ec6460e66fe3 GIT binary patch literal 809686 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

cKUH@PE=GlUK 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⩔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

)o%MWvloQoeEh?&xFp8 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 literal 0 HcwPel00001 diff --git a/bin/tclpip84.dll b/bin/tclpip84.dll new file mode 100644 index 0000000000000000000000000000000000000000..8c018d22fb2b726f04bf3a560e1f1498b3c840fd GIT binary patch literal 16867 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 WFq4V8Big8`F<)tQFy^~9eE$Qh%8ru& literal 0 HcwPel00001 diff --git a/bin/tclreg11.dll b/bin/tclreg11.dll new file mode 100644 index 0000000000000000000000000000000000000000..ee8d7cf110181486a464e50350049e7c4aca49d9 GIT binary patch literal 15360 zcwX&04R}=5m3JmV1_&fz&}gHK7!@sK-^?VL$^Qg0F-j6%W^g7%LK2dJNenY_=8ZzP z+QBeep3iB=pU~J(ED_qJTiaSIidJhNlo7SNEVYV4Th`*&H=XobsuWob%${@ao1aXu z-S+$T``X<;IP>1Q_q=n@J@@?G_guWim)?1!VI}?sfx~v5G}h8 zfASa!J#`V%jORf@gc;Oa!|7aqlebF%>F`Xz)3gmXp}&l$R?5-hxA$pg^XdAavGLZD3?Zx^l) zp7YNcCHzQFaLk{pJ0TtqInUp@uH#@15zomhfk|uvdft`IczJASBF7bgEBWplfW@J_ z-Rw?bL4*#tI}cF#o4`I6mTQ0{LUN#4Hx~PLNVpN@vGLMEde1STT)GCyhho{~Kl9GV zekluv($NOrM=%tXiwT3SZn>77KXV!ZYS}5fjBo0cDs8!;c9)KyW6{k^xo_7_Ojp3 z^?e&Vo$lVgZZ{d|bKgZa`3HnPr1d&|9>2H8**VbX6NsspgO-hO3HR#&5znRcXXE*P z(6YvLLw zve7A!yPR8m#0M9`mO&@Er+dKf^byaX(C2YuUrYBUr?!?h<7I8KE!mW!8tfJXr`KIe zLiZ%>XF3Nh22O1)j#gW%45Y2?_HNW76c-o6?VyO1{v382Oke8AlkUrr{P{zls&c<_ z1g6dNApDBehd#{`s)jzz7H*7KLp-*QB zSyDqj=#Q6L@>(T(j+Jq!zZ^Ie0ugkDEE9ac%2i8piFA*~?vQVqmo!l=IC=2nivwmrA8={~Poj%blSCL}_7e(bg8*A6@?la^ za}G0-)_C}7j9oz}?BWuoFpJqmv@g!*i{owW67Az{@*fsKM5G8%go2YOdMJ1vPY~v8 zyj+y4XbUE+_^K_=7wktZf(=m%qWS_gS~N_6czBnZh5<2n<|2xK`~xQ9zgpUd4G!k= zaaRD0(jMm<*TlYMwf3*&W&0v_-(gstZF69ZhQlziSExK7*I6nTWe4t|fdUXPDziiW z{9G!i7y(h2r;7^wz+mF)+-*&$j}S^=OGq%f5cS13wt?{N4qje(B`n|~pbG^x@ay15 z2Pq*)scByWqfrs$7SM_qVKhnAhGi8CesN(Hj3?X<+`a8f=yK zTtV+a^$jC$tL)Vhk`!J%AKd}1x_Imt(mtGbgw7r1IRY z6LiGpPO-nK_M<`jxlaRY4%xF`4eFeno$e|^UMgOMo>%g0A~xV+-zhcctrO{5Fmnp+ zMBPj=$e}|pN9?m%nOZ@o>!c9UwMoM$$S8*NR%@IG3*Z$UB(-|Ze+6o3ClcD^Ca@Io z!>ALN^ctjOvb!Qz!e#u?HgHu~7}pz!((*=GBkTY{6uWU9r{uQ!p+g1sALDc#@`8nQ zyx1dbqEq5EnBWD}R{=~}cS5=Y;x;XuKxrB)FGprgjW5^2b?{v7wh~oJVfKU!;2jee zSp2z!^1Bujt=6+4Y2ef9 zyG;A`C+u6r+vP&d|IEJaY)v{LO^Y-xwlVuw%#)dU%DzL?zFU*_-6@4og7(lbnj2O* z)_%g448qP5F+$l`6*F&R(VCatg_K<|?r&m-S~3~SO7GKLB2eYi zK&8DnJw%0um!O8FVeCu=s!m9o(moB%3^fFa(NsY@AWV- zz`>VL36cpa2Ulz7QYsvFNy9ixmg*p=QX5DUM9eQry4p1DV!QZB^d1&&3fYMgNK|(T zy0aix?8i(ZX&C8LABw|yXtDe7*Y{1TA&Fo@7lC-gPz@2nmk@r9G>oF(DbXHgsTg0B zppzIEV z^d!!1mCxi6LX$lmG5#p}SoH0bRDYKLC~REKg~?0CW=_B*{>l)~XN>Vq_Y_2XVe$#yC` zFTbmv;<9toT=pJX4^H(w*eg=;`U!Ktexf)albuP85i;=)gfF7GNDQJW2|naWS3uFe z)oN$@PgC=!i&AQ)w^56ctLM__O4TFhT}f|=(0&yQF48{iv&(0%Kp(`8=u)%?DkAhl z7Q?IQF^G!2u2WiwO_C;fBzM~`)D|UIjq%DI@kh=l5+e}S^qghqA36*_8A$rEV}uLG)v5!h`L9#D&vV*Ux1X0BjOKVP;mJu7l`BwkR0| z!zH5_IzCMdbQY+(=y#Lsq8%60{lPQnbSwKT#r|P)JyC?2>OM`fAf=lt%LHt^)3;Ua z;^8$CY&h-m=mKzT%LHzyEHdonPxG+#JV`~-isPW7D^kS;Uw~e7oO+GaA@fr6Y0ysr zK)&)&Zi0vG*g{fwAIvDdL9?*Km~(yF4x_Ez_9L`whisY6N~zGL{d?;K#x|&or2C-2 z78(-Pnzri!_Tu4?B?qepCEdmOY;m0DFR5#&`@9)kzyvj71o}R<6rfao7qF^^oqj-Q zMbB$4lnzgyx{uNt)k6~jEUd;)V z6QMvnCtV(>fZid3d0!=F1-_sn{@=27hoT&gP=NVp?DfNHB4wGy ztmr?+Q;r83)WTqPm-zimq8i1(DAVHm1cYYRvz3 zzw$r>A|u@^Ceq2&1Otm+#Hw|1ybgj8z4Sl+8D%Ek*{+0mTFT&>vj-8E4DtST{Uq_6 zg6)b?Dt4CG&X{csY>H5=xYr-A&H@I)N|?p9ECxfNpV$(dV9}6UtvpPY5#cxUV%`MpSg9A_dYs7Jb^%vnU+*Mk zOd}W=K@1;L;D(`8tMGvApE(n8cIMyNbVjr05(wS@r`+uSNLYAJ{!*x-zl2Lt8f)}`WMUg0@4 zpwWUAXO>>Dwy|4zdHp;p5BTg%*ySC=+!exUC7)qsFHxRhwL_j+op?|i-HVBRm=4D? z@yvXB>4@^vsYGkzlqO9F4`FPPhH)x)f(h=#$w;BD$&|s`VMLfvTYI!7j%Cqm948dy z>Et1KB{I~@BvBaLNH_m%PG6ausD0B_5naKe%hc)}Jy16WJR-ryNtVGY={R3>vQool z4()8bkl6Lu*h+zTnl>qfg11Y-ChQ*WVk^^_d}`7P^RUu+up#;M1rQ61qN`Ec!;SPl zR(T==oU4=*Ze_*in)bwQCjRJ2ws0s_yE%g=t)b}@SW(kRD}4M_rn7@qoQcO6JKGdh z+LF55mDJ_u(sa2z2e)-JT13B3t)o|2bIPGrz7F4*P^7KBKid{v21H@SeQo_D$ya%$ zkQ;PQPN}X2SZx>OCb5b_=G4BfgNx)_kYz&OCa1?QXgBo@4D|V&J-%9!Xd}w|Gv$4U z1-B6q%f$XU!1jEW@cE(hGlUym4ND=mHft2CR=1|Tb4YtgbUrKhtD_|Gjzn6Kd~lZV z+JjhgVb#>HhKi#9Y8P5e#Bv68D&I5d%h&j^m68k6PJ*1?oDf zS!VsMm*}Mrjgvm}To!$SunO1k9w-3MI2^1?^5xi-s_`H?9lo$p<$eVdV4z}IZjdIx z14HL$-9O_+5RmNe0ab`^PnI7MBOiS$H~1gu$d(E4!xePs3# z_zX~4*`CFcLn-+L|`?E+oa~4q5Cx1!p-9Ay0HVl&D(xd z{Mmt18r`u2G0pbZ54^9LHJ3e<0t_r+NuaBw&F=*EJ_ga%v}%Xz68ohhf4 zcOB+Xsn#6uL0XM8F|Xybfmkc4cVjw{mS^woqG!!+e3LD{hOf6LI>sY2up1?a%;-v9 z@yb=~9T0X#Ac4J+w*R8VviJdhO`+_^prk6om%Vu)eKzurLxRSZ(DH2Q_Uzqw89d^T z#(o{9^)f^r&V;W;K$KQ(Fyt+C$b#gM-}xnbM!-f5r;T?q zZM@f~kM{!A$Fio|mfyN!g~Omso|BuqcMsH0KkWbS8m zW8w!dLa9V19Z;-(^c~!XfdMsZBJ{JQh&em24CY|gJfk1!8Rc*dm*<0Ib%?=_*jgyo z6^xp(qi#v04s&sQ)PxJNunK-7bu<)+b)48*(m8#6{GMiL!YnOB8DXaL*vB#n{f~zA z^lJyvay;bUKl&J8cF}TjbObI$%c;>P==t>ME_#+n_t5ji=w5n0Gx{`~BbNPja6~LG zv(p$m9b%`~*y&AnI?7IO;YqZdl^ynuW9P4bQeJ+N5{O}xAfA`Vna@=`*3@B!=(spqZ45~`#~zFbYe_;~`u zK8v)kQh(jQh}u8RUQBa-%@68=ANtil=-%EmW54QHeX5eiZcy9(i zkbw&s_!l$qZ5jB|DLDO}?WT8=AFg0D)S6fx!)x;Q<8S)tnm^Lx1Gpa`4Db}d^8jzo zXKM^mJCMb`>xvSPS3+5YlJ^ zY1e=2a|o!wT~`cve9o25Er4&OxX0~w_6P|_u7mamF469Q_HDG?>+BYgfn_t&1~b}_ z?#tL#Pd__^wmPzX3hp3c3b*6S2ITW#MjP^Z2-_@f|0c=>b_{7aj{cP?xPyE(4afV# z30xWF;VHO-JdXIPL8n{c_w^~bgFK0ND}Ebsn|p(Y3Gt20HW+AkvW+sPirJId26W%U zHk(sOQ4#X}scjCnQgyw(b%JLTP&`H&`rHb#k2H9^o4SQ&r_a~Dk*bY6KedhCe}LTT z6z~>&CJR*mu4?l1bPv=G(7)6n-=Me8 zEo?yBQG*rr45HbQ5MFzGTsTfdWplcF73o*A2gP(^ga3O_S8uQ5Z!_qN>zkTzsQke{ z4l6Cz7E2S*W5$DH$>5)cO}=}2yaKzU3UK^WjueN#q9YID6P#}5dN?olHExtUz#Zjc z+)Q1r&Zw)^HR2m-LV6AJ^~Ie^>vkeq0~X?=gJa@T}o2!*Rn&!zsgQgKU^E zoH1NkvZSQDBv|tO5@+cTcIrb&u;#>;9lC(l_XP^gHy2^}o`W7;ZOg zHN0v#YIxhQsKi*Zvcy^PwUY0ZTqwyd?Ja$w^jPV;rN1nlS$1t%ZCOKEQ`vag*|NpP zVq>XMG#)Yj*0{p7(!`tgm=2kanexl^3`OJ!fii(QviU%upSDdU+ zRbE+XsJyH4yD+z+s)wt-UiEs_g{qwDrPWQ<8>^qFex=%6BiDRdb5$)@TUOg#>#p5e zyS;W#?ejPv4sr~fUf|y0e$UO(U8DQF&Y-J=Ijz>M(+%i$==SP;7Sx+PJ{D*r+!yH(HJBjb7se#z%}#8J{&CG#)d)Z~V}xHZ3rf znDCDYd(j@bY)-@FaCuxlSHPLMdajXc;&^T~*T${oy0~rJcJ3iA%ss}9a8Gc%xINrn v?rH82_Zs&m*zH@erYE^m+-XkcCOD$Y)@gJ(x;$OJu0U6$`%EABe|-EmIEmSy literal 0 HcwPel00001 diff --git a/bin/tclsh84.exe b/bin/tclsh84.exe new file mode 100644 index 0000000000000000000000000000000000000000..d85b5c68ffa2395f085555862e8466584a4ba997 GIT binary patch literal 20716 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

i*;c5xvehYn<5UG_evFpS8o5SyW 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 z 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

EBpt<*sqjHMKQ>2p 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 literal 0 HcwPel00001 diff --git a/lib/tk8.4/demos/images/earthris.gif b/lib/tk8.4/demos/images/earthris.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4ee4737279f15b585de27a7f218a1ad63ad4ce9 GIT binary patch literal 6343 zcwX&y_g7Qv^YuCD6gBiF5FkK8GYP$jp#?%S6e)sA7fTRn0*ZzZq*)-M1n@#=N>L2O zh&><*iUkl*j3pu}qW50J0;o6n9zO5C@jhp*Svm9U*|Yb|IzPmlPIIu2rGmr2d0_Q$ z>3AWRE|bZGOuAUe6brdbJRlQuWiqjt%Y@!!Vj&#>#IjWgbjKBn#bOy0@K7z2PG@rQ zOfCc!GV##85MqHY06Y^a;nD#-T__YoDTtj(hkDVuc)VD=O2K48Ofn%I&xP<%M;RA_ zGx2yKoxa)`0tx9*O1v5&T};`k7%0hwDgivylPl!n#WFEO!{tH&Ix-<7n#%1r2wKutvUTeYzU&mT6k=emUILG;|W@QM#Vq-F*KPA*4O}es{}A6)FC~ zS$fa8N3{;=^DpoBoPSbJEs)ps?QI=v@;PO;?LlwbLv_%^N0WMa9zcip`0}u#wr7{f zaK>p#3>)69#PDCv=pUI2b~YV|yxW&vq=eFa0aIBQ4Y4eCx)_x4EYs zJD%LS`Fm;M-5%8iHxcaDcR5vt;5HRRpb)JrAWM@4pw^u&m%!yn%Pat7;NEZ?auxu*V4TNZ3ScJzytU_BbI`i}3(qs#rc~ zdX|+BuEUk^*@~nXem({#62U{Xi}NcL|Cr7m2~ua>J%XX|SX&ad-j!4;;`pGtosGl< zsT}MxQJXTg%M^*0e9EsyXQxu(N2K>bz7Fg`|54C}3Tp({OOgS@UQHte>}ABRenkYwSV(rT1g=^gp!RoOLgiHoA8a4g zem>h4Xjcuufi*KbX3{I68d(6px62UxQ-Nr*$%Q~W*7=_O%Vr4@EB8jI8t zEP&%=8|_`kVG;%rlvlvsVewz=Zpy0`?){uc-uohcz|Jb#Xf0y!f(V8^;?S69yJ+$K zvB%;KuoHy6q6{mPyO=$JWnX*WA(LApsql8n$!rGr7nxHl0v!nQOaL=eMJt+JO*4bjy&gGe7_WvxuEBCfqnXL>@ zS$WUf*}3xJ?19b|aQ}`%7&ak*4^tBqF4Q0h47Z4F;jzZfU&1pbIUf`h861RJ^v@Sb z!i&-ukvrF5-QV{?cl6sbU7OtKs6{_+I5rW89#p4 z7P}kxJ_!TP>w+Ssu5BB@--}VAYs_Bpt^YpY9PTKuZM^*kheqf!^Z`O@m4Q!xKAa4f z6?>nNMJ}*4AM#Q5!~JV>7YcBS4H$1sJ?&-(Zoe5%b3O(c{HKH?R-l$x*^$*+2yhb> zDr!K$LUI}a=~6?#aQwSjQlVAA!(5=+-QH@~%8*Cai)XM{o=#3=#pY!g^|n+kISM08=bK#E)K11#z&5^`{&0DuSHO@y2&yTOSUFZgs zx;G_{zvxgT!I0k{Y&zMj-6hYzKs1Ocj-xbgsZn!iPfa`JS6Pdql>ix${qiSr8)g;n zHk2_hpb)IYmaQ2q1>|lh@WeJjiEIqlue4M${*K%x8p)GWj zbhPHx;{A@S-J%pZ(q#9AL<`i}7=Jm3e&E(=MygjwWUPls4ya@uR+l8}IOL;HrK9z{rx0||CQKVp%q+LoykbixE(MS=2$3-*~!|Cb9a{(aWcXDrG zlT)UeF`pjBq_!(L{KgC!C{4L$=>|RY9GtGo44_`iOgS(je*Np`715f`)FQu^Gulgi!vURXRUHpd-tW~sn}m#LkpKGl zK$R)RH0R-+5yZXg*RJ_XfT@dtdcB_k)m{xu@YNAy4Xb9@fo+|c|474R0jZ{V)Z$Xv zD*(?IeYa{s#_zhsHf3-g`2ZNI!w4dU@6_%uI_Nq#k{!f{ttkRXxHEc@rKzW3I@ttd z--9HA3e0SIGmcpPFTy?bt>$Mwyz!H0n^1sUTyyEhSglCWodlnXUPppE>;>mP4zv#++U^> z7)?|0$-q(betK9STx>uj#^~1T!Qhl8`~`<*rM&UK4b+n-ph+kH|vV}$VIrdtFQsw_y{hHJS89h3SaK;KuG#KReC>+J#W&WhtH zq$>QA3!xqG`=>wxHNU3&Tsrf^#_BA;!aN+UPN{pn6%0a_&7VsGy9 z^_@TP*ZO@ULvx&PKa!q|9xwSG@~CsAV_l;Tq)2 zcsRVN$m;HM2iiqce-T4J$d#`bruNs~+T4*|X^xEmybmOXOrG4!2NuPpnIM?Z}S6B54a6k);0qt z*qJU$A(@nYNlU>;Ves`aA!Tvo|E3H}XF^NdJ&sXGT8o5O)kBuuRz(A#1>es?LReo; zI0z%ya6Ax0hkkSw%pcXKasVT0gk;cKU!V_P1YNB2ibe7fSOYbs{Jteq>A|=Sx6kiSp@fjULfFbQEoCCv5U>@H)qn`rmNY*v z8iD~jP|3X$h85igm6{X<792m9uNRSKSIHJ&!i_w(8ghvUba-Go(ayuju!pGdtt7zO z(CSp=F|Slx)zX1yVd9~%*S#R8FfB{XuF@X=`lCMWP6`TZ+1Z`ZPH9I({oz0?K1o~0?UI7bl1L53_=gwJ}6HCQWr0Puk9Uh4p%oQj2vc6}HByDm~>%z@eD}!xapBmtb*bRm#=@cemIg z!Y^XVj7f$Y9HnF~3^Zm3IEH{^6*zw&EMkkHQ8-ag3vO&^6adFl@ML3LWwCMu{#yl7 z02fBUdWyret2t$b0XhYRKb26^h;UC88^RDJ^E(k2az@AtFyfM{fgEQba5;!b<8gR# zTb*M7=TzI*gEl{fRfndl4zE2DQ%`3giJ2uTbvBE3Ys^&UYS4LK! z$*Ja5SJzyvK094qw^Gg5s%dnrX^yNpms4XphDI}BKwvU68V(mM5x>U`AOt6Da8@Q)>R zp>Gq?TY>=)v6~=0w+qHQNu1P3YPYPNu zl}osj?s8w{FZZA8^TuMYd$>$Ex+#-tEXx5myGD%<*B}?5?9j1t_2N*zb45)xpyG@QaSZJvw#p<#UDp{I7)N{!O z37b%8B@$ej1Q)#pQYH0!epdh367MQNxt41TK8-yb=Bk|Pno7n>-<*c+H(0+Fw-W$h z&*L?6zUrt8P%2JprBl_ftU=xaV)H_)QflG>H?62xIS|j!OWM?(ukByn{_LB}Pmg+k zz-7}>wZ@g*J}mTwxA46r@b!I^+bDQ43mY%LDJRyszpGW9gzRtFq`aVmsia=|irTlJ z4d&KdI)^O+VT*7e3DDRGU|zrLc=D+UHm{=;D{$D&Q{Ffaw;xWGw&QcY79g! zXdKSk8HL(7sIvZjd&9gLRsk!Yn1p@OMzwd^v~UXcZCWn1f~qpnx|Xp==1c9g>ujok z<#oZ`0p#i3AcquxwxLcXN(m&jX8hFD7{xr^4;GQ6-B!Q5Njg0g=N_A=9=n4*4z)c_ z*Lz&VJ+8lds5-sw&b^*dy|jb9KDE8R*L(fNy~r*)WdVrb=YVqzwhANkS&y)fGEalo zUiOw}pg&-6J(MU+jG?ka_uH&83LCDq0Dq;5OW$(rXBY6L7;wg+(->+f9I(_Vw1^3l zB*Bb_4o%GJ(-*U4=yYT%{@ap8?z^IfZ|PP7Dr@#S63Q_Z*>eyXj^)H-0Sm$P>%XtuR|ld;kqw`1JExGwp=hm5t zo8?P6=((a!9S0Qjk8I}pfLF-2^O<_125-~{bli#UbEQf6h=#NSvk5t$Cj!&V&34L} zIj0|g6Jfr8HjOudpTTFBFX2Pu?7IfiCJ0xyg#gHbY(bhaMo`2E@2~p~)G4FqjIlkA zUb1(Y9+ypRi%q37{yK}d+7P$(X8dFJl8vhZ`Uz&g`mLo6`o^h28mG-uAEy2JiuVpS zi)I_Yy`JG*WpamYA!R6w0;_xiD86n4JN@$EjAEPJjV7TpsWsn=#*{DLTO6+URP*w- z^5y__EMM~$hmrx%Ez!?y(pS&D&vKE$hUL>CYJxSfrmhhVqPaCQ~60N%g5u z(@#;g5p|Eq$QD8F53Ts174F0)2aDnL#vT;!7Pi@?ZXZD!-6zfB+{_)Hv`3qV><`D^ z_n%G0ByRRHWt~)bye2#diACB(m{wx*d9|8R4^6wy9<=o#m`0fDNldj5988R68%27& zxp#;VZ+9!GyfDgTKD?Z&)_HQRypJLcZe(b4mzf1wYucRH74~r`tySWrx!dfC;ZW_Fe`P zcjdiTHFLMPg72~0-VwO((b3)3^fXm(kDZUID)G!p^F;BH#p2CrQA6#f##NQ9r0n}! zz7G4&S`^q@j;k~4GaiSyqfRPbJ>=kU*b)`Tm%CG<()SV6ncHBe#wqRH2`e;Lg4kikZJns5r9f%TYc)8)7=Hp*S$+EuB6Y6&7a#> zBmIGYAFBVSVr$A(?~RRS6G>NS@Wa^}xOtn`=T8s5&ohR9!SBD3(Hkt3RheW*up(hY zDYipV!FE~cjIi<7iUW+bbA#^}ftFPHMw0xAZlz3j@Z0(g-Ys|6kO+B;Y&<{H`Z+*< zzfXr-wv$u#Xx0F~z`o|^q3>=Kd6~%nY=F2D>eoW7CmajKP=@|`8R&5!@#2&VKgFWR zzP9BmF`n~s@I>RdO_HwJo-g`i6kk_f)hC}6?`5;5-a8Lno}z>C*2lr{#m!#a_iMZy z1n!S$3$)BHeK!UIrt)5X{CM+oZxCpUKX-s3CjqE=*@sT$et7AL;rp(uFuiC|E)5^t zP?BtleeA2Vh}l?JuJzi+mI0RhGpWX?oWKX_yel8VpTbcNO?Xm(fW>e5uS z01^Q1TL+IC;n>S)h!_|?-r58Gi(A#t!J~`h`ZUbisTpJvHPp7{K}e05+02UjP6A literal 0 HcwPel00001 diff --git a/lib/tk8.4/demos/images/face.bmp b/lib/tk8.4/demos/images/face.bmp new file mode 100644 index 00000000..03d829f4 --- /dev/null +++ b/lib/tk8.4/demos/images/face.bmp @@ -0,0 +1,173 @@ +#define face_width 108 +#define face_height 144 +#define face_x_hot 48 +#define face_y_hot 80 +static char face_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x09, + 0x20, 0x80, 0x24, 0x05, 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x88, + 0x24, 0x20, 0x80, 0x24, 0x00, 0x00, 0x00, 0x10, 0x80, 0x04, 0x00, 0x01, + 0x00, 0x01, 0x40, 0x0a, 0x09, 0x00, 0x92, 0x04, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x40, 0x12, 0x00, 0x00, 0x10, 0x40, 0x00, 0x00, 0x84, + 0x24, 0x40, 0x22, 0xa8, 0x02, 0x14, 0x84, 0x92, 0x40, 0x42, 0x12, 0x04, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0x11, 0x00, 0x12, 0x00, + 0x40, 0x02, 0x00, 0x20, 0x00, 0x08, 0x00, 0xaa, 0x02, 0x54, 0x85, 0x24, + 0x00, 0x10, 0x12, 0x00, 0x00, 0x81, 0x44, 0x00, 0x90, 0x5a, 0x00, 0xea, + 0x1b, 0x00, 0x80, 0x40, 0x40, 0x02, 0x00, 0x08, 0x00, 0x20, 0xa2, 0x05, + 0x8a, 0xb4, 0x6e, 0x45, 0x12, 0x04, 0x08, 0x00, 0x00, 0x00, 0x10, 0x02, + 0xa8, 0x92, 0x00, 0xda, 0x5f, 0x10, 0x00, 0x10, 0xa1, 0x04, 0x20, 0x41, + 0x02, 0x00, 0x5a, 0x25, 0xa0, 0xff, 0xfb, 0x05, 0x41, 0x02, 0x04, 0x00, + 0x00, 0x08, 0x40, 0x80, 0xec, 0x9b, 0xec, 0xfe, 0x7f, 0x01, 0x04, 0x20, + 0x90, 0x02, 0x04, 0x00, 0x08, 0x20, 0xfb, 0x2e, 0xf5, 0xff, 0xff, 0x57, + 0x00, 0x04, 0x02, 0x00, 0x00, 0x20, 0x01, 0xc1, 0x6e, 0xab, 0xfa, 0xff, + 0xff, 0x05, 0x90, 0x20, 0x48, 0x02, 0x00, 0x04, 0x20, 0xa8, 0xdf, 0xb5, + 0xfe, 0xff, 0xff, 0x0b, 0x01, 0x00, 0x01, 0x00, 0x80, 0x80, 0x04, 0xe0, + 0xbb, 0xef, 0xff, 0xff, 0x7f, 0x01, 0x00, 0x04, 0x48, 0x02, 0x00, 0x20, + 0x80, 0xf4, 0x6f, 0xfb, 0xff, 0xff, 0xff, 0x20, 0x90, 0x40, 0x02, 0x00, + 0x00, 0x04, 0x08, 0xb8, 0xf6, 0xff, 0xff, 0xdf, 0xbe, 0x12, 0x45, 0x10, + 0x90, 0x04, 0x90, 0x00, 0x22, 0xfa, 0xff, 0xff, 0xff, 0xbb, 0xd7, 0xe9, + 0x3a, 0x02, 0x02, 0x00, 0x04, 0x90, 0x80, 0xfe, 0xdf, 0xf6, 0xb7, 0xef, + 0xbe, 0x56, 0x57, 0x40, 0x48, 0x09, 0x00, 0x04, 0x00, 0xfa, 0xf5, 0xdf, + 0xed, 0x5a, 0xd5, 0xea, 0xbd, 0x09, 0x00, 0x00, 0x40, 0x00, 0x92, 0xfe, + 0xbf, 0x7d, 0xb7, 0x6a, 0x55, 0xbf, 0xf7, 0x02, 0x11, 0x01, 0x00, 0x91, + 0x00, 0xff, 0xff, 0xaf, 0x55, 0x55, 0x5b, 0xeb, 0xef, 0x22, 0x04, 0x04, + 0x04, 0x00, 0xa4, 0xff, 0xf7, 0xad, 0xaa, 0xaa, 0xaa, 0xbe, 0xfe, 0x03, + 0x20, 0x00, 0x10, 0x44, 0x80, 0xff, 0x7f, 0x55, 0x12, 0x91, 0x2a, 0xeb, + 0xbf, 0x0b, 0x82, 0x02, 0x00, 0x00, 0xd1, 0x7f, 0xdf, 0xa2, 0xa4, 0x54, + 0x55, 0xfd, 0xfd, 0x47, 0x08, 0x08, 0x00, 0x21, 0xe4, 0xff, 0x37, 0x11, + 0x09, 0xa5, 0xaa, 0xb6, 0xff, 0x0d, 0x80, 0x00, 0x00, 0x04, 0xd0, 0xff, + 0x4f, 0x44, 0x20, 0x48, 0x55, 0xfb, 0xff, 0x27, 0x11, 0x02, 0x40, 0x40, + 0xe2, 0xfb, 0x15, 0x11, 0x4a, 0x55, 0x4a, 0x7d, 0xf7, 0x0f, 0x00, 0x00, + 0x04, 0x08, 0xf8, 0xdf, 0x52, 0x44, 0x01, 0x52, 0xb5, 0xfa, 0xff, 0x0f, + 0x49, 0x02, 0x00, 0x02, 0xe9, 0xf6, 0x0a, 0x11, 0xa4, 0x88, 0x4a, 0x6d, + 0xff, 0x5f, 0x00, 0x00, 0x10, 0x20, 0xf0, 0x2f, 0x21, 0x44, 0x10, 0x52, + 0xb5, 0xfa, 0xff, 0x0f, 0x44, 0x04, 0x80, 0x08, 0xf8, 0xab, 0x8a, 0x00, + 0x81, 0xa4, 0xd4, 0xd6, 0xfe, 0x2f, 0x00, 0x00, 0x04, 0x40, 0xb5, 0x2d, + 0x21, 0x08, 0x04, 0x90, 0xaa, 0xfa, 0xff, 0x1f, 0x11, 0x01, 0x00, 0x04, + 0xf0, 0x57, 0x0a, 0x22, 0x40, 0x4a, 0xda, 0x5e, 0xfb, 0x1f, 0x40, 0x00, + 0x40, 0x20, 0xba, 0x95, 0x90, 0x00, 0x01, 0xa0, 0xaa, 0xea, 0xff, 0x5f, + 0x02, 0x02, 0x00, 0x01, 0xe8, 0x57, 0x05, 0x00, 0x00, 0x12, 0xd5, 0xfe, + 0xfd, 0x1f, 0x48, 0x00, 0x04, 0x48, 0x7a, 0x95, 0x08, 0x02, 0x10, 0x40, + 0xaa, 0x55, 0xf7, 0x1f, 0x00, 0x09, 0x20, 0x00, 0xf8, 0x57, 0x22, 0x10, + 0x00, 0x28, 0xa9, 0xfa, 0xff, 0x5f, 0x02, 0x00, 0x00, 0x49, 0xdd, 0x29, + 0x01, 0x00, 0x80, 0x80, 0xaa, 0xd7, 0xff, 0x0f, 0x10, 0x00, 0x08, 0x00, + 0xf8, 0x96, 0x08, 0x00, 0x00, 0x20, 0x54, 0xfa, 0xee, 0x3f, 0x81, 0x04, + 0x40, 0x24, 0xfe, 0x55, 0x82, 0x00, 0x00, 0x82, 0xd2, 0xad, 0xff, 0x0f, + 0x08, 0x00, 0x04, 0x80, 0x6c, 0x97, 0x00, 0x00, 0x02, 0x20, 0xa9, 0xf6, + 0xdf, 0x5f, 0x00, 0x02, 0x20, 0x09, 0xfa, 0x49, 0x12, 0x00, 0x20, 0x84, + 0x54, 0xdb, 0xfe, 0x1f, 0x91, 0x00, 0x00, 0x00, 0xf8, 0x2b, 0x00, 0x20, + 0x00, 0x40, 0xa4, 0xf6, 0xbb, 0x1f, 0x04, 0x00, 0x44, 0x92, 0x7e, 0x95, + 0x02, 0x00, 0x00, 0x89, 0xaa, 0xdd, 0xff, 0x1f, 0x20, 0x09, 0x10, 0x00, + 0xf4, 0x57, 0x20, 0x01, 0x08, 0x20, 0xa9, 0x76, 0xff, 0x5f, 0x02, 0x00, + 0x00, 0x21, 0xfc, 0x4a, 0x05, 0x00, 0x01, 0x80, 0x54, 0xdb, 0xff, 0x1e, + 0x08, 0x02, 0x04, 0x08, 0xf9, 0x2b, 0x00, 0x00, 0x40, 0x28, 0xd2, 0xf6, + 0xff, 0xbf, 0x80, 0x00, 0x90, 0x00, 0xbc, 0x92, 0x08, 0x10, 0x00, 0x82, + 0x54, 0xdb, 0xff, 0x1f, 0x20, 0x00, 0x00, 0x44, 0xf9, 0x55, 0x02, 0x01, + 0x00, 0x20, 0xaa, 0xbd, 0xfd, 0x3f, 0x08, 0x04, 0x04, 0x10, 0xf4, 0x2a, + 0x01, 0x00, 0x22, 0x80, 0xd4, 0xf6, 0xff, 0x5f, 0x82, 0x00, 0x40, 0x02, + 0xf8, 0x55, 0x20, 0x00, 0x00, 0x50, 0x6a, 0xdf, 0xfe, 0x3f, 0x00, 0x00, + 0x00, 0x48, 0xe9, 0x4a, 0x05, 0x08, 0x00, 0xa5, 0xd5, 0xf5, 0xff, 0x3f, + 0x10, 0x01, 0x10, 0x01, 0xb0, 0xab, 0x92, 0x02, 0x40, 0xf8, 0xbf, 0xde, + 0xfe, 0x5f, 0x02, 0x04, 0x04, 0x48, 0xfa, 0xd4, 0x6f, 0x20, 0x84, 0xef, + 0xff, 0xfb, 0xff, 0x1f, 0x20, 0x00, 0x00, 0x00, 0xe0, 0xed, 0xbf, 0x0b, + 0xa1, 0x7e, 0xff, 0xbf, 0xfd, 0x5f, 0x04, 0x01, 0x20, 0x49, 0xd2, 0xfb, + 0xfe, 0x55, 0xd4, 0xff, 0xff, 0xf6, 0xff, 0x07, 0x00, 0x04, 0x00, 0x00, + 0xc0, 0xaa, 0xfb, 0x2b, 0xa2, 0xfe, 0xff, 0xdf, 0xee, 0x1f, 0x91, 0x00, + 0x82, 0xa4, 0xa4, 0xf5, 0xff, 0x57, 0xd5, 0xff, 0xbf, 0xfd, 0xff, 0x4d, + 0x00, 0x00, 0x20, 0x00, 0x88, 0x5b, 0xff, 0x2f, 0x69, 0xff, 0xff, 0xdb, + 0xfe, 0x1f, 0x24, 0x02, 0x00, 0x49, 0xa2, 0xd6, 0xff, 0x5f, 0xea, 0xff, + 0x7f, 0x7f, 0x7f, 0x0d, 0x00, 0x00, 0x10, 0x00, 0x40, 0xab, 0xf7, 0xbb, + 0xf0, 0xdf, 0xff, 0xd5, 0xff, 0xbf, 0x82, 0x04, 0x42, 0x24, 0x91, 0xd5, + 0xaa, 0xae, 0xd4, 0xaa, 0x52, 0x7b, 0xff, 0x15, 0x08, 0x00, 0x00, 0x01, + 0x04, 0x55, 0xd5, 0x55, 0x70, 0x5b, 0x75, 0xdd, 0xdf, 0x1f, 0x40, 0x00, + 0x08, 0x48, 0xa0, 0x4a, 0xa9, 0x56, 0xea, 0x56, 0xad, 0x6a, 0x7d, 0x9b, + 0x04, 0x01, 0x00, 0x02, 0x42, 0x2a, 0xd5, 0xaa, 0xa8, 0xaa, 0xaa, 0xfa, + 0xdf, 0x2f, 0x10, 0x04, 0x22, 0x48, 0x08, 0x45, 0x2a, 0x15, 0x68, 0x55, + 0x55, 0xd7, 0x76, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x40, 0x2a, 0x80, 0xa0, + 0xb2, 0x09, 0x48, 0xb9, 0xdf, 0x17, 0x22, 0x01, 0x00, 0x24, 0x45, 0x8a, + 0x24, 0x4a, 0x54, 0x51, 0x91, 0xf6, 0x6e, 0x4b, 0x00, 0x04, 0x90, 0x00, + 0x80, 0x52, 0x00, 0x20, 0x69, 0x05, 0xa4, 0xaa, 0xff, 0x1e, 0x48, 0x00, + 0x02, 0x92, 0x08, 0x05, 0x81, 0x94, 0xd4, 0x92, 0x40, 0xfd, 0xb6, 0x8b, + 0x00, 0x01, 0x40, 0x00, 0x82, 0x54, 0x00, 0x48, 0x68, 0x05, 0x90, 0xa4, + 0xef, 0x06, 0x24, 0x00, 0x08, 0x12, 0x10, 0x05, 0x00, 0x10, 0xb5, 0x01, + 0x42, 0xfb, 0xbf, 0x43, 0x00, 0x09, 0x00, 0x40, 0x81, 0xa8, 0x08, 0x4a, + 0xaa, 0x96, 0x90, 0xac, 0x6d, 0x15, 0x22, 0x00, 0x20, 0x09, 0x04, 0x15, + 0x80, 0x28, 0xdc, 0x01, 0x24, 0xfb, 0xbf, 0x01, 0x80, 0x04, 0x09, 0x00, + 0x40, 0x48, 0x02, 0x45, 0xb2, 0x2e, 0x41, 0x6d, 0xef, 0x05, 0x11, 0x00, + 0x40, 0x52, 0x02, 0x15, 0x29, 0x2a, 0xac, 0x42, 0x54, 0xfb, 0x3b, 0x51, + 0x84, 0x00, 0x08, 0x00, 0x20, 0x54, 0x80, 0x05, 0xb5, 0x3d, 0xa2, 0xb6, + 0xdf, 0x00, 0x20, 0x04, 0x20, 0x49, 0x89, 0xa8, 0x6a, 0x29, 0xac, 0xd6, + 0x54, 0xff, 0x3f, 0x84, 0x00, 0x01, 0x04, 0x10, 0x00, 0x94, 0xa8, 0x56, + 0xda, 0x5f, 0xab, 0xd5, 0x1e, 0x10, 0x48, 0x00, 0x90, 0x82, 0x48, 0xa8, + 0xb2, 0xac, 0xfd, 0x55, 0xd5, 0xfe, 0x9f, 0x80, 0x00, 0x0a, 0x02, 0x08, + 0x02, 0x55, 0x5a, 0x75, 0xff, 0xaf, 0xb6, 0xf7, 0x2d, 0x12, 0x92, 0x00, + 0x10, 0x20, 0x10, 0xa8, 0x54, 0xd5, 0xbf, 0x5d, 0xad, 0xdd, 0x0f, 0x00, + 0x00, 0x04, 0x40, 0x09, 0x84, 0xa8, 0xaa, 0x5a, 0xed, 0xeb, 0x6a, 0xff, + 0x9f, 0xa4, 0x24, 0x01, 0x02, 0xa0, 0x20, 0x50, 0x55, 0xd5, 0xbe, 0xae, + 0xad, 0xfd, 0x16, 0x00, 0x10, 0x04, 0x20, 0x0a, 0x08, 0xb4, 0xaa, 0x95, + 0xaa, 0x7b, 0xb7, 0xdb, 0x5f, 0x92, 0x04, 0x01, 0x84, 0x20, 0x21, 0x51, + 0xd5, 0x2a, 0xa9, 0xee, 0xd5, 0xfe, 0x0d, 0x00, 0x20, 0x04, 0x10, 0x00, + 0x08, 0x50, 0xe9, 0xd7, 0xd4, 0xfb, 0xb5, 0xff, 0x9f, 0x24, 0x09, 0x01, + 0x42, 0x4a, 0xa2, 0x64, 0xd5, 0x55, 0x7b, 0x7f, 0xda, 0x7d, 0x4f, 0x00, + 0x20, 0x04, 0x00, 0x80, 0x00, 0xa0, 0x2a, 0x13, 0x84, 0x6a, 0x55, 0xff, + 0x1d, 0x48, 0x8a, 0x00, 0x94, 0x24, 0x8a, 0xc8, 0xaa, 0x42, 0x20, 0x5d, + 0xf5, 0xff, 0x5f, 0x01, 0x00, 0x02, 0x01, 0x00, 0x20, 0xa2, 0x4a, 0x1a, + 0x82, 0x56, 0xda, 0xbd, 0x3f, 0x92, 0x92, 0x00, 0x90, 0x92, 0x00, 0x40, + 0x95, 0x6a, 0xf4, 0x55, 0x6d, 0xff, 0xd6, 0x00, 0x00, 0x0a, 0x04, 0x20, + 0x14, 0x49, 0x4b, 0xaa, 0xaa, 0x56, 0xf5, 0xff, 0xbf, 0xab, 0xa4, 0x00, + 0x20, 0x89, 0x40, 0x80, 0xaa, 0xaa, 0xaa, 0xaa, 0xde, 0xbf, 0xeb, 0x03, + 0x00, 0x02, 0x04, 0x02, 0x0a, 0x10, 0x2b, 0x2a, 0x55, 0x5b, 0xf5, 0xff, + 0xd7, 0x2f, 0x92, 0x00, 0x10, 0x28, 0x21, 0x01, 0x56, 0x95, 0xa0, 0x56, + 0xdf, 0xef, 0xea, 0x87, 0x40, 0x0a, 0x42, 0x41, 0x00, 0x90, 0xaa, 0x52, + 0xb6, 0xad, 0xfa, 0xff, 0xd5, 0x2f, 0x14, 0x00, 0x00, 0x04, 0x95, 0x04, + 0xaa, 0xac, 0x55, 0x6b, 0xff, 0xb7, 0xea, 0x9f, 0x40, 0x02, 0x28, 0x51, + 0x00, 0x40, 0x58, 0xd5, 0xda, 0xd6, 0x6e, 0x7f, 0xf9, 0x3f, 0x12, 0x04, + 0x02, 0x04, 0x49, 0x25, 0x55, 0xaa, 0x77, 0xab, 0xff, 0x2b, 0xfd, 0x3f, + 0x48, 0x01, 0x20, 0x41, 0x00, 0x00, 0x58, 0xa9, 0xda, 0xea, 0xfd, 0xaf, + 0xfa, 0xff, 0x02, 0x04, 0x08, 0x14, 0x29, 0x49, 0x52, 0x55, 0x55, 0x55, + 0xff, 0x8d, 0xfe, 0x3f, 0xa8, 0x00, 0x02, 0x41, 0x00, 0x02, 0xa0, 0xa2, + 0xaa, 0xea, 0xff, 0x53, 0xfd, 0xff, 0x02, 0x04, 0x50, 0x04, 0x25, 0xa8, + 0x54, 0x49, 0x52, 0xb5, 0xbf, 0x8a, 0xfe, 0xff, 0xa9, 0x08, 0x04, 0x50, + 0x80, 0x02, 0xa1, 0x2a, 0x95, 0xea, 0xff, 0xa1, 0xff, 0xff, 0x03, 0x02, + 0x90, 0x02, 0x09, 0x08, 0x44, 0x49, 0x52, 0xbd, 0x7f, 0xca, 0xff, 0xff, + 0x2b, 0x09, 0x04, 0x48, 0x40, 0x82, 0x90, 0x56, 0xa9, 0xf6, 0xbf, 0xd0, + 0xff, 0xff, 0x47, 0x00, 0x50, 0x02, 0x15, 0x11, 0x40, 0x95, 0xaa, 0xfd, + 0x2f, 0xe9, 0xff, 0xff, 0x8f, 0x0a, 0x84, 0x50, 0x40, 0x84, 0x14, 0xaa, + 0x6a, 0xff, 0x5f, 0xf2, 0xff, 0xff, 0x7f, 0x00, 0x10, 0x02, 0x09, 0x10, + 0x40, 0x7d, 0xf7, 0xff, 0x0b, 0xfc, 0xff, 0xff, 0xaf, 0x02, 0x84, 0x50, + 0x42, 0x85, 0x12, 0xd0, 0xdd, 0xff, 0xa7, 0xf2, 0xff, 0xff, 0xff, 0x04, + 0x00, 0x0a, 0x08, 0x10, 0x48, 0xf8, 0xff, 0xff, 0x0a, 0xfe, 0xff, 0xff, + 0x7f, 0x03, 0xa4, 0x80, 0xa2, 0x8a, 0x02, 0x68, 0xff, 0xff, 0x52, 0xfd, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x2a, 0x08, 0x20, 0x28, 0xdc, 0xff, 0x5f, + 0x05, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x92, 0x40, 0x22, 0x09, 0x02, 0xea, + 0xfb, 0xaf, 0x48, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x12, 0x81, 0xa0, + 0x48, 0x9c, 0x6e, 0x93, 0xa2, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa8, 0x40, + 0x28, 0x0a, 0x02, 0x74, 0xb5, 0x45, 0x81, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x02, 0x0a, 0x81, 0x20, 0x08, 0xae, 0xaa, 0x90, 0xe8, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x90, 0x40, 0x28, 0x88, 0x12, 0x58, 0x15, 0x50, 0xd0, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x44, 0x0a, 0x41, 0x21, 0x08, 0xae, 0x04, 0x14, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x10, 0x40, 0x14, 0x88, 0x04, 0xba, + 0x02, 0x28, 0xe8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x42, 0x15, 0x41, 0x21, + 0x05, 0xad, 0x00, 0x05, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x10, 0x40, + 0x24, 0x8a, 0x0e, 0x36, 0x00, 0x0a, 0xf4, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x42, 0x25, 0x90, 0xd0, 0x8b, 0xc2, 0x41, 0x05, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x10, 0x08, 0x05, 0xe8, 0x8e, 0x58, 0x80, 0x02, 0xfa, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x4a, 0x20, 0xa8, 0xba, 0x0b, 0x2b, 0x51, 0x01, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x8a, 0x02, 0xe8, 0xaf, 0x84, + 0x90, 0x04, 0xfd, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x52, 0x21, 0x54, 0xbf, + 0x1f, 0x15, 0xa5, 0x02, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x08, + 0x01, 0xfa, 0xb6, 0xa4, 0x52, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x4a, 0xa2, 0x54, 0xef, 0x5f, 0x4b, 0xa4, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x80, 0x10, 0x82, 0xfe, 0xbf, 0x92, 0x52, 0x42, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x12, 0x42, 0xa8, 0xbf, 0x1f, 0x24, 0x80, 0xa0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x84, 0x28, 0x8a, 0xf7, 0x37, 0x80, + 0x52, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x10, 0x82, 0xe0, 0xff, + 0x1f, 0x00, 0x20, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x84, 0x28, + 0xca, 0xff, 0x1f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x10, 0x42, 0xf0, 0xfd, 0x1b, 0x00, 0x50, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0xa4, 0x10, 0xc5, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x22, 0xf8, 0xff, 0x0e, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xaa, 0x88, 0xe2, 0xff, 0x0f, 0x10, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x25, 0xfa, 0xff, + 0x0f, 0x01, 0x11, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xfb, + 0xfb, 0xff, 0x7f, 0x5d, 0xd5, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f}; diff --git a/lib/tk8.4/demos/images/flagdown.bmp b/lib/tk8.4/demos/images/flagdown.bmp new file mode 100644 index 00000000..55abc518 --- /dev/null +++ b/lib/tk8.4/demos/images/flagdown.bmp @@ -0,0 +1,27 @@ +#define flagdown_width 48 +#define flagdown_height 48 +static char flagdown_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x80, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x04, + 0x00, 0x00, 0x03, 0x00, 0x06, 0x06, 0x00, 0x80, 0x01, 0x00, 0x06, 0x07, + 0x00, 0xc0, 0x1f, 0x00, 0x87, 0x07, 0x00, 0xe0, 0x7f, 0x80, 0xc7, 0x07, + 0x00, 0x70, 0xe0, 0xc0, 0xe5, 0x07, 0x00, 0x38, 0x80, 0xe1, 0x74, 0x07, + 0x00, 0x18, 0x80, 0x71, 0x3c, 0x07, 0x00, 0x0c, 0x00, 0x3b, 0x1e, 0x03, + 0x00, 0x0c, 0x00, 0x1f, 0x0f, 0x00, 0x00, 0x86, 0x1f, 0x8e, 0x07, 0x00, + 0x00, 0x06, 0x06, 0xc6, 0x05, 0x00, 0x00, 0x06, 0x00, 0xc6, 0x05, 0x00, + 0x00, 0x06, 0x00, 0xc6, 0x04, 0x00, 0x00, 0x06, 0x00, 0x06, 0x04, 0x00, + 0x7f, 0x06, 0x00, 0x06, 0xe4, 0xff, 0x00, 0x06, 0x00, 0x06, 0x04, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x04, 0x00, 0x00, 0x06, 0x00, 0x06, 0x06, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x03, 0x00, 0x00, 0x06, 0x00, 0x86, 0x01, 0x00, + 0x00, 0x06, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x06, 0x00, 0x66, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x36, 0x00, 0x00, 0x00, 0x06, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x2f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x27, 0x00, 0x00, + 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, + 0xf7, 0xbf, 0x8e, 0xfc, 0xdf, 0xf8, 0x9d, 0xeb, 0x9b, 0x76, 0xd2, 0x7a, + 0x46, 0x30, 0xe2, 0x0f, 0xe1, 0x47, 0x55, 0x84, 0x48, 0x11, 0x84, 0x19}; diff --git a/lib/tk8.4/demos/images/flagup.bmp b/lib/tk8.4/demos/images/flagup.bmp new file mode 100644 index 00000000..6eb0d846 --- /dev/null +++ b/lib/tk8.4/demos/images/flagup.bmp @@ -0,0 +1,27 @@ +#define flagup_width 48 +#define flagup_height 48 +static char flagup_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xef, 0x6a, 0x00, + 0x00, 0x00, 0xc0, 0x7b, 0x75, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x6a, 0x00, + 0x00, 0x00, 0x30, 0x60, 0x75, 0x00, 0x00, 0x00, 0x18, 0xe0, 0x7f, 0x00, + 0x00, 0x00, 0x0c, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x06, 0xe0, 0x04, 0x00, + 0x00, 0x00, 0x03, 0xe0, 0x04, 0x00, 0x00, 0x80, 0x01, 0xe0, 0x06, 0x00, + 0x00, 0xc0, 0x1f, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x7f, 0xe0, 0x07, 0x00, + 0x00, 0x70, 0xe0, 0xe0, 0x05, 0x00, 0x00, 0x38, 0x80, 0xe1, 0x04, 0x00, + 0x00, 0x18, 0x80, 0xf1, 0x04, 0x00, 0x00, 0x0c, 0x00, 0xfb, 0x04, 0x00, + 0x00, 0x0c, 0x00, 0xff, 0x04, 0x00, 0x00, 0x86, 0x1f, 0xee, 0x04, 0x00, + 0x00, 0x06, 0x06, 0xe6, 0x04, 0x00, 0x00, 0x06, 0x00, 0xe6, 0x04, 0x00, + 0x00, 0x06, 0x00, 0xe6, 0x04, 0x00, 0x00, 0x06, 0x00, 0x66, 0x04, 0x00, + 0x7f, 0x56, 0x52, 0x06, 0xe4, 0xff, 0x00, 0x76, 0x55, 0x06, 0x04, 0x00, + 0x00, 0x56, 0x57, 0x06, 0x04, 0x00, 0x00, 0x56, 0x55, 0x06, 0x06, 0x00, + 0x00, 0x56, 0xd5, 0x06, 0x03, 0x00, 0x00, 0x06, 0x00, 0x86, 0x01, 0x00, + 0x54, 0x06, 0x00, 0xc6, 0x54, 0x55, 0xaa, 0x06, 0x00, 0x66, 0xaa, 0x2a, + 0x54, 0x06, 0x00, 0x36, 0x55, 0x55, 0xaa, 0x06, 0x00, 0xbe, 0xaa, 0x2a, + 0x54, 0xfe, 0xff, 0x6f, 0x55, 0x55, 0xaa, 0xfc, 0xff, 0xa7, 0xaa, 0x2a, + 0x54, 0x01, 0x88, 0x60, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa0, 0xaa, 0x2a, + 0x54, 0x55, 0x8d, 0x60, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa0, 0xaa, 0x2a, + 0x54, 0x55, 0x8d, 0x60, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa0, 0xaa, 0x2a, + 0x54, 0x55, 0x8d, 0x50, 0x55, 0x55, 0xaa, 0xaa, 0x8a, 0xa8, 0xaa, 0x2a, + 0x54, 0x55, 0x95, 0x54, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x2a, + 0x54, 0x55, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/lib/tk8.4/demos/images/gray25.bmp b/lib/tk8.4/demos/images/gray25.bmp new file mode 100644 index 00000000..b234b3cb --- /dev/null +++ b/lib/tk8.4/demos/images/gray25.bmp @@ -0,0 +1,6 @@ +#define grey_width 16 +#define grey_height 16 +static char grey_bits[] = { + 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44, + 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44, + 0x11, 0x11, 0x44, 0x44, 0x11, 0x11, 0x44, 0x44}; diff --git a/lib/tk8.4/demos/images/letters.bmp b/lib/tk8.4/demos/images/letters.bmp new file mode 100644 index 00000000..0f12568d --- /dev/null +++ b/lib/tk8.4/demos/images/letters.bmp @@ -0,0 +1,27 @@ +#define letters_width 48 +#define letters_height 48 +static char letters_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, + 0x00, 0xfa, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2a, + 0x00, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2e, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0x21, 0x20, 0x00, 0x00, 0x00, 0x00, 0x21, + 0xa0, 0x03, 0x00, 0x00, 0x70, 0x21, 0x20, 0x00, 0x00, 0x00, 0x50, 0x21, + 0xa0, 0x1f, 0x00, 0x00, 0x50, 0x21, 0x20, 0x00, 0x00, 0x00, 0x70, 0x21, + 0xfe, 0xff, 0xff, 0xff, 0x0f, 0x21, 0x02, 0x00, 0x00, 0x00, 0x08, 0x21, + 0xfa, 0x01, 0x00, 0x80, 0x0b, 0x21, 0x02, 0x00, 0x00, 0x80, 0x0a, 0x21, + 0xba, 0x01, 0x00, 0x80, 0x0a, 0x21, 0x02, 0x00, 0x00, 0x80, 0x0b, 0x21, + 0x3a, 0x00, 0x00, 0x00, 0x08, 0x21, 0x02, 0x00, 0x00, 0x00, 0x08, 0x21, + 0x02, 0xc0, 0xfb, 0x03, 0x08, 0x21, 0x02, 0x00, 0x00, 0x00, 0x08, 0x3f, + 0x02, 0xc0, 0xbd, 0x0f, 0x08, 0x01, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, + 0x02, 0xc0, 0x7f, 0x7b, 0x08, 0x01, 0x02, 0x00, 0x00, 0x00, 0x08, 0x01, + 0x02, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/lib/tk8.4/demos/images/noletter.bmp b/lib/tk8.4/demos/images/noletter.bmp new file mode 100644 index 00000000..5774124e --- /dev/null +++ b/lib/tk8.4/demos/images/noletter.bmp @@ -0,0 +1,27 @@ +#define noletters_width 48 +#define noletters_height 48 +static char noletters_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xf0, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x7f, 0x00, + 0x00, 0x3e, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x01, + 0x80, 0x07, 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x07, + 0xe0, 0x01, 0x00, 0x00, 0xf0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x0e, + 0xf0, 0x00, 0x00, 0x00, 0x3c, 0x1e, 0x70, 0x00, 0x00, 0x00, 0x1e, 0x1c, + 0x38, 0x00, 0x00, 0x00, 0x0f, 0x38, 0x38, 0x00, 0x00, 0x80, 0x07, 0x38, + 0x3c, 0xfc, 0xff, 0xff, 0x7f, 0x78, 0x1c, 0x04, 0x00, 0xe0, 0x41, 0x70, + 0x1c, 0x04, 0x00, 0xf0, 0x40, 0x70, 0x1c, 0x74, 0x00, 0x78, 0x4e, 0x70, + 0x0e, 0x04, 0x00, 0x3c, 0x4a, 0xe0, 0x0e, 0x74, 0x03, 0x1e, 0x4a, 0xe0, + 0x0e, 0x04, 0x00, 0x0f, 0x4e, 0xe0, 0x0e, 0x04, 0x80, 0x07, 0x40, 0xe0, + 0x0e, 0x04, 0xf8, 0x0f, 0x40, 0xe0, 0x0e, 0x04, 0xe0, 0x01, 0x40, 0xe0, + 0x0e, 0x04, 0xf8, 0x00, 0x40, 0xe0, 0x0e, 0x04, 0x78, 0x00, 0x40, 0xe0, + 0x0e, 0x04, 0xfc, 0xf3, 0x40, 0xe0, 0x1c, 0x04, 0x1e, 0x00, 0x40, 0x70, + 0x1c, 0x04, 0x0f, 0x00, 0x40, 0x70, 0x1c, 0x84, 0x07, 0x00, 0x40, 0x70, + 0x3c, 0xfc, 0xff, 0xff, 0x7f, 0x78, 0x38, 0xe0, 0x01, 0x00, 0x00, 0x38, + 0x38, 0xf0, 0x00, 0x00, 0x00, 0x38, 0x70, 0x78, 0x00, 0x00, 0x00, 0x1c, + 0xf0, 0x3c, 0x00, 0x00, 0x00, 0x1e, 0xe0, 0x1e, 0x00, 0x00, 0x00, 0x0e, + 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x07, 0x00, 0x00, 0x80, 0x07, + 0x80, 0x07, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x01, + 0x00, 0x3e, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x7f, 0x00, + 0x00, 0xf0, 0x0f, 0xe0, 0x1f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00}; diff --git a/lib/tk8.4/demos/images/pattern.bmp b/lib/tk8.4/demos/images/pattern.bmp new file mode 100644 index 00000000..df31baf7 --- /dev/null +++ b/lib/tk8.4/demos/images/pattern.bmp @@ -0,0 +1,6 @@ +#define foo_width 16 +#define foo_height 16 +static char foo_bits[] = { + 0x60, 0x06, 0x90, 0x09, 0x90, 0x09, 0xb0, 0x0d, 0x4e, 0x72, 0x49, 0x92, + 0x71, 0x8e, 0x8e, 0x71, 0x8e, 0x71, 0x71, 0x8e, 0x49, 0x92, 0x4e, 0x72, + 0xb0, 0x0d, 0x90, 0x09, 0x90, 0x09, 0x60, 0x06}; diff --git a/lib/tk8.4/demos/images/tcllogo.gif b/lib/tk8.4/demos/images/tcllogo.gif new file mode 100644 index 0000000000000000000000000000000000000000..4603d4ff417d9ec1cc1ba3c0d1eeec29120a3f8d GIT binary patch literal 2341 zcwVJb`#)6s8h+g`*|SH8DP#sa2Ax=4OiX*!xRubBaY+$c`s8p>j*fF`W28Y!Dq587 zTGJ$nok*wcwl%R5QE8Wxa?37uwNsty(>mYp{0ry(eAW-|df)eXpXYhk^7i#|73>s4 zEPP;q!9g<&#V{np5Da>QGMZ*+ilIq{CKwuUk)j!jVknZK2!;aOOVSKUF(k>51VaKI zC1{4A7=mO7f*}B71I+-%0LcKs0AOGYjj+%#>IS?A2Sw8)O%pT?crD5(il#`KB4`RQ z3sfX2nj~qGph>`_P%lBz1W6MFO#tGEMrojEAZZ|I08ANcK%@~%L<_J2ya_=gEHn&Q z5YADM6h%-JV0~yU%1DwT35oWp=o3X(ht}h zED3=j(ugHstMFokji3=0VCQfdm`uShOpfr=y$BmlMn_wOk2FB2UPlUTEyaxxMiyyacs3ys<2?G0nL~lG>%^JIpJa`jlE(EeB^) zv^yScvi45eUePmmHhsSN>RR^4djtPGHrz0}_Ybc#x4P0zUPRdMD_L+PgwaVc&JbEX zx|XOjFna#oW4Dy^-&b{6W~2uwhW8eJb@H%~=PuHWyFX*K)kNu9U12ht5Nrv8q^qX8 z9$9P&5!Tqrxh~r)c0CmtCeBld&SCpAgnE1ATu$75&p=t`{hlF1U3pL>i)1~pN3P*xHPHKCP)P8H0H_koN8&$#@{FOO>KRq&cKi`iP zm^;o_SdGV9vb{pK{pcnPbqE*LB~_p8*Hmve$VzBEc}2IvGtz`sjCeL&OqhQb`CzJI zPjl^L#l!0E-dNL?IE&-bdb+;TFx|tTbh)3*uqHHgt}}j`yYRTKeb9d!-HO}#eiL{J zU0$TdOZ*q^+tDVli6B|?0}fG=AA56NH7Y;0>HB{8H0+$FeD1Tc^OL#ga%j=l;$r?{ z%c6iziF;sUfb*J?2YiQcwUmmO!Mw)M5sNA=dqg1*kZwD*i=7eetJ%Fyzn)j0Cu!bQ zC)#>A_=Iq)rAt@K_1P~&57|dkGxQxCWHODjbxIE}W&P*a`vG#sr$>0bUfoBmEv#%wKawch`H!mU6?;MCTAkOYSg(G!%JbSJ*HdIwmM4j-|5^OkAB=-c zIIIeX@2VQ?wYiIFdA97fz1`Ba@e8I4qn)gtSbH3XvpKOz-tLPgHXZ8LF|im}DT?iP zl4i$p|MbW+e|LvtQIwzmzPQ-BaOYA%pyc7yy&KJUYzq#%4n-U>X}$C!gSR62(Z4fZ zgXYi4;llMtr+U@RBeiE-Cx7EOr9C$uc7+2!NhN+YyxJ&d&pjG?j}xYTt(p55tCTRS zK6EqXLQ3++Ws4kTt2e(pRnpq0wnVLejnUQPr`^Yvm-9ouSOzkEB?AiKlN$w*yli8o zyOHagHu_3pP`&x?d&?NdEuz$zQ$za(2%ST@U);w{lZ&T-(-v~~hTt#KM(-_;&pewx zDDXda&^CK!@ddG3;O5X(MD51X%$2D_gDLCfD?_t=zY(6Zx!7(L;!0)CWQlI3@Bh8{ zqyB9Jvij!VA80Q7&RS{UYb3CcYeqVDm`Wm_8&6Nz)P>#gOXYV!td z!)t+inf}Q8=9W8`5_J}`!R>#p C+cg6K literal 0 HcwPel00001 diff --git a/lib/tk8.4/demos/images/teapot.ppm b/lib/tk8.4/demos/images/teapot.ppm new file mode 100644 index 00000000..b8ab85f3 --- /dev/null +++ b/lib/tk8.4/demos/images/teapot.ppm @@ -0,0 +1,31 @@ +P6 +256 256 +255 +\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À[7 eOLjQLmSMoTMnSMlRMhPL_9 \À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀnSMtVMzYN~[N~[N\N\O€\O€]O€]O€]O€]O€\O€\O}[NyYNtVM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀG-wXN}[N€]O„^O†_O†`O‡`Oˆ`Oˆ`OˆaO‰aO‰aO‰aO‰aO‰aO‰aOˆaOˆ`O†_Oƒ^O\N \À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀaMLyYN…_O‰aP‹bP�cPŽcPŽdPŽdP�dP�dP�dP�dP�dP�dP�dP�eP‘eP’eP’eP‘eP�dP�cP…_OpUM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀwXN…_O�dP“fP•gQ–hQ˜hQ˜iQ™iQ™iQšiQšiQšjQ›jQ›jQœjQœjQœjQœjQœjQ›jQœjQ™iQ“fP‡`O\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀNCJiQL‹bP—hQ�kQ¡mR¤nR¥oR¥oR¥oR¥oR¥oR¥oR¦oR¦oR¦pR¨pS©qSªqS«rS¬rS«rS©qS¤oRœjQ€]O\KK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀfOLrUM�cPŸlR©qS¯tS²uTµwT·xT¸xT¹yTºyT»zT»zU¼zU¼zU¼zU»zUºyT¸xT¶wT¯tS¡mR‰aOhPL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\Àa0 cNLqUM€\O”fQ¦pS²wVºzV¿|VÂ}VÄVÆVÇ€VÉ‚WÌ…[Õ�eæ w÷³‹êª…Ĉg§qT“fQ{ZNYIK9\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀO1{G#‘JkRMqUMtVN–iS¨v\·€d¹�bµzZ±vU°uT®sSªqS¤nRœjQ’eP„^OrUM�Hh>!T4\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀG-V5wE"~I#†M%�U+¥e7²l:°g2®b*­a(­`(©^(¥])¡^-›]1ŠS,qC$`9 R3G-\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À@)J/i>!pA"tD"wF$yH&xH&tE$wE#yG%}M+ƒT4S5mE*Z7!K/B*;'\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À‰aO¦oR½{UÇ€VÏ…X<(F-a: e!j@#k@$h>"dµf-¨^(¡Z'šW&–T&œN>)F-J/b; g>#nD(jB&c y< u: r9 o7 l6 +j5 +h4 +g3 +5$D,K/b; h>"wM1tK.e="a<#cA,U8&E-<(9&.!a0 b1 c1     + ++3#@)46G<:HMCIXHK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀU*´vT¿~X¸{YÃk+›W&‰N$|> u: p8 k5 +f3 +a0 _/ ]. [- �I¡\*ª_(‘LkRMmSMmSMnSMnSMD,R3W5mA"|O0|P1j?"c!a: X/K%&4$+2F=;HPEJL&\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀŸlR¶xT­sTµd)ŠO$w; m6 +g3 +a0 Z- \/ T*Q(ŠHµm8kRMmSMnTMoTMpTMpUM15G15G05G04G04GpUMpTM5^9 d!Y0W+]. s=‡M$�dPŸlR\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀoTM¥oR�dPvE"V+K%A 99†F¤['qUMtVM99H:9H:9H:9H:9H:9H:9H:9H:9H:9H99H99H99H99H99H99H:9H;:H>;HB=HPDJ\JKmSMwXN|ZN°y[ᦆ֘uº{W¹yU¿€]Á„b­tU£nR—hQˆaO{ZNvWNtVMvXNwXNyYNzYN{ZN|ZN}[N}[N~[N~[N~[N~[N~[N~[N~[N}[N}[N{ZNzYNxXN…L$f3 +I$L&P(U*\. €J#\O›jQ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀžkR‰aOo9 L&C!:4f3 +�X&pUMuWMwXNxXN<:H<:H<:H<:H<;H<;H<;H<;H=;H=;H=;H=;H>;H>;H?HG@ILBIREJ[JKcNLjQL§pR±uTºzUÃ~VÈ�WË‚XÖŽcä�sÒŽe¼{V²vT¨pSžkR•gQŒbP†_O‚^O�]O€\O€\O€\O€\O€]O�]O�]O�]O�]O�]O�]O�]O�]O�]O�]O€\O€\O~\N}[N|ZNxXN•T%H$G#K%Q(W+zG#nTM˜iQ\À\À\À\À\À\À\À\À\À\À\À\ÀdOLrUMuWNwXNyYN{ZN}[N{ZNwXNsVM \À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\Àˆ`O�cPnA"M&@ 8F#m6 +›W&rVMvWNyYNzYN|ZN}[N}[N>HE?IG@IIAIKBIODJSFJWHK—hQŸlR§pR°b(¾i*Én+Ù|7Û|6Ïr,Íq+Êp-Ãl+»g)±b(®sS§pS lRšiQ•gQ�eP�cPŠaPˆaO‡`O‡`O†_O†_O…_O…_O…_O…_O…_O…_O…_O„_O„^O„^Oƒ^Oƒ^O‚]O�]O€\O~[N{ZN•T%F#B!Y,L&U*~I#„^O†`O\À\À\À\ÀcNLrUMzYN\O„^Oˆ`OŠbPŒcP�dP�eP’fP“fP“fQ“fQ”fQ‘eP�cP‰aP~[N\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À’fPsVM^/ C!7 ŽQ%tVMwXNzYN|ZN}[N\N\O€\O�]O�]O‚]O‚]OA=HB=HB=HB>HC>HC>ID?IE?IF@IG@IIAIKBIŒcP�dP’eP–gQšiQŸlR£nR¤\'´d)¿i*Æm+Îs/Ïs/Êo+Én+Ål*¾i*ºg)³c(ª_(ªqS¦oR¡mR�kQ™iQ•gQ“fP‘ePŽdP�cPŒbP‹bPŠbPŠaP‰aP‰aO‰aOˆaOˆ`Oˆ`O‡`O‡`O‡`O†`O†_O…_O„^Oƒ^O‚]O\O}[N›QD"?D"K%_/ kRL’fPODJSFJ†_OŠbPŽcP‘eP“fQ–gQ™iQœjQžkR lR¡mR£nR¤nR¥oR¥oR¥oR¤nR¢mRŸlRšiQ‘eP…_O\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀB+‘ePI#L&90y< šPxXN{ZN}[N\N€\O�]O‚]Oƒ^Oƒ^O„^O„_O…_O…_O†_O†`O‡`O‡`Oˆ`O‰aOŠaP‹bPŒbP�cPŽdP‘eP“fP•gQ˜hQšiQžkR¢mR¡Z'«_(¶e)½h)Âk*Çn,Çn,Æm*Æl*Áj*ºf)¶e)²c(«_(¦]'§pR¤nR¡mRžkR›jQ™iQ–gQ”gQ“fP‘eP�dP�dPŽdPŽcP�cPŒcPŒbP‹bP‹bP‹bPŠbPŠaP‰aP‰aO‰aOˆ`O‡`O†_O…_Oƒ^O�]Oª_(�@ B!I$B!N'w=‘eP`LKbNLeOL�kR mR£nR¥oR§pSªqS¬rS®sS¯tS°tS°tS±uS±uS°tS¯tS­sSªrS§pS¢mRšjQŒbPjQL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À‹bPpTME"5‡M$tVM{ZN}[N\O�]O‚^Oƒ^O„_O…_O†_O†`O‡`Oˆ`Oˆ`O‰aO‰aPŠaPŠbP‹bPŒbP�cPŽcP�dP�dP’eP“fP•gQ—hQ™iQ›jQ�kR lR¢mR¡Z'¬`(µd)ºg)ÇgÀj*Àj*¾i*¿i*»g)µd)²c(¯a(ª_(¤\'§pR¥oR¢nR mRžkRœjQšiQ˜iQ—hQ•gQ”gQ“fP’eP‘eP‘eP�dP�dP�dPŽcPŽcP�cP�cPŒcPŒbP‹bP‹bPŠbPŠaP‰aOˆ`O†_O„^O\NœQ@ <G#_LKŽcPlSMnTMpUMsVM°tS²uT³vTµwT¶wT¶xT¶xT¶wTµwT´vT²uT¯tS¬sSªqS§pS¤oR¢nRžkR˜hQ‹bPeOL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀwXN\NJ%01ŽJvWN}[N\O�]Oƒ^O…_O†_O†`O‡`Oˆ`O‰aO‰aPŠaPŠbP‹bPŒbPŒbP�cPŽcPŽdP�dP�dP‘eP’eP”fQ•gQ–gQ˜hQ™iQ›jQ�kQŸlR¡mRžY&¦]'­`(³c(·e)Àc¸\¸\¹\º]»]¶^®a(¬`(©^'£['¢['¥oR£nR¡mR lRžkRœkQ›jQšiQ˜iQ—hQ–gQ•gQ”gQ”fQ“fP’eP’eP‘eP‘eP�dP�dP�dP�dPŽdPŽcP�cP�cPŒbP‹bPŠaPˆaO†`O�]O˜OG#7F#uWMƒ^OwXNxXNzYN{ZN|ZN¹yT¸yT·xT´wT±uT­sS¨pS¡mRœjQ•gQ�dPŒbP‰aP‰aPŒbPŽcP‘eP�cP|ZN\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À[JKŠbP^/ 1 01|> wXN}[N�]Oƒ^O…_O‡`O‡`OˆaO‰aPŠaP‹bP‹bPŒbPŒcP�cPŽcPŽcP�dP�dP�dP‘eP’eP“fP”fQ•gQ–gQ—hQ˜hQ™iQ›jQœkQžkRŸlR mRžY&¦]'­`(±b(·[ÇgÉiÉhÅfÂdÃe¿c«Uª_(§]'£[' Z'¤nR£nR¡mR mRŸlRžkR�kQœjQšjQšiQ™iQ˜hQ—hQ–gQ•gQ•gQ”fQ”fQ“fP“fP’eP’eP‘eP‘eP�eP�dP�dP�dPŽcP�cPŒbPŠbPˆ`Oƒ^O‰D 4M&�dPnSM|[N|[O|[OzZOxXNªrS¢nR˜hQŽcPƒ^OvXNiQL^KKRFJMCJJAIKBISFJ\JKnSMxYN†_O€\OaMK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀB!qUMŠaPC!/00a0 uWN}[N‚]O…_O†`Oˆ`O‰aPŠaP‹bPŒbPŒcP�cPŽcPŽcP�dP�dP�dP‘eP‘eP’eP“fP“fQ”fQ•gQ–gQ—hQ˜hQ™iQ™iQ›jQœjQ�kRžlRŸlRœX&¢['¨^'¬`(´ZÂdÄfÈiÆgÂd¿c¿c¼a¸_©T¥\'£[' Z'ŸY&£nR¢mR¡mR lRŸlRžkR�kQœjQ›jQšjQšiQ™iQ˜hQ—hQ—hQ–hQ–gQ•gQ•gQ”gQ”fQ”fQ“fQ“fP’fP’eP‘eP‘eP�dP�dPŽcPŒbP‰aOƒ^Ox< :ŠaP�]Oj8sVMmSMfOL^KKUGJIAIQEJ?IeZY638*  B\À\À\À\À\À,  4 .G1!\TU¡ƒrsVM{ZN`MK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À[JKyYNŒbP/0ˆN$�]O…_Oˆ`O‹bPŒbP�cPŽcP�dP�dP�dP‘eP‘eP’eP’fP“fP“fQ”fQ”gQ•gQ–gQ–gQ—hQ—hQ˜hQ™iQ™iQšiQ›jQœjQœkQ�kRžkRŸlRœO¡Z'¥\'©^'­V¼a¾bÁeÆi!Ãf¾b»a¹`·_³]²\µZ¢[' Z'ŸY&œQ¡mR¡mR mR lRŸlRŸlRžkR�kR�kQœkQœjQ›jQ›jQšjQšiQšiQ™iQ™iQ˜iQ˜hQ˜hQ—hQ—hQ—hQ–hQ–gQ–gQ•gQ•gQ”fQ’fP�dP�cPšW&�dPŠaPrUM + B\À\À\À\À\À\À\À\À\À\À%7!!C*F#P) {dYœze»�p€\OgPL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀSFJ`LKvWNŠaPm6 + X,uWM‚]O‡`OŠbP�cPŽdP�dP�dP‘eP’eP’fP“fP“fQ”fQ”gQ•gQ•gQ–gQ–gQ—hQ—hQ˜hQ˜iQ™iQ™iQšiQ›jQ›jQœjQœkQ�kQžkRžlRŸlR¢Z'¤\'§]'·_¹`¼a½bÁeÅi"Áe¼aº`·_¶_²]²\±\«Y¡Z' Z'¡Z'¡mR¡mR mR lR lRŸlRŸlRžlRžkRžkR�kR�kQœkQœjQœjQ›jQ›jQ›jQšjQšiQšiQšiQ™iQ™iQ™iQ˜iQ˜hQ˜hQ—hQ–gQ•gQ“fQ�dP†_Oq8 –gQˆ`OuWM”T%\À\À\À\À\À\À\À\À\À\À B B!!T,c5ƒF‚T3È›~Æ“qƒ^OfOL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀXHK_LKsVM‡`O�cP ’S%�]OŠbP�cP�dP‘eP’eP“fP“fQ”fQ”gQ•gQ•gQ–gQ–gQ—hQ—hQ—hQ˜hQ˜iQ™iQ™iQšiQšiQ›jQ›jQœjQœjQ�kQ�kRžkRžlRŸlRŸlR¥\'¦]'¨^'­Vº`»a½bÁfÄi"Àe»a¹`·_¶_³]±\±\¤R¢Z'¢Z'£['¡mR¡mR¡mR¡mR mR lR lRŸlRŸlRŸlRžlRžkRžkR�kR�kR�kQ�kQœjQœjQœjQœjQœjQ›jQ›jQ›jQ›jQšjQšiQ™iQ™iQ˜hQ–gQ‘eP§Sq8 ‰aO•gQ‡`OtVMœX&\À\À\À\À\À\À\À\À\À\À B B B l@!{A…L$›Y'½†a“fPˆaO]KK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀODJ[JKaMKqUM\O�cPƒ^OvE"‚]OŠaP�dP‘eP“fP”fQ•gQ•gQ–gQ–hQ—hQ—hQ˜hQ˜hQ˜iQ™iQ™iQ™iQšiQšjQ›jQ›jQœjQœjQœkQ�kQ�kRžkRžkRŸlRŸlRŸlR lR©^'©^'ª_(®W»a¼a¾cÂg Äi"¿e»a¹`·_¶_³^±\±\¤R£['£['§]'¢mR¢mR¡mR¡mR¡mR¡mR mR lR lR lR lRŸlRŸlRŸlRŸlRžlRžlRžkRžkRžkRžkR�kR�kR�kR�kR�kQ�kQ�kQœjQœjQšiQ˜hQ’ePšW&M&oTMšiQ‘eP…_OtVMmSMdOL\À\À\À\À\À\À\À\À\À B B B ‘J Z'ª_(œkQ™iQ‡`OSFJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀTFJ\JKcNLlRMzYN‡`O’ePzZN \Nˆ`O�dP“fQ•gQ–gQ—hQ˜hQ˜hQ™iQ™iQ™iQšiQšiQšiQ›jQ›jQ›jQœjQœjQœjQœkQ�kQ�kRžkRžkRžlRŸlRŸlRŸlR lR lR mR®a(­`(¬`(¶[½a½b¿dÃh!Äi"¿d»a¹`¸_¶_µ^²]³]¦S¤\'§]'«_(¢nR¢mR¢mR¢mR¢mR¢mR¢mR¡mR¡mR¡mR¡mR¡mR mR mR mR mR lR lR lR lR lR lR lR lR lRŸlRŸlR lRŸlRžkRœkQ™iQ�ePt: �kQ˜hQ�cP€]OtVMlSMa2 \À\À\À\À\À\À\À\À\À B B +$5 ¬`(¶e)£nRœjQƒ^OJAI\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀXIK^KKdNLhPLuWM‚]OŒbP”fQ�eP m6 +†`OŽcP“fQ—hQ˜hQ™iQšiQšjQ›jQ›jQ›jQœjQœjQœjQœkQ�kQ�kQ�kRžkRžkRžkRžlRŸlRŸlRŸlR lR lR lR¡mR¡mR¡mR¡mRºg)³c(²c(±b(­V¿cÂeÅi!Åi!Àd¼bº`¹`·_·_¶^¢Q§]'ª_(­`(¹f)£nR£nR£nR£nR£nR£nR£nR¢nR¢nR¢nR¢nR¢nR¢nR¢mR¢mR¢mR¢mR¢mR¢mR¢mR¢mR¢mR¢nR¢mR¢mR£nR¢mR¢mR¡mR mR�kR—hQˆGa0 ŠbP mRœjQ“fQ‰aP}[NrUMmSM…L$\À\À\À\À\À\À\À\À B B #C, 8&H.Z7 §pR›jQ{ZN\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀQEJ[JK`LKdNLhQLqUM{ZN…_OŽcP–gQ—hQ +‹bP‘eP–hQšiQ›jQœjQ�kQ�kQ�kRžkRžkRžlRžlRŸlRŸlRŸlRŸlRŸlR lR lR lR mR¡mR¡mR¡mR¡mR¡mR¢mR¢mR¢mR¢nR£nRÀj*ºg)·e)¶d)Âd°XÅgÅhÂe¿c½b½b¾bªU­`(®a(¯a(³c(¾i*¤oR¤oR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤oR¤oR¥oR¥oR¥oR¥oR¥oR¥oR¦oR¦oR¥oR¥oR¤nR¡mR›jQŽQ%Z- œjQ£nRŸlR—hQŽdP…_OuWMpTMnSMkRLa: \À\À\À\À\À\À\À B B&D2 @*S6#G@IPDJ˜hQmSM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀVGJ]KKbMLeOLiQLlRMvWN\OˆaO‘eP—hQœjQ•gQoTM•gQ™iQ�kQŸlRŸlR lR mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¢mR¢mR¢mR¢mR¢mR¢mR¢nR£nR£nR£nR£nR£nR¤nR¤nR¤nR¤nR¤nR¤nRÆl*Ãl+¾j+¹g)¸f)¶e)µd)¶e)¶e)·e)·e)¸f)¾i*Ìs0Ðs.¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦pR§pR§pR§pR§pR§pS§pS¨pS¨qS©qS©qS©qS¨pS©qS§pS¤nRŸlR‘I˜hQ§pR¥oR¡mRšiQ’ePŠaP€\OsVMpTMnTMlRM–X)\À\À\À\À\À\À\À B%C)D$;J/[8"LBITGJYIKWHK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀNCJYIK_LKcNLgPLjQLlRMpUMzYNƒ^O‹bP‘eP˜hQ�kQŸlR”fQ- —hQ›jQŸlR¢mR£nR£nR£nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤oR¤oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¦oR¦oR¦oR¦oR¦oR¦pR¦pR§pRàpßy-Ûw-Ûw-Þy.â{-ãu§pS§pS§pS§pS§pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨qS©qS©qS©qS©qS©qS©qS©qSªqSªrS«rS«rS¬rS¬rS¬rS¬rS¬sS«rSªqS¦oRšiQ™iQ©qSªqS§pR¡mRœjQ•gQ�cP„_O{ZNtVMpUMoTMmSMjQL_9 \À\À\À\À\À B "C(D#*A$[<)dI\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀSFJ[JKaMKeOLhPLkRLmSMoTMuWM}[N…_O‹bP’eP˜hQžkR¢mR£nRžkR!-E�kR¡mR¤nR¥oR¦pR§pR§pS§pS§pS§pS§pS§pS§pS§pR§pS§pS§pS§pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨pS¨qS¨qS¨qS©qS©qS©qS©qS©qS©qS©qS©qS©qS©qS©qSªqSªqSªqSªqSªrS«rS«rS«rS«rS«rS«rS¬rS¬rS¬rS¬sS­sS®sS®sS¯tS¯tS¯tS¯tS°tS°uS°tS®sS«rS£nR¦oR®sS­sS«rS§pR¢mRœjQ–gQ�dPˆaO\OyYNuWMqUMoTMnSMkRLo8 \À\À\À\À\À B'D+E$(1 J/jH1NCJUGJYIKUGJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀXHK]KKbNLfOLiQLkRMmSMoTMqUMxXN\N†_OŒbP’fP˜hQ�kQ¡mR¥oR§pS¦pR˜hQ¢mR¥oR¨pSªqS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rSªrSªrSªrS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS«rS¬rS¬rS¬rS¬rS¬rS¬rS¬rS¬sS¬sS­sS­sS­sS­sS­sS­sS®sS®sS®sS®sS®tS¯tS°tS°uS±uS±uT±uT²uT²uT²uT´vTµwT´vT³vT²uT¯tS¢mR¯tS±uT±uS®tS«rS§pR¢mR�kQ—hQ‘ePŠaPƒ^O\N{ZNvXNqUMpTMnSMlRM�P%\À\À\À\À B#C*E$.E- .!G$Y:%d<"SFJYIKZIKNCJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀPDJZIK_LKdNLgPLjQLlRMnSMpTMqUMuWMyYN€\O†`O�cP’fP—hQœjQ¡mR¥oR¨qS«rS«rSªrS mR«rS­sS¯tS°tS°tS°tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS®tS®sS®sS®sS®sS®sS®sS®sS®sS®sS®tS®tS®tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS¯tS°tS°tS°tS±uS±uS±uT²uT²vT³vT³vT´vT´vT´wTµwTµwTµwT·xT·xT¸xT¸yT¸yU·xU¥\'©qS³vTµwTµwT´vT±uT®tTªrS¦oR¡mR�kQ˜hQ’eP‹bP‡`Oƒ^O€\O|ZNxXNtVMpTMoTMmSMjQLh7\À\À\À B(D"-E*1F, 4#K)pL5PEJWHK[JKXHK:9H\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀUGJ\JKaMLeOLhPLkRLmSMoTMpUMrVMvWNyYN|ZN�]O‡`OŒcP‘eP—hQ›jQ lR¤nR§pSªqS­sS¯tS°uS¯tS­sS mR^/ ²vT³vT´vT´wTµwT´wT´vT³vT´vT´vT´vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT³vT´vT´vT´vT´vT´wTµwTµwTµwTµwT¶wT¶wT¶xT·xT·xT·xT¸xT¸xT¸xT¹yTºyT»zU¼zU½{U½{V½|V•gQ¬rSµwT¸xT¹yU¹yU¹zV·yVµxV±vU­tT©qS¥oS mRœjQ—hQ’eP�cPŠbP‡`O„_O�]O}[NyYNuWMpUMoTMmSMkRL}H#\À\À &D -E(1F/!2#8 W7"iA&UGJ[JK\JKREJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀMCIXIK^KKcNLfOLiQLkRMmSMoTMqUMsVMwXNzYN}[N€\Oƒ^O‡`OŒbP‘eP–gQšjQžkR¢mR¥oR©qS¬rS¯tS±uS³vT´vTµwT´wT²uT­sS lR«_(¹yT¹yTºyTºyTºyTºyTºyT¹yT¹yT¸yT¸xT¸xT¸xT¸xT¸xT¸xT¸yT¸yT¸yT¸yT¹yT¹yT¹yT¹yT¹yT¹yT¹yTºyTºyTºyTºyTºzT»zT¼zU¼{U½{U¾{U¾|U¿|UÀ}VÁ~VÂWÀY™iQ«rSµwT¹yT¼zU½|V¿}XÁ€ZÂ�]Á�]¾€]»~[¶zY±wW¬tU¨qS¤nSŸlR›jQ–gQ“fP�ePŽcP‹bPˆ`O…_O‚]O~\NzZNvXNqUMoTMnSMlRMiQLg=!\À +!C+E'0F.4F7%8%U/lG.SFJZIK]KKZIKB=H\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀREJZJK`LKdNLgPLjQLlRMnSMpTMqUMtWMxXN{ZN~[N�]O„^O†`O‰aO‹bP�dP•gQ™iQœkQ lR¤nR§pSªrS­sS¯tT²uT´vT¶wT·xT¹yT¹yTºyTºyT¹yT¶xT´vT¬rS¢nR—hQ¿|U¿|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ|UÀ}UÀ}UÁ}UÁ}UÁ}UÁ}UÂ}UÂ~UÃ~UÃ~VÃ~VÄVÅ€WÆ�X®a(ŸlRªrS´vT¸yT¼zU¾|UÁ~VÃXÆ‚[Ɇ_΋dÓ‘jÔ“mÔ“nБlÊŒhĆd½�_¶{[°vWªsU¦pS¢nRžkRšiQ˜hQ•gQ“fQ‘eP�dPŒbP‰aO†_Oƒ^O€\O|ZNxXNsVMpTMnTMmSMjQL€C B)D&/F-3F47G6%>" Y7 kA$YIK]KK^KKSFJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀVGJ\KKbMLeOLhPLkRLmSMnTMpTMrUMuWNyYN|ZN\N‚]O„_O‡`OŠaPŒbPŽcP�eP“fP—hQ›jQžlR¢nR¥oS©qT¬sT¯uU²vU´wV¶xV¸yV¹yUºzU»zU¼{U½{U¾{U¾|U¿|U¿|U¿|U¿|U¾{U½{U¼{U¼zU»zTºyT¹yT¸xTµwT³vT´vT´vT´vT´wT´wTµwT·xT¹yTºzT¼zU½{U¾{U¿|UÀ|UÂ}UÄVÅ€WÇ‚YÉ„\͈_ÑŒdÙ”lá�uç£|쩂ſt명æ¦�ÞŸ{Õ—sËŽl†d¹^³yZ­uW¨qU¤oSŸlRžkRœjQšiQ˜hQ–gQ”fQ‘eP�dP�cPŠaP‡`O„^O�]O}[NyYNuWMpTMoTMmSMkRLgPL&D#.E,3F46G;'<(D"iB(VGJ]KK`LK[JKB>H\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀNCJYIK^LKcNLfOLiQLkRMmSMoTMqUMsVMvXNzYN}[N€\O‚^O…_Oˆ`OŠaPŒcP�dP‘eP“fQ•gQ—hQ™iQ�kR mS¤oT¨rU¬tW°wY´zZ¸}\»]¾€^À�^Á‚^‚^Â�\Á€ZÁYÁXÁ~WÁ~WÂ~VÂ~VÂ~VÃ~VÃ~UÃ~UÄ~UÄ~UÄUÄUÅVÅVÅVÅVÆVÆ€VÆ€VÇ€WÇ�WÈ‚XɃZË…[͇^ЊaÓ�dØ’iÜ—nâ�tè£zî©�ó¯‡ø´�û¸‘üº“û¹“÷¶�ñ±Œé©…à¡~Ö˜vË�mÇf»€`´z[®vX©rU¥pT£oS¢nS lRžkRœkRšjQ˜iQ–hQ”fQ’eP�dP�cP‹bPˆ`O…_O‚]O~[NzYNvWNpTMoTMnSMkRMhQLo7 ,2F36G99HC+@ ]8 nA"\JK`ML_LKSFJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀSFJ[JK`LKdNLgPLjQLlRMnSMpTMqUMtVMwXNzZN}[N€]Oƒ^O†_OˆaO‹bP�cP�dP‘eP“fQ•gQ—hQ™iQ›jRžlR mS£oU§rW¬vZ²{]¹€a¿…fÅŠjË�nГqÓ•sÕ–sÕ–rÕ–qÕ”oÓ’mÑ�jÏ�gÍŠcˈaɆ^È„\Ç‚[Æ�YÅ€XÅ€WÅWÅWÅVÅVÅWÅ€WÆ€WÇ�XÈ‚YɃ[Ê…\͇_ÏŠaÒ�eÕ‘hÙ•mÝ™qá�vä¡zç¤}꧀멃몄騃奀ߠ|Ù›wÓ•rÌ�mƉh¿„c¸~^²yZ®vX¬tWªsV¨qU¦pT¤oS¢nS mRžlRœkR›jQ™iQ—hQ•gQ“fP�ePŽcP‹bPˆaO…_O‚^O\N{ZNwXNsVMoTMnSMlRMiQL~I#26G99G?IQ2P+XHK_LLfQOcNLXIK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À©qSºyTÃ~VΈ`遲ޜv¾€]ªqS–LŽG|> g3 +S)?*%.—hQ—hQ‘eP‡`OuWM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀSFJ[JK`LKdNLgPLjQLlRMnSMoTMqUMsVMwXNzYN}[N€\O‚^O…_O‡`OŠaPŒbPŽdP‘eP“fP•gQ—hQ˜iQšjRœkRŸlS¡nT¤pV§sX«vZ°z^¶b¼…gËmÊ’sјzØŸ€Þ¤…ã©Šè­�ê¯�ë°�ꯎ謋娇ं۞|Ö™wÑ“qÌŽlljgÃ…bÀ‚_½\»}Zº{X¹zW¸yV·yU·xU·xU·xT·xT·xU·xU·xU·yV·yV·yW¸zW¸{X¹{Y¹|Zº}[º}[º}\º~\¹~]¹~]¸}]·|\µ{\´z[²yZ°wY®vX¬tWªsV¨rU¦pT¤oS¢nS¡mRŸlR�kRœjQšiQ˜hQ–gQ”fQ’eP�dP�cPŠbP‡`O…_O‚]O~[NzZNvWNrUMoTMmSMlRMiQLeOLJAIJ(h>!]KKfQOgQN_LKD>I\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À™iQ°tS¸yT¼{UÂYÎŒeï­ˆô´�Õ—u¶|\ Z'™LˆD |> ’eP¦oR¨qS¦oR¡mRšjQ‘eP„^OhPL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀWHJ\KKaMLeOLhPLjQLlRMnSMpTMqUMtVMwXNzZN}[N€]Oƒ^O†_Oˆ`OŠbP�cP�dP‘eP“fQ•gQ—hQ™iQ›jR�kRŸmS¢nT¤qV¨sX¬w[±{_¶€c½†hÄŒnË’tÒ™zØŸ€Þ¥…㩉ç­�ꯎꯎê®�竊䧆ߣ�Ûž|Õ˜vГpËŽkljfÃ…bÀ‚_½\»}Yº{X¸zW¸yV·xU·xU·xT¶xT¶xT¶xU¶xU·xU·xU·yV·yV·zW¸zX¸{Y¹|Y¹|Z¹}[¹}[¹}\¹}\¸}\·}\¶|\µ{[³zZ²yZ°wY®vX¬tWªsV¨rU¦pT¤oS£nS¡mRŸlRžkRœjQšiQ˜hQ–gQ”fQ’eP�dPŽcP‹bPˆ`O…_O‚^O\N{ZNwXNsVMoTMnSMlRMiQLfOLJ(V.]KKePNkUQcNLQEJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À‚]O¡mR©qS¬rS°tS³vTµwT·xUº{WĆbÒ“qךxÊ�o +�K«rS´vT¶wT´vT²uT®sSªqS¤nR�kQ•gQˆ`OuWNY,\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀNCJYIK^KKbNLfOLhQLkRLmSMoTMpUMrUMuWMxXN{ZN~[N�]O„^O†_O‰aO‹bP�cP�dP‘eP“fQ•gQ—hQ™iQ›jR�kRŸmS¢oT¥qV¨tX­w[±|_·�d½†iÄŒnË“tÒ™zØŸ€Þ¥…㩉笌鮎ꮎ魌檉㧅ߢ€Ú�{Õ—uÏ’pË�jƈfÂ…b¿�^½\»|Y¹{X¸zV·yV·xU·xU¶xT¶xT¶xT¶xU¶xU¶xU¶xU·yV·yV·yW¸zW¸{X¸{Y¸|Z¹|Z¹|[¹}[¸}\¸}\·|\¶|[µ{[³zZ±xY°wX®vX¬tWªsV¨rU¦pT¥oS£nS¡mRŸlRžkRœjQšjQ˜iQ—hQ”gQ’fP�dPŽcP‹bP‰aO†_Oƒ^O€\O|ZNxXNtVMoTMnSMlRMjQLgPLzG#\JKcOMoXUgPMZIK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À’fP”gQ•gQ—hQ™iQ�kQ lR¤nR§pRªqS¬sS¯tS:"r<zYN­sS¹yT¾|UÁ~WÆ„^ËŠeË‹gƈe¾‚aµz[­tV¦pS¢mR�kQ–gQŠbPzYNkRL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀRFJZJK`LKcNLfPLiQLkRMmSMoTMqUMrVMvWNyYN|ZN\N�]O„^O‡`O‰aO‹bP�cP�dP’eP”fQ–gQ—hQ™iQ›jR�lR mS¢oU¥qV©tY­x\²|`¸�d¾‡iÅ�oË“uÒ™{ÙŸ€Þ¥…㩉笌é®�é®�謋婈⦄ޡÙœzÔ—tÏ‘oÊŒjƈe„a¿�^½~[»|Y¹{X¸zV·yV·xU¶xU¶xT¶xT¶xT¶xT¶xU¶xU¶xU¶xV·yV·yW·zW·zX¸{Y¸{Y¸|Z¸|Z¸|[¸|[·|[·|[¶{[´z[³yZ±xY°wX®vW¬tWªsV¨rU¦pT¥oS£nS¡mRŸlRžkRœkRšjQ™iQ—hQ•gQ“fP‘ePŽdPŒbP‰aP†`Oƒ^O€]O}[NyYNuWNqUMnSMlSMkRLhPLcNLbNLpYVlUP`LK>;H\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À›jQ‡`O{ZN©^'¨^'­`(·e)½h)Ãk*Êo+±b(£nRºyTÃ~UÇ�XÒ�dãŸwò°‰ñ°‹è©…ÝŸ}Ô˜vÈ�m¾„eµ}_®x[°y\®x[«tW§qT¡mRœjQ–gQ‹bP}[NlRM\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀVGJ\JKaMKdNLgPLjQLlRMnSMpTMqUMsVMvXNzYN|[N\O‚]O…_O‡`O‰aPŒbPŽcP�dP’eP”fQ–gQ˜hQšiQœjRžlS mS£oU¦rW©uY®x\³|`¸�d¾‡jÅ�oÌ“uÒš{Ù €Þ¥…㩉欋è­�譌竊婇᥃ݠ~Ø›yÓ–tΑoÊŒjňe„a¿�^¼~[º|Y¹{W¸zV·yV·xU¶xU¶xT¶xT¶xT¶xT¶xU¶xU¶xU¶xU¶xV·yV·yW·zX·zX¸{Y¸{Z¸{Z·|Z·|[·|[¶{[µ{[´zZ³yZ±xY¯wX®uW¬tVªsV¨rU¦pT¥oS£nS¡mR lRžkRœkR›jQ™iQ—hQ•gQ“fQ‘eP�dPŒcPŠaP‡`O„^O�]O~[NzYNvWNrUMnSMmSMkRLiQLeOLoXUu]XdOLKBI\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À:9H\N–hQ¸}\¯uU­sT¯tT¯tS¨qS¤nR£nR¢nRŸlR›jQšiQ˜hQ—hQ–gQ”fQ’eP‘eP—hQœkR mS¥pUªtX«uY¨sW¦qU mS›jQ•gQƒB’S%jQL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀLBIXHK^KKbMLeOLhPLjRLlSMnSMpTMqUMtVMwXNzYN}[N€\O‚^O…_O‡`OŠaPŒbPŽcP�eP’fP”fQ–gQ˜hQšiRœkRžlS nT£pU¦rWªuY®y]³}`¹‚e¿ˆjÅŽpÌ”vÓš{Ù �Þ¤…⨉櫋笌笋櫊䨆ंܟ~ךxÒ•sÎ�nÉŒiŇeÁ„a¾€^¼~[º|Y¹{W¸yV·yV·xU¶xU¶xT¶wT¶wT¶wT¶xT¶xU¶xU¶xU¶xV¶yV¶yW·zW·zX·zY·{Y·{Z·{Z·{Z¶{Z¶{ZµzZ³yZ²yY±xY¯vX­uW¬tVªsU¨rU¦pT¥oS£nS¡mR lRžlR�kR›jQ™iQ—hQ•gQ“fQ‘eP�dP�cPŠaP‡`O…_O‚]O\N{ZNwXNsVMnSMmSMkRMiQLfOL_LKhQMUGJ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À (6BFP>=DKHMqjk€trwf`~kc„ndŠqe�se�te¯Ž{�w`¡v[\N†_O�cP“fP˜iQœjRŸlS£oT¦qV¥qV£oTžlR™iQº^‡`O�Q%hPL\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀQEJZIK_LKcNLfOLiQLkRLmSMoTMpUMrUMuWMxXN{ZN~[N€]Oƒ^O…_Oˆ`OŠaPŒcPŽdP‘eP“fP”gQ–hQ˜iQšjRœkRžlS¡nT£pU¦rWªuZ®y]³}a¹‚e¿ˆkÆŽpÌ”vÓš{ÙŸ€Þ¤…⨈媊櫋櫊婈⦅ߣ�Ûž}ÖšxÑ•rÍ�mÈ‹ićdÁƒa¾€]¼~[º|Y¹zW¸yV·yU¶xU¶xU¶wT¶wT¶wT¶wT¶wT¶xU¶xU¶xU¶xU¶xV¶yV¶yW¶zX·zX·zY¶zY¶{Y¶{Z¶{ZµzZ´zZ³yY²xY°wX¯vX­uW«tVªsU¨rU¦pT¥oS£nS¡mS mRžlR�kR›jQ™iQ˜hQ–gQ”fQ‘eP�dP�cP‹bPˆ`O…_O‚]O\O|ZNxXNtVMoTMmSMlRMjQLgPLbML[JK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À%5 (6$/79CEEKjgkrc_›…{‘uf±�{Ÿw_º�q�]Oˆ`OŽcP”fQ˜hQ›jRžlR¡nT¢oT¡nT�kR˜hQŽdP¦]'ŽQ%\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀUGJ[JK`MKdNLgPLiQLkRMmSMoTMqUMrUMuWNxXN{ZN~[N�]Oƒ^O†_Oˆ`OŠbP�cP�dP£['µd)•gQ—hQ˜iQšjRœkRžlS¡nT£pU§rWªvZ¯y]´~aºƒfÀˆkÆŽpÌ”vÓš{ØŸ€Ý¤„ᧇ䩉媊媉䨇᥄ޡ€Ú�|Õ˜wДrÌ�mÈŠhĆdÀƒ`¾€]»}[º|Y¸zW·yV·xU¶xU¶xU¶wTµwTµwTµwTµwTµwUµwUµxUµxUµxV¶xV¶yW¶yW¶yX¶zX¶zY¶zYµzYµzY´zY´yY²yY±xY°wX®vW­uW«tVªsU¨qU¦pT¥oS£nS¢mS mRžlR�kR›jQ™iQ˜hQ–gQ”fQ’eP�dP�cP‹bPˆaO†_Oƒ^O€\O|[NxYNtWMpUMmSMlRMjQLgPLcNLA;=\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À#*6+.8;:AHEJmgjd\]‡pe«�}œxc w^»�pƒ^OŠaP‘eP–gQšiQžlR mS¢nT mS›jR•gQ»h*œX&ˆM$\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀC+WHJ]KKaMLdOLgPLjQLlRMnSMoTMqUMrVMvWNyYN|ZN\N�]O„^O†_OˆaO‹bP�cPžY&«_(³c(•gQ—hQ™iQšjRœkRŸlS¡nT¤pV§sX«vZ¯z^´~bºƒfÀ‰kÆŽpÌ”vÒš{ØŸ€Ý£„ই㩉䩉䩈⧆ःܠØœ{Ô—vÏ“qËŽlljgÆcÀ‚`½]»}Z¹{Y¸zW·yV¶xU¶xU¶wUµwTµwTµwTµwTµwTµwTµwUµwUµxUµxVµxVµxVµyWµyWµyXµyXµyYµzY´yY´yY³yY²xY±wX°wX®vW­uV«tVªrU¨qU¦pT¥oS£nS¢mS mRžlR�kR›jQ™iQ˜hQ–gQ”fQ’eP�dPŽcP‹bP‰aO†_Oƒ^O€\O}[NyYNuWNqUMmSMlRMjQLhPLdNL\1\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À+.775;ICFphhŠztŠre¯�}Ÿya¢vZ�]OŠaP‘eP–gQšiQ�kRŸlS¡nTžlS™iQÌq.¯b*“S%zG#\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀMCJXHK^KKbMLeOLhPLjRLlSMnSMpTMqUMsVMvWNyYN|ZN\N‚]O„^O†`O‰aO‹bP—U&¥\'¯a(»g)Ìr/—hQ™iQ›jR�kRŸmS¡nT¤pV§sX«v[¯z^´~bºƒfÀ‰kÆŽpÌ”vÒ™{מÜ£ƒà¦†â¨ˆã¨ˆã¨‡á¦…Þ£‚ÛŸ~×›yÓ–uÎ’pÊ�kƉgÂ…c¿‚_½]»}Z¹{X¸zW·yV¶xU¶xUµwTµwTµwTµwTµwTµwTµwTµwUµwUµwUµxUµxVµxVµxWµyWµyWµyXµyX´yX´yY³yY³xX²xX°wX¯vW®uW¬tV«sV©rU¨qT¦pT¥oS£nS¡mR mRžlR�kR›jQšiQ˜hQ–gQ”fQ’eP�dPŽcPŒbP‰aO†`Oƒ^O€]O}[NzYNvWNrUMmSMlRMjQLhQLeOL_LK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À,)/ZTVXON„uq‡od®�}Ÿyb»�s�]OŠaP�eP•gQšiQ�kRžlRŸlSœkR–hQ»g*¤\(ŽQ%`LK\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À B B_LKcNLfOLiQLkRLmSMoTMpTMrUMtVMwXNzYN}[N\O‚]O„_O‡`O‰aO�Q%ŸY&©^'±b(¾i*Õ{8—hQ™iQ›jR�kRŸmS¡nT¤qV§sX«v[°z^µ~bºƒfÀ‰kÆŽpÌ”vÒ™{מÛ¢ƒß¥…ᧇ⧇ᦆऄݢ�Úž}ÖšxÒ•tÍ‘oÉŒjňfÂ…b¿�_¼\º}Z¹{X·zW·yV¶xU¶xUµwTµwTµwTµwTµwTµwTµwTµwT´wU´wU´wU´xVµxVµxVµxW´xW´yW´yX´yX³xX³xX²xX±wX°wW¯vW­uW¬tV«sU©rU§qT¦pT¤oS£nS¡mR mRžlR�kR›jQšiQ˜hQ–gQ”gQ’fP�dPŽcPŒbP‰aP‡`O„^O�]O~[N{ZNvXNrVMnSMlRMjRLhQLeOLaML+O�+O�\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀHFLXQRTJH~pm‚la¬Ž}Ÿzc»�t¤tT‰aP�dP•gQšiQœjRžlRžlS›jRÖ|:´e*˜V&ˆN$\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À B B`LKdNLgPLiQLkRMmSMoTMpUMrUMtVMwXNzYN}[N€\O‚]O…_O‡`O‰aPšW&£['«_(´d)Âl,݃@Òt.™iQ›jR�kRŸmS¡oU¤qV¨sX«w[°z^µbºƒgÀ‰kÆŽpÌ”uÑ™zÖ�~Ú¡‚Þ¤„ॆআॅޣ‚Ü Ø�{Õ™wÑ”sÌ�nÈŒjňfÁ„b¾�_¼~\º|Z¸{X·yW¶yV¶xUµwUµwTµwTµwTµwT´wT´wT´wT´wT´wU´wU´wU´wU´wV´xV´xV´xW´xW³xW³xW³xX²xX±wX°wW¯vW®uW­uV¬tVªsU©rU§qT¦pT¤oS£nS¡mR lRžlR�kR›jQšiQ˜hQ–hQ”gQ’fP�dPŽcPŒbPŠaP‡`O„^O�]O~[N{ZNwXNsVMoTMlRMjRLiQLfOLbML+O�+O‚+O‚+O‚\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À6./fZXeVRHAIZIKiQLuWM¤tU‰aO�dP–gQšjQ�kRžlR�kR˜iQÄn/¬b,‘R%rC"\À\À\À\À\À\À\À\À\À\À\À\À"Fx"Fx!Fx!Fx B B BdNLgPLjQLlRMmSMoTMqUMrUMtWMwXNzZN}[N€\O‚^O…_O‡`O“S%�X&¥\'®a(·g+Ês2Ó{9Àj*™iQ›jR�kSŸmS¢oU¤qV¨sX«w[°z^µbº„gÀ‰kÆŽpË“uИyÕœ}Ù �Ü¢ƒÞ¤„ߤ„Þ£ƒÝ¡�ÚŸ~×›zÓ—vÏ“rË�mÇ‹ićeÀƒa¾€^»~\¹|Z¸zX·yW¶xVµxUµwUµwTµwT´wT´wT´wT´wT´wT´wT´wT´wU´wU´wU´wU´wV³wV³xV³xW³xW²wW²wW±wW±wW°vW¯vW®uV¬tV«sUªsU¨rT§qT¦pT¤oS£nS¡mR lRžlR�kR›jQšiQ˜hQ–gQ”gQ’fP�ePŽcPŒbPŠaP‡`O„_O�]O~\N{ZNxXNsVMoTMlRMjRLiQLfPLbNL +O‚+O‚+P‚+P‚+P‚\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À@89dWT@IIAI\JKlRMyYN„^O�cP”gQ™iQ�kRžlRžkR™iRÍt3±d-’S%I#\À\À\À:^‘:^‘:^‘:^‘:^�:^�:^�:^�:^�"Fx"Fx B B B BeOLhPLjRLlSMnSMpTMqUMrVMuWMxXN{ZN~[N€]Oƒ^O…_O“S%›W&¢['©^(¹k2½i+Ó{:•gQ—hQ™iQ›jR�kSŸmT¢oU¤qV¨tY¬w[°{_µbºƒf¿ˆkÄ�oÊ’tÏ–xÓš|×�~Ù €Û¡�Û¡�Û €Ùž~×›{Ô˜wДsÌ�oÉŒkʼngÂ…c¿‚`¼]º}[¸{Y·zX¶yVµxVµwU´wU´wT´wT´vT´vT´vT´vT³vT³vT³vT³vT³vU³vU³vU³wU²wU²wV²wV²wV±wV±vV°vV°vV¯uV®uV­tV¬tUªsU©rU¨qT§pT¥pS¤oS¢nS¡mR lRžlR�kR›jQ™iQ˜hQ–gQ”gQ’fP�ePŽdPŒbPŠaPˆ`O…_O‚]O\N|ZNxYNtWMpTMlRMjRLiQLgPLcNL_LK+P‚+P‚+P‚,P‚,P‚,P‚,P‚,P‚Nr¤\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À]QNl\VG@IMCI_LKoTM|ZN†`O�dP–gQšjQ�kRžlRœkR—hQºh*¤^,ŒP%X3:_‘:_‘:_‘:_‘:_‘:_‘:_‘:_‘:^‘:^‘:^‘:^‘"Fx B B B BfOLiQLkRLmSMnTMpTMqUMrVMuWNxYN{ZN~[N€]Oƒ^OŽP%—U&�X&£['¬`)½n4Ãn/Àj*•gQ—hQ™iQ›jR�kSŸmT¢oU¤qW¨tY«w[°z^´~b¹ƒf¿ˆjÄŒoÉ‘sΕwÒ™{Õœ}ØžÙŸ€ÚŸ€Ùž~ל|ÕšyÒ—vÏ“rË�nÇ‹jĈfÁ„c¾�`¼]¹}[¸{Y·zW¶xVµxU´wU´wT´wT´vT´vT³vT³vT³vT³vT³vT³vT³vT³vT²vU²vU²vU²vU²vU±vV±vV±vV°vV°vV¯uV®uV­uV¬tU«sUªrU©rT¨qT¦pT¥oS£oS¢nS¡mRŸlRžkRœkR›jQ™iQ˜hQ–gQ”gQ“fP�ePŽdPŒbPŠaPˆ`O…_O‚]O\N|ZNyYNuWMpUMlRMjQLiQLgPLdNL_LK,P‚,P‚,P‚,P‚,P‚Nr¤Nr¤Nr¤Nr¤Nr¥Nr¥\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀaSOD>IJAIQEJbNLrUM~[NˆaO‘eP—hQœjQžkRŸlR›jRÌs0²e,“T&ƒK$;_‘;_‘;_‘;_‘;_‘;_‘;_‘:_‘:_‘:_‘:_‘:_‘:_‘ B B B BgPLiQLkRLmSMoTMpTMqUMsVMuWNxYN{ZN~[N�]O‡M$“S%™V&ŸY&¥\'±e-¹j/Ñz:”fQ•gQ—hQ™iR›jR�kSŸmT¢oU¤qW¨tY«w[¯z^´~b¹ƒf¾‡jÃŒnÈ�rÍ”vјyÔ›|Ö�~מ~Øž~×�}Õ›{Ó˜xЕtÍ’qÊŽmÆŠiÇeÀ„b½�_»~\¹|Z·{Y¶yWµxVµxU´wU´wT´vT³vT³vT³vT³vT³vT³vT³vT³vT²vT²vT²vT²vU²vU²vU±vU±vU±vU°vV°vV¯uV®uV®uV­tU¬sU«sUªrU¨qT§qT¦pS¥oS£nS¢nR¡mRŸlRžkRœkR›jQ™iQ˜hQ–gQ”gQ’fP�ePŽdPŒbPŠaPˆ`O…_O‚]O\O|ZNyYNuWMqUMlSMjQLhQLfPLdNL_LK,P‚,P‚Nr¤Nr¤Nr¤Nr¤Nr¥Nr¥Nr¥Ns¥Ns¥Ns¥Ns¥\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀdUOG@IMCITFJeOLtWM€]O‹bP“fP™iQ�kRŸlR�kR™iQ¾j,©c/�P%[JK;_‘;_‘;_‘;_‘;_‘;_‘;_‘;_‘;_‘;_‘;_‘;_‘ B B B BgPLiQLkRMmSMoTMpTMqUMsVMvWNyYN{ZN~[N|H#ŽQ%•T%›W& Z'¦]'ºm5¸f*Ív5”fQ•gQ—hQ™iR›jR�kSŸmT¡oU¤qW§sY«v[¯z^³~b¸‚e½‡i‹nÇ�qË“uÏ–xÒ™zÔ›|Öœ}Öœ|Õ›{Ô™yÑ–vÏ“sÌ�oÈ�lʼnh†e¿ƒa¼€_º~\¸|Z·zX¶yWµxV´wU´wU³vT³vT³vT³vT³vT³vT³vT²vT²vT²vT²vT²vT²vT±vT±vU±vU±vU°uU°uU°uU¯uU®uU®tU­tU¬tU«sUªrU©rT¨qT§pT¥pS¤oS£nS¢mR mRŸlRžkRœjR›jQ™iQ—hQ–gQ”fQ’fP�ePŽcPŒbPŠaPˆ`O…_O‚^O\O|ZNyYNuWNqUMmSMjQLhQLfPLdNL`LKNr¤Nr¤Nr¥Nr¥Nr¥Ns¥Ns¥Ns¥Ns¥Os¥Os¥Os¥Os¥Os¥Os¥\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À2#TB3REJVGJ`LKpTM}[N‰aO’ePšiQžkR lRžlR˜hQ·e)¢^.�P%^8 #Gy#Gy#Gy#Gy#Gy#Gy#Gy#Gy * B B B B BjQLlRMnSMoTMpUMrUMsVMxF#‡M$ŽQ%’S%–U&šW&žY&¢['ªa+¿s;¹g+�dP‘eP“fQ”gQ–hQ˜iQšjRœkSžlS nU£pV¦rX©uZ¬x]°{_´~b¸‚e¼…iÀ‰kÃŒnÆŽpÈ�rÊ‘sË’sË‘rÊ�qÉ�oÇ�mÅ‹kÈhÀ…e¾ƒb¼€`º~^¸|[¶{ZµyX´xW³wV²vU²vU²vT±uT±uT±uT±uT±uT±uT±uT±uT°uT°uT°tT°tT¯tT¯tT¯tT¯tT®tT®tT­sT­sT¬sT¬sT«rTªrT©rT©qT¨qS§pS¦pS¥oS£nS¢nR¡mR lRŸlR�kRœjQ›jQ™iQ˜hQ–gQ•gQ“fP‘eP�dP�cP‹bP‰aO‡`O„^O‚]O\N|ZNxXNuWMqUMmSMhPLgPLeOLcNL`LKZIK,Pƒ,Pƒ,QƒOs¦Os¦Ot¦Ot¦Ot¦Ot¦Pt¦Pt¦Pt¦Pt¦Pt¦-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀvšÍvšÍv›Ív›Ív›Ív›Ív›Íw›Íw›Í=a“=a“=a“#Gy#Gy#Gy#Gy#Gy#Gy#Gy#GymYPODJUGJXIKeOLtWM‚]O�cP•gQœjQ lR mR�kRÈp.´g0”T&ˆN$]8 #Gy#Gy#Gy#Gy#Gy#Gy#Gy * B B B B BjQLlRMnSMoTMpUMrUMv>„L$ŒP%‘R%•T%˜V&œX& Z'¤\'°f0¹m5Äq3�dP‘eP“fQ”gQ–gQ˜hQ™jR›kS�lS nT¢pV¥rX¨tZ«w\¯z_³}a·�dº„g¾‡jÁŠlÄŒnÆŽpÇ�qÈ�qÈ�pÇŽoÆ�mÅ‹kÉiÁ‡g¿„d½‚aº_¸}]·|[µzY´yX³xW³wV²vU²vU±uT±uT±uT±uT±uT±uT°uS°uS°tS°tS°tS¯tS¯tT¯tT¯tT®tT®tT®sT­sT­sT¬sT¬sT«rTªrTªrT©qT¨qS§pS¦pS¥oS¤oS£nS¢mR¡mRŸlRžlR�kRœjQšjQ™iQ—hQ–gQ”fQ’fP‘eP�dP�cP‹bP‰aO†`O„^O�]O~\N{ZNxXNuWMqUMiQLgPLfOLeOLbNL_LKZIK,Qƒ,Qƒ,Qƒ,Qƒ,QƒOt¦Pt¦Pt¦Pt¦Pt¦Pt¦-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\Àv›Ív›Ív›Ív›Íw›Íw›Íw›Íw›Íw›Íw›Íw›Íw›Í=a“=a“=a“=a“=a“#Gz#Gz#Gz#Gz#Gz#Gz#GzgUOS=2RFJWHJ[JKlRMzYN†`O�eP˜iQžkR mRŸlR™iQ¼h*°h4‘R%ˆN$^9 [JK#Gy#Gy#Gy#Gy#Gy * B B B B BjQLlRMnSMoTMpUMI#†L$‹O$�Q%“S%—U&šW&�X&¡Z'¦](·l5´f,Èt5�dP�eP’fP”fQ–gQ—hQ™iR›kR�lSŸmT¢oV¤qW§tY«v[®y^±|aµc¸‚f¼…h¿ˆkÁŠlÃŒnÅ�nÅ�oÅ�nÅŒmÄ‹k‰iÁ‡g¿…e½ƒc»€`¹~^·|\¶{Z´yY³xW²wV²vU±vU±uT±uT±uT°uT°uT°tS°tS°tS°tS°tS¯tS¯tS¯tS¯tS®tS®tS®sS­sT­sT­sT¬sT¬rT«rTªrTªrS©qS¨qS§pS¦pS¦oS¥oS¤nS¢nR¡mR mRŸlRžkR�kR›jQšiQ˜iQ—hQ•gQ”fQ’eP�eP�dP�cPŠbPˆ`O†_Oƒ^O�]O~[N{ZNxXNtVMqUMhPLgPLfOLdNLbML_LKbE6,Qƒ,Qƒ,Qƒ,Qƒ-Qƒ-Qƒ-QƒPt¦-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Qƒ-Q„-Q„-Q„\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À@d–w›Íw›Íw›Íw›Íw›Íw›Íw›Íw›Íw›Íw›Íw›Íw›Îw›Îw›Î=a”=a”=a”=a”=a”=a”=a“#Hz#Gz#Gz#Gz#Gz#Gz#GzmYPPDJUGJYIKbMLqUM\NŠbP”fQ›jQŸlR¡mRžlRËp,µe+ \+�R%ˆN$b; ]8 [7 XHKO+N1L/L/L/K/K/ eb”>b”>b”>b”>b”>b”>b”>b”=b”=b”=b”=b”=b”=b”=b”=b”YEUGJYIK_LKnSM|ZNˆ`O’ePšiQŸlR¡mR mR™iQºg*´j4šW'‘R%ŽQ%h>!g=!f=!db”>b”>b”>b”>b”>b”>b”$Hz$Hz$Hz$Hz$Hz>b”>b”>b”>b”>b”gVOS=2RFJWHK[JKeOLsVM€]OŒbP•gQœjQ lR¡mRžlRÌr/¹g*²h2–U&“S%‘R%�Q%ŽQ%ŒP%£['¨]'¬`(°b(´d)¸f)»g)¾i*Áj*I#¡Z'¡Z' Z' Z'¡Z'£['¤['¥\'¦]'ª_)±d,³d)Äq3‹bP�cP�dP‘eP’fQ”fQ–gQ—hQ™iR›kS�lSŸmU¡oV¤qW¦sY©u[¬x]¯z^±|`´~b¶€d¸‚eºƒf»„f»„f¼„f»ƒe»‚dº�b¹€a·~_¶}^µ{\´zZ³yY²wX±wW°vV°uU¯uU¯tT¯tT¯tT®tS®tS®tS®sS®sS®sS®sS®sS­sS­sS­sS­sS¬sS¬rS¬rS«rS«rSªrSªqS©qS©qS¨pS§pS¦pS¦oS¥oS¤oR£nR¢nR¡mR mRŸlRžkR�kRœjQšjQ™iQ˜hQ–hQ•gQ“fQ’eP�dPŽcPŒcPŠbPˆ`O†_O„^O�]O\N|ZNyYNuWNrUMnSMjQLdNLcNLaMK_LK[JK`D6Pt¦Pt¦Pt§Pt§Pt§Pu§Pu§Pu§Pu§Qu§Qu§Qu§Qu§Qu§Qu§-Q„-Q„-Q„-R„-R„-R„-R„-R„-R„-R„-R„-R„.R„.R„Rv¨Rv¨Rv¨~¢Ô~¢Ô~¢Ô~¢Ô\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À@e—@e—@e—@e—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—xœÏxœÏxœÏx�Ïx�Ïx�Ïx�Ïy�Ïy�Ï>b•>b”>b”$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>b”>b”>b”>b”>b”YDb”>b”>b”>b”Q@:R<2fL@WHJZJKaMKoTM|ZNˆ`O‘eP™iQŸlR¡mR¡mRœjRÇo-»i-´h0«`)§]'¨]'¬`(°b(´d)¸f)¼h)Àj*Ãk*Æm*Én+Ìp+Ïq+Òr,§]'§]'§]'¨^'ª_(«_(¬`(­`(¯b)²c)ºi.ˆ`OŠaPŒbPŽcP�dP‘eP“fQ”gQ–hQ˜iRšjR›kS�lTŸnU¢oV¤qW¦sY©uZ«w\­y]°{_²|`³}aµ~b¶b¶b¶b¶a¶~`µ}_µ|^´{]³z[²yZ±xY°wX¯vW¯uV®uU®tU®tT­tT­sT­sS­sS­sS­sS­sS­sS­sS­sS¬sS¬rS¬rS¬rS«rS«rS«rSªrSªqS©qS©qS¨qS¨pS§pS¦pS¦oS¥oR¤oR¤nR£nR¢mR¡mR lRŸlRžkR�kRœjQšjQ™iQ˜hQ–hQ•gQ“fQ’eP�dP�dP�cP‹bP‰aO‡`O…_O‚]O\O}[NzYNwXNtVMpTMlRMhPLcNLaMK_LK]KKbR]C5Pu§Pu§Pu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu¨Qu¨Qu¨Qv¨Qv¨Qv¨-R„-R„.R„.R„.R„Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀAe—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae˜Ae˜Ae˜Ae˜y�Ïy�Ïy�ÏAf˜Af˜Af˜$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>b•>b•>b”>b”WD3TFJXHK[JKfOLsVM€]O‹bP”gQœjQ lR¡mR mRœkRÅm,½i,ºj/²d+±c)²c(¶e)ºf)¾h*Áj*Ål*Én+Ëo+Îq+Ñr+Ós,Õt,ƒK$ª^(ª_(«_(¬`(®a(¯a)°b)³d*¶f+¾m1‡`O‰aP‹bP�cP�dP�eP’fQ”fQ•gQ—hR™iR›kS�lTŸmT¡oV£pW¥rX§tY©v[¬w\®y]¯z^±{_²|`³}`´}`´}`´}_´|^³{^³{\²z[±yZ°xY°wX¯vW®uV®tU­tU­tT­sT­sT­sS­sS¬sS¬sS¬sS¬rS¬rS¬rS¬rS¬rS«rS«rS«rS«rSªrSªqSªqS©qS©qS¨qS¨pS§pS¦pS¦oS¥oR¤oR¤nR£nR¢mR¡mR mRŸlRžlR�kRœjQ›jQšiQ˜iQ—hQ–gQ”fQ“fP‘eP�dPŽcPŒbPŠaPˆ`O†_O„^O�]O\N|ZNyYNvWNsVMoTMkRLgPLbML`LK^KK\JK~aR[B5Pu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu§Qu¨Qu¨Qu¨Qv¨Qv¨Qv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv©Rv©£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ£Õ\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀAe—Ae—Ae—Ae—Ae—Ae—Ae˜Ae˜Ae˜Ae˜Ae˜Ae˜Ae˜Af˜Af˜Af˜y�ÐAf˜Af˜Af˜Af˜Af˜Bf˜$H{$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>c•>c•>b•>b•O?:[E|aRZA5-QƒQu§Qu§Qu§Qu§Qu§Qu§Qu§Qu¨Qu¨Qu¨Qv¨Qv¨Qv¨Qv¨Rv¨Rv¨Rv¨Rv¨.R„.R„.R„.R„Rv¨Rv¨Rv©Rv©Rv©Rw©£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö£Ö\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀAe˜Ae˜Ae˜Ae˜Ae˜Ae˜Ae˜Af˜Af˜Af˜Af˜Af˜yžÐyžÐyžÐzžÐzžÐzžÐBf˜Bf˜Bf˜Bf˜Bf˜$H{$H{$H{$H{$H{$H{$H{$H{$H{$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>c•>c•>c•>c•VC^C6W@5-Q„-Q„Qu§Qu§Qu§Qu§Qu¨Qu¨Qv¨Qv¨Qv¨Qv¨Rv¨Rv¨Rv¨Rv¨.R„.R„.R„.R„.R„.R„.R„.R„.R„Rv©Rw©Rw©Rw©¤Ö¤Ö¤Ö¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö¤Ö¤Ö¤Ö\À\À\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀAf˜Af˜Af˜Af˜Af˜Af˜Af˜Af˜zžÐzžÐzžÐzžÐzžÐzžÐzžÐzžÐzžÐzžÐzžÐBf˜Bf˜Bf˜Bf˜$I{$I{$I{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$Hz$Hz$Hz$Hz$Hz YE\C6T>4-Q„-Q„-Q„-R„Qu¨Qu¨Qv¨Qv¨Qv¨Qv¨Rv¨Rv¨Rv¨.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„Rw©Sw©€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤ÖEi›Ei›Ei›\À\À\À\À\À\À\À\À\À\À\À\À\À\ÀAf˜Af˜Bf˜Bf˜Bf˜zžÐzžÐzžÐzžÐzžÐzžÐzžÐzžÐzžÑzžÑzžÑzŸÑzŸÑzŸÑzŸÑBf˜Bf˜Bf˜$I{$I{$I{$I{$I{$I{$I{$I{$I{$I{$I{$H{$H{$H{$H{?c•?c•?c•?c•$H{$H{$H{SB;R<2zbVUGJXIK[JK[JKuWN€\OŠaP’fP™iQŸlR¡mR£nS£nS¥pTà€9Þ9Õw2Öw0Öv/Öv.Ùx/Üz0Þz0á|1ã~2æ€3è�5éƒ6ë…8ë…8ºm4¼o7¾q8Äu;Ãs9Ãs8ºj0‚]O„^O†_Oˆ`OŠaPŒbP�cP�dP‘eP’fQ”fQ•gQ—hR™iRšjSœkS�lTŸnU¡oV¢pV¤qW¦rX§sY¨tY©uYªuZ«uZ«vZ«vY«uY«uX«uX«tW«tV«sVªsUªsUªrTªrTªrTªrSªqSªqSªqSªqSªqS©qS©qS©qS©qS©qS©qS©qS©qS¨qS¨pS¨pS§pS§pR§pR¦oR¦oR¥oR¥oR¤nR£nR£nR¢mR¡mR mR lRŸlRžkR�kRœjQ›jQšiQ™iQ—hQ–gQ•gQ”fQ’eP‘eP�dP�cPŒbPŠaPˆ`O†_O„^O‚]O\O}[NzYNwXNtVMqUMnSMiQLeOL`LK]KKmP?kN?|aSZA5P<4-R„-R„-R„-R„-R„-R„Qv¨Rv¨Rv¨Rv¨Rv¨.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×€¤×Ei›Ei›Ei›Ei›Ei›Ei›Ei›\À\À\À\À\À\À\À\À\À\À\À\ÀBf˜zžÐzžÐzžÐzžÐzžÐzžÐzžÑzžÑzžÑzŸÑzŸÑzŸÑzŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑBf™Bf™Bf™%I{$I{$I{$I{$I{$I{$I{$I{$I{$I{$I{?c–?c–?c–?c–?c–?c•?c•?c•?c•$H{$H{$H{jXP^H=}dXUGJXHKZIKkRLwXN‚]O‹bP”fQšiQžkR mR£nS¥pT¨qU¨rUç…;ç†>ì‰?è†<å‚9ê†;î‰=ðŠ=ðŠ>ôŽAø‘Dü•Hÿ˜Kù’E¿r:Àt;Àt;Át<Ãt:½n4´f,�]Oƒ^O…_O‡`O‰aO‹bPŒcPŽcP�dP‘eP“fQ”gQ–hQ˜iR™jR›kSœlSžmTŸnU¡oV¢pV¤qW¥rW¦rX§sX¨tX©tX©tX©tX©tXªtWªsW©sV©sV©rU©rU©rT©qT©qT©qS©qS©qS©qS©qS©qS©qS©qS©qS¨qS¨qS¨pS¨pS¨pS¨pS§pS§pS§pR¦pR¦oR¦oR¥oR¥oR¤nR¤nR£nR¢nR¢mR¡mR mR lRŸlRžkR�kRœjQ›jQšiQ™iQ˜hQ–hQ•gQ”fQ’fP‘eP�dPŽcPŒcP‹bP‰aO‡`O…_Oƒ^O�]O~[N{ZNyYNvWNsVMpTMlRMgPLcNL†gUƒeUlO?~bT{`SW@5-R„-R„-R„-R„-R„-R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R….R…Ei›Ei›Ei›€¥×€¥×€¥×€¥×€¥×€¥×€¥×€¥×€¥×€¥×€¥×€¥×Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›\À\À\À\À\À\À\À\À\À\ÀzžÑzžÑzžÑzžÑzŸÑzŸÑzŸÑzŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÒBg™Bg™Bg™%I{%I{%I{%I{%I{%I{%I{@d–?d–?d–?d–?d–?d–?d–?d–?d–?c–?c–?c–?c–$I{$I{L=:WD`KA-R„-R„-R„.R„.R„.R„.R„Rv¨Rv¨Rv¨Rv¨.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R„.R….R….R….R…EiœEiœEiœEiœEiœEiœ�¥×�¥×�¥×�¥×�¥×�¥×�¥×EiœEiœEiœEiœEiœEiœEiœEiœEiœEiœEiœEiœEiœEiœEiœEiœ\À\À\À\À\À\À\À\ÀzŸÑzŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÒ{ŸÒ{ŸÒ{ŸÒ{ Ò{ Ò{ Ò{ Ò| ÒCg™Cg™%I{%I{%I{@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–?d–?d–?d–?d–?d–?d–$I{$I{dUPYEXG@-R„.R„.R„.R„Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv©.R„.R„.R„.R„.R„.R„.R„.R„.R….R….R….R….R….R….S…EiœEiœEiœEjœEjœEjœEjœEjœ�¥×�¥×�¥×EjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEiœEiœEiœ\À\À\À\À\À\À{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÑ{ŸÒ{ŸÒ{ŸÒ{ Ò{ Ò{ Ò{ Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| ÒCg™@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–?d–$I{$I{RA;P<3zcXnVI�uh™~pdNLpUMÁ”w¬zZ«vS‘eP–gQœjQžlR¡mR¤oS§pT­uV¯vW±xY¶|\¼€_ÆdƉgÈŠhÊŒiÌŽkÎ�lÿ�Rñ�F¶k4²g1¯d-­b+ª_(¢Z'}[N€\O‚]O„^O†_Oˆ`O‰aP‹bP�cPŽcP�dP‘eQ’fQ”gQ•gQ—hR˜iR™jR›kSœkS�lTžmT nT¡nU¡oU¢oU£pU¤pU¤pU¤pU¥pU¥pT¥pT¥pT¥pT¥pS¥pS¥oS¦oS¦oS¦oS¦oS¦oS¦oR¦oR¦oR¦oR¦oR¦oR¦oR¦oR¥oR¥oR¥oR¥oR¤oR¤nR¤nR£nR£nR¢nR¢mR¡mR¡mR lRŸlRŸlRžkR�kRœkQœjQ›jQšiQ™iQ˜hQ—hQ•gQ”gQ“fP’eP�eP�dP�cPŒbPŠbP‰aO‡`O…_Oƒ^O�]O~\N|[NzYNwXNtVMpUM—pY”oXzWBuUB…gVlP@jO@|bUx`TcMB3!.R„Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv©Rv©Rv©Rw©Rw©Rw©.R„.R„.R„.R„.R….R….R….R….R….S….S….S…EjœEjœEjœEjœEjœEjœEjœEjœEjœ�¦Ø�¦ØEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœEjœ\À\À\À\ÀBg™{ŸÒ{ŸÒ{ŸÒ{ Ò{ Ò{ Ò{ Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| ÒCg™Cg™Cg™Cg™|¡Ó@d—@d—@d—@d—@d—@d—@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–%I{;0/SB;R=4fODpXL‘xkš€r˜vbº“zÀ”x«{[Ã�l�dP•gQ™iQ›jQŸlR£nR¦pS¨qTªrT¬tU°wWµ{Z¸}\¸|\¸}\¹~]»]å}+Ý~6­d.ªa+¨_)§^(¤\'zYN|ZN~\N€]Oƒ^O„_O†_Oˆ`OŠaP‹bP�cPŽdP�dP‘eQ“fQ”gQ•gQ—hR˜iR™jRšjSœkS�lSžlTŸmT mT nT¡nT¢nT¢oT£oT£oT£oT£oT¤oS¤oS¤oS¤oS¤oS¤oS¤oS¥oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¥oR¤oR¤oR¤nR¤nR¤nR£nR£nR£nR¢mR¢mR¡mR¡mR lR lRŸlRžlRžkR�kQœjQ›jQšjQ™iQ™iQ˜hQ—hQ•gQ”gQ“fQ’eP�eP�dPŽcPŒbPŠbP‰aO‡`O…_Oƒ^O�]O\N}[NzZNxXNuWMrUM™rZ–pY|XCxVCsTBmQAkOA~cVzaU`I>\IARv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv¨Rv©Rv©Rv©Rw©Rw©Rw©Sw©Sw©Sw©Sw©.R….R….R….R….R….S….S….S….S…FjœFjœFjœFjœFjœFjœFjœFjœ‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦ØFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœ\À\ÀBg™{ Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ò| Ó| ÓCg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™}¡Ó@e—@e—@e—@e—@e—@e—@d—@d—@d—@d—@d—@d—@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–@d–%I{<1/J82^I@gQFqYN‘xl™€s—vc¢{d¿”yª{\«wUÄ�i‘eP•gQ˜hQ�kQ mR¢mR¤nR¥oS§pSªrT¬tU¬tU¬tU¬tU­tU®tUÒt.ƒL&¤](¢['¡Z'žY&xYN{ZN}[N\N�]Oƒ^O…_O‡`OˆaOŠaPŒbP�cP�dP�eP‘eQ“fQ”gQ•gQ—hR˜iR™iRšjR›kSœkS�lSžlSŸmSŸmS mS nS¡nS¡nS¢nS¢nS¢nS¢nS£nS£nS£nR£nR£nR£nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR¤nR£nR£nR£nR£nR£nR¢nR¢mR¢mR¡mR¡mR¡mR lR lRŸlRžlRžkR�kRœkQœjQ›jQšiQ™iQ˜iQ—hQ–hQ•gQ”fQ“fP’eP�eP�dPŽcPŒbP‹bP‰aO‡`O†_O„^O‚]O\O}[N{ZNxYNvWNsVM›s[˜rZ~ZD�nYŒkYqSBkPAiOA|cVbK?\G>NB?Rv¨Rv¨Rv¨Rv¨Rv¨Rv©Rv©Rv©Rw©Rw©Rw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©.S….S….S….S….S….S…FjœFjœFjœFjœFjœFjœ‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦Ø‚¦ØFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœCg™Cg™| Ò| Ò| Ò| Ò| Ò| Ó| Ó| Ó| Ó|¡Ó|¡ÓCg™Cg™Cg™Cg™Cg™Cg™Cg™CgšCgšCgšCgšCgš}¡ÓAe—Ae—Ae—@e—@e—@e—@e—@e—@e—@e—@e—@d—@d—@d—@d—@d—@d—@d–@d–@d–@d–%I{@d–@d–<1/H72\I@ePGpYN�xm˜€t–vc¡{e¾”zÁ“u‘p«wU¬uQ‘eP•gQ™iQšjQœjQžlR¡mR£nR¤nR¤oR¤oR¤oR¤oR¤oRÇgb;  Z'žY&›W&“S%vXNyYN{ZN~[N€\O‚]Oƒ^O…_O‡`O‰aOŠaPŒbP�cP�dP�dP‘eQ“fQ”gQ•gQ–hQ˜iR™iRšjR›jR›kSœkS�lSžlSžlSŸlSŸmS mS mS¡mS¡mS¡mR¡mR¢mR¢mR¢mR¢mR¢nR¢nR¢nR£nR£nR£nR£nR£nR¢nR¢nR¢mR¢mR¢mR¢mR¡mR¡mR¡mR mR lRŸlRŸlRžlRžkR�kR�kQœjQ›jQ›jQšiQ™iQ˜hQ—hQ–gQ•gQ”fQ“fP‘eP�dP�dP�cPŒbP‹bP‰aO‡`O†_O„^O‚]O€\O}[N{ZNyYNvXNtVM�u\„]E€[E’oZŽmZŠkYnRBjOB}cVdL@`I?XGARv¨Rv¨Rv¨Rv¨Rv©Rv©Rw©Rw©Rw©Rw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©SwªSwª.S….S….S….S…/S…FjœFjœFjœFjœ‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦Ù‚¦ÙFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœ‚¦Ù‚¦ÙCg™Cg™| Ó| Ó|¡Ó|¡Ó|¡Ó|¡Ó|¡ÓCg™Cg™Cg™Cg™CgšCgšCgšCgšCgšCgšCgšCgšChšChšChšChšChš}¢ÔAe—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—@e—@e—@e—@e—@e—@e—@e—@d—%I{%I{%I{%I{%I{@d–@d–<10F61o]Vye]„oeŽxmœ‚u”udŸ{e¥}d¨|aÀ’tÁ�pÃ�l¬uQ�dP’eP”fQ–gQ˜iQ›jQœjQœjQœjQœjQœkQœkQ�kQ_9 œX&™V&•T%rUMuWMwXNzYN|ZN~[N€\O‚]O„^O…_O‡`O‰aOŠbPŒbP�cPŽdP�dP‘eQ’fQ”fQ•gQ–hQ—hR˜iR™iRšjR›jRœkRœkR�kR�lRžlRžlRŸlRŸlRŸlR lR mR mR mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR¡mR mR lR lRŸlRŸlRŸlRžkRžkR�kR�kQœjQ›jQ›jQšiQ™iQ˜iQ—hQ–hQ•gQ”gQ“fQ’fP‘eP�dP�dP�cPŒbPŠbP‰aO‡`O†_O„^O‚]O€\O~[N{ZNyYNwXNtVMrUM†^F‚]F”q\�o[ŒlZqTD€fX}dWeMAbK@O=6NB@Rv¨Rv©Rv©Rv©Rw©Rw©Rw©Rw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©SwªSwªSwªSxªSxªSxª/S…/S…FjœFjœFjœƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§ÙFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœFjœƒ§Ùƒ§Ùƒ§Ùƒ§ÙCg™Cg™Cg™}¡Ó}¡Ó}¡ÓCg™CgšCgšCgšCgšCgšCgšCgšChšChšChšChšChšChšChšChšChšChšDhšDhšDhš~¢ÔAe—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—%I{%I{%I{%I{%I{%I{%I{%I{%I{@d—@d—E:9D61m\Vwe]lXOuaX„k_¨‹z±�|¡|e¥|c§|`©z]ªyXÂ�nÃ�lÄŽkÄŽi�dP’eP“fP“fP“fP’fP“fP“fP“fP[7 —U&”T%�P%pTMsVMuWMxXNzYN|ZN~[N€\O‚]O„^O†_O‡`O‰aOŠbPŒbP�cPŽdP�dP‘eP’eQ“fQ”gQ•gQ–hQ—hQ˜iR™iRšjR›jR›jRœkRœkR�kR�kRžkRžlRžlRŸlRŸlRŸlRŸlR lR lR lR lR lR lR lR lR lR lR lR lR lRŸlRŸlRŸlRŸlRžkRžkR�kR�kQœkQœjQ›jQ›jQšiQ™iQ˜iQ˜hQ—hQ–gQ•gQ”fQ“fP’eP‘eP�dPŽdP�cPŒbPŠbP‰aO‡`O…_O„^O‚]O€\O~[N|ZNyYNwXNuWMrUM‡`G„^G–r]|ZFxXFtVE�gY~eY{cXbLA[H?REA.R„.R„Rv©Rw©Rw©Rw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©SwªSwªSxªSxªSxªSxªTxªTxªTxªƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§ÙFj�Fj�Fj�Fj�Fj�Fj�Fj�Fj�Fj�Fj�Fj�ƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§Ùƒ§ÙCg™Cgš}¡Ó}¡ÓCgšCgšCgšCgšChšChšChšChšChšChšChšChšChšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhš~¢ÔAe—Ae—Ae—Ae—Ae—Ae—Ae—Ae—Ae—%I|%I|%I|%I{%I{%I{%I{%I{%I{%I{%I{%I{%I{%I{@e—@e—B99B51k[Vud]iWPr_Wye] †yªŒ|²�}¡|e¤|c¾’w¨{^¨z\©yZÁ�p«xW«wU«wU«wU«wUÃŽlÃŽlÂŽlÂŽlkD(’S%ŒP%nSMoTMqUMsVMvWNxXNzYN|ZN~[N€\O‚]O„^O†_O‡`O‰aOŠaP‹bP�cPŽcP�dP�eP’eQ“fQ”fQ•gQ–gQ–hQ—hQ˜iQ™iR™iRšjR›jR›jRœjRœkRœkR�kR�kR�kRžkRžkRžlRžlRŸlRŸlRŸlRŸlRŸlRŸlRŸlRŸlRŸlRžlRžkRžkRžkR�kR�kQ�kQœkQœjQ›jQ›jQšjQšiQ™iQ˜iQ˜hQ—hQ–gQ•gQ”gQ“fQ’fP‘eP�eP�dPŽcP�cP‹bPŠaPˆaO‡`O…_Oƒ^O‚]O€\O~[N|ZNyYNwXNuWMrUMŸw_œv_˜t^~\GzYGvWF†j[fZ|dYybX\I@VGB5/2.R„.R„.R„.R„Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©Sw©SwªSwªSwªSxªSxªSxªSxªTxªTxªTxªTxªFk�Fk�Fk�Fk�ƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§ÚFk�Fk�Fk�Fk�Fk�Fk�Fk�Fk�ƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Úƒ§Ú}¡Ó}¡Ó}¡Ô}¡ÔChšChšChšChšChšChšChšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhš~£ÕAe˜Ae˜Ae˜Ae˜Ae˜%J|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I{%I{%I{%I{%I{%I{@e—@e—<68?31gYVpa\bRMjYTq`Z€j`¡‡z«�}²‘}¶’|¸’{º’z»’x¼’w§z^¿‘t¿‘s¿‘s¿�s¿�r¿�r¾�r¾�r°h2‹O$„L$mSMnSMnTMoTMtVMvWNxXNzYN|ZN~[N€\O‚]O„^O…_O‡`OˆaOŠaP‹bPŒcPŽcP�dP�dP‘eP’eQ“fQ”fQ•gQ–gQ–hQ—hQ˜hQ˜iQ™iQšiQšiQšjQ›jQ›jQœjQœjQœkQœkQ�kQ�kR�kR�kR�kR�kR�kR�kR�kR�kR�kQ�kQ�kQœkQœjQœjQœjQ›jQ›jQšjQšiQ™iQ™iQ˜hQ—hQ—hQ–gQ•gQ•gQ”fQ“fP’eP‘eP�dP�dP�cPŒbP‹bP‰aPˆ`O†`O…_Oƒ^O�]O€\O~[N|ZNyYNwXNtWM£z` y`�w`šu_€]I|[HwXGˆl\ƒi[}eZycYr_WjZU;23.R„.R„.R„.R„.R….R….R…Sw©Sw©Sw©Sw©Sw©SwªSwªSwªSxªSxªSxªTxªTxªTxªTxª/S…/S…Gk�Gk�Gk�Gk�Gk�Gk�Gk�ƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨ÚGk�Gk�Gk�ƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Ú}¢Ô}¢Ô}¢Ô}¢Ô~¢ÔDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhš£ÕAf˜%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I{%I{Ae—Ae—Ae—?89H=:?YUY`QGfVLudXjeitlm{po|qp}rp~rpsqsq€tqŒr_=1+xJ)’o[~[F€\G‚^H„_I…`IkRLlRMnSMpTMrVMuWMwXNyYN{ZN}[N~\N€\O‚]Oƒ^O„_O†_O‡`Oˆ`O‰aPŠbP‹bPŒcP�cPŽcP�dP�dP�eP‘eP’eP’fP“fQ“fQ”fQ”gQ•gQ•gQ•gQ–gQ–gQ–gQ–hQ–hQ—hQ—hQ—hQ—hQ—hQ–hQ–hQ–gQ–gQ–gQ•gQ•gQ•gQ”fQ”fQ“fQ“fP’eP‘eP‘eP�dP�dPŽdPŽcP�cPŒbP‹bPŠaP‰aO‡`O†_O…_Oƒ^O‚]O€\O~\N}[N{ZNyYNwXNuWM“iO�hOŽgO‹eOžze›yd—wd”tc�rbtYKjTIaOG[KFj]Y^UU?;@.R….R….S….S….S….S….S….S…/S…/S…/S…/S…/S…/S…/S…/S…/S…/S…/S…/S…/S…/S…/S…GkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkžGkž…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©ÛGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlž…©Û…©Û…©Û…©Û…©Û…©Û£Õ£Õ£Õ£Õ£Õ£Õ£Õ£ÕDh›Dh›Dh›Dh›Di›Di›Di›Di›Di›¤Ö¤Ö¤Ö¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤ÖEi›Ei›&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|%J|%J|%J|%J|%J|%J|Af˜Ae˜Ae˜%J|%J|%J|%I|%I|%I|%I|#-#%.()1MEAQIEUMI]SL]TM=4.1+(=.#6,&5( 1%"ŒlY�n[“p\•r]�]Hƒ_I…`JœwažybkRLmSMpTMrUMtVMvWNxXNzYN|ZN}[N\N€]O‚]Oƒ^O…_O†_O‡`OˆaO‰aPŠaP‹bPŒbP�cPŽcPŽdP�dP�dP�eP‘eP‘eP’eP’fP“fP“fQ“fQ”fQ”fQ”fQ”gQ”gQ•gQ•gQ•gQ•gQ•gQ”gQ”fQ”fQ”fQ”fQ“fQ“fP“fP’eP’eP‘eP‘eP�dP�dP�dPŽcP�cPŒcPŒbP‹bPŠaP‰aO‡`O†_O…_Oƒ^O‚]O�]O\O}[N|ZNzYNxXNvWN¬‚gª�g¨€g�hPŒfPŸ|fœzf˜xe”vd�scsYLiTK_NHYKFh\Z]UV=;@.R….S….S….S….S….S….S…/S…/S…/S…/S…/S…/S…/S…TxªTxªTxªTxªTxª/S…/S…/S…/S…GlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlž…©Û…©Û…©Û…©Û…©Û…©Û…©ÛGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlžGlž…©Û…©Û…©Û…©Û£Õ£Õ£Õ£Õ£Õ£Õ£Ö£ÖDi›Di›Di›Di›Di›Di›¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤×€¤×€¤×€¤×Ei›&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|Bf˜Bf˜Af˜Af˜Af˜Af˜Af˜%J|%J|%J|%J|%J|%J|%I|%I|%I|, +,!.! "`E6†iYŒlZ�o\“q]•s^�^J™va›wb�ycŸzd {e¤}foTMqUMsVMuWNwXNyYN{ZN|ZN~[N\O�]O‚]Oƒ^O…_O†_O‡`Oˆ`O‰aOŠaP‹bPŒbPŒcP�cPŽcPŽdP�dP�dP�dP�eP‘eP‘eP‘eP’eP’eP’eP’eP’fP’fP’fP“fP’fP’fP’fP’eP’eP’eP‘eP‘eP‘eP�eP�dP�dP�dPŽdPŽcP�cPŒcPŒbP‹bPŠaP‰aOˆ`O‡`O†_O…_Oƒ^O‚]O�]O\O~[N|[N{ZNyYNwXN®ƒi¬ƒiª‚i¨�i¦€hŒhR‰fQ†dQ‚bP•wfx]Oˆpdkbtd_m`]OEDG?A;:@.S….S….S….S….S…/S…/S…/S…/S…/S…/S…/S…/S…TxªTxªTxªTxªTxªTx«Tx«Tx«Ty«/S†GlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž…ªÜ…ªÜ…ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž…ªÜ…ªÜ£Ö£Ö£Ö£Ö¤Ö¤Ö¤Ö¤Ö¤ÖEi›€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤×€¤×€¤×€¤×€¥×€¥×€¥×Bg™Bg™Bg™Bg™Bg™&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Af˜Af˜%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|%I|%I|%I|%I| +,YA5jPBpSD‹l[�o]’q^–t`‚_Kšwbœycžze {f¡}g¤h¨�i”lSrVMtWMvWNxXNyYN{ZN|[N~[N\O�]O‚]Oƒ^O„_O…_O†`O‡`Oˆ`O‰aPŠaP‹bP‹bPŒbP�cP�cPŽcPŽcP�dP�dP�dP�dP�dP�dP�dP�dP�eP�eP�eP�eP�eP�dP�dP�dP�dP�dP�dP�dPŽcPŽcP�cP�cPŒbP‹bP‹bPŠaP‰aOˆ`O‡`O†`O…_O„^Oƒ^O‚]O€]O\O~[N|[N{ZNyYNxXN°…j®„j¬„jªƒj¨‚j¦€jŒhSŠgS†eRƒcR|`QŒsf…oe}jcrd`k_]LCDC=@,,3(4F(4F.S….S…/S…/S…/S…/S…/S…/S…/S…TxªTxªTxªTxªTxªTxªTx«Tx«Tx«Ty«Ty«Ty«…ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžChšChš¤Ö€¤Ö€¤Ö€¤Ö€¤ÖEi›Ei›Ei›€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤Ö€¤×€¤×€¤×€¤×Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Bg™Bg™&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜&J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|%I|%I|%I|#5H71O;3V?4iOBoSDsVF�o]{[I^Kƒ`L…bN‡dOŸ{f }g¢~h¥€j’kT•mU˜oVšqW�rWwXNxXNzYN{ZN}[N~[N\O€]O‚]Oƒ^O„^O…_O…_O†`O‡`Oˆ`O‰aO‰aPŠaP‹bP‹bPŒbPŒbPŒcP�cP�cP�cPŽcPŽcPŽcPŽcPŽcPŽcPŽcPŽcPŽcPŽcP�cP�cP�cPŒcPŒbP‹bP‹bP‹bPŠaP‰aP‰aOˆ`O‡`O†_O…_O„_O„^Oƒ^O�]O€\O\N~[N|ZN{ZNyYN›oTšoT™oT—nT¬„lªƒl¨‚l�jUŒiTŠhT†fT€cS�vi‰rg�nfyidqdah^^HBD?<@)+3OZkMYk(5F(5F(5F/S…/S…/S…/S…/S…TxªTxªTxªTxªTxªTxªTx«Tx«Ty«Ty«Ty«Ty«Uy«†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž†ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžDhšDhšDhšChš&K}&K}&K}&K}&K}&K}ChšChšCgšCgšCgšCgšCgšCgšCg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™&J|&J|&J|&J|&J|&J|Bg™Bg™Bg™Bf™Bf™Bf™Bf™Bf™Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜&J|&J|&J|&J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|A99N?;L:2T>4gNBlRD‡k\‹n^z[J~^L�aN…cO‡dP‰fQŠgRŒhT�jU’lV•nW˜pXšrX�sY¶‹q¸�qºŽr¼�r½�r¿�s©z[©z[ªz[«{[¬{[¬{ZÅ“rÅ’qÅ’qÅ’pÅ’pÅ‘o­yV­xV¬xU¬wT¬wTŠaPŠbP‹bP‹bP‹bP‹bP‹bP‹bP‹bP‹bP‹bP‹bP‹bP‹bPŠaPŠaPŠaP‰aP‰aOˆaOˆ`O‡`O‡`O†_O…_O„^Oƒ^O‚^O‚]O�]O€\O~\N}[N|ZNzYN�pTœpU›pUšpU˜oV—oV•nV“mV‘lV�kVŒjVˆhVƒfU~cU�uj†qh~mfugdkaad\^E@D98?$(2minffm^blV^lMYk(5F(5F/S…TxªTxªTxªTxªTxªTxªTxªTx«Tx«Ty«Ty«Ty«Uy«Uy«†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸHlŸ'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}ChšChšChšChšChšChšChšCgšCgšCgšCgšCgšCgšCg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™&J|Cg™Cg™Cg™Cg™Cg™Bg™Bg™Bg™Bg™Bg™Bg™Bf™Bf™Bf™Bf™Bf™Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜&J|&J|&J|&J|&J|&J|&J|%J|%J|%J|%J|%J|%J|%J|Ae˜Ae˜;GY<68I=:I82Q=4XA6~fZ„j\‰m^�p`|]L€`NƒcP†eQˆgS¡j£€l¦‚m©„n•oX˜qYšrZ�t[¶Œr¸�sº�s¼�t½�t¾‘t¨z]©{]ª{]«{\«{\¬{\¬{[Ä“sÄ“rÄ’rÄ’qÄ’pÄ‘p¬yWÄ�oÃ�nÃ�mÃ�lÂŽlÂŽkÁ�kˆaOˆaOˆaOˆaOˆaOˆaOˆaOˆ`Oˆ`O‡`O‡`O‡`O†`O†_O…_O…_O„_O„^Oƒ^O‚]O�]O€]O\O~\N}[N|ZN¶‰l¶‰lµˆmœqV›qVšqV™pW˜pW–oW¬…nª…n§„n¤‚nŸ€n›~n€eW‘xlŠtk‚piykfodcf_`JDG@>C*,5$1MYk�tr~tstmolinadmX_lNZkMZkTxªTxªTxªTxªTx«Tx«Tx«Ty«Ty«Ty«Uy«Uy«Uy«†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†«Ý†«Ý†«Ý†«ÝHlŸHlŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸ†«Ý†«Ý†«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«ÝHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸHmŸ'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhšDhšDhšDhšChšChšChšChšChšChšChšCgšCgšCgšCgšCgšCgšCg™Cg™Cg™Cg™Cg™&J}&J}&J}Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Bg™Bg™Bg™Bg™Bg™Bg™Bf™Bf™Bf™Bf™Bf˜Bf˜Bf˜Bf˜Bf˜&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|Af˜Af˜Af˜Af˜;GY;GY;GY1'!D:9N?;N;3]I?zdY€h[†l^‹oa�sc“ue€bQ„dR‡fT l¢�m¦ƒn©…o«‡p®ˆq±Šr³‹sžv] w]¹�u»�u¼‘u¾‘u¿’v¨{^©{^ª|^«|]«|]«{\¬{\¬{[¬{[¬zZ«zZ«yY«yX«xXÂ�oÂ�nÂ�nÁŽmÁŽm¨uT¨uS§tS§tS§tR¦sR¦sQ…_O…_O…_O„^O„^Oƒ^Oƒ^O‚^O‚]O�]O€]O¢rS¡rS¡rS¸‰k·‰l·‰l¶‰m¶‰mµ‰m´‰n³‰n›qWšqX™qX®‡o­‡o«†p¨…p¤ƒp �pœp—}o{cXv`Vp]U}nishfhaba\_DAF::B$)4MYkMYkMYkŒtc�tq\QPPIKFDI;>H/8GMZkTxªTx«Tx«Tx«Ty«Ty«Ty«Uy«Uy«Uy«†«Ý†«Ý†«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«ÝHmŸHmŸHmŸImŸImŸImŸImŸImŸ‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«ÝImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸ'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhšDhšDhšDhšDhšDhšDhšDhšDhšChšChšChšChšChšChšChšChšCgšCgš&K}&K}&K}&K}&J}&J}Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Bg™Bg™Bg™Bg™Bg™Bg™Bf™Bf™Bf™Bf™Bf˜Bf˜&J|&J|&J|&J|&J|&J|Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜;HY;HY;GY;GY;GY;GY;,#I=:H82YF?^JA|e[‚j]ˆn`Œqc�te”wg—yiš|k�~l €n£‚o¤ƒp¦…q­‰s°Šs›u]žv^Ÿw^¡x_£y_¤z_¥z_¦{_¿“w¿“wÀ“vÁ“vÁ“v“u“u“tª{\ª{\ªz[ªzZªyZªyY©xXÁ�pÀ�o¨wW¨vV§vV§uU¦uU¦uT¥tT½Œl¼‹k¼‹k¼‹k»‹k»‹kºŠk¢sT¢rT¢rT¡rT¡rT¡rU rU rV·Šn¶ŠnµŠnµŠo´Šo³‰o²‰p±‰p™qY®ˆq¬‡qª†r§…r¤„r ‚rœ€q€gZ{dYvaXp^WiYU`TRVNOb]aEBH<+[NL^SQWNNKFJ?AI2:HTx«Ty«Ty«Ty«Uy«Uy«Uy«Uy«Uy«‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«ÝImŸImŸImŸImŸ‡«Ý‡«Ý‡«Ý‡«Ý‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«ÞImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸ'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšChš&K}&K}&K}&K}&K}&K}&K}&K}&K}&K}CgšCg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Bg™Bg™Bg™Bg™Bg™Bg™Bf™Bf™Bf™&J|&J|Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜Bf˜;HY;HY;HY;HY;HY;HY;GY3("D::B41RB=YG@wcZ}g\ƒk_‡nbŒrd�ug}aR�dT„gV‡iX‰kY¢ƒq¤„r¥…s§†t‘p^’q^Ÿw` x`¢y`£z`¤za¥{a½“x¾“x¿“w¿“wÀ“wÀ“vÀ“vÀ“vÀ“uÀ’uÀ’tÀ‘sÀ‘sÀ‘r¿�r¿�q¿�q¾�p¾Žp¾Žo½Žo¥vW¼�n¼Œn»Œn»Œn»ŒnºŒnº‹m¢tV¡sV¡sV¡sV sV sWŸsWŸsXžsXµŠpµŠp´ŠpœsY›sYšrZ˜r[–r\”q\‘p]¦†t£„tŸƒsœ�s€h\{e[vbYo^XhZV`USXPQNJMECJRS[47A+((MYkMYkMYkMZk(5F(5F(5FOHJT=+YML_SRZQQMGJABI2:H/T†Uy«Uy«Uy«Uy«Uy«Uy«‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬ÞImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸˆ¬Þˆ¬Þ'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhšDhš'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}&K}&K}&K}&K}CgšCgšCgšCgšCg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Bg™Bg™Bg™Bg™&J|&J|Bf™Bf™Bf™Bf™Bf˜Bf˜Bf˜Bf˜Bf˜;HY;HY;HY;HY;HY;HY>DM>DM;HY89<:+#9&B52I94ZHAxd[}g^�k`†nc‹rey_R}bT�eVƒgX…iYˆk[Šl\Œn]�o^¥‡v§ˆvšvaœwažxa yb¢zb¤{b¤{a¼“x½“x¦|a§|a§|`§{`§{_§{_§{^§z^¾‘u¾‘t¾‘t¾�s½�s½�r½�r¥wZ¤wZ¤vY¤vY£vY£uX¢uX¢uX¢uX¹Œp¸Œp¸Œp·Œp·‹p¶‹p¶‹pµ‹qµ‹q�tZ›t[šs\™s\˜s]–r]”r^’q^�p^�o^Šn^‡l^ƒj^h]{f\ub[n^YgZW_UTWPQOKOEEKST]JNY>=?JJIMYkMYk(5F(5F(5F(5F(5F)5G)5GK=4S<*XMLbWVYPPLGJ@AI/T†/T†Uy«Uy«Uy«‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬ÞImŸImŸImŸIm ˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬ÞIm Im Im Im Im Im Im Im ˆ¬Þˆ¬Þˆ¬Þˆ¬Þ'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}Dh›Dh›Dh›Dh›DhšDhšDhšDhš'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}ChšChšCgšCgšCgšCgšCgšCg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™Cg™&J|&J|&J|&J|&J|Bg™Bg™Bg™Bf™Bf™Bf™Bf™Bf˜Bf˜;HY;HY;HY;HY;HY;HYCIR>DMCIR;HYCIR.$0"8&?*G/V=+w[F{g^€kanXMs\Px_S{bU~dW�fYƒhZ†j\ˆl]Šm^¢…v§ˆwªŠx­Œy¯�y±Žz´�zµ�z·‘z¹’z£{b£{b¤{b¥{b¥{a¥{a¥{`¥{`¥z_¥z_¥z^¼‘u¥y]¤y]¤x]¤x\£w\£w[¢w[¢v[¢v[¡v[¡v[¸�r·�r¶�r¶ŒsµŒs´Œs´Œs²Œt±‹u°‹u˜t^–s_•s_“r_’r`�q`�p`¡…wž„v›‚v—€u“~twd]sb[l^ZeYW]TUUORLJOYYaRU^JOZ>>@!$)RXaMYk39B-3<-3<(5F)5G)5G)5G)5G)5GFDJK9*^K=YONg\\TLMIFJ:>I0T†0T†ImŸˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬ÞIm Im In In In In In In ˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßIn In In In In ˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ß'K~'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}Di›Di›Dh›'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}ChšChšChšChšChšCgšCgšCgšCgšCgšCg™Cg™Cg™Cg™Cg™Cg™&J}&J}&J}&J}&J|&J|&J|&J|&J|Bg™Bg™Bg™Bg™Bg™Bf™Bf™EM>EMCIR;HY;HYCIRCIR)6&8&@*H0I1!\B0}_JhTKjM8q[Pt]Sw`U{cW~eY�g[ƒi\…k^‡m_Ÿ…v¢†w¥ˆx¨Šyª‹z­�z¯Ž{±�{²�{³�{´�{žzdŸzd zc zc¡zc¸‘y¸‘y¸‘y¸‘x¸�x¸�x·�w·�w·�w·�wŸw_Ÿw_žw_µŽv´Žv³�v²�v²�w±�w°Œw¯Œw®Œw­‹w«‹xªŠx¨‰x¦‰x¥ˆx£‡x¡†xž…x›ƒw—�v’~vŽ|t‰ys„vrh\YcXX[TUSNRIHOUXaNS^JFE>>A')+"%(4:C(5F(5F3:B3:B-3<-3<)5G)5G)5G)5G)5G)5GE:4O:*TKLbXWcZZPIKDCJIm Im Im Im ˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬ßˆ¬ßˆ¬ßˆ¬ßIn In In In In In Jn Jn Jn Jn Jn ˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ß‰­ß‰­ß‰­ß‰­ß‰­ßJn ‰­ß‰­ß‰­ß‰­ßˆ­ßˆ­ßˆ­ßˆ­ß'K~'K~'K~'K~'K~'K~'K~'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhšDhšDhšChšChšChšChšChšChšCgšCgšCgšCgš&K}&K}&J}&J}&J}&J}&J}&J}&J}&J}&J|&J|&J|Cg™Cg™Cg™Bg™Bg™Bg™EMCIRCIRCIR888DGNCJRCIRBBB(0 8&<)G0M5"X@0z^K†bFŠkUlXPp[Rs^TvaVzcX}fZg\�i]™�u›‚v�„wŸ†x¢‡y¥‰z§Šz©‹{ªŒ{•ve–ve—we˜we°�|°�|±�{²�{²�{²�{²�{²�{±�z±�z±Žz±Žz±Žz°Žy™vb˜vb—vb–ub•ub•uc”tc“tc’sb�sc�rc�qc¢‡y †y�…y›„x˜‚x•�w’w�|uˆytƒvs~sqyooslmVQTOLR[\dQU`KHHAAD:<@68; &Z`i-4<%');AJ4:C4:C4:C-4<)5G)5G)5G)5G)6G)6G@84H8-N?5YPQmccoghd`dIn In In In In In ˆ¬ßˆ¬ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßˆ­ßJn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn ‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ßJn Jn Jn ‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~Ei›Ei›Ei›Ei›'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhšDhšDhšDhšDhšDhšChšChšChš&K}&K}&K}&K}&K}&K}&K}&K}&J}&J}&J}&J}&J}&J}&J}&J}&J}Cg™Cg™Cg™Cg™B9;>68;Z`iZ`iMZk)5G4:C-4<4:C4:C-4<;BJ)5G)6G)6G)6G)6G)6GC6-L;.leg„{{ypqhbeVYcJn Jn Jn Jn Jn Jn Jn ‰­ß‰­ß‰­ß‰­ß‰­ß‰­ßJn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn Jn ‰­ß‰­ß‰­ß‰­ß‰­ß‰­ß‰­à‰­à‰­à‰­à‰­à‰­à‰­à‰­à‰­à‰­à‰­à‰­à‰­àJn¡Jn¡Jn¡Jn¡Jn¡Jn¡Jn¡‰­à‰­à‰­à‰­à‰­à'L~'L~'L~'L~'L~'L~'K~'K~'K~Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›'K~'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhšDhšDhšDhšDhš'K}'K}'K}'K}&K}&K}&K}&K}&K}&K}&K}&K}&K}&K}&K}&J}&J}&J}&J}&J}&J}Cg™Cg™Cg™<535=AG=?D?AD==1(B3)B2&F4'E4)gTGlXJs^OzcTzaPqfethgvjhbVTcWUdXVeYWfZXg[Yh\Zi]Zi][j^\€us€ususts~tt~tt}tt|st{stut~tt|sszrsyqrwpquoqsmpqloXTXTQWPOULLSSJEA<:=99757335./2113)+.'),)+.8:="(3@QJMPV\eT[cNZlNZlZ`iZ`iZ`iZ`iSYbY`h4;C.4=)6GCPaCPaCPaCPaCPaEQbZOGa_emhkŠƒ„nfgeaeJn¡Jn¡Jn¡Jn¡Jn¡Jn¡Š®àŠ®àŠ®àŠ®àŠ®àJo¡Jo¡Jo¡Jo¡Jo¡Jo¡Jo¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Š®àŠ®áŠ®áŠ®áŠ®áŠ®áŠ®áŠ®áKo¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡ƒ§Úƒ§Úƒ§Úƒ¨Úƒ¨Úƒ¨Úƒ¨Úƒ¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨ÚEjœEiœEiœEiœEiœ'L~'L~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K}'K}'K}'K}'K}'K}'K}Di›Di›Di›Di›Dh›Dh›'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}&K}&K}&K}&K}&K}$.>=I[=I[2)>0&A2'C3(I8-^OFbRHfUJjXMq^RwcVzfYfRDfQCdN@zdTqijrjksklrklrklrklqjmpjmpjmojmojmnimmimkhliflscYm`Xg\VbYT^VRE>;A<:>98:77645:873220/0,-/)+.*,/#%( &15;5BSKKKJMP]dlU[dNZlNZlZ`iTZcZaiZaiZ`iZ`iSZbŽ”�LS[V]eDPbDPbDPbDPbDPbDPbWMF^^diei®”†…rkeaeJo¡Jo¡Jo¡Jo¡Š®àŠ®àŠ®àŠ®àŠ®àŠ®àŠ®àŠ®àŠ®àKo¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Š¯áŠ¯áŠ¯áŠ¯áKo¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡ƒ¨Úƒ¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Û„¨ÛGk�'L~'L~'L~'L~'L~'L~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~Ei›Ei›Ei›Ei›Ei›Di›Di›Di›Di›Di›'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}&K}%/> ,>=I[=I[ ,> ,>#)2(.7#)2(.7#)2#)2#)2#)2(.7(.7(.767@D>A214$+3#%("$'###""""""&&&888888cB*}\I@!%+%!5*$:/(;0)<1*>3+@4+>1(bUKN@6OA6L=3QB8M?4_RKaTLbUMcVNcVNcVObVOaVOaUO`UO_UO^UO^TO\SOYRNWPNUOMWPKYSOWRN;63953:76755333,/2'),%(+"%(!' "&,KXi04:JMP]_b^emU[dNZlNZlT[cU[dU[dU[d[aj�•ž�•ž�•žˆŽ—–�¥W]fDPbDPbDPbDPbDPbDPb‘nSž…w—|m¨�‚ƒqjKo¡Ko¡Ko¡Š®àŠ®àŠ®àŠ®áŠ®áŠ®áŠ®áŠ®áŠ®áŠ¯áŠ¯áŠ¯áKo¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¡Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Û„¨Û„¨Û„¨Û„¨Û„©Û„©Û„©Û„©ÛGk�Gk�Gk�Gk�Gk�Gk�'L~'L~'L~'L~'K~'K~'K~Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Ei›Di›Di›'K}'K}'K}'K}HlžHlžHlžHlžHlžHlžHlžHlž'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}*2? ->=I[=I[ ,> ,> ,>#)2#)2#)2(.7(.7#)2#)2(.7(.7(.7(.7/28:79G@A<89',4#%(#%(######""""""8888888887'vS:‹jW;) + &3#.$-% .% .& /&!,#,#@70A71XNHXNHWNHWNHZRLYQLYQLXQLWQLWPLUOLSNLQMKOLJMJJ0//.-.,,-&(+"(!' 15;6CT37=MMMKMP^ad_enY`hNZlNZlU\dV\eŠ‘™Š�™Š�™�–Ÿ�–Ÿ�–ž�•ž�“œ—�¦Œ’›ƒ�¡DQbDQbDQbDQbDQbMUc¤�ƒ‘ylŸ‡|€oiKo¡Š¯áŠ¯áŠ¯áŠ¯áŠ¯áŠ¯áŠ¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯áKo¢Ko¢Ko¢Ko¢Ko¢Ko¢Ko¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢Kp¢‹¯â‹¯â‹¯â‹¯âLp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢„¨Ú„¨Ú„¨Ú„¨Ú„¨Ú„¨Û„¨Û„¨Û„¨Û„©Û„©Û„©Û„©Û„©Û„©Û…©Û…©Û…©Û…©Û…©Û…©ÛGkžGkžGkžGkžGkžGkžGkžGkžGkž…©Û…©Ü…©Ü…©Ü…©Ü…©Ü…©Ü…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž'K}'K}'K}'K}'K}'K}'K}'K}'K}HO\=J[=J[=J[ -> ,> ,>(.7#)2#)2(.7(.7(.7#)2(.7(.7(/7(/7)/8/28114H7,99@.05&,5$&)$$$######"""(((8888888888888884"nO9„gXˆjZE/ (-" + %' %$#" ! !$ 48>7CU:GX JJJLLLKMPagp_enNZlLPV˜Ÿ§Œ’›Œ’›Œ’›‹’š‹‘šŠ‘™‘— �–Ÿ�–Ÿ�–Ÿ�“œ�“œ—�¦„�¢„�¢DQbDQbDQbDQbNVc…uo‡rjѼ³º«§‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯áKp¢Kp¢Kp¢Kp¢Kp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢‹°â‹°â‹°â‹°âŒ°âŒ°âŒ°âLp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢„¨Û„¨Û„¨Û„©Û„©Û„©Û„©Û„©Û„©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©ÛGkžGkžGkžGlžGlžGlž…©Ü…©Ü…©Ü…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž'K}'K}'K}'K}DhšDhšDhšIP\=J[=J[=J[=J[ -> ->(.7#)2#)2(.7(.7(.7#)2(.7(/7(/7)/8)/8)/803966:E?AC>A856,07%'*%')$$$######(((DDDBBB8888888880 cF1w]O�cS{`QS;+57'   *      ;?E7CU;HY=I[ JJJMMMKMPacfbhq‘— ƒ�¡ƒ�¡‘— �“œ�“œ�“œŒ“›Œ’›Œ’›‹‘š‘— ‘— �—Ÿ™Ÿ¨�”œ�“œ�“œ„‘¢„‘¢„‘¢„‘¢EQcHScNVd´¨§¿®¨Èµ®¯�‘‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯á‹¯â‹¯â‹¯â‹¯â‹¯â‹¯â‹°â‹°â‹°â‹°â‹°â‹°â‹°âLp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Œ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âLp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp¢Lp£Lp£Lp£Lp£Lp£Lp£Lp£Lp£Lp£Lp£Lp£„©Û„©Û„©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Û…©Ü…©Ü…©ÜGlžGlž…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÝHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž‡«Ý‡«ÝDhšDhšDhšDhš=J[=J[=J[=J[=J[=J[ ->(/7#)2#)2(.7(.7(.7#*2(/7)/8)/8)/8)/8)08*0903:56:88@KBB=;@348*08&(+'(*%%%$$$(((EEE(((&&&">-"bF3oXMs[Ow]Py^P�qbpXMdH5R<,Q;, &%%#'-"'-&3DS_qP\nR_p>J\?K]AG@B::@66:-29'),)'%BBBFFFEEE)))))))))&&& @@@FFFACFZ\_[ajagp„�¢„�¢„�¢ž¥­Ÿ¦®—�¦–�¥�–ž�•žŽ•�Ž”��”œ�“œ‘— �—Ÿ›¡ªš ©™ ¨Ž•�Ž”�Ž”�…‘£…‘£…‘£EQcGRcKTdPWd­¥§¿¯ª‹°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°ãŒ°ãŒ°ãŒ°ãŒ°ãLp£Lp£Lq£Lq£Lq£Lq£Lq£Lq£Lq£Œ±ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ãMq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£…©Û…©Û…©Û…©Û…©Û…©Û…©Ü…©Ü…©Ü…©Ü…©Ü…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ†ªÜHlžHlžHlžHlžHlž†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†«Ý†«Ý†«Ý†«Ý†«Ý†«Ý†«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«ÝHlžHlžHlŸHlŸHlŸHlŸHlŸ‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Þ‡«Þ‡«Þ‡«Þ��Ÿ>J\>J\=J[=J[=J[=J[FLU39B#*2(/7)/7)/8$*3$*3$*3)/8)08*09*09*19',5(-5*.6.17338@<=G@BH@BXW]UUXLPWFHKDFHKKKHHH+++%%%%%%$$$###!!!!!!777777777777777777777AAAFFFACFACF\^aeltbhqDQbDQbDQbŸ¥®¡§°¡§°¡§°¡§°—�¦�–Ÿ”š£”š£“™¢’™¡’˜¡‘˜ ‘— ›¡ª›¡ªš ©�•ž™Ÿ¨Ž”�ERcERcERcERcHScLUdRXd|njŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°âŒ°ãŒ°ãŒ°ãŒ°ãŒ°ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ã�±ã�±ã�±ã�±ãMq£Mq£Mq£Mq£Mq£Mq£�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ãMq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£Mq£…©Ü…©Ü…©Ü…©Ü…©Ü…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ…ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlž†ªÜ†ªÜ†ªÜ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†ªÝ†«Ý†«Ý†«Ý†«Ý†«Ý†«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«ÝHlŸHlŸHlŸHlŸHlŸ‡«Ý‡«Ý‡«Ý‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ�ŽŸ�ŽŸ�ŽŸ�ŽŸ>J\=J[=J[FLUFLU(/7(/7*08*08%+3$*3$+3$+3*09*09*19&,5&,5'-6).6*/7-18NPURRVXUVc]^f^_[X]\XYTUZLQYKMPFHJ)))(((&&&%%%%%%$$$$$$###!!!!!!!!!777777777BBBEEEACGADGFIL\ckZ`iTZcDQbDQbDQbagpbiqcircir¢©±¢¨±¡¨°¡§°•œ¤•›¤”›£”š£“™¢’™¡’˜¡œ¢«œ¢«›¡ªš¡©�•žY`hY_hERcERcERcGSdJTdNVdTYeLp¢Lp¢Œ°ãŒ°ãŒ°ãŒ°ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ãŒ±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ãMq£Mq£�±ã�±ã�±ã�±ä�±ä�±ä�±ä�±ä�±ä�±ä�±ä�±ä�±ä�²ä�²ä�²ä�²ä�²ä�²ä�²ä�²ä�²ä�²ä�²ä�²ä�²äMq¤Mq¤Mq¤Mq¤Mq¤Mq¤Mq¤Mq¤Mq¤Mq¤Mq¤…ªÜ…ªÜ…ªÜ…ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž†ªÝ†ªÝ†«Ý†«Ý†«Ý†«Ý†«Ý†«Ý†«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«ÝHmŸ‡«Þ‡«Þ‡«Þ‡«Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þ�ŽŸ�ŽŸ�ŽŸ�ŽŸ�ŽŸ�ŽŸ�ŽŸFLUFLUFLU)/8+08+08&+3&+3%+4%+4%+4*19+1:&,5'-5'-6(.6FLTHMTINUKOVOQWSTXYWX`[^lbac]_f_\a_aY\aRX_,.1*,.*+-***((('''&&&%%%%%%$$$$$$$$$###!!!!!!!!!!!!!!!%%%%%%%%%%%%"""""""""KKKJJJFFFGIL]_b^dm\bkV]eDQbEQcEQcEQccirdjsdksektdjsdjscir£©²¢¨±¢¨±–œ¥•œ¤•›¤”›£”š£“™¢’™¡�£¬œ¢«›¢ª[ajZ`iOU^ERcERcFRdFRdITdLUdPWeVZeLp£Lq£Lq£Lq£�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ã�±ä�±ä�±ä�±ä�±ä�±ä�²ä�²ä�²äMq£�²ä�²ä�²ä�²ä�²ä�²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äMr¤Mr¤Mr¤Mr¤Mr¤Mr¤Mr¤Mr¤Mr¤Mr¤†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž†«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Þ‡«Þ‡«Þ‡«Þ‡«ÞHmŸHmŸHmŸ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þ�ŽŸ�ŽŸ�ŽŸ�ŽŸ‚Ž ‚Ž ‚Ž ‚Ž ”›£Š�™ŠŽ•-18,18',3',4',4&,4%,4+1:,2:'-5DJSEKSEKTFLTFLUHMUINVKOWLPWQSYTUZWWZpjje^`offb\_h`]eaaCCG8;A27?-/2+-/.+)******)))((('''&&&&&&%%%%%%$$$$$$$$$$$$$$$$$$######???EEEEEEEEE((((((###&&&%%%HJMHJMHJMHJM_en]dlZ`i_enEQcEQcEQcEQcbhqektflufluflufluektektdksdjscjr£©²¢©±¢¨±–œ¥•œ¤•›¤”›£”š£“™¢�£¬\ckQW`[ajZaiOU^FRdFRdFRdHSdKUdNVeRXeX\fLq£Mq£Mq£Mq£Mq£�±ã�±ã�±ã�±ã�±ã�±ä�±ä�±ä�±ä�±ä�²ä�²ä�²ä�²ä�²ä�²ä�²ä�²äŽ²äŽ²äŽ²äŽ²äŽ²äMr¤Mr¤Mr¤Mr¤Mr¤Ž²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²åŽ²åŽ²åŽ²åŽ²åŽ²åŽ²åŽ²åŽ²åNr¤Nr¤Nr¤Nr¤Nr¤Nr¤Nr¤Nr¤†ªÜ†ªÜ†ªÜ†ªÜ†ªÜ†ªÜHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlž‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡¬Þ‡¬Þ‡¬ÞHmŸHmŸHmŸHmŸImŸImŸImŸˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þ‚Ž ‚Ž ‚Ž ‚Ž ‚Ž ‚Ž ‚Ž ‚Ž ”›£Š‘™‹�•‹�•PT[KOVJOV(-4(-4'-5'-5JOXEKSEKSEKTFLTFLTGMUGMUHNVIOWKPWLQXMRYPTZTV[\]a_^asljd^azporjkE@CLEBIEFEDG29A28A17@135,.1+-0+,/./1..0'),)))++++++++++++***FFFFFFACFACFEEEACFACFŠŒ�JLOJLOKQZ_en]clY_hU[dEQcEQcEQcEQcEQcagp[aj\bk\bkgnvgnvgmvgmvfluflueltektdksdjscjrcir¢©±—�¦–œ¥•œ¤•›¤TZcSYbRYaRXaQW`[bj[ajZ`iFSdFSdGSdJTdLVePXeTZfZ]fMq£Mq£Mq£Mq£Mq£Mq£Mq£�²ä�²ä�²ä�²ä�²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äŽ²äNr¤Nr¤Nr¤Nr¤Nr¤Nr¤Nr¤Nr¤Nr¤Ž²åŽ²åŽ²åŽ²åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³åŽ³å�³å�³å�³å�³å�³å�³å�³åNr¤Nr¤Nr¤Nr¤Nr¤�³å�³å†ªÜ†ªÜ†ªÝHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlžHlŸHlŸHlŸHlŸHlŸHlŸ‡«Ý‡«Ý‡«Ý‡«Ý‡«Ý‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡«Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬Þ‡¬ÞImŸImŸImŸImŸImŸImŸImŸImŸImŸImŸˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬Þˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ¬ßˆ­ß‚Ž ‚Ž ‚Ž ‚Ž ‚� ‚� ‚� ‚� ‚� …Œ”’•šŒ�•‘”›LPVLPWKPW‹�—‹�—‹�˜�•�‹‘™FLTFLTFLUGMUGMUHMVHNVINWIOWKPXLQYMRYNSZTX`X[a[]b]^c__ccacib`JDGi__aYYPJLD@C=;AKEDTQR@?A>>A;/5>.4=-4 1} { + set blue DeepSkyBlue3 + set red red + set bisque bisque3 + set green SeaGreen3 +} else { + set blue black + set red black + set bisque black + set green black +} + +# Set up demos within each of the areas of the grid. + +$c create text 5c .2c -text Lines -anchor n +$c create line 1c 1c 3c 1c 1c 4c 3c 4c -width 2m -fill $blue \ + -cap butt -join miter -tags item +$c create line 4.67c 1c 4.67c 4c -arrow last -tags item +$c create line 6.33c 1c 6.33c 4c -arrow both -tags item +$c create line 5c 6c 9c 6c 9c 1c 8c 1c 8c 4.8c 8.8c 4.8c 8.8c 1.2c \ + 8.2c 1.2c 8.2c 4.6c 8.6c 4.6c 8.6c 1.4c 8.4c 1.4c 8.4c 4.4c \ + -width 3 -fill $red -tags item +$c create line 1c 5c 7c 5c 7c 7c 9c 7c -width .5c \ + -stipple @[file join $tk_library demos images gray25.bmp] \ + -arrow both -arrowshape {15 15 7} -tags item +$c create line 1c 7c 1.75c 5.8c 2.5c 7c 3.25c 5.8c 4c 7c -width .5c \ + -cap round -join round -tags item + +$c create text 15c .2c -text "Curves (smoothed lines)" -anchor n +$c create line 11c 4c 11.5c 1c 13.5c 1c 14c 4c -smooth on \ + -fill $blue -tags item +$c create line 15.5c 1c 19.5c 1.5c 15.5c 4.5c 19.5c 4c -smooth on \ + -arrow both -width 3 -tags item +$c create line 12c 6c 13.5c 4.5c 16.5c 7.5c 18c 6c \ + 16.5c 4.5c 13.5c 7.5c 12c 6c -smooth on -width 3m -cap round \ + -stipple @[file join $tk_library demos images gray25.bmp] \ + -fill $red -tags item + +$c create text 25c .2c -text Polygons -anchor n +$c create polygon 21c 1.0c 22.5c 1.75c 24c 1.0c 23.25c 2.5c \ + 24c 4.0c 22.5c 3.25c 21c 4.0c 21.75c 2.5c -fill $green \ + -outline black -width 4 -tags item +$c create polygon 25c 4c 25c 4c 25c 1c 26c 1c 27c 4c 28c 1c \ + 29c 1c 29c 4c 29c 4c -fill $red -smooth on -tags item +$c create polygon 22c 4.5c 25c 4.5c 25c 6.75c 28c 6.75c \ + 28c 5.25c 24c 5.25c 24c 6.0c 26c 6c 26c 7.5c 22c 7.5c \ + -stipple @[file join $tk_library demos images gray25.bmp] \ + -outline black -tags item + +$c create text 5c 8.2c -text Rectangles -anchor n +$c create rectangle 1c 9.5c 4c 12.5c -outline $red -width 3m -tags item +$c create rectangle 0.5c 13.5c 4.5c 15.5c -fill $green -tags item +$c create rectangle 6c 10c 9c 15c -outline {} \ + -stipple @[file join $tk_library demos images gray25.bmp] \ + -fill $blue -tags item + +$c create text 15c 8.2c -text Ovals -anchor n +$c create oval 11c 9.5c 14c 12.5c -outline $red -width 3m -tags item +$c create oval 10.5c 13.5c 14.5c 15.5c -fill $green -tags item +$c create oval 16c 10c 19c 15c -outline {} \ + -stipple @[file join $tk_library demos images gray25.bmp] \ + -fill $blue -tags item + +$c create text 25c 8.2c -text Text -anchor n +$c create rectangle 22.4c 8.9c 22.6c 9.1c +$c create text 22.5c 9c -anchor n -font $font1 -width 4c \ + -text "A short string of text, word-wrapped, justified left, and anchored north (at the top). The rectangles show the anchor points for each piece of text." -tags item +$c create rectangle 25.4c 10.9c 25.6c 11.1c +$c create text 25.5c 11c -anchor w -font $font1 -fill $blue \ + -text "Several lines,\n each centered\nindividually,\nand all anchored\nat the left edge." \ + -justify center -tags item +$c create rectangle 24.9c 13.9c 25.1c 14.1c +$c create text 25c 14c -font $font2 -anchor c -fill $red -stipple gray50 \ + -text "Stippled characters" -tags item + +$c create text 5c 16.2c -text Arcs -anchor n +$c create arc 0.5c 17c 7c 20c -fill $green -outline black \ + -start 45 -extent 270 -style pieslice -tags item +$c create arc 6.5c 17c 9.5c 20c -width 4m -style arc \ + -outline $blue -start -135 -extent 270 -tags item \ + -outlinestipple @[file join $tk_library demos images gray25.bmp] +$c create arc 0.5c 20c 9.5c 24c -width 4m -style pieslice \ + -fill {} -outline $red -start 225 -extent -90 -tags item +$c create arc 5.5c 20.5c 9.5c 23.5c -width 4m -style chord \ + -fill $blue -outline {} -start 45 -extent 270 -tags item + +$c create text 15c 16.2c -text Bitmaps -anchor n +$c create bitmap 13c 20c -tags item \ + -bitmap @[file join $tk_library demos images face.bmp] +$c create bitmap 17c 18.5c -tags item \ + -bitmap @[file join $tk_library demos images noletter.bmp] +$c create bitmap 17c 21.5c -tags item \ + -bitmap @[file join $tk_library demos images letters.bmp] + +$c create text 25c 16.2c -text Windows -anchor n +button $c.button -text "Press Me" -command "butPress $c $red" +$c create window 21c 18c -window $c.button -anchor nw -tags item +entry $c.entry -width 20 -relief sunken +$c.entry insert end "Edit this text" +$c create window 21c 21c -window $c.entry -anchor nw -tags item +scale $c.scale -from 0 -to 100 -length 6c -sliderlength .4c \ + -width .5c -tickinterval 0 +$c create window 28.5c 17.5c -window $c.scale -anchor n -tags item +$c create text 21c 17.9c -text Button: -anchor sw +$c create text 21c 20.9c -text Entry: -anchor sw +$c create text 28.5c 17.4c -text Scale: -anchor s + +# Set up event bindings for canvas: + +$c bind item "itemEnter $c" +$c bind item "itemLeave $c" +bind $c <2> "$c scan mark %x %y" +bind $c "$c scan dragto %x %y" +bind $c <3> "itemMark $c %x %y" +bind $c "itemStroke $c %x %y" +bind $c "itemsUnderArea $c" +bind $c <1> "itemStartDrag $c %x %y" +bind $c "itemDrag $c %x %y" + +# Utility procedures for highlighting the item under the pointer: + +proc itemEnter {c} { + global restoreCmd + + if {[winfo depth $c] == 1} { + set restoreCmd {} + return + } + set type [$c type current] + if {$type == "window"} { + set restoreCmd {} + return + } + if {$type == "bitmap"} { + set bg [lindex [$c itemconf current -background] 4] + set restoreCmd [list $c itemconfig current -background $bg] + $c itemconfig current -background SteelBlue2 + return + } + set fill [lindex [$c itemconfig current -fill] 4] + if {(($type == "rectangle") || ($type == "oval") || ($type == "arc")) + && ($fill == "")} { + set outline [lindex [$c itemconfig current -outline] 4] + set restoreCmd "$c itemconfig current -outline $outline" + $c itemconfig current -outline SteelBlue2 + } else { + set restoreCmd "$c itemconfig current -fill $fill" + $c itemconfig current -fill SteelBlue2 + } +} + +proc itemLeave {c} { + global restoreCmd + + eval $restoreCmd +} + +# Utility procedures for stroking out a rectangle and printing what's +# underneath the rectangle's area. + +proc itemMark {c x y} { + global areaX1 areaY1 + set areaX1 [$c canvasx $x] + set areaY1 [$c canvasy $y] + $c delete area +} + +proc itemStroke {c x y} { + global areaX1 areaY1 areaX2 areaY2 + set x [$c canvasx $x] + set y [$c canvasy $y] + if {($areaX1 != $x) && ($areaY1 != $y)} { + $c delete area + $c addtag area withtag [$c create rect $areaX1 $areaY1 $x $y \ + -outline black] + set areaX2 $x + set areaY2 $y + } +} + +proc itemsUnderArea {c} { + global areaX1 areaY1 areaX2 areaY2 + set area [$c find withtag area] + set items "" + foreach i [$c find enclosed $areaX1 $areaY1 $areaX2 $areaY2] { + if {[lsearch [$c gettags $i] item] != -1} { + lappend items $i + } + } + puts stdout "Items enclosed by area: $items" + set items "" + foreach i [$c find overlapping $areaX1 $areaY1 $areaX2 $areaY2] { + if {[lsearch [$c gettags $i] item] != -1} { + lappend items $i + } + } + puts stdout "Items overlapping area: $items" +} + +set areaX1 0 +set areaY1 0 +set areaX2 0 +set areaY2 0 + +# Utility procedures to support dragging of items. + +proc itemStartDrag {c x y} { + global lastX lastY + set lastX [$c canvasx $x] + set lastY [$c canvasy $y] +} + +proc itemDrag {c x y} { + global lastX lastY + set x [$c canvasx $x] + set y [$c canvasy $y] + $c move current [expr {$x-$lastX}] [expr {$y-$lastY}] + set lastX $x + set lastY $y +} + +# Procedure that's invoked when the button embedded in the canvas +# is invoked. + +proc butPress {w color} { + set i [$w create text 25c 18.1c -text "Ouch!!" -fill $color -anchor n] + after 500 "$w delete $i" +} diff --git a/lib/tk8.4/demos/ixset b/lib/tk8.4/demos/ixset new file mode 100644 index 00000000..3ae26891 --- /dev/null +++ b/lib/tk8.4/demos/ixset @@ -0,0 +1,335 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" ${1+"$@"} + +# ixset -- +# A nice interface to "xset" to change X server settings +# +# History : +# 91/11/23 : pda@masi.ibp.fr, jt@ratp.fr : design +# 92/08/01 : pda@masi.ibp.fr : cleaning +# +# RCS: @(#) $Id: ixset,v 1.4 2001/11/05 10:13:53 dkf Exp $ + +# +# Button actions +# + +proc quit {} { + destroy . +} + +proc ok {} { + writesettings + quit +} + +proc cancel {} { + readsettings + dispsettings + .buttons.apply configure -state disabled + .buttons.cancel configure -state disabled +} + +proc apply {} { + writesettings + .buttons.apply configure -state disabled + .buttons.cancel configure -state disabled +} + +# +# Read current settings +# + +proc readsettings {} { + global kbdrep ; set kbdrep "on" + global kbdcli ; set kbdcli 0 + global bellvol ; set bellvol 100 + global bellpit ; set bellpit 440 + global belldur ; set belldur 100 + global mouseacc ; set mouseacc "3/1" + global mousethr ; set mousethr 4 + global screenbla ; set screenbla "blank" + global screentim ; set screentim 600 + global screencyc ; set screencyc 600 + + set xfd [open "|xset q" r] + while {[gets $xfd line] > -1} { + set kw [lindex $line 0] + + case $kw in { + {auto} + { + set rpt [lindex $line 1] + if {[expr "{$rpt} == {repeat:}"]} then { + set kbdrep [lindex $line 2] + set kbdcli [lindex $line 6] + } + } + {bell} + { + set bellvol [lindex $line 2] + set bellpit [lindex $line 5] + set belldur [lindex $line 8] + } + {acceleration:} + { + set mouseacc [lindex $line 1] + set mousethr [lindex $line 3] + } + {prefer} + { + set bla [lindex $line 2] + set screenbla [expr "{$bla} == {yes} ? {blank} : {noblank}"] + } + {timeout:} + { + set screentim [lindex $line 1] + set screencyc [lindex $line 3] + } + } + } + close $xfd + + # puts stdout [format "Key REPEAT = %s\n" $kbdrep] + # puts stdout [format "Key CLICK = %s\n" $kbdcli] + # puts stdout [format "Bell VOLUME = %s\n" $bellvol] + # puts stdout [format "Bell PITCH = %s\n" $bellpit] + # puts stdout [format "Bell DURATION = %s\n" $belldur] + # puts stdout [format "Mouse ACCELERATION = %s\n" $mouseacc] + # puts stdout [format "Mouse THRESHOLD = %s\n" $mousethr] + # puts stdout [format "Screen BLANCK = %s\n" $screenbla] + # puts stdout [format "Screen TIMEOUT = %s\n" $screentim] + # puts stdout [format "Screen CYCLE = %s\n" $screencyc] +} + + +# +# Write settings into the X server +# + +proc writesettings {} { + global kbdrep kbdcli bellvol bellpit belldur + global mouseacc mousethr screenbla screentim screencyc + + set bellvol [.bell.vol get] + set bellpit [.bell.val.pit.entry get] + set belldur [.bell.val.dur.entry get] + + if {[expr "{$kbdrep} == {on}"]} then { + set kbdcli [.kbd.val.cli get] + } else { + set kbdcli "off" + } + + set mouseacc [.mouse.hor.acc.entry get] + set mousethr [.mouse.hor.thr.entry get] + + set screentim [.screen.tim.entry get] + set screencyc [.screen.cyc.entry get] + + exec xset \ + b $bellvol $bellpit $belldur \ + c $kbdcli \ + r $kbdrep \ + m $mouseacc $mousethr \ + s $screentim $screencyc \ + s $screenbla +} + + +# +# Sends all settings to the window +# + +proc dispsettings {} { + global kbdrep kbdcli bellvol bellpit belldur + global mouseacc mousethr screenbla screentim screencyc + + .bell.vol set $bellvol + .bell.val.pit.entry delete 0 end + .bell.val.pit.entry insert 0 $bellpit + .bell.val.dur.entry delete 0 end + .bell.val.dur.entry insert 0 $belldur + + .kbd.val.onoff [expr "{$kbdrep} == {on} ? {select} : {deselect}"] + .kbd.val.cli set $kbdcli + + .mouse.hor.acc.entry delete 0 end + .mouse.hor.acc.entry insert 0 $mouseacc + .mouse.hor.thr.entry delete 0 end + .mouse.hor.thr.entry insert 0 $mousethr + + .screen.blank [expr "{$screenbla}=={blank} ? {select} : {deselect}"] + .screen.pat [expr "{$screenbla}!={blank} ? {select} : {deselect}"] + .screen.tim.entry delete 0 end + .screen.tim.entry insert 0 $screentim + .screen.cyc.entry delete 0 end + .screen.cyc.entry insert 0 $screencyc +} + + +# +# Create all windows, and pack them +# + +proc labelentry {path text length {range {}}} { + frame $path + label $path.label -text $text + if {[llength $range]} { + spinbox $path.entry -width $length -relief sunken \ + -from [lindex $range 0] -to [lindex $range 1] + } else { + entry $path.entry -width $length -relief sunken + } + pack $path.label -side left + pack $path.entry -side right -expand y -fill x +} + +proc createwindows {} { + # + # Buttons + # + + frame .buttons + button .buttons.ok -default active -command ok -text "Ok" + button .buttons.apply -default normal -command apply -text "Apply" \ + -state disabled + button .buttons.cancel -default normal -command cancel -text "Cancel" \ + -state disabled + button .buttons.quit -default normal -command quit -text "Quit" + + pack .buttons.ok .buttons.apply .buttons.cancel .buttons.quit \ + -side left -expand yes -pady 5 + + bind . {.buttons.ok flash; .buttons.ok invoke} + bind . {.buttons.quit flash; .buttons.quit invoke} + bind . <1> { + if {![string match .buttons* %W]} { + .buttons.apply configure -state normal + .buttons.cancel configure -state normal + } + } + bind . { + if {![string match .buttons* %W]} { + switch -glob %K { + Return - Escape - Tab - *Shift* {} + default { + .buttons.apply configure -state normal + .buttons.cancel configure -state normal + } + } + } + } + + # + # Bell settings + # + + labelframe .bell -text "Bell Settings" -padx 1.5m -pady 1.5m + scale .bell.vol \ + -from 0 -to 100 -length 200 -tickinterval 20 \ + -label "Volume (%)" -orient horizontal + + frame .bell.val + labelentry .bell.val.pit "Pitch (Hz)" 6 {25 20000} + labelentry .bell.val.dur "Duration (ms)" 6 {1 10000} + pack .bell.val.pit -side left -padx 5 + pack .bell.val.dur -side right -padx 5 + pack .bell.vol .bell.val -side top -expand yes + + # + # Keyboard settings + # + + labelframe .kbd -text "Keyboard Repeat Settings" -padx 1.5m -pady 1.5m + + frame .kbd.val + checkbutton .kbd.val.onoff \ + -text "On" \ + -onvalue "on" -offvalue "off" -variable kbdrep \ + -relief flat + scale .kbd.val.cli \ + -from 0 -to 100 -length 200 -tickinterval 20 \ + -label "Click Volume (%)" -orient horizontal + pack .kbd.val.onoff -side left -fill x -expand yes -padx {0 1m} + pack .kbd.val.cli -side left -expand yes -fill x -padx {1m 0} + + pack .kbd.val -side top -expand yes -pady 2 -fill x + + # + # Mouse settings + # + + labelframe .mouse -text "Mouse Settings" -padx 1.5m -pady 1.5m + + frame .mouse.hor + labelentry .mouse.hor.acc "Acceleration" 5 + labelentry .mouse.hor.thr "Threshold (pixels)" 3 {1 2000} + + pack .mouse.hor.acc -side left -padx {0 1m} + pack .mouse.hor.thr -side right -padx {1m 0} + + pack .mouse.hor -side top -expand yes + + # + # Screen Saver settings + # + + labelframe .screen -text "Screen-saver Settings" -padx 1.5m -pady 1.5m + + radiobutton .screen.blank \ + -variable screenblank -text "Blank" -relief flat \ + -value "blank" -variable screenbla -anchor w + radiobutton .screen.pat \ + -variable screenblank -text "Pattern" -relief flat \ + -value "noblank" -variable screenbla -anchor w + labelentry .screen.tim "Timeout (s)" 5 {1 100000} + labelentry .screen.cyc "Cycle (s)" 5 {1 100000} + + grid .screen.blank .screen.tim -sticky e + grid .screen.pat .screen.cyc -sticky e + grid configure .screen.blank .screen.pat -sticky ew + + # + # Main window + # + + pack .buttons -side top -fill both + pack .bell .kbd .mouse .screen -side top -fill both -expand yes \ + -padx 1m -pady 1m + + # + # Let the user resize our window + # + wm minsize . 10 10 +} + +############################################################################## +# Main program + +# +# Listen what "xset" tells us... +# + +readsettings + +# +# Create all windows +# + +createwindows + +# +# Write xset parameters +# + +dispsettings + +# +# Now, wait for user actions... +# + +# Local Variables: +# mode: tcl +# End: diff --git a/lib/tk8.4/demos/label.tcl b/lib/tk8.4/demos/label.tcl new file mode 100644 index 00000000..47babe6c --- /dev/null +++ b/lib/tk8.4/demos/label.tcl @@ -0,0 +1,40 @@ +# label.tcl -- +# +# This demonstration script creates a toplevel window containing +# several label widgets. +# +# RCS: @(#) $Id: label.tcl,v 1.2 1998/09/14 18:23:29 stanton Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .label +catch {destroy $w} +toplevel $w +wm title $w "Label Demonstration" +wm iconname $w "label" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Five labels are displayed below: three textual ones on the left, and a bitmap label and a text label on the right. Labels are pretty boring because you can't do anything with them." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +frame $w.left +frame $w.right +pack $w.left $w.right -side left -expand yes -padx 10 -pady 10 -fill both + +label $w.left.l1 -text "First label" +label $w.left.l2 -text "Second label, raised" -relief raised +label $w.left.l3 -text "Third label, sunken" -relief sunken +pack $w.left.l1 $w.left.l2 $w.left.l3 -side top -expand yes -pady 2 -anchor w + +label $w.right.bitmap -borderwidth 2 -relief sunken \ + -bitmap @[file join $tk_library demos images face.bmp] +label $w.right.caption -text "Tcl/Tk Proprietor" +pack $w.right.bitmap $w.right.caption -side top diff --git a/lib/tk8.4/demos/labelframe.tcl b/lib/tk8.4/demos/labelframe.tcl new file mode 100644 index 00000000..af8954b6 --- /dev/null +++ b/lib/tk8.4/demos/labelframe.tcl @@ -0,0 +1,80 @@ +# labelframe.tcl -- +# +# This demonstration script creates a toplevel window containing +# several labelframe widgets. +# +# RCS: @(#) $Id: labelframe.tcl,v 1.2 2001/10/30 11:21:50 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .labelframe +catch {destroy $w} +toplevel $w +wm title $w "Labelframe Demonstration" +wm iconname $w "labelframe" +positionWindow $w + +# Some information + +label $w.msg -font $font -wraplength 4i -justify left -text "Labelframes are\ + used to group related widgets together. The label may be either \ + plain text or another widget." +pack $w.msg -side top + +# The bottom buttons + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" -width 15 +button $w.buttons.code -text "See Code" -command "showCode $w" -width 15 +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +# Demo area + +frame $w.f +pack $w.f -side bottom -fill both -expand 1 +set w $w.f + +# A group of radiobuttons in a labelframe + +labelframe $w.f -text "Value" -padx 2 -pady 2 +grid $w.f -row 0 -column 0 -pady 2m -padx 2m + +foreach value {1 2 3 4} { + radiobutton $w.f.b$value -text "This is value $value" \ + -variable lfdummy -value $value + pack $w.f.b$value -side top -fill x -pady 2 +} + + +# Using a label window to control a group of options. + +proc lfEnableButtons {w} { + foreach child [winfo children $w] { + if {$child == "$w.cb"} continue + if {$::lfdummy2} { + $child configure -state normal + } else { + $child configure -state disabled + } + } +} + +labelframe $w.f2 -pady 2 -padx 2 +checkbutton $w.f2.cb -text "Use this option." -variable lfdummy2 \ + -command "lfEnableButtons $w.f2" -padx 0 +$w.f2 configure -labelwidget $w.f2.cb +grid $w.f2 -row 0 -column 1 -pady 2m -padx 2m + +set t 0 +foreach str {Option1 Option2 Option3} { + checkbutton $w.f2.b$t -text $str + pack $w.f2.b$t -side top -fill x -pady 2 + incr t +} +lfEnableButtons $w.f2 + + +grid columnconfigure $w {0 1} -weight 1 diff --git a/lib/tk8.4/demos/license.terms b/lib/tk8.4/demos/license.terms new file mode 100644 index 00000000..03ca6fcb --- /dev/null +++ b/lib/tk8.4/demos/license.terms @@ -0,0 +1,39 @@ +This software is copyrighted by the Regents of the University of +California, Sun Microsystems, Inc., and other parties. The following +terms apply to all files associated with the software unless explicitly +disclaimed in individual files. + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. + +GOVERNMENT USE: If you are acquiring this software on behalf of the +U.S. government, the Government shall have only "Restricted Rights" +in the software and related documentation as defined in the Federal +Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you +are acquiring the software on behalf of the Department of Defense, the +software shall be classified as "Commercial Computer Software" and the +Government shall have only "Restricted Rights" as defined in Clause +252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the +authors grant the U.S. Government and others acting in its behalf +permission to use and distribute the software in accordance with the +terms specified in this license. diff --git a/lib/tk8.4/demos/menu.tcl b/lib/tk8.4/demos/menu.tcl new file mode 100644 index 00000000..9352d733 --- /dev/null +++ b/lib/tk8.4/demos/menu.tcl @@ -0,0 +1,160 @@ +# menu.tcl -- +# +# This demonstration script creates a window with a bunch of menus +# and cascaded menus using menubars. +# +# RCS: @(#) $Id: menu.tcl,v 1.4 2002/08/31 06:12:28 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .menu +catch {destroy $w} +toplevel $w +wm title $w "Menu Demonstration" +wm iconname $w "menu" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left +if {[string equal [tk windowingsystem] "classic"] + || [string equal [tk windowingsystem] "aqua"]} { + $w.msg configure -text "This window contains a menubar with cascaded menus. You can invoke entries with an accelerator by typing Command+x, where \"x\" is the character next to the command key symbol. The rightmost menu can be torn off into a palette by dragging outside of its bounds and releasing the mouse." +} else { + $w.msg configure -text "This window contains a menubar with cascaded menus. You can post a menu from the keyboard by typing Alt+x, where \"x\" is the character underlined on the menu. You can then traverse among the menus using the arrow keys. When a menu is posted, you can invoke the current entry by typing space, or you can invoke any entry by typing its underlined character. If a menu entry has an accelerator, you can invoke the entry without posting the menu just by typing the accelerator. The rightmost menu can be torn off into a palette by selecting the first item in the menu." +} +pack $w.msg -side top + +set menustatus " " +frame $w.statusBar +label $w.statusBar.label -textvariable menustatus -relief sunken -bd 1 -font "Helvetica 10" -anchor w +pack $w.statusBar.label -side left -padx 2 -expand yes -fill both +pack $w.statusBar -side bottom -fill x -pady 2 + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +menu $w.menu -tearoff 0 + +set m $w.menu.file +menu $m -tearoff 0 +$w.menu add cascade -label "File" -menu $m -underline 0 +$m add command -label "Open..." -command {error "this is just a demo: no action has been defined for the \"Open...\" entry"} +$m add command -label "New" -command {error "this is just a demo: no action has been defined for the \"New\" entry"} +$m add command -label "Save" -command {error "this is just a demo: no action has been defined for the \"Save\" entry"} +$m add command -label "Save As..." -command {error "this is just a demo: no action has been defined for the \"Save As...\" entry"} +$m add separator +$m add command -label "Print Setup..." -command {error "this is just a demo: no action has been defined for the \"Print Setup...\" entry"} +$m add command -label "Print..." -command {error "this is just a demo: no action has been defined for the \"Print...\" entry"} +$m add separator +$m add command -label "Dismiss Menus Demo" -command "destroy $w" + +set m $w.menu.basic +$w.menu add cascade -label "Basic" -menu $m -underline 0 +menu $m -tearoff 0 +$m add command -label "Long entry that does nothing" +if {[string equal [tk windowingsystem] "classic"] + || [string equal [tk windowingsystem] "aqua"]} { + set modifier Command +} elseif {$tcl_platform(platform) == "windows"} { + set modifier Control +} else { + set modifier Meta +} +foreach i {A B C D E F} { + $m add command -label "Print letter \"$i\"" -underline 14 \ + -accelerator Meta+$i -command "puts $i" -accelerator $modifier+$i + bind $w <$modifier-[string tolower $i]> "puts $i" +} + +set m $w.menu.cascade +$w.menu add cascade -label "Cascades" -menu $m -underline 0 +menu $m -tearoff 0 +$m add command -label "Print hello" \ + -command {puts stdout "Hello"} -accelerator $modifier+H -underline 6 +bind $w <$modifier-h> {puts stdout "Hello"} +$m add command -label "Print goodbye" -command {\ + puts stdout "Goodbye"} -accelerator $modifier+G -underline 6 +bind $w <$modifier-g> {puts stdout "Goodbye"} +$m add cascade -label "Check buttons" \ + -menu $w.menu.cascade.check -underline 0 +$m add cascade -label "Radio buttons" \ + -menu $w.menu.cascade.radio -underline 0 + +set m $w.menu.cascade.check +menu $m -tearoff 0 +$m add check -label "Oil checked" -variable oil +$m add check -label "Transmission checked" -variable trans +$m add check -label "Brakes checked" -variable brakes +$m add check -label "Lights checked" -variable lights +$m add separator +$m add command -label "Show current values" \ + -command "showVars $w.menu.cascade.dialog oil trans brakes lights" +$m invoke 1 +$m invoke 3 + +set m $w.menu.cascade.radio +menu $m -tearoff 0 +$m add radio -label "10 point" -variable pointSize -value 10 +$m add radio -label "14 point" -variable pointSize -value 14 +$m add radio -label "18 point" -variable pointSize -value 18 +$m add radio -label "24 point" -variable pointSize -value 24 +$m add radio -label "32 point" -variable pointSize -value 32 +$m add sep +$m add radio -label "Roman" -variable style -value roman +$m add radio -label "Bold" -variable style -value bold +$m add radio -label "Italic" -variable style -value italic +$m add sep +$m add command -label "Show current values" \ + -command "showVars $w.menu.cascade.dialog pointSize style" +$m invoke 1 +$m invoke 7 + +set m $w.menu.icon +$w.menu add cascade -label "Icons" -menu $m -underline 0 +menu $m -tearoff 0 +$m add command \ + -bitmap @[file join $tk_library demos images pattern.bmp] \ + -hidemargin 1 \ + -command { + tk_dialog .pattern {Bitmap Menu Entry} {The menu entry you invoked displays a bitmap rather than a text string. Other than this, it is just like any other menu entry.} {} 0 OK +} +foreach i {info questhead error} { + $m add command -bitmap $i -command "puts {You invoked the $i bitmap}" -hidemargin 1 +} +$m entryconfigure 2 -columnbreak 1 + +set m $w.menu.more +$w.menu add cascade -label "More" -menu $m -underline 0 +menu $m -tearoff 0 +foreach i {{An entry} {Another entry} {Does nothing} {Does almost nothing} {Make life meaningful}} { + $m add command -label $i -command [list puts "You invoked \"$i\""] +} +$m entryconfigure "Does almost nothing" \ + -bitmap questhead -compound left -command { + tk_dialog .compound {Compound Menu Entry} {The menu entry you invoked\ + displays both a bitmap and a text string. Other than this, it\ + is just like any other menu entry.} {} 0 OK +} + +set m $w.menu.colors +$w.menu add cascade -label "Colors" -menu $m -underline 1 +menu $m +foreach i {red orange yellow green blue} { + $m add command -label $i -background $i \ + -command [list puts "You invoked \"$i\""] +} + +$w configure -menu $w.menu + +bind Menu <> { + global $menustatus + if {[catch {%W entrycget active -label} label]} { + set label " " + } + set menustatus $label + update idletasks +} diff --git a/lib/tk8.4/demos/menubu.tcl b/lib/tk8.4/demos/menubu.tcl new file mode 100644 index 00000000..bfe6e5bb --- /dev/null +++ b/lib/tk8.4/demos/menubu.tcl @@ -0,0 +1,94 @@ +# menubutton.tcl -- +# +# This demonstration script creates a window with a bunch of menus +# and cascaded menus using menubuttons. +# +# # RCS: @(#) $Id: menubu.tcl,v 1.3 2002/08/31 06:12:28 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .menubutton +catch {destroy $w} +toplevel $w +wm title $w "Menu Button Demonstration" +wm iconname $w "menubutton" +positionWindow $w + + +frame $w.body +pack $w.body -expand 1 -fill both + +menubutton $w.body.below -text "Below" -underline 0 -direction below -menu $w.body.below.m -relief raised +menu $w.body.below.m -tearoff 0 +$w.body.below.m add command -label "Below menu: first item" -command "puts \"You have selected the first item from the Below menu.\"" +$w.body.below.m add command -label "Below menu: second item" -command "puts \"You have selected the second item from the Below menu.\"" +grid $w.body.below -row 0 -column 1 -sticky n +menubutton $w.body.right -text "Right" -underline 0 -direction right -menu $w.body.right.m -relief raised +menu $w.body.right.m -tearoff 0 +$w.body.right.m add command -label "Right menu: first item" -command "puts \"You have selected the first item from the Right menu.\"" +$w.body.right.m add command -label "Right menu: second item" -command "puts \"You have selected the second item from the Right menu.\"" +frame $w.body.center +menubutton $w.body.left -text "Left" -underline 0 -direction left -menu $w.body.left.m -relief raised +menu $w.body.left.m -tearoff 0 +$w.body.left.m add command -label "Left menu: first item" -command "puts \"You have selected the first item from the Left menu.\"" +$w.body.left.m add command -label "Left menu: second item" -command "puts \"You have selected the second item from the Left menu.\"" +grid $w.body.right -row 1 -column 0 -sticky w +grid $w.body.center -row 1 -column 1 -sticky news +grid $w.body.left -row 1 -column 2 -sticky e +menubutton $w.body.above -text "Above" -underline 0 -direction above -menu $w.body.above.m -relief raised +menu $w.body.above.m -tearoff 0 +$w.body.above.m add command -label "Above menu: first item" -command "puts \"You have selected the first item from the Above menu.\"" +$w.body.above.m add command -label "Above menu: second item" -command "puts \"You have selected the second item from the Above menu.\"" +grid $w.body.above -row 2 -column 1 -sticky s + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode .menubu" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +set body $w.body.center +label $body.label -wraplength 300 -font "Helvetica 14" -justify left -text "This is a demonstration of menubuttons. The \"Below\" menubutton pops its menu below the button; the \"Right\" button pops to the right, etc. There are two option menus directly below this text; one is just a standard menu and the other is a 16-color palette." +pack $body.label -side top -padx 25 -pady 25 +frame $body.buttons +pack $body.buttons -padx 25 -pady 25 +tk_optionMenu $body.buttons.options menubuttonoptions one two three +pack $body.buttons.options -side left -padx 25 -pady 25 +set m [tk_optionMenu $body.buttons.colors paletteColor Black red4 DarkGreen NavyBlue gray75 Red Green Blue gray50 Yellow Cyan Magenta White Brown DarkSeaGreen DarkViolet] +if {[string equal [tk windowingsystem] "classic"] + || [string equal [tk windowingsystem] "aqua"]} { + set topBorderColor Black + set bottomBorderColor Black +} else { + set topBorderColor gray50 + set bottomBorderColor gray75 +} +for {set i 0} {$i <= [$m index last]} {incr i} { + set name [$m entrycget $i -label] + image create photo image_$name -height 16 -width 16 + image_$name put $topBorderColor -to 0 0 16 1 + image_$name put $topBorderColor -to 0 1 1 16 + image_$name put $bottomBorderColor -to 0 15 16 16 + image_$name put $bottomBorderColor -to 15 1 16 16 + image_$name put $name -to 1 1 15 15 + + image create photo image_${name}_s -height 16 -width 16 + image_${name}_s put Black -to 0 0 16 2 + image_${name}_s put Black -to 0 2 2 16 + image_${name}_s put Black -to 2 14 16 16 + image_${name}_s put Black -to 14 2 16 14 + image_${name}_s put $name -to 2 2 14 14 + + $m entryconfigure $i -image image_$name -selectimage image_${name}_s -hidemargin 1 +} +$m configure -tearoff 1 +foreach i {Black gray75 gray50 White} { + $m entryconfigure $i -columnbreak 1 +} + +pack $body.buttons.colors -side left -padx 25 -pady 25 + + + diff --git a/lib/tk8.4/demos/msgbox.tcl b/lib/tk8.4/demos/msgbox.tcl new file mode 100644 index 00000000..4af68dc1 --- /dev/null +++ b/lib/tk8.4/demos/msgbox.tcl @@ -0,0 +1,65 @@ +# msgbox.tcl -- +# +# This demonstration script creates message boxes of various type +# +# RCS: @(#) $Id: msgbox.tcl,v 1.2 1998/09/14 18:23:29 stanton Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .msgbox +catch {destroy $w} +toplevel $w +wm title $w "Message Box Demonstration" +wm iconname $w "messagebox" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Choose the icon and type option of the message box. Then press the \"Message Box\" button to see the message box." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +button $w.buttons.vars -text "Message Box" \ + -command "showMessageBox $w" +pack $w.buttons.dismiss $w.buttons.code $w.buttons.vars -side left -expand 1 + +frame $w.left +frame $w.right +pack $w.left $w.right -side left -expand yes -fill y -pady .5c -padx .5c + +label $w.left.label -text "Icon" +frame $w.left.sep -relief ridge -bd 1 -height 2 +pack $w.left.label -side top +pack $w.left.sep -side top -fill x -expand no + +set msgboxIcon info +foreach i {error info question warning} { + radiobutton $w.left.b$i -text $i -variable msgboxIcon \ + -relief flat -value $i -width 16 -anchor w + pack $w.left.b$i -side top -pady 2 -anchor w -fill x +} + +label $w.right.label -text "Type" +frame $w.right.sep -relief ridge -bd 1 -height 2 +pack $w.right.label -side top +pack $w.right.sep -side top -fill x -expand no + +set msgboxType ok +foreach t {abortretryignore ok okcancel retrycancel yesno yesnocancel} { + radiobutton $w.right.$t -text $t -variable msgboxType \ + -relief flat -value $t -width 16 -anchor w + pack $w.right.$t -side top -pady 2 -anchor w -fill x +} + +proc showMessageBox {w} { + global msgboxIcon msgboxType + set button [tk_messageBox -icon $msgboxIcon -type $msgboxType \ + -title Message -parent $w\ + -message "This is a \"$msgboxType\" type messagebox with the \"$msgboxIcon\" icon"] + + tk_messageBox -icon info -message "You have selected \"$button\"" -type ok\ + -parent $w +} diff --git a/lib/tk8.4/demos/paned1.tcl b/lib/tk8.4/demos/paned1.tcl new file mode 100644 index 00000000..dbdd582e --- /dev/null +++ b/lib/tk8.4/demos/paned1.tcl @@ -0,0 +1,34 @@ +# paned1.tcl -- +# +# This demonstration script creates a toplevel window containing +# a paned window that separates two windows horizontally. +# +# RCS: @(#) $Id: paned1.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .paned1 +catch {destroy $w} +toplevel $w +wm title $w "Horizontal Paned Window Demonstration" +wm iconname $w "paned1" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two coloured windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)" +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +panedwindow $w.pane +pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m + +label $w.pane.left -text "This is the\nleft side" -bg yellow +label $w.pane.right -text "This is the\nright side" -bg cyan + +$w.pane add $w.pane.left $w.pane.right diff --git a/lib/tk8.4/demos/paned2.tcl b/lib/tk8.4/demos/paned2.tcl new file mode 100644 index 00000000..95495e6e --- /dev/null +++ b/lib/tk8.4/demos/paned2.tcl @@ -0,0 +1,76 @@ +# paned2.tcl -- +# +# This demonstration script creates a toplevel window containing +# a paned window that separates two windows vertically. +# +# RCS: @(#) $Id: paned2.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .paned2 +catch {destroy $w} +toplevel $w +wm title $w "Vertical Paned Window Demonstration" +wm iconname $w "paned2" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two scrolled windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)" +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +# Create the pane itself +panedwindow $w.pane -orient vertical +pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m + +# The top window is a listbox with scrollbar +set paneList { + {List of Tk Widgets} + button + canvas + checkbutton + entry + frame + label + labelframe + listbox + menu + menubutton + message + panedwindow + radiobutton + scale + scrollbar + spinbox + text + toplevel +} +set f [frame $w.pane.top] +listbox $f.list -listvariable paneList -yscrollcommand "$f.scr set" +# Invert the first item to highlight it +$f.list itemconfigure 0 \ + -background [$f.list cget -fg] -foreground [$f.list cget -bg] +scrollbar $f.scr -orient vertical -command "$f.list yview" +pack $f.scr -side right -fill y +pack $f.list -fill both -expand 1 + +# The bottom window is a text widget with scrollbar +set f [frame $w.pane.bottom] +text $f.text -xscrollcommand "$f.xscr set" -yscrollcommand "$f.yscr set" \ + -width 30 -wrap none +scrollbar $f.xscr -orient horizontal -command "$f.text xview" +scrollbar $f.yscr -orient vertical -command "$f.text yview" +grid $f.text $f.yscr -sticky nsew +grid $f.xscr -sticky nsew +grid columnconfigure $f 0 -weight 1 +grid rowconfigure $f 0 -weight 1 +$f.text insert 1.0 "This is just a normal text widget" + +# Now add our contents to the paned window +$w.pane add $w.pane.top $w.pane.bottom diff --git a/lib/tk8.4/demos/plot.tcl b/lib/tk8.4/demos/plot.tcl new file mode 100644 index 00000000..011f1401 --- /dev/null +++ b/lib/tk8.4/demos/plot.tcl @@ -0,0 +1,99 @@ +# plot.tcl -- +# +# This demonstration script creates a canvas widget showing a 2-D +# plot with data points that can be dragged with the mouse. +# +# RCS: @(#) $Id: plot.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .plot +catch {destroy $w} +toplevel $w +wm title $w "Plot Demonstration" +wm iconname $w "Plot" +positionWindow $w +set c $w.c + +label $w.msg -font $font -wraplength 4i -justify left -text "This window displays a canvas widget containing a simple 2-dimensional plot. You can doctor the data by dragging any of the points with mouse button 1." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +canvas $c -relief raised -width 450 -height 300 +pack $w.c -side top -fill x + +set plotFont {Helvetica 18} + +$c create line 100 250 400 250 -width 2 +$c create line 100 250 100 50 -width 2 +$c create text 225 20 -text "A Simple Plot" -font $plotFont -fill brown + +for {set i 0} {$i <= 10} {incr i} { + set x [expr {100 + ($i*30)}] + $c create line $x 250 $x 245 -width 2 + $c create text $x 254 -text [expr {10*$i}] -anchor n -font $plotFont +} +for {set i 0} {$i <= 5} {incr i} { + set y [expr {250 - ($i*40)}] + $c create line 100 $y 105 $y -width 2 + $c create text 96 $y -text [expr {$i*50}].0 -anchor e -font $plotFont +} + +foreach point { + {12 56} {20 94} {33 98} {32 120} {61 180} {75 160} {98 223} +} { + set x [expr {100 + (3*[lindex $point 0])}] + set y [expr {250 - (4*[lindex $point 1])/5}] + set item [$c create oval [expr {$x-6}] [expr {$y-6}] \ + [expr {$x+6}] [expr {$y+6}] -width 1 -outline black \ + -fill SkyBlue2] + $c addtag point withtag $item +} + +$c bind point "$c itemconfig current -fill red" +$c bind point "$c itemconfig current -fill SkyBlue2" +$c bind point <1> "plotDown $c %x %y" +$c bind point "$c dtag selected" +bind $c "plotMove $c %x %y" + +set plot(lastX) 0 +set plot(lastY) 0 + +# plotDown -- +# This procedure is invoked when the mouse is pressed over one of the +# data points. It sets up state to allow the point to be dragged. +# +# Arguments: +# w - The canvas window. +# x, y - The coordinates of the mouse press. + +proc plotDown {w x y} { + global plot + $w dtag selected + $w addtag selected withtag current + $w raise current + set plot(lastX) $x + set plot(lastY) $y +} + +# plotMove -- +# This procedure is invoked during mouse motion events. It drags the +# current item. +# +# Arguments: +# w - The canvas window. +# x, y - The coordinates of the mouse. + +proc plotMove {w x y} { + global plot + $w move selected [expr {$x-$plot(lastX)}] [expr {$y-$plot(lastY)}] + set plot(lastX) $x + set plot(lastY) $y +} diff --git a/lib/tk8.4/demos/puzzle.tcl b/lib/tk8.4/demos/puzzle.tcl new file mode 100644 index 00000000..fe487331 --- /dev/null +++ b/lib/tk8.4/demos/puzzle.tcl @@ -0,0 +1,84 @@ +# puzzle.tcl -- +# +# This demonstration script creates a 15-puzzle game using a collection +# of buttons. +# +# RCS: @(#) $Id: puzzle.tcl,v 1.4 2002/08/31 06:12:28 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +# puzzleSwitch -- +# This procedure is invoked when the user clicks on a particular button; +# if the button is next to the empty space, it moves the button into th +# empty space. + +proc puzzleSwitch {w num} { + global xpos ypos + if {(($ypos($num) >= ($ypos(space) - .01)) + && ($ypos($num) <= ($ypos(space) + .01)) + && ($xpos($num) >= ($xpos(space) - .26)) + && ($xpos($num) <= ($xpos(space) + .26))) + || (($xpos($num) >= ($xpos(space) - .01)) + && ($xpos($num) <= ($xpos(space) + .01)) + && ($ypos($num) >= ($ypos(space) - .26)) + && ($ypos($num) <= ($ypos(space) + .26)))} { + set tmp $xpos(space) + set xpos(space) $xpos($num) + set xpos($num) $tmp + set tmp $ypos(space) + set ypos(space) $ypos($num) + set ypos($num) $tmp + place $w.frame.$num -relx $xpos($num) -rely $ypos($num) + } +} + +set w .puzzle +catch {destroy $w} +toplevel $w +wm title $w "15-Puzzle Demonstration" +wm iconname $w "15-Puzzle" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "A 15-puzzle appears below as a collection of buttons. Click on any of the pieces next to the space, and that piece will slide over the space. Continue this until the pieces are arranged in numerical order from upper-left to lower-right." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +# Special trick: select a darker color for the space by creating a +# scrollbar widget and using its trough color. + +scrollbar $w.s + +# The button metrics are a bit bigger in Aqua, and since we are +# using place which doesn't autosize, then we need to have a +# slightly larger frame here... + +if {[string equal [tk windowingsystem] aqua]} { + set frameSize 160 +} else { + set frameSize 120 +} + +frame $w.frame -width $frameSize -height $frameSize -borderwidth 2\ + -relief sunken -bg [$w.s cget -troughcolor] +pack $w.frame -side top -pady 1c -padx 1c +destroy $w.s + +set order {3 1 6 2 5 7 15 13 4 11 8 9 14 10 12} +for {set i 0} {$i < 15} {set i [expr {$i+1}]} { + set num [lindex $order $i] + set xpos($num) [expr {($i%4)*.25}] + set ypos($num) [expr {($i/4)*.25}] + button $w.frame.$num -relief raised -text $num -highlightthickness 0 \ + -command "puzzleSwitch $w $num" + place $w.frame.$num -relx $xpos($num) -rely $ypos($num) \ + -relwidth .25 -relheight .25 +} +set xpos(space) .75 +set ypos(space) .75 diff --git a/lib/tk8.4/demos/radio.tcl b/lib/tk8.4/demos/radio.tcl new file mode 100644 index 00000000..172200bd --- /dev/null +++ b/lib/tk8.4/demos/radio.tcl @@ -0,0 +1,59 @@ +# radio.tcl -- +# +# This demonstration script creates a toplevel window containing +# several radiobutton widgets. +# +# RCS: @(#) $Id: radio.tcl,v 1.4 2001/11/12 14:32:50 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .radio +catch {destroy $w} +toplevel $w +wm title $w "Radiobutton Demonstration" +wm iconname $w "radio" +positionWindow $w +label $w.msg -font $font -wraplength 5i -justify left -text "Three groups of radiobuttons are displayed below. If you click on a button then the button will become selected exclusively among all the buttons in its group. A Tcl variable is associated with each group to indicate which of the group's buttons is selected. Click the \"See Variables\" button to see the current values of the variables." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +button $w.buttons.vars -text "See Variables" \ + -command "showVars $w.dialog size color align" +pack $w.buttons.dismiss $w.buttons.code $w.buttons.vars -side left -expand 1 + +labelframe $w.left -pady 2 -text "Point Size" -padx 2 +labelframe $w.mid -pady 2 -text "Color" -padx 2 +labelframe $w.right -pady 2 -text "Alignment" -padx 2 +pack $w.left $w.mid $w.right -side left -expand yes -pady .5c -padx .5c + +foreach i {10 12 14 18 24} { + radiobutton $w.left.b$i -text "Point Size $i" -variable size \ + -relief flat -value $i + pack $w.left.b$i -side top -pady 2 -anchor w -fill x +} + +foreach c {Red Green Blue Yellow Orange Purple} { + set lower [string tolower $c] + radiobutton $w.mid.$lower -text $c -variable color \ + -relief flat -value $lower -anchor w \ + -command "$w.mid configure -fg \$color" + pack $w.mid.$lower -side top -pady 2 -fill x +} + +label $w.right.l -text "Label" -bitmap questhead -compound left +$w.right.l configure -width [winfo reqwidth $w.right.l] -compound top +$w.right.l configure -height [winfo reqheight $w.right.l] +foreach a {Top Left Right Bottom} { + set lower [string tolower $a] + radiobutton $w.right.$lower -text $a -variable align \ + -relief flat -value $lower -indicatoron 0 -width 7 \ + -command "$w.right.l configure -compound \$align" +} +grid x $w.right.top +grid $w.right.left $w.right.l $w.right.right +grid x $w.right.bottom diff --git a/lib/tk8.4/demos/rmt b/lib/tk8.4/demos/rmt new file mode 100644 index 00000000..2dcb47b0 --- /dev/null +++ b/lib/tk8.4/demos/rmt @@ -0,0 +1,210 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# rmt -- +# This script implements a simple remote-control mechanism for +# Tk applications. It allows you to select an application and +# then type commands to that application. +# +# RCS: @(#) $Id: rmt,v 1.3 2001/10/29 16:23:32 dkf Exp $ + +wm title . "Tk Remote Controller" +wm iconname . "Tk Remote" +wm minsize . 1 1 + +# The global variable below keeps track of the remote application +# that we're sending to. If it's an empty string then we execute +# the commands locally. + +set app "local" + +# The global variable below keeps track of whether we're in the +# middle of executing a command entered via the text. + +set executing 0 + +# The global variable below keeps track of the last command executed, +# so it can be re-executed in response to !! commands. + +set lastCommand "" + +# Create menu bar. Arrange to recreate all the information in the +# applications sub-menu whenever it is cascaded to. + +. configure -menu [menu .menu] +menu .menu.file +menu .menu.file.apps -postcommand fillAppsMenu +.menu add cascade -label "File" -underline 0 -menu .menu.file +.menu.file add cascade -label "Select Application" -underline 0 \ + -menu .menu.file.apps +.menu.file add command -label "Quit" -command "destroy ." -underline 0 + +# Create text window and scrollbar. + +text .t -relief sunken -bd 2 -yscrollcommand ".s set" -setgrid true +scrollbar .s -command ".t yview" +grid .t .s -sticky nsew +grid rowconfigure . 0 -weight 1 +grid columnconfigure . 0 -weight 1 + +# Create a binding to forward commands to the target application, +# plus modify many of the built-in bindings so that only information +# in the current command can be deleted (can still set the cursor +# earlier in the text and select and insert; just can't delete). + +bindtags .t {.t Text . all} +bind .t { + .t mark set insert {end - 1c} + .t insert insert \n + invoke + break +} +bind .t { + catch {.t tag remove sel sel.first promptEnd} + if {[.t tag nextrange sel 1.0 end] == ""} { + if [.t compare insert < promptEnd] { + break + } + } +} +bind .t { + catch {.t tag remove sel sel.first promptEnd} + if {[.t tag nextrange sel 1.0 end] == ""} { + if [.t compare insert <= promptEnd] { + break + } + } +} +bind .t { + if [.t compare insert < promptEnd] { + break + } +} +bind .t { + if [.t compare insert < promptEnd] { + .t mark set insert promptEnd + } +} +bind .t { + if [.t compare insert < promptEnd] { + break + } +} +bind .t { + if [.t compare insert < promptEnd] { + break + } +} +bind .t { + if [.t compare insert <= promptEnd] { + break + } +} +bind .t { + if [.t compare insert <= promptEnd] { + break + } +} +auto_load tkTextInsert +proc tkTextInsert {w s} { + if {$s == ""} { + return + } + catch { + if {[$w compare sel.first <= insert] + && [$w compare sel.last >= insert]} { + $w tag remove sel sel.first promptEnd + $w delete sel.first sel.last + } + } + $w insert insert $s + $w see insert +} + +.t configure -font {Courier 12} +.t tag configure bold -font {Courier 12 bold} + +# The procedure below is used to print out a prompt at the +# insertion point (which should be at the beginning of a line +# right now). + +proc prompt {} { + global app + .t insert insert "$app: " + .t mark set promptEnd {insert} + .t mark gravity promptEnd left + .t tag add bold {promptEnd linestart} promptEnd +} + +# The procedure below executes a command (it takes everything on the +# current line after the prompt and either sends it to the remote +# application or executes it locally, depending on "app". + +proc invoke {} { + global app executing lastCommand + set cmd [.t get promptEnd insert] + incr executing 1 + if [info complete $cmd] { + if {$cmd == "!!\n"} { + set cmd $lastCommand + } else { + set lastCommand $cmd + } + if {$app == "local"} { + set result [catch [list uplevel #0 $cmd] msg] + } else { + set result [catch [list send $app $cmd] msg] + } + if {$result != 0} { + .t insert insert "Error: $msg\n" + } else { + if {$msg != ""} { + .t insert insert $msg\n + } + } + prompt + .t mark set promptEnd insert + } + incr executing -1 + .t yview -pickplace insert +} + +# The following procedure is invoked to change the application that +# we're talking to. It also updates the prompt for the current +# command, unless we're in the middle of executing a command from +# the text item (in which case a new prompt is about to be output +# so there's no need to change the old one). + +proc newApp appName { + global app executing + set app $appName + if !$executing { + .t mark gravity promptEnd right + .t delete "promptEnd linestart" promptEnd + .t insert promptEnd "$appName: " + .t tag add bold "promptEnd linestart" promptEnd + .t mark gravity promptEnd left + } + return {} +} + +# The procedure below will fill in the applications sub-menu with a list +# of all the applications that currently exist. + +proc fillAppsMenu {} { + set m .menu.file.apps + catch {$m delete 0 last} + foreach i [lsort [winfo interps]] { + $m add command -label $i -command [list newApp $i] + } + $m add command -label local -command {newApp local} +} + +set app [winfo name .] +prompt +focus .t + +# Local Variables: +# mode: tcl +# End: diff --git a/lib/tk8.4/demos/rolodex b/lib/tk8.4/demos/rolodex new file mode 100644 index 00000000..e117edf2 --- /dev/null +++ b/lib/tk8.4/demos/rolodex @@ -0,0 +1,196 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" ${1+"$@"} + +# rolodex -- +# This script was written as an entry in Tom LaStrange's rolodex +# benchmark. It creates something that has some of the look and +# feel of a rolodex program, although it's lifeless and doesn't +# actually do the rolodex application. +# +# RCS: @(#) $Id: rolodex,v 1.4 2001/11/05 10:13:53 dkf Exp $ + +foreach i [winfo child .] { + catch {destroy $i} +} + +set version 1.2 + +#------------------------------------------ +# Phase 0: create the front end. +#------------------------------------------ + +frame .frame -relief flat +pack .frame -side top -fill y -anchor center + +set names {{} Name: Address: {} {} {Home Phone:} {Work Phone:} Fax:} +foreach i {1 2 3 4 5 6 7} { + label .frame.label$i -text [lindex $names $i] -anchor e + entry .frame.entry$i -width 35 + grid .frame.label$i .frame.entry$i -sticky ew -pady 2 -padx 1 +} + +frame .buttons +pack .buttons -side bottom -pady 2 -anchor center +button .buttons.clear -text Clear +button .buttons.add -text Add +button .buttons.search -text Search +button .buttons.delete -text "Delete ..." +pack .buttons.clear .buttons.add .buttons.search .buttons.delete \ + -side left -padx 2 + +#------------------------------------------ +# Phase 1: Add menus, dialog boxes +#------------------------------------------ + +frame .menu -relief raised -borderwidth 1 +pack .menu -before .frame -side top -fill x + +menubutton .menu.file -text "File" -menu .menu.file.m -underline 0 +menu .menu.file.m +.menu.file.m add command -label "Load ..." -command fileAction -underline 0 +.menu.file.m add command -label "Exit" -command {destroy .} -underline 0 +pack .menu.file -side left + +menubutton .menu.help -text "Help" -menu .menu.help.m -underline 0 +menu .menu.help.m +pack .menu.help -side right + +proc deleteAction {} { + if {[tk_dialog .delete {Confirm Action} {Are you sure?} {} 0 Cancel] + == 0} { + clearAction + } +} +.buttons.delete config -command deleteAction + +proc fileAction {} { + tk_dialog .fileSelection {File Selection} {This is a dummy file selection dialog box, which is used because there isn't a good file selection dialog built into Tk yet.} {} 0 OK + puts stderr {dummy file name} +} + +#------------------------------------------ +# Phase 3: Print contents of card +#------------------------------------------ + +proc addAction {} { + global names + foreach i {1 2 3 4 5 6 7} { + puts stderr [format "%-12s %s" [lindex $names $i] [.frame.entry$i get]] + } +} +.buttons.add config -command addAction + +#------------------------------------------ +# Phase 4: Miscellaneous other actions +#------------------------------------------ + +proc clearAction {} { + foreach i {1 2 3 4 5 6 7} { + .frame.entry$i delete 0 end + } +} +.buttons.clear config -command clearAction + +proc fillCard {} { + clearAction + .frame.entry1 insert 0 "John Ousterhout" + .frame.entry2 insert 0 "CS Division, Department of EECS" + .frame.entry3 insert 0 "University of California" + .frame.entry4 insert 0 "Berkeley, CA 94720" + .frame.entry5 insert 0 "private" + .frame.entry6 insert 0 "510-642-0865" + .frame.entry7 insert 0 "510-642-5775" +} +.buttons.search config -command "addAction; fillCard" + +#---------------------------------------------------- +# Phase 5: Accelerators, mnemonics, command-line info +#---------------------------------------------------- + +.buttons.clear config -text "Clear Ctrl+C" +bind . clearAction +.buttons.add config -text "Add Ctrl+A" +bind . addAction +.buttons.search config -text "Search Ctrl+S" +bind . "addAction; fillCard" +.buttons.delete config -text "Delete... Ctrl+D" +bind . deleteAction + +.menu.file.m entryconfig 1 -accel Ctrl+F +bind . fileAction +.menu.file.m entryconfig 2 -accel Ctrl+Q +bind . {destroy .} + +focus .frame.entry1 + +#---------------------------------------------------- +# Phase 6: help +#---------------------------------------------------- + +proc Help {topic {x 0} {y 0}} { + global helpTopics helpCmds + if {$topic == ""} return + while {[info exists helpCmds($topic)]} { + set topic [eval $helpCmds($topic)] + } + if [info exists helpTopics($topic)] { + set msg $helpTopics($topic) + } else { + set msg "Sorry, but no help is available for this topic" + } + tk_dialog .help {Rolodex Help} "Information on $topic:\n\n$msg" \ + {} 0 OK +} + +proc getMenuTopic {w x y} { + return $w.[$w index @[expr {$y-[winfo rooty $w]}]] +} + +event add <> +bind . <> {Help [winfo containing %X %Y] %X %Y} +bind Menu <> {Help [winfo containing %X %Y] %X %Y} + +# Help text and commands follow: + +set helpTopics(.menu.file) {This is the "file" menu. It can be used to invoke some overall operations on the rolodex applications, such as loading a file or exiting.} + +set helpCmds(.menu.file.m) {getMenuTopic $topic $x $y} +set helpTopics(.menu.file.m.1) {The "Load" entry in the "File" menu posts a dialog box that you can use to select a rolodex file} +set helpTopics(.menu.file.m.2) {The "Exit" entry in the "File" menu causes the rolodex application to terminate} +set helpCmds(.menu.file.m.none) {set topic ".menu.file"} + +set helpTopics(.frame.entry1) {In this field of the rolodex entry you should type the person's name} +set helpTopics(.frame.entry2) {In this field of the rolodex entry you should type the first line of the person's address} +set helpTopics(.frame.entry3) {In this field of the rolodex entry you should type the second line of the person's address} +set helpTopics(.frame.entry4) {In this field of the rolodex entry you should type the third line of the person's address} +set helpTopics(.frame.entry5) {In this field of the rolodex entry you should type the person's home phone number, or "private" if the person doesn't want his or her number publicized} +set helpTopics(.frame.entry6) {In this field of the rolodex entry you should type the person's work phone number} +set helpTopics(.frame.entry7) {In this field of the rolodex entry you should type the phone number for the person's FAX machine} + +set helpCmds(.frame.label1) {set topic .frame.entry1} +set helpCmds(.frame.label2) {set topic .frame.entry2} +set helpCmds(.frame.label3) {set topic .frame.entry3} +set helpCmds(.frame.label4) {set topic .frame.entry4} +set helpCmds(.frame.label5) {set topic .frame.entry5} +set helpCmds(.frame.label6) {set topic .frame.entry6} +set helpCmds(.frame.label7) {set topic .frame.entry7} + +set helpTopics(context) {Unfortunately, this application doesn't support context-sensitive help in the usual way, because when this demo was written Tk didn't have a grab mechanism and this is needed for context-sensitive help. Instead, you can achieve much the same effect by simply moving the mouse over the window you're curious about and pressing the Help or F1 keys. You can do this anytime.} +set helpTopics(help) {This application provides only very crude help. Besides the entries in this menu, you can get help on individual windows by moving the mouse cursor over the window and pressing the Help or F1 keys.} +set helpTopics(window) {This window is a dummy rolodex application created as part of Tom LaStrange's toolkit benchmark. It doesn't really do anything useful except to demonstrate a few features of the Tk toolkit.} +set helpTopics(keys) "The following accelerator keys are defined for this application (in addition to those already available for the entry windows):\n\nCtrl+A:\t\tAdd\nCtrl+C:\t\tClear\nCtrl+D:\t\tDelete\nCtrl+F:\t\tEnter file name\nCtrl+Q:\t\tExit application (quit)\nCtrl+S:\t\tSearch (dummy operation)" +set helpTopics(version) "This is version $version." + +# Entries in "Help" menu + +.menu.help.m add command -label "On Context..." -command {Help context} \ + -underline 3 +.menu.help.m add command -label "On Help..." -command {Help help} \ + -underline 3 +.menu.help.m add command -label "On Window..." -command {Help window} \ + -underline 3 +.menu.help.m add command -label "On Keys..." -command {Help keys} \ + -underline 3 +.menu.help.m add command -label "On Version..." -command {Help version} \ + -underline 3 diff --git a/lib/tk8.4/demos/ruler.tcl b/lib/tk8.4/demos/ruler.tcl new file mode 100644 index 00000000..86f18dce --- /dev/null +++ b/lib/tk8.4/demos/ruler.tcl @@ -0,0 +1,173 @@ +# ruler.tcl -- +# +# This demonstration script creates a canvas widget that displays a ruler +# with tab stops that can be set, moved, and deleted. +# +# RCS: @(#) $Id: ruler.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +# rulerMkTab -- +# This procedure creates a new triangular polygon in a canvas to +# represent a tab stop. +# +# Arguments: +# c - The canvas window. +# x, y - Coordinates at which to create the tab stop. + +proc rulerMkTab {c x y} { + upvar #0 demo_rulerInfo v + $c create polygon $x $y [expr {$x+$v(size)}] [expr {$y+$v(size)}] \ + [expr {$x-$v(size)}] [expr {$y+$v(size)}] +} + +set w .ruler +global tk_library +catch {destroy $w} +toplevel $w +wm title $w "Ruler Demonstration" +wm iconname $w "ruler" +positionWindow $w +set c $w.c + +label $w.msg -font $font -wraplength 5i -justify left -text "This canvas widget shows a mock-up of a ruler. You can create tab stops by dragging them out of the well to the right of the ruler. You can also drag existing tab stops. If you drag a tab stop far enough up or down so that it turns dim, it will be deleted when you release the mouse button." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +canvas $c -width 14.8c -height 2.5c +pack $w.c -side top -fill x + +set demo_rulerInfo(grid) .25c +set demo_rulerInfo(left) [winfo fpixels $c 1c] +set demo_rulerInfo(right) [winfo fpixels $c 13c] +set demo_rulerInfo(top) [winfo fpixels $c 1c] +set demo_rulerInfo(bottom) [winfo fpixels $c 1.5c] +set demo_rulerInfo(size) [winfo fpixels $c .2c] +set demo_rulerInfo(normalStyle) "-fill black" +if {[winfo depth $c] > 1} { + set demo_rulerInfo(activeStyle) "-fill red -stipple {}" + set demo_rulerInfo(deleteStyle) [list -fill red \ + -stipple @[file join $tk_library demos images gray25.bmp]] +} else { + set demo_rulerInfo(activeStyle) "-fill black -stipple {}" + set demo_rulerInfo(deleteStyle) [list -fill black \ + -stipple @[file join $tk_library demos images gray25.bmp]] +} + +$c create line 1c 0.5c 1c 1c 13c 1c 13c 0.5c -width 1 +for {set i 0} {$i < 12} {incr i} { + set x [expr {$i+1}] + $c create line ${x}c 1c ${x}c 0.6c -width 1 + $c create line $x.25c 1c $x.25c 0.8c -width 1 + $c create line $x.5c 1c $x.5c 0.7c -width 1 + $c create line $x.75c 1c $x.75c 0.8c -width 1 + $c create text $x.15c .75c -text $i -anchor sw +} +$c addtag well withtag [$c create rect 13.2c 1c 13.8c 0.5c \ + -outline black -fill [lindex [$c config -bg] 4]] +$c addtag well withtag [rulerMkTab $c [winfo pixels $c 13.5c] \ + [winfo pixels $c .65c]] + +$c bind well <1> "rulerNewTab $c %x %y" +$c bind tab <1> "rulerSelectTab $c %x %y" +bind $c "rulerMoveTab $c %x %y" +bind $c "rulerReleaseTab $c" + +# rulerNewTab -- +# Does all the work of creating a tab stop, including creating the +# triangle object and adding tags to it to give it tab behavior. +# +# Arguments: +# c - The canvas window. +# x, y - The coordinates of the tab stop. + +proc rulerNewTab {c x y} { + upvar #0 demo_rulerInfo v + $c addtag active withtag [rulerMkTab $c $x $y] + $c addtag tab withtag active + set v(x) $x + set v(y) $y + rulerMoveTab $c $x $y +} + +# rulerSelectTab -- +# This procedure is invoked when mouse button 1 is pressed over +# a tab. It remembers information about the tab so that it can +# be dragged interactively. +# +# Arguments: +# c - The canvas widget. +# x, y - The coordinates of the mouse (identifies the point by +# which the tab was picked up for dragging). + +proc rulerSelectTab {c x y} { + upvar #0 demo_rulerInfo v + set v(x) [$c canvasx $x $v(grid)] + set v(y) [expr {$v(top)+2}] + $c addtag active withtag current + eval "$c itemconf active $v(activeStyle)" + $c raise active +} + +# rulerMoveTab -- +# This procedure is invoked during mouse motion events to drag a tab. +# It adjusts the position of the tab, and changes its appearance if +# it is about to be dragged out of the ruler. +# +# Arguments: +# c - The canvas widget. +# x, y - The coordinates of the mouse. + +proc rulerMoveTab {c x y} { + upvar #0 demo_rulerInfo v + if {[$c find withtag active] == ""} { + return + } + set cx [$c canvasx $x $v(grid)] + set cy [$c canvasy $y] + if {$cx < $v(left)} { + set cx $v(left) + } + if {$cx > $v(right)} { + set cx $v(right) + } + if {($cy >= $v(top)) && ($cy <= $v(bottom))} { + set cy [expr {$v(top)+2}] + eval "$c itemconf active $v(activeStyle)" + } else { + set cy [expr {$cy-$v(size)-2}] + eval "$c itemconf active $v(deleteStyle)" + } + $c move active [expr {$cx-$v(x)}] [expr {$cy-$v(y)}] + set v(x) $cx + set v(y) $cy +} + +# rulerReleaseTab -- +# This procedure is invoked during button release events that end +# a tab drag operation. It deselects the tab and deletes the tab if +# it was dragged out of the ruler. +# +# Arguments: +# c - The canvas widget. +# x, y - The coordinates of the mouse. + +proc rulerReleaseTab c { + upvar #0 demo_rulerInfo v + if {[$c find withtag active] == {}} { + return + } + if {$v(y) != $v(top)+2} { + $c delete active + } else { + eval "$c itemconf active $v(normalStyle)" + $c dtag active + } +} diff --git a/lib/tk8.4/demos/sayings.tcl b/lib/tk8.4/demos/sayings.tcl new file mode 100644 index 00000000..a31012f2 --- /dev/null +++ b/lib/tk8.4/demos/sayings.tcl @@ -0,0 +1,46 @@ +# sayings.tcl -- +# +# This demonstration script creates a listbox that can be scrolled +# both horizontally and vertically. It displays a collection of +# well-known sayings. +# +# RCS: @(#) $Id: sayings.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .sayings +catch {destroy $w} +toplevel $w +wm title $w "Listbox Demonstration (well-known sayings)" +wm iconname $w "sayings" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "The listbox below contains a collection of well-known sayings. You can scan the list using either of the scrollbars or by dragging in the listbox window with button 2 pressed." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +frame $w.frame -borderwidth 10 +pack $w.frame -side top -expand yes -fill y + + +scrollbar $w.frame.yscroll -command "$w.frame.list yview" +scrollbar $w.frame.xscroll -orient horizontal \ + -command "$w.frame.list xview" +listbox $w.frame.list -width 20 -height 10 -setgrid 1 \ + -yscroll "$w.frame.yscroll set" -xscroll "$w.frame.xscroll set" + +grid $w.frame.list -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid $w.frame.yscroll -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news +grid $w.frame.xscroll -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid rowconfig $w.frame 0 -weight 1 -minsize 0 +grid columnconfig $w.frame 0 -weight 1 -minsize 0 + + +$w.frame.list insert 0 "Waste not, want not" "Early to bed and early to rise makes a man healthy, wealthy, and wise" "Ask not what your country can do for you, ask what you can do for your country" "I shall return" "NOT" "A picture is worth a thousand words" "User interfaces are hard to build" "Thou shalt not steal" "A penny for your thoughts" "Fool me once, shame on you; fool me twice, shame on me" "Every cloud has a silver lining" "Where there's smoke there's fire" "It takes one to know one" "Curiosity killed the cat" "Take this job and shove it" "Up a creek without a paddle" "I'm mad as hell and I'm not going to take it any more" "An apple a day keeps the doctor away" "Don't look a gift horse in the mouth" diff --git a/lib/tk8.4/demos/search.tcl b/lib/tk8.4/demos/search.tcl new file mode 100644 index 00000000..d5740b6f --- /dev/null +++ b/lib/tk8.4/demos/search.tcl @@ -0,0 +1,141 @@ +# search.tcl -- +# +# This demonstration script creates a collection of widgets that +# allow you to load a file into a text widget, then perform searches +# on that file. +# +# RCS: @(#) $Id: search.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +# textLoadFile -- +# This procedure below loads a file into a text widget, discarding +# the previous contents of the widget. Tags for the old widget are +# not affected, however. +# +# Arguments: +# w - The window into which to load the file. Must be a +# text widget. +# file - The name of the file to load. Must be readable. + +proc textLoadFile {w file} { + set f [open $file] + $w delete 1.0 end + while {![eof $f]} { + $w insert end [read $f 10000] + } + close $f +} + +# textSearch -- +# Search for all instances of a given string in a text widget and +# apply a given tag to each instance found. +# +# Arguments: +# w - The window in which to search. Must be a text widget. +# string - The string to search for. The search is done using +# exact matching only; no special characters. +# tag - Tag to apply to each instance of a matching string. + +proc textSearch {w string tag} { + $w tag remove search 0.0 end + if {$string == ""} { + return + } + set cur 1.0 + while 1 { + set cur [$w search -count length $string $cur end] + if {$cur == ""} { + break + } + $w tag add $tag $cur "$cur + $length char" + set cur [$w index "$cur + $length char"] + } +} + +# textToggle -- +# This procedure is invoked repeatedly to invoke two commands at +# periodic intervals. It normally reschedules itself after each +# execution but if an error occurs (e.g. because the window was +# deleted) then it doesn't reschedule itself. +# +# Arguments: +# cmd1 - Command to execute when procedure is called. +# sleep1 - Ms to sleep after executing cmd1 before executing cmd2. +# cmd2 - Command to execute in the *next* invocation of this +# procedure. +# sleep2 - Ms to sleep after executing cmd2 before executing cmd1 again. + +proc textToggle {cmd1 sleep1 cmd2 sleep2} { + catch { + eval $cmd1 + after $sleep1 [list textToggle $cmd2 $sleep2 $cmd1 $sleep1] + } +} + +set w .search +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Search and Highlight" +wm iconname $w "search" +positionWindow $w + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +frame $w.file +label $w.file.label -text "File name:" -width 13 -anchor w +entry $w.file.entry -width 40 -textvariable fileName +button $w.file.button -text "Load File" \ + -command "textLoadFile $w.text \$fileName" +pack $w.file.label $w.file.entry -side left +pack $w.file.button -side left -pady 5 -padx 10 +bind $w.file.entry " + textLoadFile $w.text \$fileName + focus $w.string.entry +" +focus $w.file.entry + +frame $w.string +label $w.string.label -text "Search string:" -width 13 -anchor w +entry $w.string.entry -width 40 -textvariable searchString +button $w.string.button -text "Highlight" \ + -command "textSearch $w.text \$searchString search" +pack $w.string.label $w.string.entry -side left +pack $w.string.button -side left -pady 5 -padx 10 +bind $w.string.entry "textSearch $w.text \$searchString search" + +text $w.text -yscrollcommand "$w.scroll set" -setgrid true +scrollbar $w.scroll -command "$w.text yview" +pack $w.file $w.string -side top -fill x +pack $w.scroll -side right -fill y +pack $w.text -expand yes -fill both + +# Set up display styles for text highlighting. + +if {[winfo depth $w] > 1} { + textToggle "$w.text tag configure search -background \ + #ce5555 -foreground white" 800 "$w.text tag configure \ + search -background {} -foreground {}" 200 +} else { + textToggle "$w.text tag configure search -background \ + black -foreground white" 800 "$w.text tag configure \ + search -background {} -foreground {}" 200 +} +$w.text insert 1.0 \ +{This window demonstrates how to use the tagging facilities in text +widgets to implement a searching mechanism. First, type a file name +in the top entry, then type or click on "Load File". Then +type a string in the lower entry and type or click on +"Load File". This will cause all of the instances of the string to +be tagged with the tag "search", and it will arrange for the tag's +display attributes to change to make all of the strings blink.} +$w.text mark set insert 0.0 + +set fileName "" +set searchString "" diff --git a/lib/tk8.4/demos/spin.tcl b/lib/tk8.4/demos/spin.tcl new file mode 100644 index 00000000..4ba158b9 --- /dev/null +++ b/lib/tk8.4/demos/spin.tcl @@ -0,0 +1,55 @@ +# spin.tcl -- +# +# This demonstration script creates several spinbox widgets. +# +# RCS: @(#) $Id$ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .spin +catch {destroy $w} +toplevel $w +wm title $w "Spinbox Demonstration" +wm iconname $w "spin" +positionWindow $w + +label $w.msg -font $font -wraplength 5i -justify left -text "Three different\ + spin-boxes are displayed below. You can add characters by pointing,\ + clicking and typing. The normal Motif editing characters are\ + supported, along with many Emacs bindings. For example, Backspace\ + and Control-h delete the character to the left of the insertion\ + cursor and Delete and Control-d delete the chararacter to the right\ + of the insertion cursor. For values that are too large to fit in the\ + window all at once, you can scan through the value by dragging with\ + mouse button2 pressed. Note that the first spin-box will only permit\ + you to type in integers, and the third selects from a list of\ + Australian cities." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +set australianCities { + Canberra Sydney Melbourne Perth Adelaide Brisbane + Hobart Darwin "Alice Springs" +} + +spinbox $w.s1 -from 1 -to 10 -width 10 -validate key \ + -vcmd {string is integer %P} +spinbox $w.s2 -from 0 -to 3 -increment .5 -format %05.2f -width 10 +spinbox $w.s3 -values $australianCities -width 10 + +#entry $w.e1 +#entry $w.e2 +#entry $w.e3 +pack $w.s1 $w.s2 $w.s3 -side top -pady 5 -padx 10 ;#-fill x + +#$w.e1 insert 0 "Initial value" +#$w.e2 insert end "This entry contains a long value, much too long " +#$w.e2 insert end "to fit in the window at one time, so long in fact " +#$w.e2 insert end "that you'll have to scan or scroll to see the end." diff --git a/lib/tk8.4/demos/square b/lib/tk8.4/demos/square new file mode 100644 index 00000000..b02e187e --- /dev/null +++ b/lib/tk8.4/demos/square @@ -0,0 +1,55 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# square -- +# This script generates a demo application containing only a "square" +# widget. It's only usable in the "tktest" application or if Tk has +# been compiled with tkSquare.c. This demo arranges the following +# bindings for the widget: +# +# Button-1 press/drag: moves square to mouse +# "a": toggle size animation on/off +# +# RCS: @(#) $Id: square,v 1.2 1998/09/14 18:23:30 stanton Exp $ + +square .s +pack .s -expand yes -fill both +wm minsize . 1 1 + +bind .s <1> {center %x %y} +bind .s {center %x %y} +bind .s a animate +focus .s + +# The procedure below centers the square on a given position. + +proc center {x y} { + set a [.s size] + .s position [expr $x-($a/2)] [expr $y-($a/2)] +} + +# The procedures below provide a simple form of animation where +# the box changes size in a pulsing pattern: larger, smaller, larger, +# and so on. + +set inc 0 +proc animate {} { + global inc + if {$inc == 0} { + set inc 3 + timer + } else { + set inc 0 + } +} + +proc timer {} { + global inc + set s [.s size] + if {$inc == 0} return + if {$s >= 40} {set inc -3} + if {$s <= 10} {set inc 3} + .s size [expr {$s+$inc}] + after 30 timer +} diff --git a/lib/tk8.4/demos/states.tcl b/lib/tk8.4/demos/states.tcl new file mode 100644 index 00000000..7b7df6d0 --- /dev/null +++ b/lib/tk8.4/demos/states.tcl @@ -0,0 +1,45 @@ +# states.tcl -- +# +# This demonstration script creates a listbox widget that displays +# the names of the 50 states in the United States of America. +# +# RCS: @(#) $Id: states.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .states +catch {destroy $w} +toplevel $w +wm title $w "Listbox Demonstration (50 states)" +wm iconname $w "states" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "A listbox containing the 50 states is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by scanning. To scan, press button 2 in the widget and drag up or down." +pack $w.msg -side top + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +frame $w.frame -borderwidth .5c +pack $w.frame -side top -expand yes -fill y + +scrollbar $w.frame.scroll -command "$w.frame.list yview" +listbox $w.frame.list -yscroll "$w.frame.scroll set" -setgrid 1 -height 12 +pack $w.frame.scroll -side right -fill y +pack $w.frame.list -side left -expand 1 -fill both + +$w.frame.list insert 0 Alabama Alaska Arizona Arkansas California \ + Colorado Connecticut Delaware Florida Georgia Hawaii Idaho Illinois \ + Indiana Iowa Kansas Kentucky Louisiana Maine Maryland \ + Massachusetts Michigan Minnesota Mississippi Missouri \ + Montana Nebraska Nevada "New Hampshire" "New Jersey" "New Mexico" \ + "New York" "North Carolina" "North Dakota" \ + Ohio Oklahoma Oregon Pennsylvania "Rhode Island" \ + "South Carolina" "South Dakota" \ + Tennessee Texas Utah Vermont Virginia Washington \ + "West Virginia" Wisconsin Wyoming diff --git a/lib/tk8.4/demos/style.tcl b/lib/tk8.4/demos/style.tcl new file mode 100644 index 00000000..bc3ce80e --- /dev/null +++ b/lib/tk8.4/demos/style.tcl @@ -0,0 +1,152 @@ +# style.tcl -- +# +# This demonstration script creates a text widget that illustrates the +# various display styles that may be set for tags. +# +# RCS: @(#) $Id: style.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .style +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Display Styles" +wm iconname $w "style" +positionWindow $w + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +text $w.text -yscrollcommand "$w.scroll set" -setgrid true \ + -width 70 -height 32 -wrap word +scrollbar $w.scroll -command "$w.text yview" +pack $w.scroll -side right -fill y +pack $w.text -expand yes -fill both + +# Set up display styles + +$w.text tag configure bold -font {Courier 12 bold italic} +$w.text tag configure big -font {Courier 14 bold} +$w.text tag configure verybig -font {Helvetica 24 bold} +if {[winfo depth $w] > 1} { + $w.text tag configure color1 -background #a0b7ce + $w.text tag configure color2 -foreground red + $w.text tag configure raised -relief raised -borderwidth 1 + $w.text tag configure sunken -relief sunken -borderwidth 1 +} else { + $w.text tag configure color1 -background black -foreground white + $w.text tag configure color2 -background black -foreground white + $w.text tag configure raised -background white -relief raised \ + -borderwidth 1 + $w.text tag configure sunken -background white -relief sunken \ + -borderwidth 1 +} +$w.text tag configure bgstipple -background black -borderwidth 0 \ + -bgstipple gray12 +$w.text tag configure fgstipple -fgstipple gray50 +$w.text tag configure underline -underline on +$w.text tag configure overstrike -overstrike on +$w.text tag configure right -justify right +$w.text tag configure center -justify center +$w.text tag configure super -offset 4p -font {Courier 10} +$w.text tag configure sub -offset -2p -font {Courier 10} +$w.text tag configure margins -lmargin1 12m -lmargin2 6m -rmargin 10m +$w.text tag configure spacing -spacing1 10p -spacing2 2p \ + -lmargin1 12m -lmargin2 6m -rmargin 10m + +$w.text insert end {Text widgets like this one allow you to display information in a +variety of styles. Display styles are controlled using a mechanism +called } +$w.text insert end tags bold +$w.text insert end {. Tags are just textual names that you can apply to one +or more ranges of characters within a text widget. You can configure +tags with various display styles. If you do this, then the tagged +characters will be displayed with the styles you chose. The +available display styles are: +} +$w.text insert end "\n1. Font." big +$w.text insert end " You can choose any X font, " +$w.text insert end large verybig +$w.text insert end " or " +$w.text insert end "small.\n" +$w.text insert end "\n2. Color." big +$w.text insert end " You can change either the " +$w.text insert end background color1 +$w.text insert end " or " +$w.text insert end foreground color2 +$w.text insert end "\ncolor, or " +$w.text insert end both {color1 color2} +$w.text insert end ".\n" +$w.text insert end "\n3. Stippling." big +$w.text insert end " You can cause either the " +$w.text insert end background bgstipple +$w.text insert end " or " +$w.text insert end foreground fgstipple +$w.text insert end { +information to be drawn with a stipple fill instead of a solid fill. +} +$w.text insert end "\n4. Underlining." big +$w.text insert end " You can " +$w.text insert end underline underline +$w.text insert end " ranges of text.\n" +$w.text insert end "\n5. Overstrikes." big +$w.text insert end " You can " +$w.text insert end "draw lines through" overstrike +$w.text insert end " ranges of text.\n" +$w.text insert end "\n6. 3-D effects." big +$w.text insert end { You can arrange for the background to be drawn +with a border that makes characters appear either } +$w.text insert end raised raised +$w.text insert end " or " +$w.text insert end sunken sunken +$w.text insert end ".\n" +$w.text insert end "\n7. Justification." big +$w.text insert end " You can arrange for lines to be displayed\n" +$w.text insert end "left-justified,\n" +$w.text insert end "right-justified, or\n" right +$w.text insert end "centered.\n" center +$w.text insert end "\n8. Superscripts and subscripts." big +$w.text insert end " You can control the vertical\n" +$w.text insert end "position of text to generate superscript effects like 10" +$w.text insert end "n" super +$w.text insert end " or\nsubscript effects like X" +$w.text insert end "i" sub +$w.text insert end ".\n" +$w.text insert end "\n9. Margins." big +$w.text insert end " You can control the amount of extra space left" +$w.text insert end " on\neach side of the text:\n" +$w.text insert end "This paragraph is an example of the use of " margins +$w.text insert end "margins. It consists of a single line of text " margins +$w.text insert end "that wraps around on the screen. There are two " margins +$w.text insert end "separate left margin values, one for the first " margins +$w.text insert end "display line associated with the text line, " margins +$w.text insert end "and one for the subsequent display lines, which " margins +$w.text insert end "occur because of wrapping. There is also a " margins +$w.text insert end "separate specification for the right margin, " margins +$w.text insert end "which is used to choose wrap points for lines.\n" margins +$w.text insert end "\n10. Spacing." big +$w.text insert end " You can control the spacing of lines with three\n" +$w.text insert end "separate parameters. \"Spacing1\" tells how much " +$w.text insert end "extra space to leave\nabove a line, \"spacing3\" " +$w.text insert end "tells how much space to leave below a line,\nand " +$w.text insert end "if a text line wraps, \"spacing2\" tells how much " +$w.text insert end "space to leave\nbetween the display lines that " +$w.text insert end "make up the text line.\n" +$w.text insert end "These indented paragraphs illustrate how spacing " spacing +$w.text insert end "can be used. Each paragraph is actually a " spacing +$w.text insert end "single line in the text widget, which is " spacing +$w.text insert end "word-wrapped by the widget.\n" spacing +$w.text insert end "Spacing1 is set to 10 points for this text, " spacing +$w.text insert end "which results in relatively large gaps between " spacing +$w.text insert end "the paragraphs. Spacing2 is set to 2 points, " spacing +$w.text insert end "which results in just a bit of extra space " spacing +$w.text insert end "within a pararaph. Spacing3 isn't used " spacing +$w.text insert end "in this example.\n" spacing +$w.text insert end "To see where the space is, select ranges of " spacing +$w.text insert end "text within these paragraphs. The selection " spacing +$w.text insert end "highlight will cover the extra space." spacing diff --git a/lib/tk8.4/demos/tclIndex b/lib/tk8.4/demos/tclIndex new file mode 100644 index 00000000..86a72e24 --- /dev/null +++ b/lib/tk8.4/demos/tclIndex @@ -0,0 +1,67 @@ +# Tcl autoload index file, version 2.0 +# This file is generated by the "auto_mkindex" command +# and sourced to set up indexing information for one or +# more commands. Typically each line is a command that +# sets an element in the auto_index array, where the +# element name is the name of a command and the value is +# a script that loads the command. + +set auto_index(arrowSetup) [list source [file join $dir arrow.tcl]] +set auto_index(arrowMove1) [list source [file join $dir arrow.tcl]] +set auto_index(arrowMove2) [list source [file join $dir arrow.tcl]] +set auto_index(arrowMove3) [list source [file join $dir arrow.tcl]] +set auto_index(textLoadFile) [list source [file join $dir search.tcl]] +set auto_index(textSearch) [list source [file join $dir search.tcl]] +set auto_index(textToggle) [list source [file join $dir search.tcl]] +set auto_index(itemEnter) [list source [file join $dir items.tcl]] +set auto_index(itemLeave) [list source [file join $dir items.tcl]] +set auto_index(itemMark) [list source [file join $dir items.tcl]] +set auto_index(itemStroke) [list source [file join $dir items.tcl]] +set auto_index(itemsUnderArea) [list source [file join $dir items.tcl]] +set auto_index(itemStartDrag) [list source [file join $dir items.tcl]] +set auto_index(itemDrag) [list source [file join $dir items.tcl]] +set auto_index(butPress) [list source [file join $dir items.tcl]] +set auto_index(loadDir) [list source [file join $dir image2.tcl]] +set auto_index(loadImage) [list source [file join $dir image2.tcl]] +set auto_index(rulerMkTab) [list source [file join $dir ruler.tcl]] +set auto_index(rulerNewTab) [list source [file join $dir ruler.tcl]] +set auto_index(rulerSelectTab) [list source [file join $dir ruler.tcl]] +set auto_index(rulerMoveTab) [list source [file join $dir ruler.tcl]] +set auto_index(rulerReleaseTab) [list source [file join $dir ruler.tcl]] +set auto_index(mkTextConfig) [list source [file join $dir ctext.tcl]] +set auto_index(textEnter) [list source [file join $dir ctext.tcl]] +set auto_index(textInsert) [list source [file join $dir ctext.tcl]] +set auto_index(textPaste) [list source [file join $dir ctext.tcl]] +set auto_index(textB1Press) [list source [file join $dir ctext.tcl]] +set auto_index(textB1Move) [list source [file join $dir ctext.tcl]] +set auto_index(textBs) [list source [file join $dir ctext.tcl]] +set auto_index(textDel) [list source [file join $dir ctext.tcl]] +set auto_index(bitmapRow) [list source [file join $dir bitmap.tcl]] +set auto_index(scrollEnter) [list source [file join $dir cscroll.tcl]] +set auto_index(scrollLeave) [list source [file join $dir cscroll.tcl]] +set auto_index(scrollButton) [list source [file join $dir cscroll.tcl]] +set auto_index(textWindOn) [list source [file join $dir twind.tcl]] +set auto_index(textWindOff) [list source [file join $dir twind.tcl]] +set auto_index(textWindPlot) [list source [file join $dir twind.tcl]] +set auto_index(embPlotDown) [list source [file join $dir twind.tcl]] +set auto_index(embPlotMove) [list source [file join $dir twind.tcl]] +set auto_index(textWindDel) [list source [file join $dir twind.tcl]] +set auto_index(embDefBg) [list source [file join $dir twind.tcl]] +set auto_index(floorDisplay) [list source [file join $dir floor.tcl]] +set auto_index(newRoom) [list source [file join $dir floor.tcl]] +set auto_index(roomChanged) [list source [file join $dir floor.tcl]] +set auto_index(bg1) [list source [file join $dir floor.tcl]] +set auto_index(bg2) [list source [file join $dir floor.tcl]] +set auto_index(bg3) [list source [file join $dir floor.tcl]] +set auto_index(fg1) [list source [file join $dir floor.tcl]] +set auto_index(fg2) [list source [file join $dir floor.tcl]] +set auto_index(fg3) [list source [file join $dir floor.tcl]] +set auto_index(setWidth) [list source [file join $dir hscale.tcl]] +set auto_index(plotDown) [list source [file join $dir plot.tcl]] +set auto_index(plotMove) [list source [file join $dir plot.tcl]] +set auto_index(puzzleSwitch) [list source [file join $dir puzzle.tcl]] +set auto_index(setHeight) [list source [file join $dir vscale.tcl]] +set auto_index(showMessageBox) [list source [file join $dir msgbox.tcl]] +set auto_index(setColor) [list source [file join $dir clrpick.tcl]] +set auto_index(setColor_helper) [list source [file join $dir clrpick.tcl]] +set auto_index(fileDialog) [list source [file join $dir filebox.tcl]] diff --git a/lib/tk8.4/demos/tcolor b/lib/tk8.4/demos/tcolor new file mode 100644 index 00000000..ae3cad0f --- /dev/null +++ b/lib/tk8.4/demos/tcolor @@ -0,0 +1,366 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# tcolor -- +# This script implements a simple color editor, where you can +# create colors using either the RGB, HSB, or CYM color spaces +# and apply the color to existing applications. +# +# RCS: @(#) $Id: tcolor,v 1.3 2001/10/29 16:23:32 dkf Exp $ + +wm title . "Color Editor" + +# Global variables that control the program: +# +# colorSpace - Color space currently being used for +# editing. Must be "rgb", "cmy", or "hsb". +# label1, label2, label3 - Labels for the scales. +# red, green, blue - Current color intensities in decimal +# on a scale of 0-65535. +# color - A string giving the current color value +# in the proper form for x: +# #RRRRGGGGBBBB +# updating - Non-zero means that we're in the middle of +# updating the scales to load a new color,so +# information shouldn't be propagating back +# from the scales to other elements of the +# program: this would make an infinite loop. +# command - Holds the command that has been typed +# into the "Command" entry. +# autoUpdate - 1 means execute the update command +# automatically whenever the color changes. +# name - Name for new color, typed into entry. + +set colorSpace hsb +set red 65535 +set green 0 +set blue 0 +set color #ffff00000000 +set updating 0 +set autoUpdate 1 +set name "" + +if {$tcl_platform(platform) eq "unix"} { + option add *Entry.background white +} + +# Create the menu bar at the top of the window. + +. configure -menu [menu .menu] +menu .menu.file +.menu add cascade -menu .menu.file -label File -underline 0 +.menu.file add radio -label "RGB color space" -variable colorSpace \ + -value rgb -underline 0 -command {changeColorSpace rgb} +.menu.file add radio -label "CMY color space" -variable colorSpace \ + -value cmy -underline 0 -command {changeColorSpace cmy} +.menu.file add radio -label "HSB color space" -variable colorSpace \ + -value hsb -underline 0 -command {changeColorSpace hsb} +.menu.file add separator +.menu.file add radio -label "Automatic updates" -variable autoUpdate \ + -value 1 -underline 0 +.menu.file add radio -label "Manual updates" -variable autoUpdate \ + -value 0 -underline 0 +.menu.file add separator +.menu.file add command -label "Exit program" -underline 0 -command {exit} + +# Create the command entry window at the bottom of the window, along +# with the update button. + +labelframe .command -text "Command:" -padx {1m 0} +entry .command.e -relief sunken -borderwidth 2 -textvariable command \ + -font {Courier 12} +button .command.update -text Update -command doUpdate +pack .command.update -side right -pady .1c -padx {.25c 0} +pack .command.e -expand yes -fill x -ipadx 0.25c + + +# Create the listbox that holds all of the color names in rgb.txt, +# if an rgb.txt file can be found. + +grid .command -sticky nsew -row 2 -columnspan 3 -padx 1m -pady {0 1m} + +grid columnconfigure . {1 2} -weight 1 +grid rowconfigure . 0 -weight 1 +foreach i { + /usr/local/lib/X11/rgb.txt /usr/lib/X11/rgb.txt + /X11/R5/lib/X11/rgb.txt /X11/R4/lib/rgb/rgb.txt + /usr/openwin/lib/X11/rgb.txt +} { + if {![file readable $i]} { + continue; + } + set f [open $i] + labelframe .names -text "Select:" -padx .1c -pady .1c + grid .names -row 0 -column 0 -sticky nsew -padx .15c -pady .15c -rowspan 2 + grid columnconfigure . 0 -weight 1 + listbox .names.lb -width 20 -height 12 -yscrollcommand ".names.s set" \ + -relief sunken -borderwidth 2 -exportselection false + bind .names.lb { + tc_loadNamedColor [.names.lb get [.names.lb curselection]] + } + scrollbar .names.s -orient vertical -command ".names.lb yview" \ + -relief sunken -borderwidth 2 + pack .names.lb .names.s -side left -fill y -expand 1 + while {[gets $f line] >= 0} { + if {[regexp {^\s*\d+\s+\d+\s+\d+\s+(\S+)$} $line -> col]} { + .names.lb insert end $col + } + } + close $f + break +} + +# Create the three scales for editing the color, and the entry for +# typing in a color value. + +frame .adjust +foreach i {1 2 3} { + label .adjust.l$i -textvariable label$i -pady 0 + labelframe .adjust.$i -labelwidget .adjust.l$i -padx 1m -pady 1m + scale .scale$i -from 0 -to 1000 -length 6c -orient horizontal \ + -command tc_scaleChanged + pack .scale$i -in .adjust.$i + pack .adjust.$i +} +grid .adjust -row 0 -column 1 -sticky nsew -padx .15c -pady .15c + +labelframe .name -text "Name:" -padx 1m -pady 1m +entry .name.e -relief sunken -borderwidth 2 -textvariable name -width 10 \ + -font {Courier 12} +pack .name.e -side right -expand 1 -fill x +bind .name.e {tc_loadNamedColor $name} +grid .name -column 1 -row 1 -sticky nsew -padx .15c -pady .15c + +# Create the color display swatch on the right side of the window. + +labelframe .sample -text "Color:" -padx 1m -pady 1m +frame .sample.swatch -width 2c -height 5c -background $color +label .sample.value -textvariable color -width 13 -font {Courier 12} +pack .sample.swatch -side top -expand yes -fill both +pack .sample.value -side bottom -pady .25c +grid .sample -row 0 -column 2 -sticky nsew -padx .15c -pady .15c -rowspan 2 + + +# The procedure below is invoked when one of the scales is adjusted. +# It propagates color information from the current scale readings +# to everywhere else that it is used. + +proc tc_scaleChanged args { + global red green blue colorSpace color updating autoUpdate + if {$updating} { + return + } + switch $colorSpace { + rgb { + set red [format %.0f [expr {[.scale1 get]*65.535}]] + set green [format %.0f [expr {[.scale2 get]*65.535}]] + set blue [format %.0f [expr {[.scale3 get]*65.535}]] + } + cmy { + set red [format %.0f [expr {65535 - [.scale1 get]*65.535}]] + set green [format %.0f [expr {65535 - [.scale2 get]*65.535}]] + set blue [format %.0f [expr {65535 - [.scale3 get]*65.535}]] + } + hsb { + set list [hsbToRgb [expr {[.scale1 get]/1000.0}] \ + [expr {[.scale2 get]/1000.0}] \ + [expr {[.scale3 get]/1000.0}]] + set red [lindex $list 0] + set green [lindex $list 1] + set blue [lindex $list 2] + } + } + set color [format "#%04x%04x%04x" $red $green $blue] + .sample.swatch config -bg $color + if {$autoUpdate} doUpdate + update idletasks +} + +# The procedure below is invoked to update the scales from the +# current red, green, and blue intensities. It's invoked after +# a change in the color space and after a named color value has +# been loaded. + +proc tc_setScales {} { + global red green blue colorSpace updating + set updating 1 + switch $colorSpace { + rgb { + .scale1 set [format %.0f [expr {$red/65.535}]] + .scale2 set [format %.0f [expr {$green/65.535}]] + .scale3 set [format %.0f [expr {$blue/65.535}]] + } + cmy { + .scale1 set [format %.0f [expr {(65535-$red)/65.535}]] + .scale2 set [format %.0f [expr {(65535-$green)/65.535}]] + .scale3 set [format %.0f [expr {(65535-$blue)/65.535}]] + } + hsb { + set list [rgbToHsv $red $green $blue] + .scale1 set [format %.0f [expr {[lindex $list 0] * 1000.0}]] + .scale2 set [format %.0f [expr {[lindex $list 1] * 1000.0}]] + .scale3 set [format %.0f [expr {[lindex $list 2] * 1000.0}]] + } + } + set updating 0 +} + +# The procedure below is invoked when a named color has been +# selected from the listbox or typed into the entry. It loads +# the color into the editor. + +proc tc_loadNamedColor name { + global red green blue color autoUpdate + + if {[string index $name 0] != "#"} { + set list [winfo rgb .sample.swatch $name] + set red [lindex $list 0] + set green [lindex $list 1] + set blue [lindex $list 2] + } else { + switch [string length $name] { + 4 {set format "#%1x%1x%1x"; set shift 12} + 7 {set format "#%2x%2x%2x"; set shift 8} + 10 {set format "#%3x%3x%3x"; set shift 4} + 13 {set format "#%4x%4x%4x"; set shift 0} + default {error "syntax error in color name \"$name\""} + } + if {[scan $name $format red green blue] != 3} { + error "syntax error in color name \"$name\"" + } + set red [expr {$red<<$shift}] + set green [expr {$green<<$shift}] + set blue [expr {$blue<<$shift}] + } + tc_setScales + set color [format "#%04x%04x%04x" $red $green $blue] + .sample.swatch config -bg $color + if {$autoUpdate} doUpdate +} + +# The procedure below is invoked when a new color space is selected. +# It changes the labels on the scales and re-loads the scales with +# the appropriate values for the current color in the new color space + +proc changeColorSpace space { + global label1 label2 label3 + switch $space { + rgb { + set label1 "Adjust Red:" + set label2 "Adjust Green:" + set label3 "Adjust Blue:" + tc_setScales + return + } + cmy { + set label1 "Adjust Cyan:" + set label2 "Adjust Magenta:" + set label3 "Adjust Yellow:" + tc_setScales + return + } + hsb { + set label1 "Adjust Hue:" + set label2 "Adjust Saturation:" + set label3 "Adjust Brightness:" + tc_setScales + return + } + } +} + +# The procedure below converts an RGB value to HSB. It takes red, green, +# and blue components (0-65535) as arguments, and returns a list containing +# HSB components (floating-point, 0-1) as result. The code here is a copy +# of the code on page 615 of "Fundamentals of Interactive Computer Graphics" +# by Foley and Van Dam. + +proc rgbToHsv {red green blue} { + if {$red > $green} { + set max [expr {double($red)}] + set min [expr {double($green)}] + } else { + set max [expr {double($green)}] + set min [expr {double($red)}] + } + if {$blue > $max} { + set max [expr {double($blue)}] + } elseif {$blue < $min} { + set min [expr {double($blue)}] + } + set range [expr {$max-$min}] + if {$max == 0} { + set sat 0 + } else { + set sat [expr {($max-$min)/$max}] + } + if {$sat == 0} { + set hue 0 + } else { + set rc [expr {($max - $red)/$range}] + set gc [expr {($max - $green)/$range}] + set bc [expr {($max - $blue)/$range}] + if {$red == $max} { + set hue [expr {($bc - $gc)/6.0}] + } elseif {$green == $max} { + set hue [expr {(2 + $rc - $bc)/6.0}] + } else { + set hue [expr {(4 + $gc - $rc)/6.0}] + } + if {$hue < 0.0} { + set hue [expr {$hue + 1.0}] + } + } + return [list $hue $sat [expr {$max/65535}]] +} + +# The procedure below converts an HSB value to RGB. It takes hue, saturation, +# and value components (floating-point, 0-1.0) as arguments, and returns a +# list containing RGB components (integers, 0-65535) as result. The code +# here is a copy of the code on page 616 of "Fundamentals of Interactive +# Computer Graphics" by Foley and Van Dam. + +proc hsbToRgb {hue sat value} { + set v [format %.0f [expr {65535.0*$value}]] + if {$sat == 0} { + return "$v $v $v" + } else { + set hue [expr {$hue*6.0}] + if {$hue >= 6.0} { + set hue 0.0 + } + scan $hue. %d i + set f [expr {$hue-$i}] + set p [format %.0f [expr {65535.0*$value*(1 - $sat)}]] + set q [format %.0f [expr {65535.0*$value*(1 - ($sat*$f))}]] + set t [format %.0f [expr {65535.0*$value*(1 - ($sat*(1 - $f)))}]] + switch $i { + 0 {return "$v $t $p"} + 1 {return "$q $v $p"} + 2 {return "$p $v $t"} + 3 {return "$p $q $v"} + 4 {return "$t $p $v"} + 5 {return "$v $p $q"} + default {error "i value $i is out of range"} + } + } +} + +# The procedure below is invoked when the "Update" button is pressed, +# and whenever the color changes if update mode is enabled. It +# propagates color information as determined by the command in the +# Command entry. + +proc doUpdate {} { + global color command + set newCmd $command + regsub -all %% $command $color newCmd + eval $newCmd +} + +changeColorSpace hsb + +# Local Variables: +# mode: tcl +# End: diff --git a/lib/tk8.4/demos/text.tcl b/lib/tk8.4/demos/text.tcl new file mode 100644 index 00000000..ca069177 --- /dev/null +++ b/lib/tk8.4/demos/text.tcl @@ -0,0 +1,88 @@ +# text.tcl -- +# +# This demonstration script creates a text widget that describes +# the basic editing functions. +# +# RCS: @(#) $Id: text.tcl,v 1.3 2001/11/15 11:55:26 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .text +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Basic Facilities" +wm iconname $w "text" +positionWindow $w + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +text $w.text -relief sunken -bd 2 -yscrollcommand "$w.scroll set" -setgrid 1 \ + -height 30 -undo 1 -autosep 1 +scrollbar $w.scroll -command "$w.text yview" +pack $w.scroll -side right -fill y +pack $w.text -expand yes -fill both +$w.text insert 0.0 \ +{This window is a text widget. It displays one or more lines of text +and allows you to edit the text. Here is a summary of the things you +can do to a text widget: + +1. Scrolling. Use the scrollbar to adjust the view in the text window. + +2. Scanning. Press mouse button 2 in the text window and drag up or down. +This will drag the text at high speed to allow you to scan its contents. + +3. Insert text. Press mouse button 1 to set the insertion cursor, then +type text. What you type will be added to the widget. + +4. Select. Press mouse button 1 and drag to select a range of characters. +Once you've released the button, you can adjust the selection by pressing +button 1 with the shift key down. This will reset the end of the +selection nearest the mouse cursor and you can drag that end of the +selection by dragging the mouse before releasing the mouse button. +You can double-click to select whole words or triple-click to select +whole lines. + +5. Delete and replace. To delete text, select the characters you'd like +to delete and type Backspace or Delete. Alternatively, you can type new +text, in which case it will replace the selected text. + +6. Copy the selection. To copy the selection into this window, select +what you want to copy (either here or in another application), then +click button 2 to copy the selection to the point of the mouse cursor. + +7. Edit. Text widgets support the standard Motif editing characters +plus many Emacs editing characters. Backspace and Control-h erase the +character to the left of the insertion cursor. Delete and Control-d +erase the character to the right of the insertion cursor. Meta-backspace +deletes the word to the left of the insertion cursor, and Meta-d deletes +the word to the right of the insertion cursor. Control-k deletes from +the insertion cursor to the end of the line, or it deletes the newline +character if that is the only thing left on the line. Control-o opens +a new line by inserting a newline character to the right of the insertion +cursor. Control-t transposes the two characters on either side of the +insertion cursor. Control-z undoes the last editing action performed, +and } + +switch $tcl_platform(platform) { + "unix" - "macintosh" { + $w.text insert end "Control-Shift-z" + } + "windows" { + $w.text insert end "Control-y" + } +} + +$w.text insert end { redoes undone edits. + +7. Resize the window. This widget has been configured with the "setGrid" +option on, so that if you resize the window it will always resize to an +even number of characters high and wide. Also, if you make the window +narrow you can see that long lines automatically wrap around onto +additional lines so that all the information is always visible.} +$w.text mark set insert 0.0 diff --git a/lib/tk8.4/demos/timer b/lib/tk8.4/demos/timer new file mode 100644 index 00000000..5255403d --- /dev/null +++ b/lib/tk8.4/demos/timer @@ -0,0 +1,47 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# timer -- +# This script generates a counter with start and stop buttons. +# +# RCS: @(#) $Id: timer,v 1.3 2001/10/29 16:23:33 dkf Exp $ + +label .counter -text 0.00 -relief raised -width 10 -padx 2m -pady 1m +button .start -text Start -command { + if {$stopped} { + set stopped 0 + set startMoment [clock clicks -milliseconds] + tick + .stop configure -state normal + .start configure -state disabled + } +} +button .stop -text Stop -state disabled -command { + set stopped 1 + .stop configure -state disabled + .start configure -state normal +} +pack .counter -side bottom -fill both +pack .start -side left -fill both -expand yes +pack .stop -side right -fill both -expand yes + +set startMoment {} + +set stopped 1 + +proc tick {} { + global startMoment stopped + if {$stopped} {return} + after 50 tick + set elapsedMS [expr {[clock clicks -milliseconds] - $startMoment}] + .counter config -text [format "%.2f" [expr {double($elapsedMS)/1000}]] +} + +bind . {destroy .} +bind . {destroy .} +focus . + +# Local Variables: +# mode: tcl +# End: diff --git a/lib/tk8.4/demos/twind.tcl b/lib/tk8.4/demos/twind.tcl new file mode 100644 index 00000000..8dff2dd1 --- /dev/null +++ b/lib/tk8.4/demos/twind.tcl @@ -0,0 +1,197 @@ +# twind.tcl -- +# +# This demonstration script creates a text widget with a bunch of +# embedded windows. +# +# RCS: @(#) $Id: twind.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .twind +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Embedded Windows" +wm iconname $w "Embedded Windows" +positionWindow $w + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +frame $w.f -highlightthickness 2 -borderwidth 2 -relief sunken +set t $w.f.text +text $t -yscrollcommand "$w.scroll set" -setgrid true -font $font -width 70 \ + -height 35 -wrap word -highlightthickness 0 -borderwidth 0 +pack $t -expand yes -fill both +scrollbar $w.scroll -command "$t yview" +pack $w.scroll -side right -fill y +pack $w.f -expand yes -fill both +$t tag configure center -justify center -spacing1 5m -spacing3 5m +$t tag configure buttons -lmargin1 1c -lmargin2 1c -rmargin 1c \ + -spacing1 3m -spacing2 0 -spacing3 0 + +button $t.on -text "Turn On" -command "textWindOn $w" \ + -cursor top_left_arrow +button $t.off -text "Turn Off" -command "textWindOff $w" \ + -cursor top_left_arrow +button $t.click -text "Click Here" -command "textWindPlot $t" \ + -cursor top_left_arrow +button $t.delete -text "Delete" -command "textWindDel $w" \ + -cursor top_left_arrow + +$t insert end "A text widget can contain other widgets embedded " +$t insert end "it. These are called \"embedded windows\", " +$t insert end "and they can consist of arbitrary widgets. " +$t insert end "For example, here are two embedded button " +$t insert end "widgets. You can click on the first button to " +$t window create end -window $t.on +$t insert end " horizontal scrolling, which also turns off " +$t insert end "word wrapping. Or, you can click on the second " +$t insert end "button to\n" +$t window create end -window $t.off +$t insert end " horizontal scrolling and turn back on word wrapping.\n\n" + +$t insert end "Or, here is another example. If you " +$t window create end -window $t.click +$t insert end " a canvas displaying an x-y plot will appear right here." +$t mark set plot insert +$t mark gravity plot left +$t insert end " You can drag the data points around with the mouse, " +$t insert end "or you can click here to " +$t window create end -window $t.delete +$t insert end " the plot again.\n\n" + +$t insert end "You may also find it useful to put embedded windows in " +$t insert end "a text without any actual text. In this case the " +$t insert end "text widget acts like a geometry manager. For " +$t insert end "example, here is a collection of buttons laid out " +$t insert end "neatly into rows by the text widget. These buttons " +$t insert end "can be used to change the background color of the " +$t insert end "text widget (\"Default\" restores the color to " +$t insert end "its default). If you click on the button labeled " +$t insert end "\"Short\", it changes to a longer string so that " +$t insert end "you can see how the text widget automatically " +$t insert end "changes the layout. Click on the button again " +$t insert end "to restore the short string.\n" + +button $t.default -text Default -command "embDefBg $t" \ + -cursor top_left_arrow +$t window create end -window $t.default -padx 3 +global embToggle +set embToggle Short +checkbutton $t.toggle -textvariable embToggle -indicatoron 0 \ + -variable embToggle -onvalue "A much longer string" \ + -offvalue "Short" -cursor top_left_arrow -pady 5 -padx 2 +$t window create end -window $t.toggle -padx 3 -pady 2 +set i 1 +foreach color {AntiqueWhite3 Bisque1 Bisque2 Bisque3 Bisque4 + SlateBlue3 RoyalBlue1 SteelBlue2 DeepSkyBlue3 LightBlue1 + DarkSlateGray1 Aquamarine2 DarkSeaGreen2 SeaGreen1 + Yellow1 IndianRed1 IndianRed2 Tan1 Tan4} { + button $t.color$i -text $color -cursor top_left_arrow -command \ + "$t configure -bg $color" + $t window create end -window $t.color$i -padx 3 -pady 2 + incr i +} +$t tag add buttons $t.default end + +proc textWindOn w { + catch {destroy $w.scroll2} + set t $w.f.text + scrollbar $w.scroll2 -orient horizontal -command "$t xview" + pack $w.scroll2 -after $w.buttons -side bottom -fill x + $t configure -xscrollcommand "$w.scroll2 set" -wrap none +} + +proc textWindOff w { + catch {destroy $w.scroll2} + set t $w.f.text + $t configure -xscrollcommand {} -wrap word +} + +proc textWindPlot t { + set c $t.c + if {[winfo exists $c]} { + return + } + canvas $c -relief sunken -width 450 -height 300 -cursor top_left_arrow + + set font {Helvetica 18} + + $c create line 100 250 400 250 -width 2 + $c create line 100 250 100 50 -width 2 + $c create text 225 20 -text "A Simple Plot" -font $font -fill brown + + for {set i 0} {$i <= 10} {incr i} { + set x [expr {100 + ($i*30)}] + $c create line $x 250 $x 245 -width 2 + $c create text $x 254 -text [expr {10*$i}] -anchor n -font $font + } + for {set i 0} {$i <= 5} {incr i} { + set y [expr {250 - ($i*40)}] + $c create line 100 $y 105 $y -width 2 + $c create text 96 $y -text [expr {$i*50}].0 -anchor e -font $font + } + + foreach point { + {12 56} {20 94} {33 98} {32 120} {61 180} {75 160} {98 223} + } { + set x [expr {100 + (3*[lindex $point 0])}] + set y [expr {250 - (4*[lindex $point 1])/5}] + set item [$c create oval [expr {$x-6}] [expr {$y-6}] \ + [expr {$x+6}] [expr {$y+6}] -width 1 -outline black \ + -fill SkyBlue2] + $c addtag point withtag $item + } + + $c bind point "$c itemconfig current -fill red" + $c bind point "$c itemconfig current -fill SkyBlue2" + $c bind point <1> "embPlotDown $c %x %y" + $c bind point "$c dtag selected" + bind $c "embPlotMove $c %x %y" + while {[string first [$t get plot] " \t\n"] >= 0} { + $t delete plot + } + $t insert plot "\n" + $t window create plot -window $c + $t tag add center plot + $t insert plot "\n" +} + +set embPlot(lastX) 0 +set embPlot(lastY) 0 + +proc embPlotDown {w x y} { + global embPlot + $w dtag selected + $w addtag selected withtag current + $w raise current + set embPlot(lastX) $x + set embPlot(lastY) $y +} + +proc embPlotMove {w x y} { + global embPlot + $w move selected [expr {$x-$embPlot(lastX)}] [expr {$y-$embPlot(lastY)}] + set embPlot(lastX) $x + set embPlot(lastY) $y +} + +proc textWindDel w { + set t $w.f.text + if {[winfo exists $t.c]} { + $t delete $t.c + while {[string first [$t get plot] " \t\n"] >= 0} { + $t delete plot + } + $t insert plot " " + } +} + +proc embDefBg t { + $t configure -background [lindex [$t configure -background] 3] +} diff --git a/lib/tk8.4/demos/vscale.tcl b/lib/tk8.4/demos/vscale.tcl new file mode 100644 index 00000000..cb89ec34 --- /dev/null +++ b/lib/tk8.4/demos/vscale.tcl @@ -0,0 +1,48 @@ +# vscale.tcl -- +# +# This demonstration script shows an example with a vertical scale. +# +# RCS: @(#) $Id: vscale.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +set w .vscale +catch {destroy $w} +toplevel $w +wm title $w "Vertical Scale Demonstration" +wm iconname $w "vscale" +positionWindow $w + +label $w.msg -font $font -wraplength 3.5i -justify left -text "An arrow and a vertical scale are displayed below. If you click or drag mouse button 1 in the scale, you can change the size of the arrow." +pack $w.msg -side top -padx .5c + +frame $w.buttons +pack $w.buttons -side bottom -fill x -pady 2m +button $w.buttons.dismiss -text Dismiss -command "destroy $w" +button $w.buttons.code -text "See Code" -command "showCode $w" +pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 + +frame $w.frame -borderwidth 10 +pack $w.frame + +scale $w.frame.scale -orient vertical -length 284 -from 0 -to 250 \ + -command "setHeight $w.frame.canvas" -tickinterval 50 +canvas $w.frame.canvas -width 50 -height 50 -bd 0 -highlightthickness 0 +$w.frame.canvas create polygon 0 0 1 1 2 2 -fill SeaGreen3 -tags poly +$w.frame.canvas create line 0 0 1 1 2 2 0 0 -fill black -tags line +frame $w.frame.right -borderwidth 15 +pack $w.frame.scale -side left -anchor ne +pack $w.frame.canvas -side left -anchor nw -fill y +$w.frame.scale set 75 + +proc setHeight {w height} { + incr height 21 + set y2 [expr {$height - 30}] + if {$y2 < 21} { + set y2 21 + } + $w coords poly 15 20 35 20 35 $y2 45 $y2 25 $height 5 $y2 15 $y2 15 20 + $w coords line 15 20 35 20 35 $y2 45 $y2 25 $height 5 $y2 15 $y2 15 20 +} diff --git a/lib/tk8.4/demos/widget b/lib/tk8.4/demos/widget new file mode 100644 index 00000000..fde5c947 --- /dev/null +++ b/lib/tk8.4/demos/widget @@ -0,0 +1,393 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# widget -- +# This script demonstrates the various widgets provided by Tk, +# along with many of the features of the Tk toolkit. This file +# only contains code to generate the main window for the +# application, which invokes individual demonstrations. The +# code for the actual demonstrations is contained in separate +# ".tcl" files is this directory, which are sourced by this script +# as needed. +# +# RCS: @(#) $Id: widget,v 1.8 2002/08/31 06:12:28 das Exp $ + +eval destroy [winfo child .] +wm title . "Widget Demonstration" +if {$tcl_platform(platform) eq "unix"} { + # This won't work everywhere, but there's no other way in core Tk + # at the moment to display a coloured icon. + image create photo TclPowered \ + -file [file join $tk_library images logo64.gif] + wm iconwindow . [toplevel ._iconWindow] + pack [label ._iconWindow.i -image TclPowered] + wm iconname . "tkWidgetDemo" +} + +array set widgetFont { + main {Helvetica 12} + bold {Helvetica 12 bold} + title {Helvetica 18 bold} + status {Helvetica 10} + vars {Helvetica 14} +} + +set widgetDemo 1 +set font $widgetFont(main) + +#---------------------------------------------------------------- +# The code below create the main window, consisting of a menu bar +# and a text widget that explains how to use the program, plus lists +# all of the demos as hypertext items. +#---------------------------------------------------------------- + +menu .menuBar -tearoff 0 +.menuBar add cascade -menu .menuBar.file -label "File" -underline 0 +menu .menuBar.file -tearoff 0 + +# On the Mac use the specia .apple menu for the about item +if {[string equal [tk windowingsystem] "classic"]} { + .menuBar add cascade -menu .menuBar.apple + menu .menuBar.apple -tearoff 0 + .menuBar.apple add command -label "About..." -command "aboutBox" +} else { + .menuBar.file add command -label "About..." -command "aboutBox" \ + -underline 0 -accelerator "" + .menuBar.file add sep +} + +.menuBar.file add command -label "Quit" -command "exit" -underline 0 \ + -accelerator "Meta-Q" +. configure -menu .menuBar +bind . aboutBox + +frame .statusBar +label .statusBar.lab -text " " -relief sunken -bd 1 \ + -font $widgetFont(status) -anchor w +label .statusBar.foo -width 8 -relief sunken -bd 1 \ + -font $widgetFont(status) -anchor w +pack .statusBar.lab -side left -padx 2 -expand yes -fill both +pack .statusBar.foo -side left -padx 2 +pack .statusBar -side bottom -fill x -pady 2 + +frame .textFrame +scrollbar .s -orient vertical -command {.t yview} -highlightthickness 0 \ + -takefocus 1 +pack .s -in .textFrame -side right -fill y +text .t -yscrollcommand {.s set} -wrap word -width 70 -height 30 \ + -font $widgetFont(main) -setgrid 1 -highlightthickness 0 \ + -padx 4 -pady 2 -takefocus 0 +pack .t -in .textFrame -expand y -fill both -padx 1 +pack .textFrame -expand yes -fill both + +# Create a bunch of tags to use in the text widget, such as those for +# section titles and demo descriptions. Also define the bindings for +# tags. + +.t tag configure title -font $widgetFont(title) +.t tag configure bold -font $widgetFont(bold) + +# We put some "space" characters to the left and right of each demo description +# so that the descriptions are highlighted only when the mouse cursor +# is right over them (but not when the cursor is to their left or right) +# +.t tag configure demospace -lmargin1 1c -lmargin2 1c + + +if {[winfo depth .] == 1} { + .t tag configure demo -lmargin1 1c -lmargin2 1c \ + -underline 1 + .t tag configure visited -lmargin1 1c -lmargin2 1c \ + -underline 1 + .t tag configure hot -background black -foreground white +} else { + .t tag configure demo -lmargin1 1c -lmargin2 1c \ + -foreground blue -underline 1 + .t tag configure visited -lmargin1 1c -lmargin2 1c \ + -foreground #303080 -underline 1 + .t tag configure hot -foreground red -underline 1 +} +.t tag bind demo { + invoke [.t index {@%x,%y}] +} +set lastLine "" +.t tag bind demo { + set lastLine [.t index {@%x,%y linestart}] + .t tag add hot "$lastLine +1 chars" "$lastLine lineend -1 chars" + .t config -cursor hand2 + showStatus [.t index {@%x,%y}] +} +.t tag bind demo { + .t tag remove hot 1.0 end + .t config -cursor xterm + .statusBar.lab config -text "" +} +.t tag bind demo { + set newLine [.t index {@%x,%y linestart}] + if {[string compare $newLine $lastLine] != 0} { + .t tag remove hot 1.0 end + set lastLine $newLine + + set tags [.t tag names {@%x,%y}] + set i [lsearch -glob $tags demo-*] + if {$i >= 0} { + .t tag add hot "$lastLine +1 chars" "$lastLine lineend -1 chars" + } + } + showStatus [.t index {@%x,%y}] +} + +# Create the text for the text widget. + +proc addDemoSection {title demos} { + .t insert end "\n" {} $title title " \n " demospace + set num 0 + foreach {name description} $demos { + .t insert end "[incr num]. $description." [list demo demo-$name] + .t insert end " \n " demospace + } +} + +.t insert end "Tk Widget Demonstrations\n" title +.t insert end "\nThis application provides a front end for several short\ + scripts that demonstrate what you can do with Tk widgets. Each of\ + the numbered lines below describes a demonstration; you can click\ + on it to invoke the demonstration. Once the demonstration window\ + appears, you can click the " {} "See Code" bold " button to see the\ + Tcl/Tk code that created the demonstration. If you wish, you can\ + edit the code and click the " {} "Rerun Demo" bold " button in the\ + code window to reinvoke the demonstration with the modified code.\n" + +addDemoSection "Labels, buttons, checkbuttons, and radiobuttons" { + label "Labels (text and bitmaps)" + button "Buttons" + check "Check-buttons (select any of a group)" + radio "Radio-buttons (select one of a group)" + puzzle "A 15-puzzle game made out of buttons" + icon "Iconic buttons that use bitmaps" + image1 "Two labels displaying images" + image2 "A simple user interface for viewing images" + labelframe "Labelled frames" +} +addDemoSection "Listboxes" { + states "The 50 states" + colors "Colors: change the color scheme for the application" + sayings "A collection of famous and infamous sayings" +} +addDemoSection "Entries and Spin-boxes" { + entry1 "Entries without scrollbars" + entry2 "Entries with scrollbars" + entry3 "Validated entries and password fields" + spin "Spin-boxes" + form "Simple Rolodex-like form" +} +addDemoSection "Text" { + text "Basic editable text" + style "Text display styles" + bind "Hypertext (tag bindings)" + twind "A text widget with embedded windows" + search "A search tool built with a text widget" +} +addDemoSection "Canvases" { + items "The canvas item types" + plot "A simple 2-D plot" + ctext "Text items in canvases" + arrow "An editor for arrowheads on canvas lines" + ruler "A ruler with adjustable tab stops" + floor "A building floor plan" + cscroll "A simple scrollable canvas" +} +addDemoSection "Scales" { + hscale "Horizontal scale" + vscale "Vertical scale" +} +addDemoSection "Paned Windows" { + paned1 "Horizontal paned window" + paned2 "Vertical paned window" +} +addDemoSection "Menus" { + menu "Menus and cascades (sub-menus)" + menubu "Menu-buttons" +} +addDemoSection "Common Dialogs" { + msgbox "Message boxes" + filebox "File selection dialog" + clrpick "Color picker" +} +addDemoSection "Miscellaneous" { + bitmap "The built-in bitmaps" + dialog1 "A dialog box with a local grab" + dialog2 "A dialog box with a global grab" +} + +.t configure -state disabled +focus .s + +# positionWindow -- +# This procedure is invoked by most of the demos to position a +# new demo window. +# +# Arguments: +# w - The name of the window to position. + +proc positionWindow w { + wm geometry $w +300+300 +} + +# showVars -- +# Displays the values of one or more variables in a window, and +# updates the display whenever any of the variables changes. +# +# Arguments: +# w - Name of new window to create for display. +# args - Any number of names of variables. + +proc showVars {w args} { + global widgetFont + catch {destroy $w} + toplevel $w + wm title $w "Variable values" + label $w.title -text "Variable values:" -width 20 -anchor center \ + -font $widgetFont(vars) + pack $w.title -side top -fill x + set len 1 + foreach i $args { + if {[string length $i] > $len} { + set len [string length $i] + } + } + foreach i $args { + frame $w.$i + label $w.$i.name -text "$i: " -width [expr $len + 2] -anchor w + label $w.$i.value -textvar $i -anchor w + pack $w.$i.name -side left + pack $w.$i.value -side left -expand 1 -fill x + pack $w.$i -side top -anchor w -fill x + } + button $w.ok -text OK -command "destroy $w" -default active + bind $w "tkButtonInvoke $w.ok" + pack $w.ok -side bottom -pady 2 +} + +# invoke -- +# This procedure is called when the user clicks on a demo description. +# It is responsible for invoking the demonstration. +# +# Arguments: +# index - The index of the character that the user clicked on. + +proc invoke index { + global tk_library + set tags [.t tag names $index] + set i [lsearch -glob $tags demo-*] + if {$i < 0} { + return + } + set cursor [.t cget -cursor] + .t configure -cursor watch + update + set demo [string range [lindex $tags $i] 5 end] + uplevel [list source [file join $tk_library demos $demo.tcl]] + update + .t configure -cursor $cursor + + .t tag add visited "$index linestart +1 chars" "$index lineend -1 chars" +} + +# showStatus -- +# +# Show the name of the demo program in the status bar. This procedure +# is called when the user moves the cursor over a demo description. +# +proc showStatus index { + global tk_library + set tags [.t tag names $index] + set i [lsearch -glob $tags demo-*] + set cursor [.t cget -cursor] + if {$i < 0} { + .statusBar.lab config -text " " + set newcursor xterm + } else { + set demo [string range [lindex $tags $i] 5 end] + .statusBar.lab config -text "Run the \"$demo\" sample program" + set newcursor hand2 + } + if [string compare $cursor $newcursor] { + .t config -cursor $newcursor + } +} + + +# showCode -- +# This procedure creates a toplevel window that displays the code for +# a demonstration and allows it to be edited and reinvoked. +# +# Arguments: +# w - The name of the demonstration's window, which can be +# used to derive the name of the file containing its code. + +proc showCode w { + global tk_library + set file [string range $w 1 end].tcl + if ![winfo exists .code] { + toplevel .code + frame .code.buttons + pack .code.buttons -side bottom -fill x + button .code.buttons.dismiss -text Dismiss \ + -default active -command "destroy .code" + button .code.buttons.rerun -text "Rerun Demo" -command { + eval [.code.text get 1.0 end] + } + pack .code.buttons.dismiss .code.buttons.rerun -side left \ + -expand 1 -pady 2 + frame .code.frame + pack .code.frame -expand yes -fill both -padx 1 -pady 1 + text .code.text -height 40 -wrap word\ + -xscrollcommand ".code.xscroll set" \ + -yscrollcommand ".code.yscroll set" \ + -setgrid 1 -highlightthickness 0 -pady 2 -padx 3 + scrollbar .code.xscroll -command ".code.text xview" \ + -highlightthickness 0 -orient horizontal + scrollbar .code.yscroll -command ".code.text yview" \ + -highlightthickness 0 -orient vertical + + grid .code.text -in .code.frame -padx 1 -pady 1 \ + -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news + grid .code.yscroll -in .code.frame -padx 1 -pady 1 \ + -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news +# grid .code.xscroll -in .code.frame -padx 1 -pady 1 \ +# -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news + grid rowconfig .code.frame 0 -weight 1 -minsize 0 + grid columnconfig .code.frame 0 -weight 1 -minsize 0 + } else { + wm deiconify .code + raise .code + } + wm title .code "Demo code: [file join $tk_library demos $file]" + wm iconname .code $file + set id [open [file join $tk_library demos $file]] + .code.text delete 1.0 end + .code.text insert 1.0 [read $id] + .code.text mark set insert 1.0 + close $id +} + +# aboutBox -- +# +# Pops up a message box with an "about" message +# +proc aboutBox {} { + tk_messageBox -icon info -type ok -title "About Widget Demo" -message \ +"Tk widget demonstration + +Copyright (c) 1996-1997 Sun Microsystems, Inc. + +Copyright (c) 1997-2000 Ajuba Solutions, Inc. + +Copyright (c) 2001-2002 Donal K. Fellows" +} + +# Local Variables: +# mode: tcl +# End: diff --git a/lib/tk8.4/dialog.tcl b/lib/tk8.4/dialog.tcl new file mode 100644 index 00000000..404593ef --- /dev/null +++ b/lib/tk8.4/dialog.tcl @@ -0,0 +1,210 @@ +# dialog.tcl -- +# +# This file defines the procedure tk_dialog, which creates a dialog +# box containing a bitmap, a message, and one or more buttons. +# +# RCS: @(#) $Id: dialog.tcl,v 1.14.2.3 2006/01/25 18:21:41 dgp Exp $ +# +# Copyright (c) 1992-1993 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# +# ::tk_dialog: +# +# This procedure displays a dialog box, waits for a button in the dialog +# to be invoked, then returns the index of the selected button. If the +# dialog somehow gets destroyed, -1 is returned. +# +# Arguments: +# w - Window to use for dialog top-level. +# title - Title to display in dialog's decorative frame. +# text - Message to display in dialog. +# bitmap - Bitmap to display in dialog (empty string means none). +# default - Index of button that is to display the default ring +# (-1 means none). +# args - One or more strings to display in buttons across the +# bottom of the dialog box. + +proc ::tk_dialog {w title text bitmap default args} { + global tcl_platform + variable ::tk::Priv + + # Check that $default was properly given + if {[string is integer -strict $default]} { + if {$default >= [llength $args]} { + return -code error "default button index greater than number of\ + buttons specified for tk_dialog" + } + # Never call if -strict option is omitted in previous test ! + } elseif {"" eq $default} { + set default -1 + } else { + set default [lsearch -exact $args $default] + } + + # 1. Create the top-level window and divide it into top + # and bottom parts. + + destroy $w + toplevel $w -class Dialog + wm title $w $title + wm iconname $w Dialog + wm protocol $w WM_DELETE_WINDOW { } + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + # + if {[winfo viewable [winfo toplevel [winfo parent $w]]] } { + wm transient $w [winfo toplevel [winfo parent $w]] + } + + set windowingsystem [tk windowingsystem] + + if {$tcl_platform(platform) eq "macintosh" || $windowingsystem eq "aqua"} { + ::tk::unsupported::MacWindowStyle style $w dBoxProc + } + + frame $w.bot + frame $w.top + if {$windowingsystem eq "x11"} { + $w.bot configure -relief raised -bd 1 + $w.top configure -relief raised -bd 1 + } + pack $w.bot -side bottom -fill both + pack $w.top -side top -fill both -expand 1 + + # 2. Fill the top part with bitmap and message (use the option + # database for -wraplength and -font so that they can be + # overridden by the caller). + + option add *Dialog.msg.wrapLength 3i widgetDefault + if {$tcl_platform(platform) eq "macintosh" || $windowingsystem eq "aqua"} { + option add *Dialog.msg.font system widgetDefault + } else { + option add *Dialog.msg.font {Times 12} widgetDefault + } + + label $w.msg -justify left -text $text + pack $w.msg -in $w.top -side right -expand 1 -fill both -padx 3m -pady 3m + if {$bitmap ne ""} { + if {($tcl_platform(platform) eq "macintosh" + || $windowingsystem eq "aqua") && ($bitmap eq "error")} { + set bitmap "stop" + } + label $w.bitmap -bitmap $bitmap + pack $w.bitmap -in $w.top -side left -padx 3m -pady 3m + } + + # 3. Create a row of buttons at the bottom of the dialog. + + set i 0 + foreach but $args { + button $w.button$i -text $but -command [list set ::tk::Priv(button) $i] + if {$i == $default} { + $w.button$i configure -default active + } else { + $w.button$i configure -default normal + } + grid $w.button$i -in $w.bot -column $i -row 0 -sticky ew \ + -padx 10 -pady 4 + grid columnconfigure $w.bot $i + # We boost the size of some Mac buttons for l&f + if {$tcl_platform(platform) eq "macintosh" || $windowingsystem eq "aqua"} { + set tmp [string tolower $but] + if {$tmp eq "ok" || $tmp eq "cancel"} { + grid columnconfigure $w.bot $i -minsize [expr {59 + 20}] + } + } + incr i + } + + # 4. Create a binding for on the dialog if there is a + # default button. + + if {$default >= 0} { + bind $w " + [list $w.button$default] configure -state active -relief sunken + update idletasks + after 100 + set ::tk::Priv(button) $default + " + } + + # 5. Create a binding for the window that sets the + # button variable to -1; this is needed in case something happens + # that destroys the window, such as its parent window being destroyed. + + bind $w {set ::tk::Priv(button) -1} + + # 6. Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + wm withdraw $w + update idletasks + set x [expr {[winfo screenwidth $w]/2 - [winfo reqwidth $w]/2 \ + - [winfo vrootx [winfo parent $w]]}] + set y [expr {[winfo screenheight $w]/2 - [winfo reqheight $w]/2 \ + - [winfo vrooty [winfo parent $w]]}] + # Make sure that the window is on the screen and set the maximum + # size of the window is the size of the screen. That'll let things + # fail fairly gracefully when very large messages are used. [Bug 827535] + if {$x < 0} { + set x 0 + } + if {$y < 0} { + set y 0 + } + wm maxsize $w [winfo screenwidth $w] [winfo screenheight $w] + wm geometry $w +$x+$y + wm deiconify $w + + tkwait visibility $w + + # 7. Set a grab and claim the focus too. + + set oldFocus [focus] + set oldGrab [grab current $w] + if {$oldGrab ne ""} { + set grabStatus [grab status $oldGrab] + } + grab $w + if {$default >= 0} { + focus $w.button$default + } else { + focus $w + } + + # 8. Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(button) + catch {focus $oldFocus} + catch { + # It's possible that the window has already been destroyed, + # hence this "catch". Delete the Destroy handler so that + # Priv(button) doesn't get reset by it. + + bind $w {} + destroy $w + } + if {$oldGrab ne ""} { + if {$grabStatus ne "global"} { + grab $oldGrab + } else { + grab -global $oldGrab + } + } + return $Priv(button) +} diff --git a/lib/tk8.4/entry.tcl b/lib/tk8.4/entry.tcl new file mode 100644 index 00000000..3fb4e673 --- /dev/null +++ b/lib/tk8.4/entry.tcl @@ -0,0 +1,652 @@ +# entry.tcl -- +# +# This file defines the default bindings for Tk entry widgets and provides +# procedures that help in implementing those bindings. +# +# RCS: @(#) $Id: entry.tcl,v 1.21.2.1 2006/01/25 18:21:41 dgp Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# Elements of tk::Priv that are used in this file: +# +# afterId - If non-null, it means that auto-scanning is underway +# and it gives the "after" id for the next auto-scan +# command to be executed. +# mouseMoved - Non-zero means the mouse has moved a significant +# amount since the button went down (so, for example, +# start dragging out a selection). +# pressX - X-coordinate at which the mouse button was pressed. +# selectMode - The style of selection currently underway: +# char, word, or line. +# x, y - Last known mouse coordinates for scanning +# and auto-scanning. +# data - Used for Cut and Copy +#------------------------------------------------------------------------- + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for entries. +#------------------------------------------------------------------------- +bind Entry <> { + if {![catch {tk::EntryGetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + %W delete sel.first sel.last + unset tk::Priv(data) + } +} +bind Entry <> { + if {![catch {tk::EntryGetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + unset tk::Priv(data) + } +} +bind Entry <> { + global tcl_platform + catch { + if {[tk windowingsystem] ne "x11"} { + catch { + %W delete sel.first sel.last + } + } + %W insert insert [::tk::GetSelection %W CLIPBOARD] + tk::EntrySeeInsert %W + } +} +bind Entry <> { + %W delete sel.first sel.last +} +bind Entry <> { + if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] + || !$tk::Priv(mouseMoved)} { + tk::EntryPaste %W %x + } +} + +# Standard Motif bindings: + +bind Entry <1> { + tk::EntryButton1 %W %x + %W selection clear +} +bind Entry { + set tk::Priv(x) %x + tk::EntryMouseSelect %W %x +} +bind Entry { + set tk::Priv(selectMode) word + tk::EntryMouseSelect %W %x + catch {%W icursor sel.last} +} +bind Entry { + set tk::Priv(selectMode) line + tk::EntryMouseSelect %W %x + catch {%W icursor sel.last} +} +bind Entry { + set tk::Priv(selectMode) char + %W selection adjust @%x +} +bind Entry { + set tk::Priv(selectMode) word + tk::EntryMouseSelect %W %x +} +bind Entry { + set tk::Priv(selectMode) line + tk::EntryMouseSelect %W %x +} +bind Entry { + set tk::Priv(x) %x + tk::EntryAutoScan %W +} +bind Entry { + tk::CancelRepeat +} +bind Entry { + tk::CancelRepeat +} +bind Entry { + %W icursor @%x +} + +bind Entry { + tk::EntrySetCursor %W [expr {[%W index insert] - 1}] +} +bind Entry { + tk::EntrySetCursor %W [expr {[%W index insert] + 1}] +} +bind Entry { + tk::EntryKeySelect %W [expr {[%W index insert] - 1}] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntryKeySelect %W [expr {[%W index insert] + 1}] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntrySetCursor %W [tk::EntryPreviousWord %W insert] +} +bind Entry { + tk::EntrySetCursor %W [tk::EntryNextWord %W insert] +} +bind Entry { + tk::EntryKeySelect %W [tk::EntryPreviousWord %W insert] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntryKeySelect %W [tk::EntryNextWord %W insert] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntrySetCursor %W 0 +} +bind Entry { + tk::EntryKeySelect %W 0 + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntrySetCursor %W end +} +bind Entry { + tk::EntryKeySelect %W end + tk::EntrySeeInsert %W +} + +bind Entry { + if {[%W selection present]} { + %W delete sel.first sel.last + } else { + %W delete insert + } +} +bind Entry { + tk::EntryBackspace %W +} + +bind Entry { + %W selection from insert +} +bind Entry { + tk::ListboxBeginSelect %W [%W index active] +} +bind Listbox { + tk::ListboxBeginExtend %W [%W index active] +} +bind Listbox { + tk::ListboxBeginExtend %W [%W index active] +} +bind Listbox { + tk::ListboxCancel %W +} +bind Listbox { + tk::ListboxSelectAll %W +} +bind Listbox { + if {[%W cget -selectmode] ne "browse"} { + %W selection clear 0 end + event generate %W <> + } +} + +# Additional Tk bindings that aren't part of the Motif look and feel: + +bind Listbox <2> { + %W scan mark %x %y +} +bind Listbox { + %W scan dragto %x %y +} + +# The MouseWheel will typically only fire on Windows and Mac OS X. +# However, someone could use the "event generate" command to produce +# one on other platforms. +if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { + bind Listbox { + %W yview scroll [expr {- (%D)}] units + } + bind Listbox { + %W yview scroll [expr {-10 * (%D)}] units + } + bind Listbox { + %W xview scroll [expr {- (%D)}] units + } + bind Listbox { + %W xview scroll [expr {-10 * (%D)}] units + } +} else { + bind Listbox { + %W yview scroll [expr {- (%D / 120) * 4}] units + } +} + +if {"x11" eq [tk windowingsystem]} { + # Support for mousewheels on Linux/Unix commonly comes through mapping + # the wheel to the extended buttons. If you have a mousewheel, find + # Linux configuration info at: + # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ + bind Listbox <4> { + if {!$tk_strictMotif} { + %W yview scroll -5 units + } + } + bind Listbox <5> { + if {!$tk_strictMotif} { + %W yview scroll 5 units + } + } +} + +# ::tk::ListboxBeginSelect -- +# +# This procedure is typically invoked on button-1 presses. It begins +# the process of making a selection in the listbox. Its exact behavior +# depends on the selection mode currently in effect for the listbox; +# see the Motif documentation for details. +# +# Arguments: +# w - The listbox widget. +# el - The element for the selection operation (typically the +# one under the pointer). Must be in numerical form. + +proc ::tk::ListboxBeginSelect {w el} { + variable ::tk::Priv + if {[$w cget -selectmode] eq "multiple"} { + if {[$w selection includes $el]} { + $w selection clear $el + } else { + $w selection set $el + } + } else { + $w selection clear 0 end + $w selection set $el + $w selection anchor $el + set Priv(listboxSelection) {} + set Priv(listboxPrev) $el + } + event generate $w <> +} + +# ::tk::ListboxMotion -- +# +# This procedure is called to process mouse motion events while +# button 1 is down. It may move or extend the selection, depending +# on the listbox's selection mode. +# +# Arguments: +# w - The listbox widget. +# el - The element under the pointer (must be a number). + +proc ::tk::ListboxMotion {w el} { + variable ::tk::Priv + if {$el == $Priv(listboxPrev)} { + return + } + set anchor [$w index anchor] + switch [$w cget -selectmode] { + browse { + $w selection clear 0 end + $w selection set $el + set Priv(listboxPrev) $el + event generate $w <> + } + extended { + set i $Priv(listboxPrev) + if {$i eq ""} { + set i $el + $w selection set $el + } + if {[$w selection includes anchor]} { + $w selection clear $i $el + $w selection set anchor $el + } else { + $w selection clear $i $el + $w selection clear anchor $el + } + if {![info exists Priv(listboxSelection)]} { + set Priv(listboxSelection) [$w curselection] + } + while {($i < $el) && ($i < $anchor)} { + if {[lsearch $Priv(listboxSelection) $i] >= 0} { + $w selection set $i + } + incr i + } + while {($i > $el) && ($i > $anchor)} { + if {[lsearch $Priv(listboxSelection) $i] >= 0} { + $w selection set $i + } + incr i -1 + } + set Priv(listboxPrev) $el + event generate $w <> + } + } +} + +# ::tk::ListboxBeginExtend -- +# +# This procedure is typically invoked on shift-button-1 presses. It +# begins the process of extending a selection in the listbox. Its +# exact behavior depends on the selection mode currently in effect +# for the listbox; see the Motif documentation for details. +# +# Arguments: +# w - The listbox widget. +# el - The element for the selection operation (typically the +# one under the pointer). Must be in numerical form. + +proc ::tk::ListboxBeginExtend {w el} { + if {[$w cget -selectmode] eq "extended"} { + if {[$w selection includes anchor]} { + ListboxMotion $w $el + } else { + # No selection yet; simulate the begin-select operation. + ListboxBeginSelect $w $el + } + } +} + +# ::tk::ListboxBeginToggle -- +# +# This procedure is typically invoked on control-button-1 presses. It +# begins the process of toggling a selection in the listbox. Its +# exact behavior depends on the selection mode currently in effect +# for the listbox; see the Motif documentation for details. +# +# Arguments: +# w - The listbox widget. +# el - The element for the selection operation (typically the +# one under the pointer). Must be in numerical form. + +proc ::tk::ListboxBeginToggle {w el} { + variable ::tk::Priv + if {[$w cget -selectmode] eq "extended"} { + set Priv(listboxSelection) [$w curselection] + set Priv(listboxPrev) $el + $w selection anchor $el + if {[$w selection includes $el]} { + $w selection clear $el + } else { + $w selection set $el + } + event generate $w <> + } +} + +# ::tk::ListboxAutoScan -- +# This procedure is invoked when the mouse leaves an entry window +# with button 1 down. It scrolls the window up, down, left, or +# right, depending on where the mouse left the window, and reschedules +# itself as an "after" command so that the window continues to scroll until +# the mouse moves back into the window or the mouse button is released. +# +# Arguments: +# w - The entry window. + +proc ::tk::ListboxAutoScan {w} { + variable ::tk::Priv + if {![winfo exists $w]} return + set x $Priv(x) + set y $Priv(y) + if {$y >= [winfo height $w]} { + $w yview scroll 1 units + } elseif {$y < 0} { + $w yview scroll -1 units + } elseif {$x >= [winfo width $w]} { + $w xview scroll 2 units + } elseif {$x < 0} { + $w xview scroll -2 units + } else { + return + } + ListboxMotion $w [$w index @$x,$y] + set Priv(afterId) [after 50 [list tk::ListboxAutoScan $w]] +} + +# ::tk::ListboxUpDown -- +# +# Moves the location cursor (active element) up or down by one element, +# and changes the selection if we're in browse or extended selection +# mode. +# +# Arguments: +# w - The listbox widget. +# amount - +1 to move down one item, -1 to move back one item. + +proc ::tk::ListboxUpDown {w amount} { + variable ::tk::Priv + $w activate [expr {[$w index active] + $amount}] + $w see active + switch [$w cget -selectmode] { + browse { + $w selection clear 0 end + $w selection set active + event generate $w <> + } + extended { + $w selection clear 0 end + $w selection set active + $w selection anchor active + set Priv(listboxPrev) [$w index active] + set Priv(listboxSelection) {} + event generate $w <> + } + } +} + +# ::tk::ListboxExtendUpDown -- +# +# Does nothing unless we're in extended selection mode; in this +# case it moves the location cursor (active element) up or down by +# one element, and extends the selection to that point. +# +# Arguments: +# w - The listbox widget. +# amount - +1 to move down one item, -1 to move back one item. + +proc ::tk::ListboxExtendUpDown {w amount} { + variable ::tk::Priv + if {[$w cget -selectmode] ne "extended"} { + return + } + set active [$w index active] + if {![info exists Priv(listboxSelection)]} { + $w selection set $active + set Priv(listboxSelection) [$w curselection] + } + $w activate [expr {$active + $amount}] + $w see active + ListboxMotion $w [$w index active] +} + +# ::tk::ListboxDataExtend +# +# This procedure is called for key-presses such as Shift-KEndData. +# If the selection mode isn't multiple or extend then it does nothing. +# Otherwise it moves the active element to el and, if we're in +# extended mode, extends the selection to that point. +# +# Arguments: +# w - The listbox widget. +# el - An integer element number. + +proc ::tk::ListboxDataExtend {w el} { + set mode [$w cget -selectmode] + if {$mode eq "extended"} { + $w activate $el + $w see $el + if {[$w selection includes anchor]} { + ListboxMotion $w $el + } + } elseif {$mode eq "multiple"} { + $w activate $el + $w see $el + } +} + +# ::tk::ListboxCancel +# +# This procedure is invoked to cancel an extended selection in +# progress. If there is an extended selection in progress, it +# restores all of the items between the active one and the anchor +# to their previous selection state. +# +# Arguments: +# w - The listbox widget. + +proc ::tk::ListboxCancel w { + variable ::tk::Priv + if {[$w cget -selectmode] ne "extended"} { + return + } + set first [$w index anchor] + set last $Priv(listboxPrev) + if { $last eq "" } { + # Not actually doing any selection right now + return + } + if {$first > $last} { + set tmp $first + set first $last + set last $tmp + } + $w selection clear $first $last + while {$first <= $last} { + if {[lsearch $Priv(listboxSelection) $first] >= 0} { + $w selection set $first + } + incr first + } + event generate $w <> +} + +# ::tk::ListboxSelectAll +# +# This procedure is invoked to handle the "select all" operation. +# For single and browse mode, it just selects the active element. +# Otherwise it selects everything in the widget. +# +# Arguments: +# w - The listbox widget. + +proc ::tk::ListboxSelectAll w { + set mode [$w cget -selectmode] + if {$mode eq "single" || $mode eq "browse"} { + $w selection clear 0 end + $w selection set active + } else { + $w selection set 0 end + } + event generate $w <> +} diff --git a/lib/tk8.4/menu.tcl b/lib/tk8.4/menu.tcl new file mode 100644 index 00000000..aedeb950 --- /dev/null +++ b/lib/tk8.4/menu.tcl @@ -0,0 +1,1294 @@ +# menu.tcl -- +# +# This file defines the default bindings for Tk menus and menubuttons. +# It also implements keyboard traversal of menus and implements a few +# other utility procedures related to menus. +# +# RCS: @(#) $Id: menu.tcl,v 1.18.2.4 2006/01/25 18:21:41 dgp Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# Copyright (c) 1998-1999 by Scriptics Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# Elements of tk::Priv that are used in this file: +# +# cursor - Saves the -cursor option for the posted menubutton. +# focus - Saves the focus during a menu selection operation. +# Focus gets restored here when the menu is unposted. +# grabGlobal - Used in conjunction with tk::Priv(oldGrab): if +# tk::Priv(oldGrab) is non-empty, then tk::Priv(grabGlobal) +# contains either an empty string or "-global" to +# indicate whether the old grab was a local one or +# a global one. +# inMenubutton - The name of the menubutton widget containing +# the mouse, or an empty string if the mouse is +# not over any menubutton. +# menuBar - The name of the menubar that is the root +# of the cascade hierarchy which is currently +# posted. This is null when there is no menu currently +# being pulled down from a menu bar. +# oldGrab - Window that had the grab before a menu was posted. +# Used to restore the grab state after the menu +# is unposted. Empty string means there was no +# grab previously set. +# popup - If a menu has been popped up via tk_popup, this +# gives the name of the menu. Otherwise this +# value is empty. +# postedMb - Name of the menubutton whose menu is currently +# posted, or an empty string if nothing is posted +# A grab is set on this widget. +# relief - Used to save the original relief of the current +# menubutton. +# window - When the mouse is over a menu, this holds the +# name of the menu; it's cleared when the mouse +# leaves the menu. +# tearoff - Whether the last menu posted was a tearoff or not. +# This is true always for unix, for tearoffs for Mac +# and Windows. +# activeMenu - This is the last active menu for use +# with the <> virtual event. +# activeItem - This is the last active menu item for +# use with the <> virtual event. +#------------------------------------------------------------------------- + +#------------------------------------------------------------------------- +# Overall note: +# This file is tricky because there are five different ways that menus +# can be used: +# +# 1. As a pulldown from a menubutton. In this style, the variable +# tk::Priv(postedMb) identifies the posted menubutton. +# 2. As a torn-off menu copied from some other menu. In this style +# tk::Priv(postedMb) is empty, and menu's type is "tearoff". +# 3. As an option menu, triggered from an option menubutton. In this +# style tk::Priv(postedMb) identifies the posted menubutton. +# 4. As a popup menu. In this style tk::Priv(postedMb) is empty and +# the top-level menu's type is "normal". +# 5. As a pulldown from a menubar. The variable tk::Priv(menubar) has +# the owning menubar, and the menu itself is of type "normal". +# +# The various binding procedures use the state described above to +# distinguish the various cases and take different actions in each +# case. +#------------------------------------------------------------------------- + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for menus +# and menubuttons. +#------------------------------------------------------------------------- + +bind Menubutton {} +bind Menubutton { + tk::MbEnter %W +} +bind Menubutton { + tk::MbLeave %W +} +bind Menubutton <1> { + if {$tk::Priv(inMenubutton) ne ""} { + tk::MbPost $tk::Priv(inMenubutton) %X %Y + } +} +bind Menubutton { + tk::MbMotion %W up %X %Y +} +bind Menubutton { + tk::MbMotion %W down %X %Y +} +bind Menubutton { + tk::MbButtonUp %W +} +bind Menubutton { + tk::MbPost %W + tk::MenuFirstEntry [%W cget -menu] +} + +# Must set focus when mouse enters a menu, in order to allow +# mixed-mode processing using both the mouse and the keyboard. +# Don't set the focus if the event comes from a grab release, +# though: such an event can happen after as part of unposting +# a cascaded chain of menus, after the focus has already been +# restored to wherever it was before menu selection started. + +bind Menu {} + +bind Menu { + set tk::Priv(window) %W + if {[%W cget -type] eq "tearoff"} { + if {"%m" ne "NotifyUngrab"} { + if {[tk windowingsystem] eq "x11"} { + tk_menuSetFocus %W + } + } + } + tk::MenuMotion %W %x %y %s +} + +bind Menu { + tk::MenuLeave %W %X %Y %s +} +bind Menu { + tk::MenuMotion %W %x %y %s +} +bind Menu { + tk::MenuButtonDown %W +} +bind Menu { + tk::MenuInvoke %W 1 +} +bind Menu { + tk::MenuInvoke %W 0 +} +bind Menu { + tk::MenuInvoke %W 0 +} +bind Menu { + tk::MenuEscape %W +} +bind Menu { + tk::MenuLeftArrow %W +} +bind Menu { + tk::MenuRightArrow %W +} +bind Menu { + tk::MenuUpArrow %W +} +bind Menu { + tk::MenuDownArrow %W +} +bind Menu { + tk::TraverseWithinMenu %W %A +} + +# The following bindings apply to all windows, and are used to +# implement keyboard menu traversal. + +if {[tk windowingsystem] eq "x11"} { + bind all { + tk::TraverseToMenu %W %A + } + + bind all { + tk::FirstMenu %W + } +} else { + bind Menubutton { + tk::TraverseToMenu %W %A + } + + bind Menubutton { + tk::FirstMenu %W + } +} + +# ::tk::MbEnter -- +# This procedure is invoked when the mouse enters a menubutton +# widget. It activates the widget unless it is disabled. Note: +# this procedure is only invoked when mouse button 1 is *not* down. +# The procedure ::tk::MbB1Enter is invoked if the button is down. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::MbEnter w { + variable ::tk::Priv + + if {$Priv(inMenubutton) ne ""} { + MbLeave $Priv(inMenubutton) + } + set Priv(inMenubutton) $w + if {[$w cget -state] ne "disabled"} { + $w configure -state active + } +} + +# ::tk::MbLeave -- +# This procedure is invoked when the mouse leaves a menubutton widget. +# It de-activates the widget, if the widget still exists. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::MbLeave w { + variable ::tk::Priv + + set Priv(inMenubutton) {} + if {![winfo exists $w]} { + return + } + if {[$w cget -state] eq "active"} { + $w configure -state normal + } +} + +# ::tk::MbPost -- +# Given a menubutton, this procedure does all the work of posting +# its associated menu and unposting any other menu that is currently +# posted. +# +# Arguments: +# w - The name of the menubutton widget whose menu +# is to be posted. +# x, y - Root coordinates of cursor, used for positioning +# option menus. If not specified, then the center +# of the menubutton is used for an option menu. + +proc ::tk::MbPost {w {x {}} {y {}}} { + global errorInfo + variable ::tk::Priv + global tcl_platform + + if {[$w cget -state] eq "disabled" || $w eq $Priv(postedMb)} { + return + } + set menu [$w cget -menu] + if {$menu eq ""} { + return + } + set tearoff [expr {[tk windowingsystem] eq "x11" \ + || [$menu cget -type] eq "tearoff"}] + if {[string first $w $menu] != 0} { + error "can't post $menu: it isn't a descendant of $w (this is a new requirement in Tk versions 3.0 and later)" + } + set cur $Priv(postedMb) + if {$cur ne ""} { + MenuUnpost {} + } + set Priv(cursor) [$w cget -cursor] + set Priv(relief) [$w cget -relief] + $w configure -cursor arrow + $w configure -relief raised + + set Priv(postedMb) $w + set Priv(focus) [focus] + $menu activate none + GenerateMenuSelect $menu + + # If this looks like an option menubutton then post the menu so + # that the current entry is on top of the mouse. Otherwise post + # the menu just below the menubutton, as for a pull-down. + + update idletasks + if {[catch { + switch [$w cget -direction] { + above { + set x [winfo rootx $w] + set y [expr {[winfo rooty $w] - [winfo reqheight $menu]}] + # if we go offscreen to the top, show as 'below' + if {$y < 0} { + set y [expr {[winfo rooty $w] + [winfo height $w]}] + } + PostOverPoint $menu $x $y + } + below { + set x [winfo rootx $w] + set y [expr {[winfo rooty $w] + [winfo height $w]}] + # if we go offscreen to the bottom, show as 'above' + set mh [winfo reqheight $menu] + if {($y + $mh) > [winfo screenheight $w]} { + set y [expr {[winfo rooty $w] - $mh}] + } + PostOverPoint $menu $x $y + } + left { + set x [expr {[winfo rootx $w] - [winfo reqwidth $menu]}] + set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}] + set entry [MenuFindName $menu [$w cget -text]] + if {[$w cget -indicatoron]} { + if {$entry == [$menu index last]} { + incr y [expr {-([$menu yposition $entry] \ + + [winfo reqheight $menu])/2}] + } else { + incr y [expr {-([$menu yposition $entry] \ + + [$menu yposition [expr {$entry+1}]])/2}] + } + } + PostOverPoint $menu $x $y + if {$entry ne "" \ + && [$menu entrycget $entry -state] ne "disabled"} { + $menu activate $entry + GenerateMenuSelect $menu + } + } + right { + set x [expr {[winfo rootx $w] + [winfo width $w]}] + set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}] + set entry [MenuFindName $menu [$w cget -text]] + if {[$w cget -indicatoron]} { + if {$entry == [$menu index last]} { + incr y [expr {-([$menu yposition $entry] \ + + [winfo reqheight $menu])/2}] + } else { + incr y [expr {-([$menu yposition $entry] \ + + [$menu yposition [expr {$entry+1}]])/2}] + } + } + PostOverPoint $menu $x $y + if {$entry ne "" \ + && [$menu entrycget $entry -state] ne "disabled"} { + $menu activate $entry + GenerateMenuSelect $menu + } + } + default { + if {[$w cget -indicatoron]} { + if {$y eq ""} { + set x [expr {[winfo rootx $w] + [winfo width $w]/2}] + set y [expr {[winfo rooty $w] + [winfo height $w]/2}] + } + PostOverPoint $menu $x $y [MenuFindName $menu [$w cget -text]] + } else { + PostOverPoint $menu [winfo rootx $w] [expr {[winfo rooty $w]+[winfo height $w]}] + } + } + } + } msg]} { + # Error posting menu (e.g. bogus -postcommand). Unpost it and + # reflect the error. + + set savedInfo $errorInfo + MenuUnpost {} + error $msg $savedInfo + + } + + set Priv(tearoff) $tearoff + if {$tearoff != 0} { + focus $menu + if {[winfo viewable $w]} { + SaveGrabInfo $w + grab -global $w + } + } +} + +# ::tk::MenuUnpost -- +# This procedure unposts a given menu, plus all of its ancestors up +# to (and including) a menubutton, if any. It also restores various +# values to what they were before the menu was posted, and releases +# a grab if there's a menubutton involved. Special notes: +# 1. It's important to unpost all menus before releasing the grab, so +# that any Enter-Leave events (e.g. from menu back to main +# application) have mode NotifyGrab. +# 2. Be sure to enclose various groups of commands in "catch" so that +# the procedure will complete even if the menubutton or the menu +# or the grab window has been deleted. +# +# Arguments: +# menu - Name of a menu to unpost. Ignored if there +# is a posted menubutton. + +proc ::tk::MenuUnpost menu { + global tcl_platform + variable ::tk::Priv + set mb $Priv(postedMb) + + # Restore focus right away (otherwise X will take focus away when + # the menu is unmapped and under some window managers (e.g. olvwm) + # we'll lose the focus completely). + + catch {focus $Priv(focus)} + set Priv(focus) "" + + # Unpost menu(s) and restore some stuff that's dependent on + # what was posted. + + catch { + if {$mb ne ""} { + set menu [$mb cget -menu] + $menu unpost + set Priv(postedMb) {} + $mb configure -cursor $Priv(cursor) + $mb configure -relief $Priv(relief) + } elseif {$Priv(popup) ne ""} { + $Priv(popup) unpost + set Priv(popup) {} + } elseif {[$menu cget -type] ne "menubar" && [$menu cget -type] ne "tearoff"} { + # We're in a cascaded sub-menu from a torn-off menu or popup. + # Unpost all the menus up to the toplevel one (but not + # including the top-level torn-off one) and deactivate the + # top-level torn off menu if there is one. + + while {1} { + set parent [winfo parent $menu] + if {[winfo class $parent] ne "Menu" || ![winfo ismapped $parent]} { + break + } + $parent activate none + $parent postcascade none + GenerateMenuSelect $parent + set type [$parent cget -type] + if {$type eq "menubar" || $type eq "tearoff"} { + break + } + set menu $parent + } + if {[$menu cget -type] ne "menubar"} { + $menu unpost + } + } + } + + if {($Priv(tearoff) != 0) || $Priv(menuBar) ne ""} { + # Release grab, if any, and restore the previous grab, if there + # was one. + if {$menu ne ""} { + set grab [grab current $menu] + if {$grab ne ""} { + grab release $grab + } + } + RestoreOldGrab + if {$Priv(menuBar) ne ""} { + $Priv(menuBar) configure -cursor $Priv(cursor) + set Priv(menuBar) {} + } + if {[tk windowingsystem] ne "x11"} { + set Priv(tearoff) 0 + } + } +} + +# ::tk::MbMotion -- +# This procedure handles mouse motion events inside menubuttons, and +# also outside menubuttons when a menubutton has a grab (e.g. when a +# menu selection operation is in progress). +# +# Arguments: +# w - The name of the menubutton widget. +# upDown - "down" means button 1 is pressed, "up" means +# it isn't. +# rootx, rooty - Coordinates of mouse, in (virtual?) root window. + +proc ::tk::MbMotion {w upDown rootx rooty} { + variable ::tk::Priv + + if {$Priv(inMenubutton) eq $w} { + return + } + set new [winfo containing $rootx $rooty] + if {$new ne $Priv(inMenubutton) \ + && ($new eq "" || [winfo toplevel $new] eq [winfo toplevel $w])} { + if {$Priv(inMenubutton) ne ""} { + MbLeave $Priv(inMenubutton) + } + if {$new ne "" \ + && [winfo class $new] eq "Menubutton" \ + && ([$new cget -indicatoron] == 0) \ + && ([$w cget -indicatoron] == 0)} { + if {$upDown eq "down"} { + MbPost $new $rootx $rooty + } else { + MbEnter $new + } + } + } +} + +# ::tk::MbButtonUp -- +# This procedure is invoked to handle button 1 releases for menubuttons. +# If the release happens inside the menubutton then leave its menu +# posted with element 0 activated. Otherwise, unpost the menu. +# +# Arguments: +# w - The name of the menubutton widget. + +proc ::tk::MbButtonUp w { + variable ::tk::Priv + global tcl_platform + + set menu [$w cget -menu] + set tearoff [expr {[tk windowingsystem] eq "x11" || \ + ($menu ne "" && [$menu cget -type] eq "tearoff")}] + if {($tearoff != 0) && $Priv(postedMb) eq $w \ + && $Priv(inMenubutton) eq $w} { + MenuFirstEntry [$Priv(postedMb) cget -menu] + } else { + MenuUnpost {} + } +} + +# ::tk::MenuMotion -- +# This procedure is called to handle mouse motion events for menus. +# It does two things. First, it resets the active element in the +# menu, if the mouse is over the menu. Second, if a mouse button +# is down, it posts and unposts cascade entries to match the mouse +# position. +# +# Arguments: +# menu - The menu window. +# x - The x position of the mouse. +# y - The y position of the mouse. +# state - Modifier state (tells whether buttons are down). + +proc ::tk::MenuMotion {menu x y state} { + variable ::tk::Priv + if {$menu eq $Priv(window)} { + if {[$menu cget -type] eq "menubar"} { + if {[info exists Priv(focus)] && $menu ne $Priv(focus)} { + $menu activate @$x,$y + GenerateMenuSelect $menu + } + } else { + $menu activate @$x,$y + GenerateMenuSelect $menu + } + } + if {($state & 0x1f00) != 0} { + $menu postcascade active + } +} + +# ::tk::MenuButtonDown -- +# Handles button presses in menus. There are a couple of tricky things +# here: +# 1. Change the posted cascade entry (if any) to match the mouse position. +# 2. If there is a posted menubutton, must grab to the menubutton; this +# overrrides the implicit grab on button press, so that the menu +# button can track mouse motions over other menubuttons and change +# the posted menu. +# 3. If there's no posted menubutton (e.g. because we're a torn-off menu +# or one of its descendants) must grab to the top-level menu so that +# we can track mouse motions across the entire menu hierarchy. +# +# Arguments: +# menu - The menu window. + +proc ::tk::MenuButtonDown menu { + variable ::tk::Priv + global tcl_platform + + if {![winfo viewable $menu]} { + return + } + $menu postcascade active + if {$Priv(postedMb) ne "" && [winfo viewable $Priv(postedMb)]} { + grab -global $Priv(postedMb) + } else { + while {[$menu cget -type] eq "normal" \ + && [winfo class [winfo parent $menu]] eq "Menu" \ + && [winfo ismapped [winfo parent $menu]]} { + set menu [winfo parent $menu] + } + + if {$Priv(menuBar) eq ""} { + set Priv(menuBar) $menu + set Priv(cursor) [$menu cget -cursor] + $menu configure -cursor arrow + } + + # Don't update grab information if the grab window isn't changing. + # Otherwise, we'll get an error when we unpost the menus and + # restore the grab, since the old grab window will not be viewable + # anymore. + + if {$menu ne [grab current $menu]} { + SaveGrabInfo $menu + } + + # Must re-grab even if the grab window hasn't changed, in order + # to release the implicit grab from the button press. + + if {[tk windowingsystem] eq "x11"} { + grab -global $menu + } + } +} + +# ::tk::MenuLeave -- +# This procedure is invoked to handle Leave events for a menu. It +# deactivates everything unless the active element is a cascade element +# and the mouse is now over the submenu. +# +# Arguments: +# menu - The menu window. +# rootx, rooty - Root coordinates of mouse. +# state - Modifier state. + +proc ::tk::MenuLeave {menu rootx rooty state} { + variable ::tk::Priv + set Priv(window) {} + if {[$menu index active] eq "none"} { + return + } + if {[$menu type active] eq "cascade" \ + && [winfo containing $rootx $rooty] eq [$menu entrycget active -menu]} { + return + } + $menu activate none + GenerateMenuSelect $menu +} + +# ::tk::MenuInvoke -- +# This procedure is invoked when button 1 is released over a menu. +# It invokes the appropriate menu action and unposts the menu if +# it came from a menubutton. +# +# Arguments: +# w - Name of the menu widget. +# buttonRelease - 1 means this procedure is called because of +# a button release; 0 means because of keystroke. + +proc ::tk::MenuInvoke {w buttonRelease} { + variable ::tk::Priv + + if {$buttonRelease && $Priv(window) eq ""} { + # Mouse was pressed over a menu without a menu button, then + # dragged off the menu (possibly with a cascade posted) and + # released. Unpost everything and quit. + + $w postcascade none + $w activate none + event generate $w <> + MenuUnpost $w + return + } + if {[$w type active] eq "cascade"} { + $w postcascade active + set menu [$w entrycget active -menu] + MenuFirstEntry $menu + } elseif {[$w type active] eq "tearoff"} { + ::tk::TearOffMenu $w + MenuUnpost $w + } elseif {[$w cget -type] eq "menubar"} { + $w postcascade none + set active [$w index active] + set isCascade [string equal [$w type $active] "cascade"] + + # Only de-activate the active item if it's a cascade; this prevents + # the annoying "activation flicker" you otherwise get with + # checkbuttons/commands/etc. on menubars + + if { $isCascade } { + $w activate none + event generate $w <> + } + + MenuUnpost $w + + # If the active item is not a cascade, invoke it. This enables + # the use of checkbuttons/commands/etc. on menubars (which is legal, + # but not recommended) + + if { !$isCascade } { + uplevel #0 [list $w invoke $active] + } + } else { + set active [$w index active] + if {$Priv(popup) eq "" || $active ne "none"} { + MenuUnpost $w + } + uplevel #0 [list $w invoke active] + } +} + +# ::tk::MenuEscape -- +# This procedure is invoked for the Cancel (or Escape) key. It unposts +# the given menu and, if it is the top-level menu for a menu button, +# unposts the menu button as well. +# +# Arguments: +# menu - Name of the menu window. + +proc ::tk::MenuEscape menu { + set parent [winfo parent $menu] + if {[winfo class $parent] ne "Menu"} { + MenuUnpost $menu + } elseif {[$parent cget -type] eq "menubar"} { + MenuUnpost $menu + RestoreOldGrab + } else { + MenuNextMenu $menu left + } +} + +# The following routines handle arrow keys. Arrow keys behave +# differently depending on whether the menu is a menu bar or not. + +proc ::tk::MenuUpArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextMenu $menu left + } else { + MenuNextEntry $menu -1 + } +} + +proc ::tk::MenuDownArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextMenu $menu right + } else { + MenuNextEntry $menu 1 + } +} + +proc ::tk::MenuLeftArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextEntry $menu -1 + } else { + MenuNextMenu $menu left + } +} + +proc ::tk::MenuRightArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextEntry $menu 1 + } else { + MenuNextMenu $menu right + } +} + +# ::tk::MenuNextMenu -- +# This procedure is invoked to handle "left" and "right" traversal +# motions in menus. It traverses to the next menu in a menu bar, +# or into or out of a cascaded menu. +# +# Arguments: +# menu - The menu that received the keyboard +# event. +# direction - Direction in which to move: "left" or "right" + +proc ::tk::MenuNextMenu {menu direction} { + variable ::tk::Priv + + # First handle traversals into and out of cascaded menus. + + if {$direction eq "right"} { + set count 1 + set parent [winfo parent $menu] + set class [winfo class $parent] + if {[$menu type active] eq "cascade"} { + $menu postcascade active + set m2 [$menu entrycget active -menu] + if {$m2 ne ""} { + MenuFirstEntry $m2 + } + return + } else { + set parent [winfo parent $menu] + while {$parent ne "."} { + if {[winfo class $parent] eq "Menu" && [$parent cget -type] eq "menubar"} { + tk_menuSetFocus $parent + MenuNextEntry $parent 1 + return + } + set parent [winfo parent $parent] + } + } + } else { + set count -1 + set m2 [winfo parent $menu] + if {[winfo class $m2] eq "Menu"} { + $menu activate none + GenerateMenuSelect $menu + tk_menuSetFocus $m2 + + $m2 postcascade none + + if {[$m2 cget -type] ne "menubar"} { + return + } + } + } + + # Can't traverse into or out of a cascaded menu. Go to the next + # or previous menubutton, if that makes sense. + + set m2 [winfo parent $menu] + if {[winfo class $m2] eq "Menu"} { + if {[$m2 cget -type] eq "menubar"} { + tk_menuSetFocus $m2 + MenuNextEntry $m2 -1 + return + } + } + + set w $Priv(postedMb) + if {$w eq ""} { + return + } + set buttons [winfo children [winfo parent $w]] + set length [llength $buttons] + set i [expr {[lsearch -exact $buttons $w] + $count}] + while {1} { + while {$i < 0} { + incr i $length + } + while {$i >= $length} { + incr i -$length + } + set mb [lindex $buttons $i] + if {[winfo class $mb] eq "Menubutton" \ + && [$mb cget -state] ne "disabled" \ + && [$mb cget -menu] ne "" \ + && [[$mb cget -menu] index last] ne "none"} { + break + } + if {$mb eq $w} { + return + } + incr i $count + } + MbPost $mb + MenuFirstEntry [$mb cget -menu] +} + +# ::tk::MenuNextEntry -- +# Activate the next higher or lower entry in the posted menu, +# wrapping around at the ends. Disabled entries are skipped. +# +# Arguments: +# menu - Menu window that received the keystroke. +# count - 1 means go to the next lower entry, +# -1 means go to the next higher entry. + +proc ::tk::MenuNextEntry {menu count} { + if {[$menu index last] eq "none"} { + return + } + set length [expr {[$menu index last]+1}] + set quitAfter $length + set active [$menu index active] + if {$active eq "none"} { + set i 0 + } else { + set i [expr {$active + $count}] + } + while {1} { + if {$quitAfter <= 0} { + # We've tried every entry in the menu. Either there are + # none, or they're all disabled. Just give up. + + return + } + while {$i < 0} { + incr i $length + } + while {$i >= $length} { + incr i -$length + } + if {[catch {$menu entrycget $i -state} state] == 0} { + if {$state ne "disabled" && \ + ($i!=0 || [$menu cget -type] ne "tearoff" \ + || [$menu type 0] ne "tearoff")} { + break + } + } + if {$i == $active} { + return + } + incr i $count + incr quitAfter -1 + } + $menu activate $i + GenerateMenuSelect $menu + + if {[$menu type $i] eq "cascade" && [$menu cget -type] eq "menubar"} { + set cascade [$menu entrycget $i -menu] + if {$cascade ne ""} { + # Here we auto-post a cascade. This is necessary when + # we traverse left/right in the menubar, but undesirable when + # we traverse up/down in a menu. + $menu postcascade $i + MenuFirstEntry $cascade + } + } +} + +# ::tk::MenuFind -- +# This procedure searches the entire window hierarchy under w for +# a menubutton that isn't disabled and whose underlined character +# is "char" or an entry in a menubar that isn't disabled and whose +# underlined character is "char". +# It returns the name of that window, if found, or an +# empty string if no matching window was found. If "char" is an +# empty string then the procedure returns the name of the first +# menubutton found that isn't disabled. +# +# Arguments: +# w - Name of window where key was typed. +# char - Underlined character to search for; +# may be either upper or lower case, and +# will match either upper or lower case. + +proc ::tk::MenuFind {w char} { + set char [string tolower $char] + set windowlist [winfo child $w] + + foreach child $windowlist { + # Don't descend into other toplevels. + if {[winfo toplevel $w] ne [winfo toplevel $child]} { + continue + } + if {[winfo class $child] eq "Menu" && [$child cget -type] eq "menubar"} { + if {$char eq ""} { + return $child + } + set last [$child index last] + for {set i [$child cget -tearoff]} {$i <= $last} {incr i} { + if {[$child type $i] eq "separator"} { + continue + } + set char2 [string index [$child entrycget $i -label] \ + [$child entrycget $i -underline]] + if {$char eq [string tolower $char2] || $char eq ""} { + if {[$child entrycget $i -state] ne "disabled"} { + return $child + } + } + } + } + } + + foreach child $windowlist { + # Don't descend into other toplevels. + if {[winfo toplevel $w] ne [winfo toplevel $child]} { + continue + } + switch [winfo class $child] { + Menubutton { + set char2 [string index [$child cget -text] \ + [$child cget -underline]] + if {$char eq [string tolower $char2] || $char eq ""} { + if {[$child cget -state] ne "disabled"} { + return $child + } + } + } + + default { + set match [MenuFind $child $char] + if {$match ne ""} { + return $match + } + } + } + } + return {} +} + +# ::tk::TraverseToMenu -- +# This procedure implements keyboard traversal of menus. Given an +# ASCII character "char", it looks for a menubutton with that character +# underlined. If one is found, it posts the menubutton's menu +# +# Arguments: +# w - Window in which the key was typed (selects +# a toplevel window). +# char - Character that selects a menu. The case +# is ignored. If an empty string, nothing +# happens. + +proc ::tk::TraverseToMenu {w char} { + variable ::tk::Priv + if {$char eq ""} { + return + } + while {[winfo class $w] eq "Menu"} { + if {[$w cget -type] eq "menubar"} { + break + } elseif {$Priv(postedMb) eq ""} { + return + } + set w [winfo parent $w] + } + set w [MenuFind [winfo toplevel $w] $char] + if {$w ne ""} { + if {[winfo class $w] eq "Menu"} { + tk_menuSetFocus $w + set Priv(window) $w + SaveGrabInfo $w + grab -global $w + TraverseWithinMenu $w $char + } else { + MbPost $w + MenuFirstEntry [$w cget -menu] + } + } +} + +# ::tk::FirstMenu -- +# This procedure traverses to the first menubutton in the toplevel +# for a given window, and posts that menubutton's menu. +# +# Arguments: +# w - Name of a window. Selects which toplevel +# to search for menubuttons. + +proc ::tk::FirstMenu w { + variable ::tk::Priv + set w [MenuFind [winfo toplevel $w] ""] + if {$w ne ""} { + if {[winfo class $w] eq "Menu"} { + tk_menuSetFocus $w + set Priv(window) $w + SaveGrabInfo $w + grab -global $w + MenuFirstEntry $w + } else { + MbPost $w + MenuFirstEntry [$w cget -menu] + } + } +} + +# ::tk::TraverseWithinMenu +# This procedure implements keyboard traversal within a menu. It +# searches for an entry in the menu that has "char" underlined. If +# such an entry is found, it is invoked and the menu is unposted. +# +# Arguments: +# w - The name of the menu widget. +# char - The character to look for; case is +# ignored. If the string is empty then +# nothing happens. + +proc ::tk::TraverseWithinMenu {w char} { + if {$char eq ""} { + return + } + set char [string tolower $char] + set last [$w index last] + if {$last eq "none"} { + return + } + for {set i 0} {$i <= $last} {incr i} { + if {[catch {set char2 [string index \ + [$w entrycget $i -label] [$w entrycget $i -underline]]}]} { + continue + } + if {$char eq [string tolower $char2]} { + if {[$w type $i] eq "cascade"} { + $w activate $i + $w postcascade active + event generate $w <> + set m2 [$w entrycget $i -menu] + if {$m2 ne ""} { + MenuFirstEntry $m2 + } + } else { + MenuUnpost $w + uplevel #0 [list $w invoke $i] + } + return + } + } +} + +# ::tk::MenuFirstEntry -- +# Given a menu, this procedure finds the first entry that isn't +# disabled or a tear-off or separator, and activates that entry. +# However, if there is already an active entry in the menu (e.g., +# because of a previous call to tk::PostOverPoint) then the active +# entry isn't changed. This procedure also sets the input focus +# to the menu. +# +# Arguments: +# menu - Name of the menu window (possibly empty). + +proc ::tk::MenuFirstEntry menu { + if {$menu eq ""} { + return + } + tk_menuSetFocus $menu + if {[$menu index active] ne "none"} { + return + } + set last [$menu index last] + if {$last eq "none"} { + return + } + for {set i 0} {$i <= $last} {incr i} { + if {([catch {set state [$menu entrycget $i -state]}] == 0) \ + && $state ne "disabled" \ + && [$menu type $i] ne "tearoff"} { + $menu activate $i + GenerateMenuSelect $menu + # Only post the cascade if the current menu is a menubar; + # otherwise, if the first entry of the cascade is a cascade, + # we can get an annoying cascading effect resulting in a bunch of + # menus getting posted (bug 676) + if {[$menu type $i] eq "cascade" && [$menu cget -type] eq "menubar"} { + set cascade [$menu entrycget $i -menu] + if {$cascade ne ""} { + $menu postcascade $i + MenuFirstEntry $cascade + } + } + return + } + } +} + +# ::tk::MenuFindName -- +# Given a menu and a text string, return the index of the menu entry +# that displays the string as its label. If there is no such entry, +# return an empty string. This procedure is tricky because some names +# like "active" have a special meaning in menu commands, so we can't +# always use the "index" widget command. +# +# Arguments: +# menu - Name of the menu widget. +# s - String to look for. + +proc ::tk::MenuFindName {menu s} { + set i "" + if {![regexp {^active$|^last$|^none$|^[0-9]|^@} $s]} { + catch {set i [$menu index $s]} + return $i + } + set last [$menu index last] + if {$last eq "none"} { + return + } + for {set i 0} {$i <= $last} {incr i} { + if {![catch {$menu entrycget $i -label} label]} { + if {$label eq $s} { + return $i + } + } + } + return "" +} + +# ::tk::PostOverPoint -- +# This procedure posts a given menu such that a given entry in the +# menu is centered over a given point in the root window. It also +# activates the given entry. +# +# Arguments: +# menu - Menu to post. +# x, y - Root coordinates of point. +# entry - Index of entry within menu to center over (x,y). +# If omitted or specified as {}, then the menu's +# upper-left corner goes at (x,y). + +proc ::tk::PostOverPoint {menu x y {entry {}}} { + global tcl_platform + + if {$entry ne ""} { + if {$entry == [$menu index last]} { + incr y [expr {-([$menu yposition $entry] \ + + [winfo reqheight $menu])/2}] + } else { + incr y [expr {-([$menu yposition $entry] \ + + [$menu yposition [expr {$entry+1}]])/2}] + } + incr x [expr {-[winfo reqwidth $menu]/2}] + } + if {$tcl_platform(platform) eq "windows"} { + # We need to fix some problems with menu posting on Windows, + # where, if the menu would overlap top or bottom of screen, + # Windows puts it in the wrong place for us. We must also + # subtract an extra amount for half the height of the current + # entry. To be safe we subtract an extra 10. + set yoffset [expr {[winfo screenheight $menu] \ + - $y - [winfo reqheight $menu] - 10}] + if {$yoffset < 0} { + # The bottom of the menu is offscreen, so adjust upwards + incr y $yoffset + if {$y < 0} { set y 0 } + } + # If we're off the top of the screen (either because we were + # originally or because we just adjusted too far upwards), + # then make the menu popup on the top edge. + if {$y < 0} { + set y 0 + } + } + $menu post $x $y + if {$entry ne "" && [$menu entrycget $entry -state] ne "disabled"} { + $menu activate $entry + GenerateMenuSelect $menu + } +} + +# ::tk::SaveGrabInfo -- +# Sets the variables tk::Priv(oldGrab) and tk::Priv(grabStatus) to record +# the state of any existing grab on the w's display. +# +# Arguments: +# w - Name of a window; used to select the display +# whose grab information is to be recorded. + +proc tk::SaveGrabInfo w { + variable ::tk::Priv + set Priv(oldGrab) [grab current $w] + if {$Priv(oldGrab) ne ""} { + set Priv(grabStatus) [grab status $Priv(oldGrab)] + } +} + +# ::tk::RestoreOldGrab -- +# Restores the grab to what it was before TkSaveGrabInfo was called. +# + +proc ::tk::RestoreOldGrab {} { + variable ::tk::Priv + + if {$Priv(oldGrab) ne ""} { + # Be careful restoring the old grab, since it's window may not + # be visible anymore. + + catch { + if {$Priv(grabStatus) eq "global"} { + grab set -global $Priv(oldGrab) + } else { + grab set $Priv(oldGrab) + } + } + set Priv(oldGrab) "" + } +} + +proc ::tk_menuSetFocus {menu} { + variable ::tk::Priv + if {![info exists Priv(focus)] || $Priv(focus) eq ""} { + set Priv(focus) [focus] + } + focus $menu +} + +proc ::tk::GenerateMenuSelect {menu} { + variable ::tk::Priv + + if {$Priv(activeMenu) eq $menu && $Priv(activeItem) eq [$menu index active]} { + return + } + + set Priv(activeMenu) $menu + set Priv(activeItem) [$menu index active] + event generate $menu <> +} + +# ::tk_popup -- +# This procedure pops up a menu and sets things up for traversing +# the menu and its submenus. +# +# Arguments: +# menu - Name of the menu to be popped up. +# x, y - Root coordinates at which to pop up the +# menu. +# entry - Index of a menu entry to center over (x,y). +# If omitted or specified as {}, then menu's +# upper-left corner goes at (x,y). + +proc ::tk_popup {menu x y {entry {}}} { + variable ::tk::Priv + global tcl_platform + if {$Priv(popup) ne "" || $Priv(postedMb) ne ""} { + tk::MenuUnpost {} + } + tk::PostOverPoint $menu $x $y $entry + if {[tk windowingsystem] eq "x11" && [winfo viewable $menu]} { + tk::SaveGrabInfo $menu + grab -global $menu + set Priv(popup) $menu + tk_menuSetFocus $menu + } +} diff --git a/lib/tk8.4/mkpsenc.tcl b/lib/tk8.4/mkpsenc.tcl new file mode 100644 index 00000000..bc3c243e --- /dev/null +++ b/lib/tk8.4/mkpsenc.tcl @@ -0,0 +1,1367 @@ +# mkpsenc.tcl -- +# +# Creates Postscript encoding vector for given encoding +# + +proc ::tk::CreatePostscriptEncoding {encoding} { + # now check for known. Even if it is known, it can be other + # than we need. GhostScript seems to be happy with such approach + set result "/CurrentEncoding \[\n" + for {set i 0} {$i<256} {incr i 8} { + for {set j 0} {$j<8} {incr j} { + set enc [encoding convertfrom $encoding [format %c [expr {$i+$j}]]] + if {[catch {format %04X [scan $enc %c]} hexcode]} {set hexcode {}} + if [info exists ::tk::psglyphs($hexcode)] { + append result "/$::tk::psglyphs($hexcode)" + } else { + append result "/space" + } + } + append result "\n" + } + append result "\] def\n" + return $result +} + +# List of adobe glyph names. Converted from glyphlist.txt, downloaded +# from Adobe + +namespace eval ::tk { +array set psglyphs { + 0020 space + 0021 exclam + 0022 quotedbl + 0023 numbersign + 0024 dollar + 0025 percent + 0026 ampersand + 0027 quotesingle + 0028 parenleft + 0029 parenright + 002A asterisk + 002B plus + 002C comma + 002D hyphen + 002E period + 002F slash + 0030 zero + 0031 one + 0032 two + 0033 three + 0034 four + 0035 five + 0036 six + 0037 seven + 0038 eight + 0039 nine + 003A colon + 003B semicolon + 003C less + 003D equal + 003E greater + 003F question + 0040 at + 0041 A + 0042 B + 0043 C + 0044 D + 0045 E + 0046 F + 0047 G + 0048 H + 0049 I + 004A J + 004B K + 004C L + 004D M + 004E N + 004F O + 0050 P + 0051 Q + 0052 R + 0053 S + 0054 T + 0055 U + 0056 V + 0057 W + 0058 X + 0059 Y + 005A Z + 005B bracketleft + 005C backslash + 005D bracketright + 005E asciicircum + 005F underscore + 0060 grave + 0061 a + 0062 b + 0063 c + 0064 d + 0065 e + 0066 f + 0067 g + 0068 h + 0069 i + 006A j + 006B k + 006C l + 006D m + 006E n + 006F o + 0070 p + 0071 q + 0072 r + 0073 s + 0074 t + 0075 u + 0076 v + 0077 w + 0078 x + 0079 y + 007A z + 007B braceleft + 007C bar + 007D braceright + 007E asciitilde + 00A0 space + 00A1 exclamdown + 00A2 cent + 00A3 sterling + 00A4 currency + 00A5 yen + 00A6 brokenbar + 00A7 section + 00A8 dieresis + 00A9 copyright + 00AA ordfeminine + 00AB guillemotleft + 00AC logicalnot + 00AD hyphen + 00AE registered + 00AF macron + 00B0 degree + 00B1 plusminus + 00B2 twosuperior + 00B3 threesuperior + 00B4 acute + 00B5 mu + 00B6 paragraph + 00B7 periodcentered + 00B8 cedilla + 00B9 onesuperior + 00BA ordmasculine + 00BB guillemotright + 00BC onequarter + 00BD onehalf + 00BE threequarters + 00BF questiondown + 00C0 Agrave + 00C1 Aacute + 00C2 Acircumflex + 00C3 Atilde + 00C4 Adieresis + 00C5 Aring + 00C6 AE + 00C7 Ccedilla + 00C8 Egrave + 00C9 Eacute + 00CA Ecircumflex + 00CB Edieresis + 00CC Igrave + 00CD Iacute + 00CE Icircumflex + 00CF Idieresis + 00D0 Eth + 00D1 Ntilde + 00D2 Ograve + 00D3 Oacute + 00D4 Ocircumflex + 00D5 Otilde + 00D6 Odieresis + 00D7 multiply + 00D8 Oslash + 00D9 Ugrave + 00DA Uacute + 00DB Ucircumflex + 00DC Udieresis + 00DD Yacute + 00DE Thorn + 00DF germandbls + 00E0 agrave + 00E1 aacute + 00E2 acircumflex + 00E3 atilde + 00E4 adieresis + 00E5 aring + 00E6 ae + 00E7 ccedilla + 00E8 egrave + 00E9 eacute + 00EA ecircumflex + 00EB edieresis + 00EC igrave + 00ED iacute + 00EE icircumflex + 00EF idieresis + 00F0 eth + 00F1 ntilde + 00F2 ograve + 00F3 oacute + 00F4 ocircumflex + 00F5 otilde + 00F6 odieresis + 00F7 divide + 00F8 oslash + 00F9 ugrave + 00FA uacute + 00FB ucircumflex + 00FC udieresis + 00FD yacute + 00FE thorn + 00FF ydieresis + 0100 Amacron + 0101 amacron + 0102 Abreve + 0103 abreve + 0104 Aogonek + 0105 aogonek + 0106 Cacute + 0107 cacute + 0108 Ccircumflex + 0109 ccircumflex + 010A Cdotaccent + 010B cdotaccent + 010C Ccaron + 010D ccaron + 010E Dcaron + 010F dcaron + 0110 Dcroat + 0111 dcroat + 0112 Emacron + 0113 emacron + 0114 Ebreve + 0115 ebreve + 0116 Edotaccent + 0117 edotaccent + 0118 Eogonek + 0119 eogonek + 011A Ecaron + 011B ecaron + 011C Gcircumflex + 011D gcircumflex + 011E Gbreve + 011F gbreve + 0120 Gdotaccent + 0121 gdotaccent + 0122 Gcommaaccent + 0123 gcommaaccent + 0124 Hcircumflex + 0125 hcircumflex + 0126 Hbar + 0127 hbar + 0128 Itilde + 0129 itilde + 012A Imacron + 012B imacron + 012C Ibreve + 012D ibreve + 012E Iogonek + 012F iogonek + 0130 Idotaccent + 0131 dotlessi + 0132 IJ + 0133 ij + 0134 Jcircumflex + 0135 jcircumflex + 0136 Kcommaaccent + 0137 kcommaaccent + 0138 kgreenlandic + 0139 Lacute + 013A lacute + 013B Lcommaaccent + 013C lcommaaccent + 013D Lcaron + 013E lcaron + 013F Ldot + 0140 ldot + 0141 Lslash + 0142 lslash + 0143 Nacute + 0144 nacute + 0145 Ncommaaccent + 0146 ncommaaccent + 0147 Ncaron + 0148 ncaron + 0149 napostrophe + 014A Eng + 014B eng + 014C Omacron + 014D omacron + 014E Obreve + 014F obreve + 0150 Ohungarumlaut + 0151 ohungarumlaut + 0152 OE + 0153 oe + 0154 Racute + 0155 racute + 0156 Rcommaaccent + 0157 rcommaaccent + 0158 Rcaron + 0159 rcaron + 015A Sacute + 015B sacute + 015C Scircumflex + 015D scircumflex + 015E Scedilla + 015F scedilla + 0160 Scaron + 0161 scaron + 0162 Tcommaaccent + 0163 tcommaaccent + 0164 Tcaron + 0165 tcaron + 0166 Tbar + 0167 tbar + 0168 Utilde + 0169 utilde + 016A Umacron + 016B umacron + 016C Ubreve + 016D ubreve + 016E Uring + 016F uring + 0170 Uhungarumlaut + 0171 uhungarumlaut + 0172 Uogonek + 0173 uogonek + 0174 Wcircumflex + 0175 wcircumflex + 0176 Ycircumflex + 0177 ycircumflex + 0178 Ydieresis + 0179 Zacute + 017A zacute + 017B Zdotaccent + 017C zdotaccent + 017D Zcaron + 017E zcaron + 017F longs + 0192 florin + 01A0 Ohorn + 01A1 ohorn + 01AF Uhorn + 01B0 uhorn + 01E6 Gcaron + 01E7 gcaron + 01FA Aringacute + 01FB aringacute + 01FC AEacute + 01FD aeacute + 01FE Oslashacute + 01FF oslashacute + 0218 Scommaaccent + 0219 scommaaccent + 021A Tcommaaccent + 021B tcommaaccent + 02BC afii57929 + 02BD afii64937 + 02C6 circumflex + 02C7 caron + 02C9 macron + 02D8 breve + 02D9 dotaccent + 02DA ring + 02DB ogonek + 02DC tilde + 02DD hungarumlaut + 0300 gravecomb + 0301 acutecomb + 0303 tildecomb + 0309 hookabovecomb + 0323 dotbelowcomb + 0384 tonos + 0385 dieresistonos + 0386 Alphatonos + 0387 anoteleia + 0388 Epsilontonos + 0389 Etatonos + 038A Iotatonos + 038C Omicrontonos + 038E Upsilontonos + 038F Omegatonos + 0390 iotadieresistonos + 0391 Alpha + 0392 Beta + 0393 Gamma + 0394 Delta + 0395 Epsilon + 0396 Zeta + 0397 Eta + 0398 Theta + 0399 Iota + 039A Kappa + 039B Lambda + 039C Mu + 039D Nu + 039E Xi + 039F Omicron + 03A0 Pi + 03A1 Rho + 03A3 Sigma + 03A4 Tau + 03A5 Upsilon + 03A6 Phi + 03A7 Chi + 03A8 Psi + 03A9 Omega + 03AA Iotadieresis + 03AB Upsilondieresis + 03AC alphatonos + 03AD epsilontonos + 03AE etatonos + 03AF iotatonos + 03B0 upsilondieresistonos + 03B1 alpha + 03B2 beta + 03B3 gamma + 03B4 delta + 03B5 epsilon + 03B6 zeta + 03B7 eta + 03B8 theta + 03B9 iota + 03BA kappa + 03BB lambda + 03BC mu + 03BD nu + 03BE xi + 03BF omicron + 03C0 pi + 03C1 rho + 03C2 sigma1 + 03C3 sigma + 03C4 tau + 03C5 upsilon + 03C6 phi + 03C7 chi + 03C8 psi + 03C9 omega + 03CA iotadieresis + 03CB upsilondieresis + 03CC omicrontonos + 03CD upsilontonos + 03CE omegatonos + 03D1 theta1 + 03D2 Upsilon1 + 03D5 phi1 + 03D6 omega1 + 0401 afii10023 + 0402 afii10051 + 0403 afii10052 + 0404 afii10053 + 0405 afii10054 + 0406 afii10055 + 0407 afii10056 + 0408 afii10057 + 0409 afii10058 + 040A afii10059 + 040B afii10060 + 040C afii10061 + 040E afii10062 + 040F afii10145 + 0410 afii10017 + 0411 afii10018 + 0412 afii10019 + 0413 afii10020 + 0414 afii10021 + 0415 afii10022 + 0416 afii10024 + 0417 afii10025 + 0418 afii10026 + 0419 afii10027 + 041A afii10028 + 041B afii10029 + 041C afii10030 + 041D afii10031 + 041E afii10032 + 041F afii10033 + 0420 afii10034 + 0421 afii10035 + 0422 afii10036 + 0423 afii10037 + 0424 afii10038 + 0425 afii10039 + 0426 afii10040 + 0427 afii10041 + 0428 afii10042 + 0429 afii10043 + 042A afii10044 + 042B afii10045 + 042C afii10046 + 042D afii10047 + 042E afii10048 + 042F afii10049 + 0430 afii10065 + 0431 afii10066 + 0432 afii10067 + 0433 afii10068 + 0434 afii10069 + 0435 afii10070 + 0436 afii10072 + 0437 afii10073 + 0438 afii10074 + 0439 afii10075 + 043A afii10076 + 043B afii10077 + 043C afii10078 + 043D afii10079 + 043E afii10080 + 043F afii10081 + 0440 afii10082 + 0441 afii10083 + 0442 afii10084 + 0443 afii10085 + 0444 afii10086 + 0445 afii10087 + 0446 afii10088 + 0447 afii10089 + 0448 afii10090 + 0449 afii10091 + 044A afii10092 + 044B afii10093 + 044C afii10094 + 044D afii10095 + 044E afii10096 + 044F afii10097 + 0451 afii10071 + 0452 afii10099 + 0453 afii10100 + 0454 afii10101 + 0455 afii10102 + 0456 afii10103 + 0457 afii10104 + 0458 afii10105 + 0459 afii10106 + 045A afii10107 + 045B afii10108 + 045C afii10109 + 045E afii10110 + 045F afii10193 + 0462 afii10146 + 0463 afii10194 + 0472 afii10147 + 0473 afii10195 + 0474 afii10148 + 0475 afii10196 + 0490 afii10050 + 0491 afii10098 + 04D9 afii10846 + 05B0 afii57799 + 05B1 afii57801 + 05B2 afii57800 + 05B3 afii57802 + 05B4 afii57793 + 05B5 afii57794 + 05B6 afii57795 + 05B7 afii57798 + 05B8 afii57797 + 05B9 afii57806 + 05BB afii57796 + 05BC afii57807 + 05BD afii57839 + 05BE afii57645 + 05BF afii57841 + 05C0 afii57842 + 05C1 afii57804 + 05C2 afii57803 + 05C3 afii57658 + 05D0 afii57664 + 05D1 afii57665 + 05D2 afii57666 + 05D3 afii57667 + 05D4 afii57668 + 05D5 afii57669 + 05D6 afii57670 + 05D7 afii57671 + 05D8 afii57672 + 05D9 afii57673 + 05DA afii57674 + 05DB afii57675 + 05DC afii57676 + 05DD afii57677 + 05DE afii57678 + 05DF afii57679 + 05E0 afii57680 + 05E1 afii57681 + 05E2 afii57682 + 05E3 afii57683 + 05E4 afii57684 + 05E5 afii57685 + 05E6 afii57686 + 05E7 afii57687 + 05E8 afii57688 + 05E9 afii57689 + 05EA afii57690 + 05F0 afii57716 + 05F1 afii57717 + 05F2 afii57718 + 060C afii57388 + 061B afii57403 + 061F afii57407 + 0621 afii57409 + 0622 afii57410 + 0623 afii57411 + 0624 afii57412 + 0625 afii57413 + 0626 afii57414 + 0627 afii57415 + 0628 afii57416 + 0629 afii57417 + 062A afii57418 + 062B afii57419 + 062C afii57420 + 062D afii57421 + 062E afii57422 + 062F afii57423 + 0630 afii57424 + 0631 afii57425 + 0632 afii57426 + 0633 afii57427 + 0634 afii57428 + 0635 afii57429 + 0636 afii57430 + 0637 afii57431 + 0638 afii57432 + 0639 afii57433 + 063A afii57434 + 0640 afii57440 + 0641 afii57441 + 0642 afii57442 + 0643 afii57443 + 0644 afii57444 + 0645 afii57445 + 0646 afii57446 + 0647 afii57470 + 0648 afii57448 + 0649 afii57449 + 064A afii57450 + 064B afii57451 + 064C afii57452 + 064D afii57453 + 064E afii57454 + 064F afii57455 + 0650 afii57456 + 0651 afii57457 + 0652 afii57458 + 0660 afii57392 + 0661 afii57393 + 0662 afii57394 + 0663 afii57395 + 0664 afii57396 + 0665 afii57397 + 0666 afii57398 + 0667 afii57399 + 0668 afii57400 + 0669 afii57401 + 066A afii57381 + 066D afii63167 + 0679 afii57511 + 067E afii57506 + 0686 afii57507 + 0688 afii57512 + 0691 afii57513 + 0698 afii57508 + 06A4 afii57505 + 06AF afii57509 + 06BA afii57514 + 06D2 afii57519 + 06D5 afii57534 + 1E80 Wgrave + 1E81 wgrave + 1E82 Wacute + 1E83 wacute + 1E84 Wdieresis + 1E85 wdieresis + 1EF2 Ygrave + 1EF3 ygrave + 200C afii61664 + 200D afii301 + 200E afii299 + 200F afii300 + 2012 figuredash + 2013 endash + 2014 emdash + 2015 afii00208 + 2017 underscoredbl + 2018 quoteleft + 2019 quoteright + 201A quotesinglbase + 201B quotereversed + 201C quotedblleft + 201D quotedblright + 201E quotedblbase + 2020 dagger + 2021 daggerdbl + 2022 bullet + 2024 onedotenleader + 2025 twodotenleader + 2026 ellipsis + 202C afii61573 + 202D afii61574 + 202E afii61575 + 2030 perthousand + 2032 minute + 2033 second + 2039 guilsinglleft + 203A guilsinglright + 203C exclamdbl + 2044 fraction + 2070 zerosuperior + 2074 foursuperior + 2075 fivesuperior + 2076 sixsuperior + 2077 sevensuperior + 2078 eightsuperior + 2079 ninesuperior + 207D parenleftsuperior + 207E parenrightsuperior + 207F nsuperior + 2080 zeroinferior + 2081 oneinferior + 2082 twoinferior + 2083 threeinferior + 2084 fourinferior + 2085 fiveinferior + 2086 sixinferior + 2087 seveninferior + 2088 eightinferior + 2089 nineinferior + 208D parenleftinferior + 208E parenrightinferior + 20A1 colonmonetary + 20A3 franc + 20A4 lira + 20A7 peseta + 20AA afii57636 + 20AB dong + 20AC Euro + 2105 afii61248 + 2111 Ifraktur + 2113 afii61289 + 2116 afii61352 + 2118 weierstrass + 211C Rfraktur + 211E prescription + 2122 trademark + 2126 Omega + 212E estimated + 2135 aleph + 2153 onethird + 2154 twothirds + 215B oneeighth + 215C threeeighths + 215D fiveeighths + 215E seveneighths + 2190 arrowleft + 2191 arrowup + 2192 arrowright + 2193 arrowdown + 2194 arrowboth + 2195 arrowupdn + 21A8 arrowupdnbse + 21B5 carriagereturn + 21D0 arrowdblleft + 21D1 arrowdblup + 21D2 arrowdblright + 21D3 arrowdbldown + 21D4 arrowdblboth + 2200 universal + 2202 partialdiff + 2203 existential + 2205 emptyset + 2206 Delta + 2207 gradient + 2208 element + 2209 notelement + 220B suchthat + 220F product + 2211 summation + 2212 minus + 2215 fraction + 2217 asteriskmath + 2219 periodcentered + 221A radical + 221D proportional + 221E infinity + 221F orthogonal + 2220 angle + 2227 logicaland + 2228 logicalor + 2229 intersection + 222A union + 222B integral + 2234 therefore + 223C similar + 2245 congruent + 2248 approxequal + 2260 notequal + 2261 equivalence + 2264 lessequal + 2265 greaterequal + 2282 propersubset + 2283 propersuperset + 2284 notsubset + 2286 reflexsubset + 2287 reflexsuperset + 2295 circleplus + 2297 circlemultiply + 22A5 perpendicular + 22C5 dotmath + 2302 house + 2310 revlogicalnot + 2320 integraltp + 2321 integralbt + 2329 angleleft + 232A angleright + 2500 SF100000 + 2502 SF110000 + 250C SF010000 + 2510 SF030000 + 2514 SF020000 + 2518 SF040000 + 251C SF080000 + 2524 SF090000 + 252C SF060000 + 2534 SF070000 + 253C SF050000 + 2550 SF430000 + 2551 SF240000 + 2552 SF510000 + 2553 SF520000 + 2554 SF390000 + 2555 SF220000 + 2556 SF210000 + 2557 SF250000 + 2558 SF500000 + 2559 SF490000 + 255A SF380000 + 255B SF280000 + 255C SF270000 + 255D SF260000 + 255E SF360000 + 255F SF370000 + 2560 SF420000 + 2561 SF190000 + 2562 SF200000 + 2563 SF230000 + 2564 SF470000 + 2565 SF480000 + 2566 SF410000 + 2567 SF450000 + 2568 SF460000 + 2569 SF400000 + 256A SF540000 + 256B SF530000 + 256C SF440000 + 2580 upblock + 2584 dnblock + 2588 block + 258C lfblock + 2590 rtblock + 2591 ltshade + 2592 shade + 2593 dkshade + 25A0 filledbox + 25A1 H22073 + 25AA H18543 + 25AB H18551 + 25AC filledrect + 25B2 triagup + 25BA triagrt + 25BC triagdn + 25C4 triaglf + 25CA lozenge + 25CB circle + 25CF H18533 + 25D8 invbullet + 25D9 invcircle + 25E6 openbullet + 263A smileface + 263B invsmileface + 263C sun + 2640 female + 2642 male + 2660 spade + 2663 club + 2665 heart + 2666 diamond + 266A musicalnote + 266B musicalnotedbl + F6BE dotlessj + F6BF LL + F6C0 ll + F6C1 Scedilla + F6C2 scedilla + F6C3 commaaccent + F6C4 afii10063 + F6C5 afii10064 + F6C6 afii10192 + F6C7 afii10831 + F6C8 afii10832 + F6C9 Acute + F6CA Caron + F6CB Dieresis + F6CC DieresisAcute + F6CD DieresisGrave + F6CE Grave + F6CF Hungarumlaut + F6D0 Macron + F6D1 cyrBreve + F6D2 cyrFlex + F6D3 dblGrave + F6D4 cyrbreve + F6D5 cyrflex + F6D6 dblgrave + F6D7 dieresisacute + F6D8 dieresisgrave + F6D9 copyrightserif + F6DA registerserif + F6DB trademarkserif + F6DC onefitted + F6DD rupiah + F6DE threequartersemdash + F6DF centinferior + F6E0 centsuperior + F6E1 commainferior + F6E2 commasuperior + F6E3 dollarinferior + F6E4 dollarsuperior + F6E5 hypheninferior + F6E6 hyphensuperior + F6E7 periodinferior + F6E8 periodsuperior + F6E9 asuperior + F6EA bsuperior + F6EB dsuperior + F6EC esuperior + F6ED isuperior + F6EE lsuperior + F6EF msuperior + F6F0 osuperior + F6F1 rsuperior + F6F2 ssuperior + F6F3 tsuperior + F6F4 Brevesmall + F6F5 Caronsmall + F6F6 Circumflexsmall + F6F7 Dotaccentsmall + F6F8 Hungarumlautsmall + F6F9 Lslashsmall + F6FA OEsmall + F6FB Ogoneksmall + F6FC Ringsmall + F6FD Scaronsmall + F6FE Tildesmall + F6FF Zcaronsmall + F721 exclamsmall + F724 dollaroldstyle + F726 ampersandsmall + F730 zerooldstyle + F731 oneoldstyle + F732 twooldstyle + F733 threeoldstyle + F734 fouroldstyle + F735 fiveoldstyle + F736 sixoldstyle + F737 sevenoldstyle + F738 eightoldstyle + F739 nineoldstyle + F73F questionsmall + F760 Gravesmall + F761 Asmall + F762 Bsmall + F763 Csmall + F764 Dsmall + F765 Esmall + F766 Fsmall + F767 Gsmall + F768 Hsmall + F769 Ismall + F76A Jsmall + F76B Ksmall + F76C Lsmall + F76D Msmall + F76E Nsmall + F76F Osmall + F770 Psmall + F771 Qsmall + F772 Rsmall + F773 Ssmall + F774 Tsmall + F775 Usmall + F776 Vsmall + F777 Wsmall + F778 Xsmall + F779 Ysmall + F77A Zsmall + F7A1 exclamdownsmall + F7A2 centoldstyle + F7A8 Dieresissmall + F7AF Macronsmall + F7B4 Acutesmall + F7B8 Cedillasmall + F7BF questiondownsmall + F7E0 Agravesmall + F7E1 Aacutesmall + F7E2 Acircumflexsmall + F7E3 Atildesmall + F7E4 Adieresissmall + F7E5 Aringsmall + F7E6 AEsmall + F7E7 Ccedillasmall + F7E8 Egravesmall + F7E9 Eacutesmall + F7EA Ecircumflexsmall + F7EB Edieresissmall + F7EC Igravesmall + F7ED Iacutesmall + F7EE Icircumflexsmall + F7EF Idieresissmall + F7F0 Ethsmall + F7F1 Ntildesmall + F7F2 Ogravesmall + F7F3 Oacutesmall + F7F4 Ocircumflexsmall + F7F5 Otildesmall + F7F6 Odieresissmall + F7F8 Oslashsmall + F7F9 Ugravesmall + F7FA Uacutesmall + F7FB Ucircumflexsmall + F7FC Udieresissmall + F7FD Yacutesmall + F7FE Thornsmall + F7FF Ydieresissmall + F8E5 radicalex + F8E6 arrowvertex + F8E7 arrowhorizex + F8E8 registersans + F8E9 copyrightsans + F8EA trademarksans + F8EB parenlefttp + F8EC parenleftex + F8ED parenleftbt + F8EE bracketlefttp + F8EF bracketleftex + F8F0 bracketleftbt + F8F1 bracelefttp + F8F2 braceleftmid + F8F3 braceleftbt + F8F4 braceex + F8F5 integralex + F8F6 parenrighttp + F8F7 parenrightex + F8F8 parenrightbt + F8F9 bracketrighttp + F8FA bracketrightex + F8FB bracketrightbt + F8FC bracerighttp + F8FD bracerightmid + F8FE bracerightbt + FB00 ff + FB01 fi + FB02 fl + FB03 ffi + FB04 ffl + FB1F afii57705 + FB2A afii57694 + FB2B afii57695 + FB35 afii57723 + FB4B afii57700 +} + +# precalculate entire prolog when this file is loaded +# (to speed things up) +set ps_preamable "%%BeginProlog\n" +append ps_preamable [CreatePostscriptEncoding [encoding system]] +append ps_preamable { +50 dict begin +% This is a standard prolog for Postscript generated by Tk's canvas +% widget. +% RCS: @(#) $Id: mkpsenc.tcl,v 1.3 2002/07/19 14:37:21 drh Exp $ + +% The definitions below just define all of the variables used in +% any of the procedures here. This is needed for obscure reasons +% explained on p. 716 of the Postscript manual (Section H.2.7, +% "Initializing Variables," in the section on Encapsulated Postscript). + +/baseline 0 def +/stipimage 0 def +/height 0 def +/justify 0 def +/lineLength 0 def +/spacing 0 def +/stipple 0 def +/strings 0 def +/xoffset 0 def +/yoffset 0 def +/tmpstip null def + + +/cstringshow { + { + dup type /stringtype eq + { show } { glyphshow } + ifelse + } + forall +} bind def + + + +/cstringwidth { + 0 exch 0 exch + { + dup type /stringtype eq + { stringwidth } { + currentfont /Encoding get exch 1 exch put (\001) stringwidth + } + ifelse + exch 3 1 roll add 3 1 roll add exch + } + forall +} bind def + +% font ISOEncode font +% This procedure changes the encoding of a font from the default +% Postscript encoding to current system encoding. It's typically invoked just +% before invoking "setfont". The body of this procedure comes from +% Section 5.6.1 of the Postscript book. + +/ISOEncode { + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding CurrentEncoding def + currentdict + end + + % I'm not sure why it's necessary to use "definefont" on this new + % font, but it seems to be important; just use the name "Temporary" + % for the font. + + /Temporary exch definefont +} bind def + +% StrokeClip +% +% This procedure converts the current path into a clip area under +% the assumption of stroking. It's a bit tricky because some Postscript +% interpreters get errors during strokepath for dashed lines. If +% this happens then turn off dashes and try again. + +/StrokeClip { + {strokepath} stopped { + (This Postscript printer gets limitcheck overflows when) = + (stippling dashed lines; lines will be printed solid instead.) = + [] 0 setdash strokepath} if + clip +} bind def + +% desiredSize EvenPixels closestSize +% +% The procedure below is used for stippling. Given the optimal size +% of a dot in a stipple pattern in the current user coordinate system, +% compute the closest size that is an exact multiple of the device's +% pixel size. This allows stipple patterns to be displayed without +% aliasing effects. + +/EvenPixels { + % Compute exact number of device pixels per stipple dot. + dup 0 matrix currentmatrix dtransform + dup mul exch dup mul add sqrt + + % Round to an integer, make sure the number is at least 1, and compute + % user coord distance corresponding to this. + dup round dup 1 lt {pop 1} if + exch div mul +} bind def + +% width height string StippleFill -- +% +% Given a path already set up and a clipping region generated from +% it, this procedure will fill the clipping region with a stipple +% pattern. "String" contains a proper image description of the +% stipple pattern and "width" and "height" give its dimensions. Each +% stipple dot is assumed to be about one unit across in the current +% user coordinate system. This procedure trashes the graphics state. + +/StippleFill { + % The following code is needed to work around a NeWSprint bug. + + /tmpstip 1 index def + + % Change the scaling so that one user unit in user coordinates + % corresponds to the size of one stipple dot. + 1 EvenPixels dup scale + + % Compute the bounding box occupied by the path (which is now + % the clipping region), and round the lower coordinates down + % to the nearest starting point for the stipple pattern. Be + % careful about negative numbers, since the rounding works + % differently on them. + + pathbbox + 4 2 roll + 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll + 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll + + % Stack now: width height string y1 y2 x1 x2 + % Below is a doubly-nested for loop to iterate across this area + % in units of the stipple pattern size, going up columns then + % across rows, blasting out a stipple-pattern-sized rectangle at + % each position + + 6 index exch { + 2 index 5 index 3 index { + % Stack now: width height string y1 y2 x y + + gsave + 1 index exch translate + 5 index 5 index true matrix tmpstip imagemask + grestore + } for + pop + } for + pop pop pop pop pop +} bind def + +% -- AdjustColor -- +% Given a color value already set for output by the caller, adjusts +% that value to a grayscale or mono value if requested by the CL +% variable. + +/AdjustColor { + CL 2 lt { + currentgray + CL 0 eq { + .5 lt {0} {1} ifelse + } if + setgray + } if +} bind def + +% x y strings spacing xoffset yoffset justify stipple DrawText -- +% This procedure does all of the real work of drawing text. The +% color and font must already have been set by the caller, and the +% following arguments must be on the stack: +% +% x, y - Coordinates at which to draw text. +% strings - An array of strings, one for each line of the text item, +% in order from top to bottom. +% spacing - Spacing between lines. +% xoffset - Horizontal offset for text bbox relative to x and y: 0 for +% nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se. +% yoffset - Vertical offset for text bbox relative to x and y: 0 for +% nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se. +% justify - 0 for left justification, 0.5 for center, 1 for right justify. +% stipple - Boolean value indicating whether or not text is to be +% drawn in stippled fashion. If text is stippled, +% procedure StippleText must have been defined to call +% StippleFill in the right way. +% +% Also, when this procedure is invoked, the color and font must already +% have been set for the text. + +/DrawText { + /stipple exch def + /justify exch def + /yoffset exch def + /xoffset exch def + /spacing exch def + /strings exch def + + % First scan through all of the text to find the widest line. + + /lineLength 0 def + strings { + cstringwidth pop + dup lineLength gt {/lineLength exch def} {pop} ifelse + newpath + } forall + + % Compute the baseline offset and the actual font height. + + 0 0 moveto (TXygqPZ) false charpath + pathbbox dup /baseline exch def + exch pop exch sub /height exch def pop + newpath + + % Translate coordinates first so that the origin is at the upper-left + % corner of the text's bounding box. Remember that x and y for + % positioning are still on the stack. + + translate + lineLength xoffset mul + strings length 1 sub spacing mul height add yoffset mul translate + + % Now use the baseline and justification information to translate so + % that the origin is at the baseline and positioning point for the + % first line of text. + + justify lineLength mul baseline neg translate + + % Iterate over each of the lines to output it. For each line, + % compute its width again so it can be properly justified, then + % display it. + + strings { + dup cstringwidth pop + justify neg mul 0 moveto + stipple { + + + % The text is stippled, so turn it into a path and print + % by calling StippledText, which in turn calls StippleFill. + % Unfortunately, many Postscript interpreters will get + % overflow errors if we try to do the whole string at + % once, so do it a character at a time. + + gsave + /char (X) def + { + dup type /stringtype eq { + % This segment is a string. + { + char 0 3 -1 roll put + currentpoint + gsave + char true charpath clip StippleText + grestore + char stringwidth translate + moveto + } forall + } { + % This segment is glyph name + % Temporary override + currentfont /Encoding get exch 1 exch put + currentpoint + gsave (\001) true charpath clip StippleText + grestore + (\001) stringwidth translate + moveto + } ifelse + } forall + grestore + } {cstringshow} ifelse + 0 spacing neg translate + } forall +} bind def + +%%EndProlog +} + +} + +proc tk::ensure_psenc_is_loaded {} { +} diff --git a/lib/tk8.4/msgbox.tcl b/lib/tk8.4/msgbox.tcl new file mode 100644 index 00000000..fdf987ac --- /dev/null +++ b/lib/tk8.4/msgbox.tcl @@ -0,0 +1,413 @@ +# msgbox.tcl -- +# +# Implements messageboxes for platforms that do not have native +# messagebox support. +# +# RCS: @(#) $Id: msgbox.tcl,v 1.24.2.3 2006/01/25 18:21:41 dgp Exp $ +# +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# Ensure existence of ::tk::dialog namespace +# +namespace eval ::tk::dialog {} + +image create bitmap ::tk::dialog::b1 -foreground black \ +-data "#define b1_width 32\n#define b1_height 32 +static unsigned char q1_bits[] = { + 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x07, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x03, + 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, + 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, + 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, + 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, + 0x60, 0x00, 0x00, 0x04, 0x80, 0x03, 0x80, 0x03, 0x00, 0x0c, 0x78, 0x00, + 0x00, 0x30, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, + 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::b2 -foreground white \ +-data "#define b2_width 32\n#define b2_height 32 +static unsigned char b2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x00, + 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, + 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, + 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, + 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, + 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, + 0xf8, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0x07, + 0x80, 0xff, 0xff, 0x03, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xf0, 0x07, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::q -foreground blue \ +-data "#define q_width 32\n#define q_height 32 +static unsigned char q_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0x10, 0x0f, 0x00, 0x00, 0x18, 0x1e, 0x00, 0x00, 0x38, 0x1e, 0x00, + 0x00, 0x38, 0x1e, 0x00, 0x00, 0x10, 0x0f, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::i -foreground blue \ +-data "#define i_width 32\n#define i_height 32 +static unsigned char i_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00, + 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::w1 -foreground black \ +-data "#define w1_width 32\n#define w1_height 32 +static unsigned char w1_bits[] = { + 0x00, 0x80, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, 0x04, 0x00, + 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, + 0x00, 0x08, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x20, 0x00, + 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, + 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01, + 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, + 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08, + 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, + 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, + 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, + 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::w2 -foreground yellow \ +-data "#define w2_width 32\n#define w2_height 32 +static unsigned char w2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x1f, 0x00, + 0x00, 0xfc, 0x1f, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfe, 0x3f, 0x00, + 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, + 0x80, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0x01, + 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07, + 0xf0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f, + 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x1f, 0xfe, 0xff, 0xff, 0x3f, + 0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::w3 -foreground black \ +-data "#define w3_width 32\n#define w3_height 32 +static unsigned char w3_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" + +# ::tk::MessageBox -- +# +# Pops up a messagebox with an application-supplied message with +# an icon and a list of buttons. This procedure will be called +# by tk_messageBox if the platform does not have native +# messagebox support, or if the particular type of messagebox is +# not supported natively. +# +# Color icons are used on Unix displays that have a color +# depth of 4 or more and $tk_strictMotif is not on. +# +# This procedure is a private procedure shouldn't be called +# directly. Call tk_messageBox instead. +# +# See the user documentation for details on what tk_messageBox does. +# +proc ::tk::MessageBox {args} { + global tcl_platform tk_strictMotif + variable ::tk::Priv + + set w ::tk::PrivMsgBox + upvar $w data + + # + # The default value of the title is space (" ") not the empty string + # because for some window managers, a + # wm title .foo "" + # causes the window title to be "foo" instead of the empty string. + # + set specs { + {-default "" "" ""} + {-icon "" "" "info"} + {-message "" "" ""} + {-parent "" "" .} + {-title "" "" " "} + {-type "" "" "ok"} + } + + tclParseConfigSpec $w $specs "" $args + + if {[lsearch -exact {info warning error question} $data(-icon)] == -1} { + error "bad -icon value \"$data(-icon)\": must be error, info, question, or warning" + } + + # Store tk windowingsystem to avoid too many calls + set windowingsystem [tk windowingsystem] + if {$windowingsystem eq "classic" || $windowingsystem eq "aqua"} { + switch -- $data(-icon) { + "error" {set data(-icon) "stop"} + "warning" {set data(-icon) "caution"} + "info" {set data(-icon) "note"} + } + } + + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } + + switch -- $data(-type) { + abortretryignore { + set names [list abort retry ignore] + set labels [list &Abort &Retry &Ignore] + } + ok { + set names [list ok] + set labels {&OK} + } + okcancel { + set names [list ok cancel] + set labels [list &OK &Cancel] + } + retrycancel { + set names [list retry cancel] + set labels [list &Retry &Cancel] + } + yesno { + set names [list yes no] + set labels [list &Yes &No] + } + yesnocancel { + set names [list yes no cancel] + set labels [list &Yes &No &Cancel] + } + default { + error "bad -type value \"$data(-type)\": must be\ + abortretryignore, ok, okcancel, retrycancel,\ + yesno, or yesnocancel" + } + } + + set buttons {} + foreach name $names lab $labels { + lappend buttons [list $name -text [mc $lab]] + } + + # If no default button was specified, the default default is the + # first button (Bug: 2218). + + if {$data(-default) eq ""} { + set data(-default) [lindex [lindex $buttons 0] 0] + } + + set valid 0 + foreach btn $buttons { + if {[lindex $btn 0] eq $data(-default)} { + set valid 1 + break + } + } + if {!$valid} { + error "invalid default button \"$data(-default)\"" + } + + # 2. Set the dialog to be a child window of $parent + # + # + if {$data(-parent) ne "."} { + set w $data(-parent).__tk__messagebox + } else { + set w .__tk__messagebox + } + + # 3. Create the top-level window and divide it into top + # and bottom parts. + + destroy $w + toplevel $w -class Dialog + wm title $w $data(-title) + wm iconname $w Dialog + wm protocol $w WM_DELETE_WINDOW { } + # There is only one background colour for the whole dialog + set bg [$w cget -background] + + # Message boxes should be transient with respect to their parent so that + # they always stay on top of the parent window. But some window managers + # will simply create the child window as withdrawn if the parent is not + # viewable (because it is withdrawn or iconified). This is not good for + # "grab"bed windows. So only make the message box transient if the parent + # is viewable. + # + if {[winfo viewable [winfo toplevel $data(-parent)]] } { + wm transient $w $data(-parent) + } + + if {$windowingsystem eq "classic" || $windowingsystem eq "aqua"} { + unsupported::MacWindowStyle style $w dBoxProc + } + + frame $w.bot -background $bg + pack $w.bot -side bottom -fill both + frame $w.top -background $bg + pack $w.top -side top -fill both -expand 1 + if {$windowingsystem ne "classic" && $windowingsystem ne "aqua"} { + $w.bot configure -relief raised -bd 1 + $w.top configure -relief raised -bd 1 + } + + # 4. Fill the top part with bitmap and message (use the option + # database for -wraplength and -font so that they can be + # overridden by the caller). + + option add *Dialog.msg.wrapLength 3i widgetDefault + if {$windowingsystem eq "classic" || $windowingsystem eq "aqua"} { + option add *Dialog.msg.font system widgetDefault + } else { + option add *Dialog.msg.font {Times 14} widgetDefault + } + + label $w.msg -anchor nw -justify left -text $data(-message) \ + -background $bg + if {$data(-icon) ne ""} { + if {($windowingsystem eq "classic" || $windowingsystem eq "aqua") + || ([winfo depth $w] < 4) || $tk_strictMotif} { + label $w.bitmap -bitmap $data(-icon) -background $bg + } else { + canvas $w.bitmap -width 32 -height 32 -highlightthickness 0 \ + -background $bg + switch $data(-icon) { + error { + $w.bitmap create oval 0 0 31 31 -fill red -outline black + $w.bitmap create line 9 9 23 23 -fill white -width 4 + $w.bitmap create line 9 23 23 9 -fill white -width 4 + } + info { + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b1 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b2 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::i + } + question { + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b1 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b2 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::q + } + default { + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::w1 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::w2 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::w3 + } + } + } + } + grid $w.bitmap $w.msg -in $w.top -sticky news -padx 2m -pady 2m + grid columnconfigure $w.top 1 -weight 1 + grid rowconfigure $w.top 0 -weight 1 + + # 5. Create a row of buttons at the bottom of the dialog. + + set i 0 + foreach but $buttons { + set name [lindex $but 0] + set opts [lrange $but 1 end] + if {![llength $opts]} { + # Capitalize the first letter of $name + set capName [string toupper $name 0] + set opts [list -text $capName] + } + + eval [list tk::AmpWidget button $w.$name -padx 3m] $opts \ + [list -command [list set tk::Priv(button) $name]] + + if {$name eq $data(-default)} { + $w.$name configure -default active + } else { + $w.$name configure -default normal + } + grid $w.$name -in $w.bot -row 0 -column $i -padx 3m -pady 2m -sticky ew + grid columnconfigure $w.bot $i -uniform buttons + incr i + + # create the binding for the key accelerator, based on the underline + # + # set underIdx [$w.$name cget -under] + # if {$underIdx >= 0} { + # set key [string index [$w.$name cget -text] $underIdx] + # bind $w [list $w.$name invoke] + # bind $w [list $w.$name invoke] + # } + } + bind $w [list ::tk::AltKeyInDialog $w %A] + + if {$data(-default) ne ""} { + bind $w { + if {"Button" eq [winfo class %W]} { + %W configure -default active + } + } + bind $w { + if {"Button" eq [winfo class %W]} { + %W configure -default normal + } + } + } + + # 6. Create a binding for on the dialog + + bind $w { + if {"Button" eq [winfo class %W]} { + tk::ButtonInvoke %W + } + } + + # 7. Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + ::tk::PlaceWindow $w widget $data(-parent) + + # 8. Set a grab and claim the focus too. + + if {$data(-default) ne ""} { + set focus $w.$data(-default) + } else { + set focus $w + } + ::tk::SetFocusGrab $w $focus + + # 9. Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(button) + + ::tk::RestoreFocusGrab $w $focus + + return $Priv(button) +} diff --git a/lib/tk8.4/msgs/cs.msg b/lib/tk8.4/msgs/cs.msg new file mode 100644 index 00000000..e4014a33 --- /dev/null +++ b/lib/tk8.4/msgs/cs.msg @@ -0,0 +1,70 @@ +namespace eval ::tk { + ::msgcat::mcset cs "&Abort" "&P\u0159eru\u0161it" + ::msgcat::mcset cs "About..." "O programu..." + ::msgcat::mcset cs "All Files" "V\u0161echny soubory" + ::msgcat::mcset cs "Application Error" "Chyba programu" + ::msgcat::mcset cs "&Blue" "&Modr\341" + ::msgcat::mcset cs "&Cancel" "&Zru\u0161it" + ::msgcat::mcset cs "Cannot change to the directory \"%1\$s\".\nPermission denied." "Nemohu zm\u011bnit atku\341ln\355 adres\341\u0159 na \"%1\$s\".\nP\u0159\355stup odm\355tnut." + ::msgcat::mcset cs "Choose Directory" "V\375b\u011br adres\341\u0159e" + ::msgcat::mcset cs "Clear" "Smazat" + ::msgcat::mcset cs "Color" "Barva" + ::msgcat::mcset cs "Console" "Konzole" + ::msgcat::mcset cs "Copy" "Kop\355rovat" + ::msgcat::mcset cs "Cut" "Vy\u0159\355znout" + ::msgcat::mcset cs "Delete" "Smazat" + ::msgcat::mcset cs "Details >>" "Detaily >>" + ::msgcat::mcset cs "Directory \"%1\$s\" does not exist." "Adres\341\u0159 \"%1\$s\" neexistuje." + ::msgcat::mcset cs "&Directory:" "&Adres\341\u0159:" + ::msgcat::mcset cs "Error: %1\$s" "Chyba: %1\$s" + ::msgcat::mcset cs "Exit" "Konec" + ::msgcat::mcset cs "File \"%1\$s\" already exists.\n\n" "Soubor \"%1\$s\" ji\u017e existuje.\n\n" + ::msgcat::mcset cs "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Soubor \"%1\$s\" ji\u017e existuje.\nChcete jej p\u0159epsat?" + ::msgcat::mcset cs "File \"%1\$s\" does not exist." "Soubor \"%1\$s\" neexistuje." + ::msgcat::mcset cs "File &name:" "&Jm\351no souboru:" + ::msgcat::mcset cs "File &names:" "&Jm\351na soubor\u016f:" + ::msgcat::mcset cs "Files of &type:" "&Typy soubor\u016f:" + ::msgcat::mcset cs "Fi&les:" "Sou&bory:" + ::msgcat::mcset cs "&Filter" "&Filtr" + ::msgcat::mcset cs "Fil&ter:" "Fil&tr:" + ::msgcat::mcset cs "&Green" "Ze&len\341" + ::msgcat::mcset cs "Hi" + ::msgcat::mcset cs "Hide Console" "Skr\375t konsolu" + ::msgcat::mcset cs "&Ignore" "&Ignorovat" + ::msgcat::mcset cs "Invalid file name \"%1\$s\"." "\u0160patn\351 jm\351no souboru \"%1\$s\"." + ::msgcat::mcset cs "Log Files" "Log soubory" + ::msgcat::mcset cs "&No" "&Ne" + ::msgcat::mcset cs "&OK" + ::msgcat::mcset cs "Ok" + ::msgcat::mcset cs "Open" "Otev\u0159\355t" + ::msgcat::mcset cs "&Open" "&Otev\u0159\355t" + ::msgcat::mcset cs "Open Multiple Files" "Otev\u0159\355t v\355ce soubor\u016f" + ::msgcat::mcset cs "Paste" "Vlo\u017eit" + ::msgcat::mcset cs "Quit" "Skon\u010dit" + ::msgcat::mcset cs "&Red" " \u010ce&rven\341" + ::msgcat::mcset cs "Replace existing file?" "Nahradit st\341vaj\355c\355 soubor?" + ::msgcat::mcset cs "&Retry" "Z&novu" + ::msgcat::mcset cs "&Save" "&Ulo\u017eit" + ::msgcat::mcset cs "Save As" "Ulo\u017eit jako" + ::msgcat::mcset cs "Save To Log" "Ulo\u017eit do logu" + ::msgcat::mcset cs "Select Log File" "Vybrat log soubor" + ::msgcat::mcset cs "Select a file to source" "Vybrat soubor k nahr\341n\355" + ::msgcat::mcset cs "&Selection:" "&V\375b\u011br:" + ::msgcat::mcset cs "Skip Messages" "P\u0159esko\u010dit zpr\341vy" + ::msgcat::mcset cs "Source..." "Nahr\341t..." + ::msgcat::mcset cs "Tcl Scripts" "Tcl skripty" + ::msgcat::mcset cs "Tcl for Windows" "Tcl pro Windows" + ::msgcat::mcset cs "Text Files" "Textov\351 soubory" + ::msgcat::mcset cs "&Yes" "&Ano" + ::msgcat::mcset cs "abort" "p\u0159eru\u0161it" + ::msgcat::mcset cs "blue" "modr\341" + ::msgcat::mcset cs "cancel" "zru\u0161it" + ::msgcat::mcset cs "extension" "p\u0159\355pona" + ::msgcat::mcset cs "extensions" "p\u0159\355pony" + ::msgcat::mcset cs "green" "zelen\341" + ::msgcat::mcset cs "ignore" "ignorovat" + ::msgcat::mcset cs "ok" + ::msgcat::mcset cs "red" "\u010derven\341" + ::msgcat::mcset cs "retry" "znovu" + ::msgcat::mcset cs "yes" "ano" +} diff --git a/lib/tk8.4/msgs/de.msg b/lib/tk8.4/msgs/de.msg new file mode 100644 index 00000000..c5ae6893 --- /dev/null +++ b/lib/tk8.4/msgs/de.msg @@ -0,0 +1,70 @@ +namespace eval ::tk { + ::msgcat::mcset de "&Abort" "&Abbruch" + ::msgcat::mcset de "About..." "\u00dcber..." + ::msgcat::mcset de "All Files" "Alle Dateien" + ::msgcat::mcset de "Application Error" "Applikationsfehler" + ::msgcat::mcset de "&Blue" "&Blau" + ::msgcat::mcset de "&Cancel" "&Abbruch" + ::msgcat::mcset de "Cannot change to the directory \"%1\$s\".\nPermission denied." "Kann nicht in das Verzeichnis \"%1\$s\" wechseln.\nKeine Rechte vorhanden." + ::msgcat::mcset de "Choose Directory" "W\u00e4hle Verzeichnis" + ::msgcat::mcset de "Clear" "R\u00fccksetzen" + ::msgcat::mcset de "Color" "Farbe" + ::msgcat::mcset de "Console" "Konsole" + ::msgcat::mcset de "Copy" "Kopieren" + ::msgcat::mcset de "Cut" "Ausschneiden" + ::msgcat::mcset de "Delete" "L\u00f6schen" + ::msgcat::mcset de "Details >>" + ::msgcat::mcset de "Directory \"%1\$s\" does not exist." "Das Verzeichnis \"%1\$s\" existiert nicht." + ::msgcat::mcset de "&Directory:" "&Verzeichnis:" + ::msgcat::mcset de "Error: %1\$s" "Fehler: %1\$s" + ::msgcat::mcset de "Exit" "Ende" + ::msgcat::mcset de "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Die Datei \"%1\$s\" ist bereits vorhanden.\nWollen sie diese Datei \u00fcberschreiben ?" + ::msgcat::mcset de "File \"%1\$s\" already exists.\n\n" "Die Datei \"%1\$s\" ist bereits vorhanden.\n\n" + ::msgcat::mcset de "File \"%1\$s\" does not exist." "Die Datei \"%1\$s\" existiert nicht." + ::msgcat::mcset de "File &name:" "Datei&name:" + ::msgcat::mcset de "File &names:" "Datei&namen:" + ::msgcat::mcset de "Files of &type:" "Dateien des &Typs:" + ::msgcat::mcset de "Fi&les:" "Dat&eien:" + ::msgcat::mcset de "&Filter" + ::msgcat::mcset de "Fil&ter:" + ::msgcat::mcset de "&Green" "&Gr\u00fcn" + ::msgcat::mcset de "Hi" "Hallo" + ::msgcat::mcset de "Hide Console" "Konsole unsichtbar machen" + ::msgcat::mcset de "&Ignore" "&Ignorieren" + ::msgcat::mcset de "Invalid file name \"%1\$s\"." "Ung\u00fcltiger Dateiname \"%1\$s\"." + ::msgcat::mcset de "Log Files" "Protokolldatei" + ::msgcat::mcset de "&No" "&Nein" + ::msgcat::mcset de "OK" + ::msgcat::mcset de "Ok" + ::msgcat::mcset de "Open" "\u00d6ffnen" + ::msgcat::mcset de "&Open" "\u00d6&ffnen" + ::msgcat::mcset de "Open Multiple Files" + ::msgcat::mcset de "Paste" "Einf\u00fcgen" + ::msgcat::mcset de "Quit" "Beenden" + ::msgcat::mcset de "&Red" "&Rot" + ::msgcat::mcset de "Replace existing file?" "Existierende Datei ersetzen?" + ::msgcat::mcset de "&Retry" "&Wiederholen" + ::msgcat::mcset de "&Save" "&Speichern" + ::msgcat::mcset de "Save As" "Speichern unter" + ::msgcat::mcset de "Save To Log" "In Protokoll speichern" + ::msgcat::mcset de "Select Log File" "Protokolldatei ausw\u00e4hlen" + ::msgcat::mcset de "Select a file to source" "Auszuf\u00fchrende Datei ausw\u00e4hlen" + ::msgcat::mcset de "&Selection:" "Auswah&l:" + ::msgcat::mcset de "Skip Messages" "Weitere Nachrichten \u00fcberspringen" + ::msgcat::mcset de "Source..." "Ausf\u00fchren..." + ::msgcat::mcset de "Tcl Scripts" "Tcl-Skripte" + ::msgcat::mcset de "Tcl for Windows" "Tcl f\u00fcr Windows" + ::msgcat::mcset de "Text Files" "Textdateien" + ::msgcat::mcset de "&Yes" "&Ja" + ::msgcat::mcset de "abort" "abbrechen" + ::msgcat::mcset de "blue" "blau" + ::msgcat::mcset de "cancel" "abbrechen" + ::msgcat::mcset de "extension" "Erweiterung" + ::msgcat::mcset de "extensions" "Erweiterungen" + ::msgcat::mcset de "green" "gr\u00fcn" + ::msgcat::mcset de "ignore" "ignorieren" + ::msgcat::mcset de "ok" + ::msgcat::mcset de "red" "rot" + ::msgcat::mcset de "retry" "wiederholen" + ::msgcat::mcset de "yes" "ja" +} diff --git a/lib/tk8.4/msgs/el.msg b/lib/tk8.4/msgs/el.msg new file mode 100644 index 00000000..2e96cd96 --- /dev/null +++ b/lib/tk8.4/msgs/el.msg @@ -0,0 +1,86 @@ +## Messages for the Greek (Hellenic - "el") language. +## Please report any changes/suggestions to: +## petasis@iit.demokritos.gr + +namespace eval ::tk { + ::msgcat::mcset el "&Abort" "\u03a4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2" + ::msgcat::mcset el "About..." "\u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac..." + ::msgcat::mcset el "All Files" "\u038c\u03bb\u03b1 \u03c4\u03b1 \u0391\u03c1\u03c7\u03b5\u03af\u03b1" + ::msgcat::mcset el "Application Error" "\u039b\u03ac\u03b8\u03bf\u03c2 \u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2" + ::msgcat::mcset el "&Blue" "\u039c\u03c0\u03bb\u03b5" + ::msgcat::mcset el "&Cancel" "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" + ::msgcat::mcset el \ +"Cannot change to the directory \"%1\$s\".\nPermission denied." \ +"\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03ba\u03b1\u03c4\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5 \u03c3\u03b5 \"%1\$s\".\n\u0397 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9." + ::msgcat::mcset el "Choose Directory" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u039a\u03b1\u03c4\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5" + ::msgcat::mcset el "Clear" "\u039a\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2" + ::msgcat::mcset el "Color" "\u03a7\u03c1\u03ce\u03bc\u03b1" + ::msgcat::mcset el "Console" "\u039a\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1" + ::msgcat::mcset el "Copy" "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae" + ::msgcat::mcset el "Cut" "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae" + ::msgcat::mcset el "Delete" "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae" + ::msgcat::mcset el "Details >>" "\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 >>" + ::msgcat::mcset el "Directory \"%1\$s\" does not exist." \ + "\u039f \u03ba\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf\u03c2 \"%1\$s\" \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9." + ::msgcat::mcset el "&Directory:" "&\u039a\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf\u03c2:" + ::msgcat::mcset el "Error: %1\$s" "\u039b\u03ac\u03b8\u03bf\u03c2: %1\$s" + ::msgcat::mcset el "Exit" "\u0388\u03be\u03bf\u03b4\u03bf\u03c2" + ::msgcat::mcset el \ + "File \"%1\$s\" already exists.\nDo you want to overwrite it?" \ + "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03ae\u03b4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9.\n\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03ba\u03b1\u03bb\u03c5\u03c6\u03b8\u03b5\u03af;" + ::msgcat::mcset el "File \"%1\$s\" already exists.\n\n" \ + "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03ae\u03b4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9.\n\n" + ::msgcat::mcset el "File \"%1\$s\" does not exist." \ + "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9." + ::msgcat::mcset el "File &name:" "\u038c&\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5:" + ::msgcat::mcset el "File &names:" "\u038c&\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd:" + ::msgcat::mcset el "Files of &type:" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u03c4\u03bf\u03c5 &\u03c4\u03cd\u03c0\u03bf\u03c5:" + ::msgcat::mcset el "Fi&les:" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1:" + ::msgcat::mcset el "&Filter" "\u03a6\u03af\u03bb\u03c4\u03c1\u03bf" + ::msgcat::mcset el "Fil&ter:" "\u03a6\u03af\u03bb\u03c4\u03c1\u03bf:" + ::msgcat::mcset el "&Green" "\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" + ::msgcat::mcset el "Hi" "\u0393\u03b5\u03b9\u03b1" + ::msgcat::mcset el "Hide Console" "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03ba\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1\u03c2" + ::msgcat::mcset el "&Ignore" "\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7" + ::msgcat::mcset el "Invalid file name \"%1\$s\"." \ + "\u0386\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \"%1\$s\"." + ::msgcat::mcset el "Log Files" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u039a\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" + ::msgcat::mcset el "&No" "\u038c\u03c7\u03b9" + ::msgcat::mcset el "&OK" "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" + ::msgcat::mcset el "&Ok" "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" + ::msgcat::mcset el "Open" "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1" + ::msgcat::mcset el "&Open" "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1" + ::msgcat::mcset el "Open Multiple Files" \ + "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ce\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd" + ::msgcat::mcset el "Paste" "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7" + ::msgcat::mcset el "Quit" "\u0388\u03be\u03bf\u03b4\u03bf\u03c2" + ::msgcat::mcset el "&Red" "\u039a\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" + ::msgcat::mcset el "Replace existing file?" \ + "\u0395\u03c0\u03b9\u03ba\u03ac\u03bb\u03c5\u03c8\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03bd\u03c4\u03bf\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5;" + ::msgcat::mcset el "&Retry" "\u03a0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03be\u03b1\u03bd\u03ac" + ::msgcat::mcset el "&Save" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7" + ::msgcat::mcset el "Save As" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c3\u03b1\u03bd" + ::msgcat::mcset el "Save To Log" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" + ::msgcat::mcset el "Select Log File" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" + ::msgcat::mcset el "Select a file to source" \ + "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b3\u03b9\u03b1 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7" + ::msgcat::mcset el "&Selection:" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae:" + ::msgcat::mcset el "Skip Messages" "\u0391\u03c0\u03bf\u03c6\u03c5\u03b3\u03ae \u03bc\u03c5\u03bd\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd" + ::msgcat::mcset el "Source..." "\u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7..." + ::msgcat::mcset el "Tcl Scripts" "Tcl Scripts" + ::msgcat::mcset el "Tcl for Windows" "Tcl \u03b3\u03b9\u03b1 Windows" + ::msgcat::mcset el "Text Files" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u039a\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5" + ::msgcat::mcset el "&Yes" "\u039d\u03b1\u03b9" + ::msgcat::mcset el "abort" "\u03c4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2" + ::msgcat::mcset el "blue" "\u03bc\u03c0\u03bb\u03b5" + ::msgcat::mcset el "cancel" "\u03b1\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" + ::msgcat::mcset el "extension" "\u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7" + ::msgcat::mcset el "extensions" "\u03b5\u03c0\u03b5\u03ba\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2" + ::msgcat::mcset el "green" "\u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" + ::msgcat::mcset el "ignore" "\u03b1\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7" + ::msgcat::mcset el "ok" "\u03b5\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" + ::msgcat::mcset el "red" "\u03ba\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" + ::msgcat::mcset el "retry" "\u03c0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03be\u03b1\u03bd\u03ac" + ::msgcat::mcset el "yes" "\u03bd\u03b1\u03b9" +} + diff --git a/lib/tk8.4/msgs/en.msg b/lib/tk8.4/msgs/en.msg new file mode 100644 index 00000000..7242f913 --- /dev/null +++ b/lib/tk8.4/msgs/en.msg @@ -0,0 +1,70 @@ +namespace eval ::tk { + ::msgcat::mcset en "&Abort" + ::msgcat::mcset en "About..." + ::msgcat::mcset en "All Files" + ::msgcat::mcset en "Application Error" + ::msgcat::mcset en "&Blue" + ::msgcat::mcset en "&Cancel" + ::msgcat::mcset en "Cannot change to the directory \"%1\$s\".\nPermission denied." + ::msgcat::mcset en "Choose Directory" + ::msgcat::mcset en "Clear" + ::msgcat::mcset en "Color" + ::msgcat::mcset en "Console" + ::msgcat::mcset en "Copy" + ::msgcat::mcset en "Cut" + ::msgcat::mcset en "Delete" + ::msgcat::mcset en "Details >>" + ::msgcat::mcset en "Directory \"%1\$s\" does not exist." + ::msgcat::mcset en "&Directory:" + ::msgcat::mcset en "Error: %1\$s" + ::msgcat::mcset en "Exit" + ::msgcat::mcset en "File \"%1\$s\" already exists.\nDo you want to overwrite it?" + ::msgcat::mcset en "File \"%1\$s\" already exists.\n\n" + ::msgcat::mcset en "File \"%1\$s\" does not exist." + ::msgcat::mcset en "File &name:" + ::msgcat::mcset en "File &names:" + ::msgcat::mcset en "Files of &type:" + ::msgcat::mcset en "Fi&les:" + ::msgcat::mcset en "&Filter" + ::msgcat::mcset en "Fil&ter:" + ::msgcat::mcset en "&Green" + ::msgcat::mcset en "Hi" + ::msgcat::mcset en "Hide Console" + ::msgcat::mcset en "&Ignore" + ::msgcat::mcset en "Invalid file name \"%1\$s\"." + ::msgcat::mcset en "Log Files" + ::msgcat::mcset en "&No" + ::msgcat::mcset en "&OK" + ::msgcat::mcset en "Ok" + ::msgcat::mcset en "Open" + ::msgcat::mcset en "&Open" + ::msgcat::mcset en "Open Multiple Files" + ::msgcat::mcset en "Paste" + ::msgcat::mcset en "Quit" + ::msgcat::mcset en "&Red" + ::msgcat::mcset en "Replace existing file?" + ::msgcat::mcset en "&Retry" + ::msgcat::mcset en "&Save" + ::msgcat::mcset en "Save As" + ::msgcat::mcset en "Save To Log" + ::msgcat::mcset en "Select Log File" + ::msgcat::mcset en "Select a file to source" + ::msgcat::mcset en "&Selection:" + ::msgcat::mcset en "Skip Messages" + ::msgcat::mcset en "Source..." + ::msgcat::mcset en "Tcl Scripts" + ::msgcat::mcset en "Tcl for Windows" + ::msgcat::mcset en "Text Files" + ::msgcat::mcset en "&Yes" + ::msgcat::mcset en "abort" + ::msgcat::mcset en "blue" + ::msgcat::mcset en "cancel" + ::msgcat::mcset en "extension" + ::msgcat::mcset en "extensions" + ::msgcat::mcset en "green" + ::msgcat::mcset en "ignore" + ::msgcat::mcset en "ok" + ::msgcat::mcset en "red" + ::msgcat::mcset en "retry" + ::msgcat::mcset en "yes" +} diff --git a/lib/tk8.4/msgs/en_gb.msg b/lib/tk8.4/msgs/en_gb.msg new file mode 100644 index 00000000..efafa38c --- /dev/null +++ b/lib/tk8.4/msgs/en_gb.msg @@ -0,0 +1,3 @@ +namespace eval ::tk { + ::msgcat::mcset en_gb Color Colour +} diff --git a/lib/tk8.4/msgs/eo.msg b/lib/tk8.4/msgs/eo.msg new file mode 100644 index 00000000..85436c31 --- /dev/null +++ b/lib/tk8.4/msgs/eo.msg @@ -0,0 +1,73 @@ +namespace eval ::tk { + ::msgcat::mcset eo "&Abort" "&\u0108esigo" + ::msgcat::mcset eo "&About..." "Pri..." + ::msgcat::mcset eo "All Files" "\u0108ioj dosieroj" + ::msgcat::mcset eo "Application Error" "Aplikoerraro" + ::msgcat::mcset eo "&Blue" "&Blua" + ::msgcat::mcset eo "&Cancel" "&Rezignu" + ::msgcat::mcset eo "Cannot change to the directory \"%1\$s\".\nPermission denied." "Neeble \u0109angi al dosierulon \"%1\$s\".\nVi ne rajtas tion." + ::msgcat::mcset eo "Choose Directory" "Elektu Dosierujo" + ::msgcat::mcset eo "&Clear" "&Klaru" + ::msgcat::mcset eo "&Clear Console" "&Klaru konzolon" + ::msgcat::mcset eo "Color" "Farbo" + ::msgcat::mcset eo "Console" "Konzolo" + ::msgcat::mcset eo "&Copy" "&Kopiu" + ::msgcat::mcset eo "Cu&t" "&Enpo\u015digu" + ::msgcat::mcset eo "&Delete" "&Forprenu" + ::msgcat::mcset eo "Details >>" "Detaloj >>" + ::msgcat::mcset eo "Directory \"%1\$s\" does not exist." "La dosierujo \"%1\$s\" ne ekzistas." + ::msgcat::mcset eo "&Directory:" "&Dosierujo:" + ::msgcat::mcset eo "&Edit" "&Redaktu" + ::msgcat::mcset eo "Error: %1\$s" "Eraro: %1\$s" + ::msgcat::mcset eo "E&xit" "&Eliru" + ::msgcat::mcset eo "&File" "&Dosiero" + ::msgcat::mcset eo "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "La dosiero \"%1\$s\" jam ekzistas.\n\u0108u vi volas anstata\u00fbigi la dosieron?" + ::msgcat::mcset eo "File \"%1\$s\" already exists.\n\n" "La dosiero \"%1\$s\" jam egzistas. \n\n" + ::msgcat::mcset eo "File \"%1\$s\" does not exist." "La dosierp \"%1\$s\" ne estas." + ::msgcat::mcset eo "File &name:" "Dosiero&nomo:" + ::msgcat::mcset eo "File &names:" "Dosiero&nomoj:" + ::msgcat::mcset eo "Files of &type:" "Dosieroj de &Typo:" + ::msgcat::mcset eo "Fi&les:" "Do&sieroj:" + ::msgcat::mcset eo "&Filter" "&Filtrilo" + ::msgcat::mcset eo "Fil&ter:" "&Filtrilo:" + ::msgcat::mcset eo "&Green" "&Verda" + ::msgcat::mcset eo "&Help" "&Helpu" + ::msgcat::mcset eo "Hi" "Saluton" + ::msgcat::mcset eo "&Hide Console" "&Ka\u015du konzolon" + ::msgcat::mcset eo "&Ignore" "&Ignoru" + ::msgcat::mcset eo "Invalid file name \"%1\$s\"." "Malvalida dosieronomo \"%1\$s\"." + ::msgcat::mcset eo "Log Files" "Protokolo" + ::msgcat::mcset eo "&No" "&Ne" + ::msgcat::mcset eo "OK" + ::msgcat::mcset eo "Ok" + ::msgcat::mcset eo "Open" "Malfermu" + ::msgcat::mcset eo "&Open" "&Malfermu" + ::msgcat::mcset eo "Open Multiple Files" "Melfermu multan dosierojn" + ::msgcat::mcset eo "P&aste" "&Elpo\u015digi" + ::msgcat::mcset eo "&Quit" "&Finigu" + ::msgcat::mcset eo "&Red" "&Rosa" + ::msgcat::mcset eo "Replace existing file?" "\u0108u anstata\u00fbu ekzistantan dosieron?" + ::msgcat::mcset eo "&Retry" "&Ripetu" + ::msgcat::mcset eo "&Save" "&Savu" + ::msgcat::mcset eo "Save As" "Savu kiel" + ::msgcat::mcset eo "Save To Log" "Savu en protokolon" + ::msgcat::mcset eo "Select Log File" "Elektu prokolodosieron" + ::msgcat::mcset eo "Select a file to source" "Elektu dosieron por interpreti" + ::msgcat::mcset eo "&Selection:" "&Elekto:" + ::msgcat::mcset eo "Skip Messages" "transsaltu pluajn mesa\u011dojn" + ::msgcat::mcset eo "&Source..." "&Fontoprogramo..." + ::msgcat::mcset eo "Tcl Scripts" "Tcl-skriptoj" + ::msgcat::mcset eo "Tcl for Windows" "Tcl por vindoso" + ::msgcat::mcset eo "Text Files" "Tekstodosierojn" + ::msgcat::mcset eo "&Yes" "&Jes" + ::msgcat::mcset eo "abort" "\u0109esigo" + ::msgcat::mcset eo "blue" "blua" + ::msgcat::mcset eo "cancel" "rezignu" + ::msgcat::mcset eo "extension" "ekspansio" + ::msgcat::mcset eo "extensions" "ekspansioj" + ::msgcat::mcset eo "green" "verda" + ::msgcat::mcset eo "ignore" "ignorieren" + ::msgcat::mcset eo "red" "ru\u011da" + ::msgcat::mcset eo "retry" "ripetu" + ::msgcat::mcset eo "yes" "jes" +} diff --git a/lib/tk8.4/msgs/es.msg b/lib/tk8.4/msgs/es.msg new file mode 100644 index 00000000..7de0faef --- /dev/null +++ b/lib/tk8.4/msgs/es.msg @@ -0,0 +1,70 @@ +namespace eval ::tk { + ::msgcat::mcset es "&Abort" "&Abortar" + ::msgcat::mcset es "About..." "Acerca de ..." + ::msgcat::mcset es "All Files" "Todos los archivos" + ::msgcat::mcset es "Application Error" "Error de la aplicaci\u00f3n" + ::msgcat::mcset es "&Blue" "&Azul" + ::msgcat::mcset es "&Cancel" "&Cancelar" + ::msgcat::mcset es "Cannot change to the directory \"%1\$s\".\nPermission denied." "No es posible acceder al directorio \"%1\$s\".\nPermiso denegado." + ::msgcat::mcset es "Choose Directory" "Elegir directorio" + ::msgcat::mcset es "Clear" "Borrar" + ::msgcat::mcset es "Color" "Color" + ::msgcat::mcset es "Console" "Consola" + ::msgcat::mcset es "Copy" "Copiar" + ::msgcat::mcset es "Cut" "Cortar" + ::msgcat::mcset es "Delete" "Borrar" + ::msgcat::mcset es "Details >>" "Detalles >>" + ::msgcat::mcset es "Directory \"%1\$s\" does not exist." "El directorio \"%1\$s\" no existe." + ::msgcat::mcset es "&Directory:" "&Directorio:" + ::msgcat::mcset es "Error: %1\$s" "Error: %1\$s" + ::msgcat::mcset es "Exit" "Salir" + ::msgcat::mcset es "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "El archivo \"%1\$s\" ya existe.\nDesea sobreescribirlo?" + ::msgcat::mcset es "File \"%1\$s\" already exists.\n\n" "El archivo \"%1\$s\" ya existe.\n\n" + ::msgcat::mcset es "File \"%1\$s\" does not exist." "El archivo \"%1\$s\" no existe." + ::msgcat::mcset es "File &name:" "&Nombre de archivo:" + ::msgcat::mcset es "File &names:" "&Nombres de archivo:" + ::msgcat::mcset es "Files of &type:" "Archivos de &tipo:" + ::msgcat::mcset es "Fi&les:" "&Archivos:" + ::msgcat::mcset es "&Filter" "&Filtro" + ::msgcat::mcset es "Fil&ter:" "Fil&tro:" + ::msgcat::mcset es "&Green" "&Verde" + ::msgcat::mcset es "Hi" "Hola" + ::msgcat::mcset es "Hide Console" "Esconder la consola" + ::msgcat::mcset es "&Ignore" "&Ignorar" + ::msgcat::mcset es "Invalid file name \"%1\$s\"." "Nombre de archivo inv\u00e1lido \"%1\$s\"." + ::msgcat::mcset es "Log Files" "Ficheros de traza" + ::msgcat::mcset es "&No" "&No" + ::msgcat::mcset es "&OK" "&OK" + ::msgcat::mcset es "Ok" "Ok" + ::msgcat::mcset es "Open" "Abrir" + ::msgcat::mcset es "&Open" "&Abrir" + ::msgcat::mcset es "Open Multiple Files" "Abrir m\u00faltiples archivos" + ::msgcat::mcset es "Paste" "Pegar" + ::msgcat::mcset es "Quit" "Abandonar" + ::msgcat::mcset es "&Red" "&Rojo" + ::msgcat::mcset es "Replace existing file?" "Reemplazar el archivo existente?" + ::msgcat::mcset es "&Retry" "&Reintentar" + ::msgcat::mcset es "&Save" "&Salvar" + ::msgcat::mcset es "Save As" "Salvar como" + ::msgcat::mcset es "Save To Log" "Salvar al archivo de traza" + ::msgcat::mcset es "Select Log File" "Elegir un archivo de traza" + ::msgcat::mcset es "Select a file to source" "Seleccionar un archivo a evaluar" + ::msgcat::mcset es "&Selection:" "&Selecci\u00f3n:" + ::msgcat::mcset es "Skip Messages" "Omitir los mensajes" + ::msgcat::mcset es "Source..." "Evaluar..." + ::msgcat::mcset es "Tcl Scripts" "Scripts Tcl" + ::msgcat::mcset es "Tcl for Windows" "Tcl para Windows" + ::msgcat::mcset es "Text Files" "Archivos de texto" + ::msgcat::mcset es "&Yes" "&S\u00ed" + ::msgcat::mcset es "abort" "abortar" + ::msgcat::mcset es "blue" "azul" + ::msgcat::mcset es "cancel" "cancelar" + ::msgcat::mcset es "extension" "extensi\u00f3n" + ::msgcat::mcset es "extensions" "extensiones" + ::msgcat::mcset es "green" "verde" + ::msgcat::mcset es "ignore" "ignorar" + ::msgcat::mcset es "ok" "ok" + ::msgcat::mcset es "red" "rojo" + ::msgcat::mcset es "retry" "reintentar" + ::msgcat::mcset es "yes" "s\u00ed" +} diff --git a/lib/tk8.4/msgs/es_ES.msg b/lib/tk8.4/msgs/es_ES.msg new file mode 100644 index 00000000..77e5a925 --- /dev/null +++ b/lib/tk8.4/msgs/es_ES.msg @@ -0,0 +1,5 @@ +namespace eval ::tk { + ::msgcat::mcset es_ES "&Save" "&Guardar" + ::msgcat::mcset es_ES "Save As" "Guardar como" + ::msgcat::mcset es_ES "Save To Log" "Guardar al archivo de traza" +} diff --git a/lib/tk8.4/msgs/fr.msg b/lib/tk8.4/msgs/fr.msg new file mode 100644 index 00000000..b1eb7e31 --- /dev/null +++ b/lib/tk8.4/msgs/fr.msg @@ -0,0 +1,70 @@ +namespace eval ::tk { + ::msgcat::mcset fr "&Abort" "&Annuler" + ::msgcat::mcset fr "About..." "\u00c0 propos..." + ::msgcat::mcset fr "All Files" "Tous les fichiers" + ::msgcat::mcset fr "Application Error" "Erreur d'application" + ::msgcat::mcset fr "&Blue" "&Bleu" + ::msgcat::mcset fr "&Cancel" "&Annuler" + ::msgcat::mcset fr "Cannot change to the directory \"%1\$s\".\nPermission denied." "Impossible d'acc\u00e9der au r\u00e9pertoire \"%1\$s\".\nPermission refus\u00e9e." + ::msgcat::mcset fr "Choose Directory" "Choisir r\u00e9pertoire" + ::msgcat::mcset fr "Clear" "Effacer" + ::msgcat::mcset fr "Color" "Couleur" + ::msgcat::mcset fr "Console" + ::msgcat::mcset fr "Copy" "Copier" + ::msgcat::mcset fr "Cut" "Couper" + ::msgcat::mcset fr "Delete" "Effacer" + ::msgcat::mcset fr "Details >>" "D\u00e9tails >>" + ::msgcat::mcset fr "Directory \"%1\$s\" does not exist." "Le r\u00e9pertoire \"%1\$s\" n'existe pas." + ::msgcat::mcset fr "&Directory:" "&R\u00e9pertoire:" + ::msgcat::mcset fr "Error: %1\$s" "Erreur: %1\$s" + ::msgcat::mcset fr "Exit" "Quitter" + ::msgcat::mcset fr "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Le fichier \"%1\$s\" existe d\u00e9j\u00e0.\nVoulez-vous l'\u00e9craser?" + ::msgcat::mcset fr "File \"%1\$s\" already exists.\n\n" "Le fichier \"%1\$s\" existe d\u00e9j\u00e0.\n\n" + ::msgcat::mcset fr "File \"%1\$s\" does not exist." "Le fichier \"%1\$s\" n'existe pas." + ::msgcat::mcset fr "File &name:" "&Nom de fichier:" + ::msgcat::mcset fr "File &names:" "&Noms de fichiers:" + ::msgcat::mcset fr "Files of &type:" "&Type de fichiers:" + ::msgcat::mcset fr "Fi&les:" "Fich&iers:" + ::msgcat::mcset fr "&Filter" "&Filtre" + ::msgcat::mcset fr "Fil&ter:" "Fil&tre:" + ::msgcat::mcset fr "&Green" "&Vert" + ::msgcat::mcset fr "Hi" "Salut" + ::msgcat::mcset fr "Hide Console" "Cacher la Console" + ::msgcat::mcset fr "&Ignore" "&Ignorer" + ::msgcat::mcset fr "Invalid file name \"%1\$s\"." "Nom de fichier invalide \"%1\$s\"." + ::msgcat::mcset fr "Log Files" "Fichiers de trace" + ::msgcat::mcset fr "&No" "&Non" + ::msgcat::mcset fr "&OK" + ::msgcat::mcset fr "Ok" + ::msgcat::mcset fr "Open" "Ouvrir" + ::msgcat::mcset fr "&Open" "&Ouvrir" + ::msgcat::mcset fr "Open Multiple Files" "Ouvrir plusieurs fichiers" + ::msgcat::mcset fr "Paste" "Coller" + ::msgcat::mcset fr "Quit" "Quitter" + ::msgcat::mcset fr "&Red" "&Rouge" + ::msgcat::mcset fr "Replace existing file?" "Remplacer le fichier existant?" + ::msgcat::mcset fr "&Retry" "&R\u00e9-essayer" + ::msgcat::mcset fr "&Save" "&Sauvegarder" + ::msgcat::mcset fr "Save As" "Sauvegarder sous" + ::msgcat::mcset fr "Save To Log" "Sauvegarde au fichier de trace" + ::msgcat::mcset fr "Select Log File" "Choisir un fichier de trace" + ::msgcat::mcset fr "Select a file to source" "Choisir un fichier \u00e0 \u00e9valuer" + ::msgcat::mcset fr "&Selection:" "&S\u00e9lection:" + ::msgcat::mcset fr "Skip Messages" "Omettre les messages" + ::msgcat::mcset fr "Source..." "\u00c9valuer..." + ::msgcat::mcset fr "Tcl Scripts" "Scripts Tcl" + ::msgcat::mcset fr "Tcl for Windows" "Tcl pour Windows" + ::msgcat::mcset fr "Text Files" "Fichiers texte" + ::msgcat::mcset fr "&Yes" "&Oui" + ::msgcat::mcset fr "abort" "abandonner" + ::msgcat::mcset fr "blue" "bleu" + ::msgcat::mcset fr "cancel" "annuler" + ::msgcat::mcset fr "extension" + ::msgcat::mcset fr "extensions" + ::msgcat::mcset fr "green" "vert" + ::msgcat::mcset fr "ignore" "ignorer" + ::msgcat::mcset fr "ok" + ::msgcat::mcset fr "red" "rouge" + ::msgcat::mcset fr "retry" "r\u00e9essayer" + ::msgcat::mcset fr "yes" "oui" +} diff --git a/lib/tk8.4/msgs/it.msg b/lib/tk8.4/msgs/it.msg new file mode 100644 index 00000000..52394cde --- /dev/null +++ b/lib/tk8.4/msgs/it.msg @@ -0,0 +1,70 @@ +namespace eval ::tk { + ::msgcat::mcset it "&Abort" "&Interrompi" + ::msgcat::mcset it "About..." "Informazioni..." + ::msgcat::mcset it "All Files" "Tutti i file" + ::msgcat::mcset it "Application Error" "Errore dell' applicazione" + ::msgcat::mcset it "&Blue" "&Blu" + ::msgcat::mcset it "&Cancel" "&Annulla" + ::msgcat::mcset it "Cannot change to the directory \"%1\$s\".\nPermission denied." "Impossibile accedere alla directory \"%1\$s\".\nPermesso negato." + ::msgcat::mcset it "Choose Directory" "Scegli una directory" + ::msgcat::mcset it "Clear" "Azzera" + ::msgcat::mcset it "Color" "Colore" + ::msgcat::mcset it "Console" + ::msgcat::mcset it "Copy" "Copia" + ::msgcat::mcset it "Cut" "Taglia" + ::msgcat::mcset it "Delete" "Cancella" + ::msgcat::mcset it "Details >>" "Dettagli >>" + ::msgcat::mcset it "Directory \"%1\$s\" does not exist." "La directory \"%1\$s\" non esiste." + ::msgcat::mcset it "&Directory:" + ::msgcat::mcset it "Error: %1\$s" "Errore: %1\$s" + ::msgcat::mcset it "Exit" "Esci" + ::msgcat::mcset it "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Il file \"%1\$s\" esiste gi\u00e0.\nVuoi sovrascriverlo?" + ::msgcat::mcset it "File \"%1\$s\" already exists.\n\n" "Il file \"%1\$s\" esiste gi\u00e0.\n\n" + ::msgcat::mcset it "File \"%1\$s\" does not exist." "Il file \"%1\$s\" non esiste." + ::msgcat::mcset it "File &name:" "&Nome del file:" + ::msgcat::mcset it "File &names:" "&Nomi dei file:" + ::msgcat::mcset it "Files of &type:" "File di &tipo:" + ::msgcat::mcset it "Fi&les:" "Fi&le:" + ::msgcat::mcset it "&Filter" "&Filtro" + ::msgcat::mcset it "Fil&ter:" "Fil&tro:" + ::msgcat::mcset it "&Green" "&Verde" + ::msgcat::mcset it "Hi" "Salve" + ::msgcat::mcset it "Hide Console" "Nascondi la console" + ::msgcat::mcset it "&Ignore" "&Ignora" + ::msgcat::mcset it "Invalid file name \"%1\$s\"." "Nome di file non valido \"%1\$s\"." + ::msgcat::mcset it "Log Files" "File di log" + ::msgcat::mcset it "&No" + ::msgcat::mcset it "&OK" + ::msgcat::mcset it "Ok" + ::msgcat::mcset it "&Open" "A&pri" + ::msgcat::mcset it "Open" "Apri" + ::msgcat::mcset it "Open Multiple Files" "Apri file multipli" + ::msgcat::mcset it "Paste" "Incolla" + ::msgcat::mcset it "Quit" "Esci" + ::msgcat::mcset it "&Red" "&Rosso" + ::msgcat::mcset it "Replace existing file?" "Sostituisci il file esistente?" + ::msgcat::mcset it "&Retry" "&Riprova" + ::msgcat::mcset it "&Save" "&Salva" + ::msgcat::mcset it "Save As" "Salva come" + ::msgcat::mcset it "Save To Log" "Salva il log" + ::msgcat::mcset it "Select Log File" "Scegli un file di log" + ::msgcat::mcset it "Select a file to source" "Scegli un file da eseguire" + ::msgcat::mcset it "&Selection:" "&Selezione:" + ::msgcat::mcset it "Skip Messages" "Salta i messaggi" + ::msgcat::mcset it "Source..." "Esegui..." + ::msgcat::mcset it "Tcl Scripts" "Script Tcl" + ::msgcat::mcset it "Tcl for Windows" "Tcl per Windows" + ::msgcat::mcset it "Text Files" "File di testo" + ::msgcat::mcset it "&Yes" "&S\u00ec" + ::msgcat::mcset it "abort" "interrompi" + ::msgcat::mcset it "blue" "blu" + ::msgcat::mcset it "cancel" "annulla" + ::msgcat::mcset it "extension" "estensione" + ::msgcat::mcset it "extensions" "estensioni" + ::msgcat::mcset it "green" "verde" + ::msgcat::mcset it "ignore" "ignora" + ::msgcat::mcset it "ok" + ::msgcat::mcset it "red" "rosso" + ::msgcat::mcset it "retry" "riprova" + ::msgcat::mcset it "yes" "s\u00ec" +} diff --git a/lib/tk8.4/msgs/nl.msg b/lib/tk8.4/msgs/nl.msg new file mode 100644 index 00000000..90446c8e --- /dev/null +++ b/lib/tk8.4/msgs/nl.msg @@ -0,0 +1,109 @@ +namespace eval ::tk { + ::msgcat::mcset nl "\"%1\$s\" must be an absolute pathname" "\"%1\$s\" moet een absolute pad-naam zijn" + ::msgcat::mcset nl "%1\$s is not a toplevel window" "%1\$s is geen toplevel window" + ::msgcat::mcset nl ", or" ", of" + ::msgcat::mcset nl "-default, -icon, -message, -parent, -title, or -type" "-default, -icon, -message, -parent, -title, of -type" + ::msgcat::mcset nl "-initialdir, -mustexist, -parent, or -title" "-initialdir, -mustexist, -parent, of -title" + ::msgcat::mcset nl "&Abort" "&Afbreken" + ::msgcat::mcset nl "About..." "Over..." + ::msgcat::mcset nl "All Files" "Alle Bestanden" + ::msgcat::mcset nl "Application Error" "Toepassingsfout" + ::msgcat::mcset nl "&Blue" "&Blauw" + ::msgcat::mcset nl "&Cancel" "&Annuleren" + ::msgcat::mcset nl "Cannot change to the directory \"%1\$s\".\nPermission denied." "Kan niet naar map \"%1\$s\" gaan.\nU heeft hiervoor geen toestemming." + ::msgcat::mcset nl "Choose Directory" "Kies map" + ::msgcat::mcset nl "Clear" "Wissen" + ::msgcat::mcset nl "Clear entry, Press OK; Enter %1\$s, press OK" "Wis veld, Druk op OK; typ %1\$s in, druk op OK" + ::msgcat::mcset nl "&Clear Console" "&Wis Console" + ::msgcat::mcset nl "Color" "Kleur" + ::msgcat::mcset nl "Console" + ::msgcat::mcset nl "Copy" "Kopi\u00ebren" + ::msgcat::mcset nl "Cut" "Knippen" + ::msgcat::mcset nl "Delete" "Wissen" + ::msgcat::mcset nl "Details" + ::msgcat::mcset nl "Details >>" + ::msgcat::mcset nl "Directory \"%1\$s\" does not exist." "Map \"%1\$s\" bestaat niet." + ::msgcat::mcset nl "&Directory:" "&Map:" + ::msgcat::mcset nl "Edit" "Bewerken" + ::msgcat::mcset nl "Enter \"%1\$s\", press OK" "Typ \"%1\$s\", druk op OK" + ::msgcat::mcset nl "Enter \"%1\$s\", press OK, enter \"%2\$s\", press OK" "Typ \"%1\$s\", druk op OK, typ \"%2\$s\", druk op OK" + ::msgcat::mcset nl "Error: %1\$s" "Fout: %1\$s" + ::msgcat::mcset nl "Exit" "Be\u00ebindigen" + ::msgcat::mcset nl "File" "Bestand" + ::msgcat::mcset nl "File \"%1\$s\" already exists.\n\n" "Bestand \"%1\$s\" bestaat al.\n\n" + ::msgcat::mcset nl "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Bestand \"%1\$s\" bestaat al.\nWilt u het overschrijven?" + ::msgcat::mcset nl "File \"%1\$s\" does not exist." "Bestand \"%1\$s\" bestaat niet." + ::msgcat::mcset nl "File &name:" "Bestands&naam:" + ::msgcat::mcset nl "File &names:" "Bestands&namen:" + ::msgcat::mcset nl "Files of &type:" "Bestanden van het &type:" + ::msgcat::mcset nl "Fi&les:" "&Bestanden:" + ::msgcat::mcset nl "&Filter" + ::msgcat::mcset nl "Fil&ter:" + ::msgcat::mcset nl "&Green" "&Groen" + ::msgcat::mcset nl "Hi" "H\u00e9" + ::msgcat::mcset nl "Hide Console" "Verberg Console" + ::msgcat::mcset nl "&Ignore" "&Negeren" + ::msgcat::mcset nl "Invalid file name \"%1\$s\"." "Ongeldige bestandsnaam \"%1\$s\"." + ::msgcat::mcset nl "Log Files" "Log Bestanden" + ::msgcat::mcset nl "&No" "&Nee" + ::msgcat::mcset nl "&OK" + ::msgcat::mcset nl "Ok" + ::msgcat::mcset nl "&Open" "&Openen" + ::msgcat::mcset nl "Open" "Openen" + ::msgcat::mcset nl "Open Multiple Files" "Open meerdere bestanden" + ::msgcat::mcset nl "Paste" "Plakken" + ::msgcat::mcset nl "Please press %1\$s" "Druk op %1\$s, A.U.B." + ::msgcat::mcset nl "Please press ok" "Druk op ok, A.U.B." + ::msgcat::mcset nl "Press Cancel" "Druk op Annuleren" + ::msgcat::mcset nl "Press Ok" "Druk op Ok" + ::msgcat::mcset nl "Quit" "Stoppen" + ::msgcat::mcset nl "&Red" "&Rood" + ::msgcat::mcset nl "Replace existing file?" "Vervang bestaand bestand?" + ::msgcat::mcset nl "&Retry" "&Herhalen" + ::msgcat::mcset nl "&Save" "Op&slaan" + ::msgcat::mcset nl "Save As" "Opslaan als" + ::msgcat::mcset nl "Save To Log" "Opslaan naar Log" + ::msgcat::mcset nl "Select Log File" "Selecteer Log bestand" + ::msgcat::mcset nl "Select a file to source" "Selecteer bronbestand" + ::msgcat::mcset nl "&Selection:" "&Selectie:" + ::msgcat::mcset nl "Skip Messages" "Berichten overslaan" + ::msgcat::mcset nl "Source..." "Bron..." + ::msgcat::mcset nl "Tcl Scripts" + ::msgcat::mcset nl "Tcl for Windows" "Tcl voor Windows" + ::msgcat::mcset nl "Text Files" "Tekstbestanden" + ::msgcat::mcset nl "&Yes" "&Ja" + ::msgcat::mcset nl "abort" "afbreken" + ::msgcat::mcset nl "abort, retry, ignore, ok, cancel, no, or yes" "afbreken, opnieuw, negeren, ok, annuleren, nee, of ja" + ::msgcat::mcset nl "abortretryignore, ok, okcancel, retrycancel, yesno, or yesnocancel" "abortretryignore, ok, okcancel, retrycancel, yesno, of yesnocancel" + ::msgcat::mcset nl "bad %1\$s value \"%2\$s\": must be %3\$s" "verkeerde %1\$s waarde \"%2\$s\": moet zijn %3\$s" + ::msgcat::mcset nl "bad file type \"%1\$s\", should be" "verkeerd bestandstype \"%1\$s\", moet zijn" + ::msgcat::mcset nl "bad option \"%1\$s\": should be %2\$s" "verkeerde optie \"%1\$s\": moet zijn %2\$s" + ::msgcat::mcset nl "bad window path name \"%1\$s\"" "verkeerde window-padnaam \"%1\$s\"" + ::msgcat::mcset nl "blue" "blauw" + ::msgcat::mcset nl "can't post %1\$s: it isn't a descendant of %2\$s (this is a new requirement in Tk versions 3.0 and later)" "kan %1\$s niet verzenden: het is geen afstammeling van %2\$s (dit is een nieuwe eis in Tk versies 3.0 en later)" + ::msgcat::mcset nl "cancel" "annuleren" + ::msgcat::mcset nl "default button index greater than number of buttons specified for tk_dialog" "default knop index is groter dan het aantal knoppen beschikbaar voor tk_dialog" + ::msgcat::mcset nl "display name to use (current one otherwise)" "te gebruiken schermnaam (anders huidige scherm)" + ::msgcat::mcset nl "error, info, question, or warning" "error, info, question, of warning" + ::msgcat::mcset nl "extension" + ::msgcat::mcset nl "extensions" + ::msgcat::mcset nl "focus group \"%1\$s\" doesn't exist" "focusgroep \"%1\$s\" bestaat niet" + ::msgcat::mcset nl "green" "groen" + ::msgcat::mcset nl "history event %1\$s" + ::msgcat::mcset nl "ignore" "negeren" + ::msgcat::mcset nl "invalid default button \"%1\$s\"" "ongeldige default knop \"%1\$s\"" + ::msgcat::mcset nl "macType" + ::msgcat::mcset nl "macTypes" + ::msgcat::mcset nl "must specify a background color" "een achtergrondkleur is verplicht" + ::msgcat::mcset nl "name of the slave interpreter" "naam van de slaaf-interpreter" + ::msgcat::mcset nl "no winfo screen . nor env(DISPLAY)" "geen winfo scherm . noch env(DISPLAY)" + ::msgcat::mcset nl "ok" + ::msgcat::mcset nl "red" "rood" + ::msgcat::mcset nl "retry" "opnieuw" + ::msgcat::mcset nl "should contain 5 or 4 elements" "moet 4 of 5 elementen bevatten" + ::msgcat::mcset nl "spec" + ::msgcat::mcset nl "tk_chooseDirectory command" "tk_chooseDirectory opdracht" + ::msgcat::mcset nl "tk_chooseDirectory command, cancel gives null" "tk_chooseDirectory opdracht, annuleren geeft lege waarde" + ::msgcat::mcset nl "tk_chooseDirectory command, initialdir" "tk_chooseDirectory opdracht, initi\u00eble map" + ::msgcat::mcset nl "yes" "ja" +} diff --git a/lib/tk8.4/msgs/pl.msg b/lib/tk8.4/msgs/pl.msg new file mode 100644 index 00000000..02e6ffcf --- /dev/null +++ b/lib/tk8.4/msgs/pl.msg @@ -0,0 +1,73 @@ +namespace eval ::tk { + ::msgcat::mcset pl "&Abort" "&Anuluj" + ::msgcat::mcset pl "&About..." "O Programie..." + ::msgcat::mcset pl "All Files" "Wszystkie pliki" + ::msgcat::mcset pl "Application Error" "Bl\u0105d w Programie" + ::msgcat::mcset pl "&Blue" "&Niebieski" + ::msgcat::mcset pl "&Cancel" "&Anuluj" + ::msgcat::mcset pl "Cannot change to the directory \"%1\$s\".\nPermission denied." "Katalog \"%1\$s\" nie mo\u017ce zosta\u0107 odczytany lub nie istnieje." + ::msgcat::mcset pl "Choose Directory" "Wybierz katalog" + ::msgcat::mcset pl "&Clear" "&Wyczy\u015b\u0107" + ::msgcat::mcset pl "&Clear Console" "&Wyczy\u015b\u0107 konsol\u0119" + ::msgcat::mcset pl "Color" "Kolor" + ::msgcat::mcset pl "Console" "Konsola" + ::msgcat::mcset pl "&Copy" "&Kopiuj" + ::msgcat::mcset pl "Cu&t" "&Wytnij" + ::msgcat::mcset pl "&Delete" "&Usu\u0144" + ::msgcat::mcset pl "Details >>" "Detale >>" + ::msgcat::mcset pl "Directory \"%1\$s\" does not exist." "Katalog \"%1\$s\" nie istniej." + ::msgcat::mcset pl "&Directory:" "&Katalog:" + ::msgcat::mcset pl "&Edit" "&Edytuj" + ::msgcat::mcset pl "Error: %1\$s" "B\u0142\u0105d: %1\$s" + ::msgcat::mcset pl "E&xit" "&Zako\u0144cz" + ::msgcat::mcset pl "&File" "&Plik" + ::msgcat::mcset pl "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Plik \"%1\$s\" ju\u017c istnieje.\nCzy chcesz go zast\u0105pi\u0107?" + ::msgcat::mcset pl "File \"%1\$s\" already exists.\n\n" "Plik \"%1\$s\" ju\u017c istnieje. \n\n" + ::msgcat::mcset pl "File \"%1\$s\" does not exist." "Plik \"%1\$s\" nie istnieje." + ::msgcat::mcset pl "File &name:" "Nazwa &pliku:" + ::msgcat::mcset pl "File &names:" "Nazwy &plik\u00f3w:" + ::msgcat::mcset pl "Files of &type:" "Pliki &typu:" + ::msgcat::mcset pl "Fi&les:" "Pli&ki:" + ::msgcat::mcset pl "&Filter" "&Filter" + ::msgcat::mcset pl "Fil&ter:" "&Filter:" + ::msgcat::mcset pl "&Green" "&Zielony" + ::msgcat::mcset pl "&Help" "&Pomoc" + ::msgcat::mcset pl "Hi" "Witaj" + ::msgcat::mcset pl "&Hide Console" "&Schowaj konsol\u0119" + ::msgcat::mcset pl "&Ignore" "&Ignoruj" + ::msgcat::mcset pl "Invalid file name \"%1\$s\"." "Niew\u0142a\u015bciwa nazwa pliku \"%1\$s\"." + ::msgcat::mcset pl "Log Files" "Protoko\u0142uj" + ::msgcat::mcset pl "&No" "&Nie" + ::msgcat::mcset pl "OK" + ::msgcat::mcset pl "Ok" + ::msgcat::mcset pl "Open" "Wczytaj" + ::msgcat::mcset pl "&Open" "&Wczytaj" + ::msgcat::mcset pl "Open Multiple Files" "Wczytuj wiele plik\u00f3w" + ::msgcat::mcset pl "P&aste" "&Wklej" + ::msgcat::mcset pl "&Quit" "&Zako\u0144cz" + ::msgcat::mcset pl "&Red" "&Czerwonz" + ::msgcat::mcset pl "Replace existing file?" "Czy zost\u0105pi\u0107 instniej\u0105cy plik?" + ::msgcat::mcset pl "&Retry" "&Powt\u00f3rz" + ::msgcat::mcset pl "&Save" "&Zapisz" + ::msgcat::mcset pl "Save As" "Zapisz jako" + ::msgcat::mcset pl "Save To Log" "Wpisz do protoko\u0142u" + ::msgcat::mcset pl "Select Log File" "Wybierz plik proko\u0142u" + ::msgcat::mcset pl "Select a file to source" "Wybierz plik do wykonania" + ::msgcat::mcset pl "&Selection:" "&Wyb\u00f3r:" + ::msgcat::mcset pl "Skip Messages" "Omi\u0144 pozosta\u0142e komunikaty" + ::msgcat::mcset pl "&Source..." "&Kod \u017ar\u00f3d\u0142owy..." + ::msgcat::mcset pl "Tcl Scripts" "Tcl-skrypty" + ::msgcat::mcset pl "Tcl for Windows" "Tcl dla Okienek (Windows)" + ::msgcat::mcset pl "Text Files" "Pliki Tekstowe" + ::msgcat::mcset pl "&Yes" "&Tak" + ::msgcat::mcset pl "abort" "zako\u0144cz" + ::msgcat::mcset pl "blue" "niebieski" + ::msgcat::mcset pl "cancel" "anuluj" + ::msgcat::mcset pl "extension" "rozszerzenie" + ::msgcat::mcset pl "extensions" "rozszerzenia" + ::msgcat::mcset pl "green" "zielony" + ::msgcat::mcset pl "ignore" "ignoruj" + ::msgcat::mcset pl "red" "czerwony" + ::msgcat::mcset pl "retry" "potw\u00f3rz" + ::msgcat::mcset pl "yes" "tak" +} diff --git a/lib/tk8.4/msgs/pt.msg b/lib/tk8.4/msgs/pt.msg new file mode 100644 index 00000000..259f82e2 --- /dev/null +++ b/lib/tk8.4/msgs/pt.msg @@ -0,0 +1,70 @@ +namespace eval ::tk { + ::msgcat::mcset pt_br "&Abort" "&Abortar" + ::msgcat::mcset pt_br "About..." "Sobre ..." + ::msgcat::mcset pt_br "All Files" "Todos os arquivos" + ::msgcat::mcset pt_br "Application Error" "Erro de aplica\u00e7\u00e3o" + ::msgcat::mcset pt_br "&Blue" "&Azul" + ::msgcat::mcset pt_br "&Cancel" "&Cancelar" + ::msgcat::mcset pt_br "Cannot change to the directory \"%1\$s\".\nPermission denied." "N\u00e3o foi poss\u00edvel mudar para o diret\u00f3rio \"%1\$s\".\nPermiss\u00e3o negada." + ::msgcat::mcset pt_br "Choose Directory" "Escolha um diret\u00f3rio" + ::msgcat::mcset pt_br "Clear" "Apagar" + ::msgcat::mcset pt_br "Color" "Cor" + ::msgcat::mcset pt_br "Console" "Console" + ::msgcat::mcset pt_br "Copy" "Copiar" + ::msgcat::mcset pt_br "Cut" "Recortar" + ::msgcat::mcset pt_br "Delete" "Excluir" + ::msgcat::mcset pt_br "Details >>" "Detalhes >>" + ::msgcat::mcset pt_br "Directory \"%1\$s\" does not exist." "O diret\u00f3rio \"%1\$s\" n\u00e3o existe." + ::msgcat::mcset pt_br "&Directory:" "&Diret\u00f3rio:" + ::msgcat::mcset pt_br "Error: %1\$s" "Erro: %1\$s" + ::msgcat::mcset pt_br "Exit" "Sair" + ::msgcat::mcset pt_br "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "O arquivo \"%1\$s\" j\u00e1 existe.\nDeseja sobrescreve-lo?" + ::msgcat::mcset pt_br "File \"%1\$s\" already exists.\n\n" "O arquivo \"%1\$s\" j\u00e1 existe.\n\n" + ::msgcat::mcset pt_br "File \"%1\$s\" does not exist." "Arquivo \"%1\$s\" n\u00e3o existe." + ::msgcat::mcset pt_br "File &name:" "&Nome do arquivo:" + ::msgcat::mcset pt_br "File &names:" "&Nomes dos arquivos:" + ::msgcat::mcset pt_br "Files of &type:" "Arquivos do &tipo:" + ::msgcat::mcset pt_br "Fi&les:" "&Arquivos:" + ::msgcat::mcset pt_br "&Filter" "&Filtro" + ::msgcat::mcset pt_br "Fil&ter:" "Fil&tro:" + ::msgcat::mcset pt_br "&Green" "&Verde" + ::msgcat::mcset pt_br "Hi" "Oi" + ::msgcat::mcset pt_br "Hide Console" "Ocultar console" + ::msgcat::mcset pt_br "&Ignore" "&Ignorar" + ::msgcat::mcset pt_br "Invalid file name \"%1\$s\"." "O nome do arquivo \u00e9 inv\u00e1lido \"%1\$s\"." + ::msgcat::mcset pt_br "Log Files" "Arquivos de log" + ::msgcat::mcset pt_br "&No" "&N\u00e3o" + ::msgcat::mcset pt_br "&OK" "&OK" + ::msgcat::mcset pt_br "Ok" "Ok" + ::msgcat::mcset pt_br "Open" "Abrir" + ::msgcat::mcset pt_br "&Open" "&Abrir" + ::msgcat::mcset pt_br "Open Multiple Files" "Abrir m\u00faltiplos arquivos" + ::msgcat::mcset pt_br "Paste" "Colar" + ::msgcat::mcset pt_br "Quit" "Encerrar" + ::msgcat::mcset pt_br "&Red" "&Vermelho" + ::msgcat::mcset pt_br "Replace existing file?" "Substituir arquivo existente?" + ::msgcat::mcset pt_br "&Retry" "Tenta&r novamente" + ::msgcat::mcset pt_br "&Save" "&Salvar" + ::msgcat::mcset pt_br "Save As" "Salvar como" + ::msgcat::mcset pt_br "Save To Log" "Salvar arquivo de log" + ::msgcat::mcset pt_br "Select Log File" "Selecionar arquivo de log" + ::msgcat::mcset pt_br "Select a file to source" "Selecione um arquivo como fonte(source)" + ::msgcat::mcset pt_br "&Selection:" "&Sele\u00e7\u00e3o:" + ::msgcat::mcset pt_br "Skip Messages" "Omitir as mensagens" + ::msgcat::mcset pt_br "Source..." "Source..." + ::msgcat::mcset pt_br "Tcl Scripts" "Scripts Tcl" + ::msgcat::mcset pt_br "Tcl for Windows" "Tcl para Windows" + ::msgcat::mcset pt_br "Text Files" "Arquivos de texto" + ::msgcat::mcset pt_br "&Yes" "&Sim" + ::msgcat::mcset pt_br "abort" "abortar" + ::msgcat::mcset pt_br "blue" "azul" + ::msgcat::mcset pt_br "cancel" "cancelar" + ::msgcat::mcset pt_br "extension" "extens\u00e3o" + ::msgcat::mcset pt_br "extensions" "extens\u00f5es" + ::msgcat::mcset pt_br "green" "verde" + ::msgcat::mcset pt_br "ignore" "ignorar" + ::msgcat::mcset pt_br "ok" "ok" + ::msgcat::mcset pt_br "red" "vermelho" + ::msgcat::mcset pt_br "retry" "tentar novamente" + ::msgcat::mcset pt_br "yes" "sim" +} diff --git a/lib/tk8.4/msgs/ru.msg b/lib/tk8.4/msgs/ru.msg new file mode 100644 index 00000000..9f6aa807 --- /dev/null +++ b/lib/tk8.4/msgs/ru.msg @@ -0,0 +1,73 @@ +namespace eval ::tk { + ::msgcat::mcset ru "&Abort" "&\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c" + ::msgcat::mcset ru "About..." "\u041f\u0440\u043e..." + ::msgcat::mcset ru "All Files" "\u0412\u0441\u0435 \u0444\u0430\u0439\u043b\u044b" + ::msgcat::mcset ru "Application Error" "\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435" + ::msgcat::mcset ru "&Blue" " &\u0413\u043e\u043b\u0443\u0431\u043e\u0439" + ::msgcat::mcset ru "&Cancel" "\u041e\u0442&\u043c\u0435\u043d\u0430" + ::msgcat::mcset ru "Cannot change to the directory \"%1\$s\".\nPermission denied." \ + "\u041d\u0435 \u043c\u043e\u0433\u0443 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \"%1\$s\".\n\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430" + ::msgcat::mcset ru "Choose Directory" "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433" + ::msgcat::mcset ru "Clear" "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c" + ::msgcat::mcset ru "Color" "\u0426\u0432\u0435\u0442" + ::msgcat::mcset ru "Console" "\u041a\u043e\u043d\u0441\u043e\u043b\u044c" + ::msgcat::mcset ru "Copy" "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c" + ::msgcat::mcset ru "Cut" "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c" + ::msgcat::mcset ru "Delete" "\u0423\u0434\u0430\u043b\u0438\u0442\u044c" + ::msgcat::mcset ru "Details >>" "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 >>" + ::msgcat::mcset ru "Directory \"%1\$s\" does not exist." "\u041a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \"%1\$s\" \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442." + ::msgcat::mcset ru "&Directory:" "&\u041a\u0430\u0442\u0430\u043b\u043e\u0433:" + ::msgcat::mcset ru "Error: %1\$s" "\u041e\u0448\u0438\u0431\u043a\u0430: %1\$s" + ::msgcat::mcset ru "Exit" "\u0412\u044b\u0445\u043e\u0434" + ::msgcat::mcset ru "File \"%1\$s\" already exists.\nDo you want to overwrite it?" \ + "\u0424\u0430\u0439\u043b \"%1\$s\" \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.\n\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e?" + ::msgcat::mcset ru "File \"%1\$s\" already exists.\n\n" "\u0424\u0430\u0439\u043b \"%1\$s\" \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.\n\n" + ::msgcat::mcset ru "File \"%1\$s\" does not exist." "\u0424\u0430\u0439\u043b \"%1\$s\" \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d." + ::msgcat::mcset ru "File &name:" "&\u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430:" + ::msgcat::mcset ru "File &names:" "&\u0418\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432:" + ::msgcat::mcset ru "Files of &type:" "&\u0422\u0438\u043f \u0444\u0430\u0439\u043b\u043e\u0432:" + ::msgcat::mcset ru "Fi&les:" "\u0424\u0430\u0439&\u043b\u044b:" + ::msgcat::mcset ru "&Filter" "&\u0424\u0438\u043b\u044c\u0442\u0440" + ::msgcat::mcset ru "Fil&ter:" "\u0424\u0438\u043b\u044c&\u0442\u0440:" + ::msgcat::mcset ru "&Green" " &\u0417\u0435\u043b\u0435\u043d\u044b\u0439" + ::msgcat::mcset ru "Hi" "\u041f\u0440\u0438\u0432\u0435\u0442" + ::msgcat::mcset ru "Hide Console" "\u0421\u043f\u0440\u044f\u0442\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c" + ::msgcat::mcset ru "&Ignore" "&\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c" + ::msgcat::mcset ru "Invalid file name \"%1\$s\"." "\u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \"%1\$s\"." + ::msgcat::mcset ru "Log Files" "\u0424\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u0430" + ::msgcat::mcset ru "&No" "&\u041d\u0435\u0442" + ::msgcat::mcset ru "&OK" "&\u041e\u041a" + ::msgcat::mcset ru "Ok" "\u0414\u0430" + ::msgcat::mcset ru "Open" "\u041e\u0442\u043a\u0440\u044b\u0442\u044c" + ::msgcat::mcset ru "&Open" "&\u041e\u0442\u043a\u0440\u044b\u0442\u044c" + ::msgcat::mcset ru "Open Multiple Files" "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432" + ::msgcat::mcset ru "Paste" "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c" + ::msgcat::mcset ru "Quit" "\u0412\u044b\u0445\u043e\u0434" + ::msgcat::mcset ru "&Red" " &\u041a\u0440\u0430\u0441\u043d\u044b\u0439" + ::msgcat::mcset ru "Replace existing file?" "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b?" + ::msgcat::mcset ru "&Retry" "&\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c" + ::msgcat::mcset ru "&Save" "&\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c" + ::msgcat::mcset ru "Save As" "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a" + ::msgcat::mcset ru "Save To Log" "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0436\u0443\u0440\u043d\u0430\u043b" + ::msgcat::mcset ru "Select Log File" "\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b" + ::msgcat::mcset ru "Select a file to source" "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438" + ::msgcat::mcset ru "&Selection:" "&Selection:" + ::msgcat::mcset ru "Skip Messages" "\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f" + ::msgcat::mcset ru "Source..." "\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b..." + ::msgcat::mcset ru "Tcl Scripts" "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 TCL" + ::msgcat::mcset ru "Tcl for Windows" "TCL \u0434\u043b\u044f Windows" + ::msgcat::mcset ru "Text Files" "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b" + ::msgcat::mcset ru "&Yes" "&\u0414\u0430" + ::msgcat::mcset ru "abort" "\u043e\u0442\u043c\u0435\u043d\u0430" + ::msgcat::mcset ru "blue" " \u0433\u043e\u043b\u0443\u0431\u043e\u0439" + ::msgcat::mcset ru "cancel" "\u043e\u0442\u043c\u0435\u043d\u0430" + ::msgcat::mcset ru "extension" "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435" + ::msgcat::mcset ru "extensions" "\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f" + ::msgcat::mcset ru "green" " \u0437\u0435\u043b\u0435\u043d\u044b\u0439" + ::msgcat::mcset ru "ignore" "\u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c" + ::msgcat::mcset ru "ok" "\u043e\u043a" + ::msgcat::mcset ru "red" " \u043a\u0440\u0430\u0441\u043d\u044b\u0439" + ::msgcat::mcset ru "retry" "\u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c" + ::msgcat::mcset ru "yes" "\u0434\u0430" +} + diff --git a/lib/tk8.4/obsolete.tcl b/lib/tk8.4/obsolete.tcl new file mode 100644 index 00000000..16a19a10 --- /dev/null +++ b/lib/tk8.4/obsolete.tcl @@ -0,0 +1,21 @@ +# obsolete.tcl -- +# +# This file contains obsolete procedures that people really shouldn't +# be using anymore, but which are kept around for backward compatibility. +# +# RCS: @(#) $Id: obsolete.tcl,v 1.2 1998/09/14 18:23:24 stanton Exp $ +# +# Copyright (c) 1994 The Regents of the University of California. +# Copyright (c) 1994 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# The procedures below are here strictly for backward compatibility with +# Tk version 3.6 and earlier. The procedures are no longer needed, so +# they are no-ops. You should not use these procedures anymore, since +# they may be removed in some future release. + +proc tk_menuBar args {} +proc tk_bindForTraversal args {} diff --git a/lib/tk8.4/optMenu.tcl b/lib/tk8.4/optMenu.tcl new file mode 100644 index 00000000..05b3a455 --- /dev/null +++ b/lib/tk8.4/optMenu.tcl @@ -0,0 +1,45 @@ +# optMenu.tcl -- +# +# This file defines the procedure tk_optionMenu, which creates +# an option button and its associated menu. +# +# RCS: @(#) $Id: optMenu.tcl,v 1.4 2001/08/01 16:21:11 dgp Exp $ +# +# Copyright (c) 1994 The Regents of the University of California. +# Copyright (c) 1994 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# ::tk_optionMenu -- +# This procedure creates an option button named $w and an associated +# menu. Together they provide the functionality of Motif option menus: +# they can be used to select one of many values, and the current value +# appears in the global variable varName, as well as in the text of +# the option menubutton. The name of the menu is returned as the +# procedure's result, so that the caller can use it to change configuration +# options on the menu or otherwise manipulate it. +# +# Arguments: +# w - The name to use for the menubutton. +# varName - Global variable to hold the currently selected value. +# firstValue - First of legal values for option (must be >= 1). +# args - Any number of additional values. + +proc ::tk_optionMenu {w varName firstValue args} { + upvar #0 $varName var + + if {![info exists var]} { + set var $firstValue + } + menubutton $w -textvariable $varName -indicatoron 1 -menu $w.menu \ + -relief raised -bd 2 -highlightthickness 2 -anchor c \ + -direction flush + menu $w.menu -tearoff 0 + $w.menu add radiobutton -label $firstValue -variable $varName + foreach i $args { + $w.menu add radiobutton -label $i -variable $varName + } + return $w.menu +} diff --git a/lib/tk8.4/palette.tcl b/lib/tk8.4/palette.tcl new file mode 100644 index 00000000..c53fad59 --- /dev/null +++ b/lib/tk8.4/palette.tcl @@ -0,0 +1,246 @@ +# palette.tcl -- +# +# This file contains procedures that change the color palette used +# by Tk. +# +# RCS: @(#) $Id: palette.tcl,v 1.8.2.2 2006/03/17 10:50:11 patthoyts Exp $ +# +# Copyright (c) 1995-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# ::tk_setPalette -- +# Changes the default color scheme for a Tk application by setting +# default colors in the option database and by modifying all of the +# color options for existing widgets that have the default value. +# +# Arguments: +# The arguments consist of either a single color name, which +# will be used as the new background color (all other colors will +# be computed from this) or an even number of values consisting of +# option names and values. The name for an option is the one used +# for the option database, such as activeForeground, not -activeforeground. + +proc ::tk_setPalette {args} { + if {[winfo depth .] == 1} { + # Just return on monochrome displays, otherwise errors will occur + return + } + + # Create an array that has the complete new palette. If some colors + # aren't specified, compute them from other colors that are specified. + + if {[llength $args] == 1} { + set new(background) [lindex $args 0] + } else { + array set new $args + } + if {![info exists new(background)]} { + error "must specify a background color" + } + set bg [winfo rgb . $new(background)] + if {![info exists new(foreground)]} { + # Note that the range of each value in the triple returned by + # [winfo rgb] is 0-65535, and your eyes are more sensitive to + # green than to red, and more to red than to blue. + foreach {r g b} $bg {break} + if {$r+1.5*$g+0.5*$b > 100000} { + set new(foreground) black + } else { + set new(foreground) white + } + } + + # To avoir too many lindex... + foreach {fg_r fg_g fg_b} [winfo rgb . $new(foreground)] {break} + foreach {bg_r bg_g bg_b} $bg {break} + + set darkerBg [format #%02x%02x%02x [expr {(9*$bg_r)/2560}] \ + [expr {(9*$bg_g)/2560}] [expr {(9*$bg_b)/2560}]] + foreach i {activeForeground insertBackground selectForeground \ + highlightColor} { + if {![info exists new($i)]} { + set new($i) $new(foreground) + } + } + if {![info exists new(disabledForeground)]} { + set new(disabledForeground) [format #%02x%02x%02x \ + [expr {(3*$bg_r + $fg_r)/1024}] \ + [expr {(3*$bg_g + $fg_g)/1024}] \ + [expr {(3*$bg_b + $fg_b)/1024}]] + } + if {![info exists new(highlightBackground)]} { + set new(highlightBackground) $new(background) + } + if {![info exists new(activeBackground)]} { + # Pick a default active background that islighter than the + # normal background. To do this, round each color component + # up by 15% or 1/3 of the way to full white, whichever is + # greater. + + foreach i {0 1 2} color "$bg_r $bg_g $bg_b" { + set light($i) [expr {$color/256}] + set inc1 [expr {($light($i)*15)/100}] + set inc2 [expr {(255-$light($i))/3}] + if {$inc1 > $inc2} { + incr light($i) $inc1 + } else { + incr light($i) $inc2 + } + if {$light($i) > 255} { + set light($i) 255 + } + } + set new(activeBackground) [format #%02x%02x%02x $light(0) \ + $light(1) $light(2)] + } + if {![info exists new(selectBackground)]} { + set new(selectBackground) $darkerBg + } + if {![info exists new(troughColor)]} { + set new(troughColor) $darkerBg + } + if {![info exists new(selectColor)]} { + set new(selectColor) #b03060 + } + + # let's make one of each of the widgets so we know what the + # defaults are currently for this platform. + toplevel .___tk_set_palette + wm withdraw .___tk_set_palette + foreach q { + button canvas checkbutton entry frame label labelframe + listbox menubutton menu message radiobutton scale scrollbar + spinbox text + } { + $q .___tk_set_palette.$q + } + + # Walk the widget hierarchy, recoloring all existing windows. + # The option database must be set according to what we do here, + # but it breaks things if we set things in the database while + # we are changing colors...so, ::tk::RecolorTree now returns the + # option database changes that need to be made, and they + # need to be evalled here to take effect. + # We have to walk the whole widget tree instead of just + # relying on the widgets we've created above to do the work + # because different extensions may provide other kinds + # of widgets that we don't currently know about, so we'll + # walk the whole hierarchy just in case. + + eval [tk::RecolorTree . new] + + destroy .___tk_set_palette + + # Change the option database so that future windows will get the + # same colors. + + foreach option [array names new] { + option add *$option $new($option) widgetDefault + } + + # Save the options in the variable ::tk::Palette, for use the + # next time we change the options. + + array set ::tk::Palette [array get new] +} + +# ::tk::RecolorTree -- +# This procedure changes the colors in a window and all of its +# descendants, according to information provided by the colors +# argument. This looks at the defaults provided by the option +# database, if it exists, and if not, then it looks at the default +# value of the widget itself. +# +# Arguments: +# w - The name of a window. This window and all its +# descendants are recolored. +# colors - The name of an array variable in the caller, +# which contains color information. Each element +# is named after a widget configuration option, and +# each value is the value for that option. + +proc ::tk::RecolorTree {w colors} { + upvar $colors c + set result {} + set prototype .___tk_set_palette.[string tolower [winfo class $w]] + if {![winfo exists $prototype]} { + unset prototype + } + foreach dbOption [array names c] { + set option -[string tolower $dbOption] + set class [string replace $dbOption 0 0 [string toupper \ + [string index $dbOption 0]]] + if {![catch {$w configure $option} value]} { + # if the option database has a preference for this + # dbOption, then use it, otherwise use the defaults + # for the widget. + set defaultcolor [option get $w $dbOption $class] + if {[string match {} $defaultcolor] || \ + ([info exists prototype] && \ + [$prototype cget $option] ne "$defaultcolor")} { + set defaultcolor [winfo rgb . [lindex $value 3]] + } else { + set defaultcolor [winfo rgb . $defaultcolor] + } + set chosencolor [winfo rgb . [lindex $value 4]] + if {[string match $defaultcolor $chosencolor]} { + # Change the option database so that future windows will get + # the same colors. + append result ";\noption add [list \ + *[winfo class $w].$dbOption $c($dbOption) 60]" + $w configure $option $c($dbOption) + } + } + } + foreach child [winfo children $w] { + append result ";\n[::tk::RecolorTree $child c]" + } + return $result +} + +# ::tk::Darken -- +# Given a color name, computes a new color value that darkens (or +# brightens) the given color by a given percent. +# +# Arguments: +# color - Name of starting color. +# perecent - Integer telling how much to brighten or darken as a +# percent: 50 means darken by 50%, 110 means brighten +# by 10%. + +proc ::tk::Darken {color percent} { + foreach {red green blue} [winfo rgb . $color] { + set red [expr {($red/256)*$percent/100}] + set green [expr {($green/256)*$percent/100}] + set blue [expr {($blue/256)*$percent/100}] + break + } + if {$red > 255} { + set red 255 + } + if {$green > 255} { + set green 255 + } + if {$blue > 255} { + set blue 255 + } + return [format "#%02x%02x%02x" $red $green $blue] +} + +# ::tk_bisque -- +# Reset the Tk color palette to the old "bisque" colors. +# +# Arguments: +# None. + +proc ::tk_bisque {} { + tk_setPalette activeBackground #e6ceb1 activeForeground black \ + background #ffe4c4 disabledForeground #b0b0b0 foreground black \ + highlightBackground #ffe4c4 highlightColor black \ + insertBackground black selectColor #b03060 \ + selectBackground #e6ceb1 selectForeground black \ + troughColor #cdb79e +} diff --git a/lib/tk8.4/panedwindow.tcl b/lib/tk8.4/panedwindow.tcl new file mode 100644 index 00000000..68ce7c79 --- /dev/null +++ b/lib/tk8.4/panedwindow.tcl @@ -0,0 +1,188 @@ +# panedwindow.tcl -- +# +# This file defines the default bindings for Tk panedwindow widgets and +# provides procedures that help in implementing those bindings. +# +# RCS: @(#) $Id: panedwindow.tcl,v 1.6.2.4 2006/01/25 18:21:41 dgp Exp $ +# + +bind Panedwindow { ::tk::panedwindow::MarkSash %W %x %y 1 } +bind Panedwindow { ::tk::panedwindow::MarkSash %W %x %y 0 } + +bind Panedwindow { ::tk::panedwindow::DragSash %W %x %y 1 } +bind Panedwindow { ::tk::panedwindow::DragSash %W %x %y 0 } + +bind Panedwindow {::tk::panedwindow::ReleaseSash %W 1} +bind Panedwindow {::tk::panedwindow::ReleaseSash %W 0} + +bind Panedwindow { ::tk::panedwindow::Motion %W %x %y } + +bind Panedwindow { ::tk::panedwindow::Leave %W } + +# Initialize namespace +namespace eval ::tk::panedwindow {} + +# ::tk::panedwindow::MarkSash -- +# +# Handle marking the correct sash for possible dragging +# +# Arguments: +# w the widget +# x widget local x coord +# y widget local y coord +# proxy whether this should be a proxy sash +# Results: +# None +# +proc ::tk::panedwindow::MarkSash {w x y proxy} { + if {[$w cget -opaqueresize]} { set proxy 0 } + set what [$w identify $x $y] + if { [llength $what] == 2 } { + foreach {index which} $what break + if { !$::tk_strictMotif || $which eq "handle" } { + if {!$proxy} { $w sash mark $index $x $y } + set ::tk::Priv(sash) $index + foreach {sx sy} [$w sash coord $index] break + set ::tk::Priv(dx) [expr {$sx-$x}] + set ::tk::Priv(dy) [expr {$sy-$y}] + # Do this to init the proxy location + DragSash $w $x $y $proxy + } + } +} + +# ::tk::panedwindow::DragSash -- +# +# Handle dragging of the correct sash +# +# Arguments: +# w the widget +# x widget local x coord +# y widget local y coord +# proxy whether this should be a proxy sash +# Results: +# Moves sash +# +proc ::tk::panedwindow::DragSash {w x y proxy} { + if {[$w cget -opaqueresize]} { set proxy 0 } + if { [info exists ::tk::Priv(sash)] } { + if {$proxy} { + $w proxy place \ + [expr {$x+$::tk::Priv(dx)}] [expr {$y+$::tk::Priv(dy)}] + } else { + $w sash place $::tk::Priv(sash) \ + [expr {$x+$::tk::Priv(dx)}] [expr {$y+$::tk::Priv(dy)}] + } + } +} + +# ::tk::panedwindow::ReleaseSash -- +# +# Handle releasing of the sash +# +# Arguments: +# w the widget +# proxy whether this should be a proxy sash +# Results: +# Returns ... +# +proc ::tk::panedwindow::ReleaseSash {w proxy} { + if {[$w cget -opaqueresize]} { set proxy 0 } + if { [info exists ::tk::Priv(sash)] } { + if {$proxy} { + foreach {x y} [$w proxy coord] break + $w sash place $::tk::Priv(sash) $x $y + $w proxy forget + } + unset ::tk::Priv(sash) ::tk::Priv(dx) ::tk::Priv(dy) + } +} + +# ::tk::panedwindow::Motion -- +# +# Handle motion on the widget. This is used to change the cursor +# when the user moves over the sash area. +# +# Arguments: +# w the widget +# x widget local x coord +# y widget local y coord +# Results: +# May change the cursor. Sets up a timer to verify that we are still +# over the widget. +# +proc ::tk::panedwindow::Motion {w x y} { + variable ::tk::Priv + set id [$w identify $x $y] + if {([llength $id] == 2) && \ + (!$::tk_strictMotif || [lindex $id 1] eq "handle")} { + if { ![info exists Priv($w,panecursor)] } { + set Priv($w,panecursor) [$w cget -cursor] + if { [$w cget -sashcursor] eq "" } { + if { [$w cget -orient] eq "horizontal" } { + $w configure -cursor sb_h_double_arrow + } else { + $w configure -cursor sb_v_double_arrow + } + } else { + $w configure -cursor [$w cget -sashcursor] + } + if {[info exists Priv($w,pwAfterId)]} { + after cancel $Priv($w,pwAfterId) + } + set Priv($w,pwAfterId) [after 150 \ + [list ::tk::panedwindow::Cursor $w]] + } + return + } + if { [info exists Priv($w,panecursor)] } { + $w configure -cursor $Priv($w,panecursor) + unset Priv($w,panecursor) + } +} + +# ::tk::panedwindow::Cursor -- +# +# Handles returning the normal cursor when we are no longer over the +# sash area. This needs to be done this way, because the panedwindow +# won't see Leave events when the mouse moves from the sash to a +# paned child, although the child does receive an Enter event. +# +# Arguments: +# w the widget +# Results: +# May restore the default cursor, or schedule a timer to do it. +# +proc ::tk::panedwindow::Cursor {w} { + variable ::tk::Priv + # Make sure to check window existence in case it is destroyed. + if {[info exists Priv($w,panecursor)] && [winfo exists $w]} { + if {[winfo containing [winfo pointerx $w] [winfo pointery $w]] eq $w} { + set Priv($w,pwAfterId) [after 150 \ + [list ::tk::panedwindow::Cursor $w]] + } else { + $w configure -cursor $Priv($w,panecursor) + unset Priv($w,panecursor) + if {[info exists Priv($w,pwAfterId)]} { + after cancel $Priv($w,pwAfterId) + unset Priv($w,pwAfterId) + } + } + } +} + +# ::tk::panedwindow::Leave -- +# +# Return to default cursor when leaving the pw widget. +# +# Arguments: +# w the widget +# Results: +# Restores the default cursor +# +proc ::tk::panedwindow::Leave {w} { + if {[info exists ::tk::Priv($w,panecursor)]} { + $w configure -cursor $::tk::Priv($w,panecursor) + unset ::tk::Priv($w,panecursor) + } +} diff --git a/lib/tk8.4/pkgIndex.tcl b/lib/tk8.4/pkgIndex.tcl new file mode 100644 index 00000000..7a63e383 --- /dev/null +++ b/lib/tk8.4/pkgIndex.tcl @@ -0,0 +1,2 @@ +if {[package vcompare [package provide Tcl] 8.4] != 0} { return } +package ifneeded Tk 8.4 [list load [file join $dir .. .. bin tk84.dll] Tk] diff --git a/lib/tk8.4/prolog.ps b/lib/tk8.4/prolog.ps new file mode 100644 index 00000000..2971a8a5 --- /dev/null +++ b/lib/tk8.4/prolog.ps @@ -0,0 +1,284 @@ +%%BeginProlog +50 dict begin + +% This is a standard prolog for Postscript generated by Tk's canvas +% widget. +% RCS: @(#) $Id: prolog.ps,v 1.2 1999/04/16 01:51:09 stanton Exp $ + +% The definitions below just define all of the variables used in +% any of the procedures here. This is needed for obscure reasons +% explained on p. 716 of the Postscript manual (Section H.2.7, +% "Initializing Variables," in the section on Encapsulated Postscript). + +/baseline 0 def +/stipimage 0 def +/height 0 def +/justify 0 def +/lineLength 0 def +/spacing 0 def +/stipple 0 def +/strings 0 def +/xoffset 0 def +/yoffset 0 def +/tmpstip null def + +% Define the array ISOLatin1Encoding (which specifies how characters are +% encoded for ISO-8859-1 fonts), if it isn't already present (Postscript +% level 2 is supposed to define it, but level 1 doesn't). + +systemdict /ISOLatin1Encoding known not { + /ISOLatin1Encoding [ + /space /space /space /space /space /space /space /space + /space /space /space /space /space /space /space /space + /space /space /space /space /space /space /space /space + /space /space /space /space /space /space /space /space + /space /exclam /quotedbl /numbersign /dollar /percent /ampersand + /quoteright + /parenleft /parenright /asterisk /plus /comma /minus /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 + /quoteleft /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 /space + /space /space /space /space /space /space /space /space + /space /space /space /space /space /space /space /space + /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent + /dieresis /space /ring /cedilla /space /hungarumlaut /ogonek /caron + /space /exclamdown /cent /sterling /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen + /registered /macron + /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph + /periodcentered + /cedillar /onesuperior /ordmasculine /guillemotright /onequarter + /onehalf /threequarters /questiondown + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex + /Idieresis + /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn + /germandbls + /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex + /idieresis + /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn + /ydieresis + ] def +} if + +% font ISOEncode font +% This procedure changes the encoding of a font from the default +% Postscript encoding to ISOLatin1. It's typically invoked just +% before invoking "setfont". The body of this procedure comes from +% Section 5.6.1 of the Postscript book. + +/ISOEncode { + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding ISOLatin1Encoding def + currentdict + end + + % I'm not sure why it's necessary to use "definefont" on this new + % font, but it seems to be important; just use the name "Temporary" + % for the font. + + /Temporary exch definefont +} bind def + +% StrokeClip +% +% This procedure converts the current path into a clip area under +% the assumption of stroking. It's a bit tricky because some Postscript +% interpreters get errors during strokepath for dashed lines. If +% this happens then turn off dashes and try again. + +/StrokeClip { + {strokepath} stopped { + (This Postscript printer gets limitcheck overflows when) = + (stippling dashed lines; lines will be printed solid instead.) = + [] 0 setdash strokepath} if + clip +} bind def + +% desiredSize EvenPixels closestSize +% +% The procedure below is used for stippling. Given the optimal size +% of a dot in a stipple pattern in the current user coordinate system, +% compute the closest size that is an exact multiple of the device's +% pixel size. This allows stipple patterns to be displayed without +% aliasing effects. + +/EvenPixels { + % Compute exact number of device pixels per stipple dot. + dup 0 matrix currentmatrix dtransform + dup mul exch dup mul add sqrt + + % Round to an integer, make sure the number is at least 1, and compute + % user coord distance corresponding to this. + dup round dup 1 lt {pop 1} if + exch div mul +} bind def + +% width height string StippleFill -- +% +% Given a path already set up and a clipping region generated from +% it, this procedure will fill the clipping region with a stipple +% pattern. "String" contains a proper image description of the +% stipple pattern and "width" and "height" give its dimensions. Each +% stipple dot is assumed to be about one unit across in the current +% user coordinate system. This procedure trashes the graphics state. + +/StippleFill { + % The following code is needed to work around a NeWSprint bug. + + /tmpstip 1 index def + + % Change the scaling so that one user unit in user coordinates + % corresponds to the size of one stipple dot. + 1 EvenPixels dup scale + + % Compute the bounding box occupied by the path (which is now + % the clipping region), and round the lower coordinates down + % to the nearest starting point for the stipple pattern. Be + % careful about negative numbers, since the rounding works + % differently on them. + + pathbbox + 4 2 roll + 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll + 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll + + % Stack now: width height string y1 y2 x1 x2 + % Below is a doubly-nested for loop to iterate across this area + % in units of the stipple pattern size, going up columns then + % across rows, blasting out a stipple-pattern-sized rectangle at + % each position + + 6 index exch { + 2 index 5 index 3 index { + % Stack now: width height string y1 y2 x y + + gsave + 1 index exch translate + 5 index 5 index true matrix tmpstip imagemask + grestore + } for + pop + } for + pop pop pop pop pop +} bind def + +% -- AdjustColor -- +% Given a color value already set for output by the caller, adjusts +% that value to a grayscale or mono value if requested by the CL +% variable. + +/AdjustColor { + CL 2 lt { + currentgray + CL 0 eq { + .5 lt {0} {1} ifelse + } if + setgray + } if +} bind def + +% x y strings spacing xoffset yoffset justify stipple DrawText -- +% This procedure does all of the real work of drawing text. The +% color and font must already have been set by the caller, and the +% following arguments must be on the stack: +% +% x, y - Coordinates at which to draw text. +% strings - An array of strings, one for each line of the text item, +% in order from top to bottom. +% spacing - Spacing between lines. +% xoffset - Horizontal offset for text bbox relative to x and y: 0 for +% nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se. +% yoffset - Vertical offset for text bbox relative to x and y: 0 for +% nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se. +% justify - 0 for left justification, 0.5 for center, 1 for right justify. +% stipple - Boolean value indicating whether or not text is to be +% drawn in stippled fashion. If text is stippled, +% procedure StippleText must have been defined to call +% StippleFill in the right way. +% +% Also, when this procedure is invoked, the color and font must already +% have been set for the text. + +/DrawText { + /stipple exch def + /justify exch def + /yoffset exch def + /xoffset exch def + /spacing exch def + /strings exch def + + % First scan through all of the text to find the widest line. + + /lineLength 0 def + strings { + stringwidth pop + dup lineLength gt {/lineLength exch def} {pop} ifelse + newpath + } forall + + % Compute the baseline offset and the actual font height. + + 0 0 moveto (TXygqPZ) false charpath + pathbbox dup /baseline exch def + exch pop exch sub /height exch def pop + newpath + + % Translate coordinates first so that the origin is at the upper-left + % corner of the text's bounding box. Remember that x and y for + % positioning are still on the stack. + + translate + lineLength xoffset mul + strings length 1 sub spacing mul height add yoffset mul translate + + % Now use the baseline and justification information to translate so + % that the origin is at the baseline and positioning point for the + % first line of text. + + justify lineLength mul baseline neg translate + + % Iterate over each of the lines to output it. For each line, + % compute its width again so it can be properly justified, then + % display it. + + strings { + dup stringwidth pop + justify neg mul 0 moveto + stipple { + + % The text is stippled, so turn it into a path and print + % by calling StippledText, which in turn calls StippleFill. + % Unfortunately, many Postscript interpreters will get + % overflow errors if we try to do the whole string at + % once, so do it a character at a time. + + gsave + /char (X) def + { + char 0 3 -1 roll put + currentpoint + gsave + char true charpath clip StippleText + grestore + char stringwidth translate + moveto + } forall + grestore + } {show} ifelse + 0 spacing neg translate + } forall +} bind def + +%%EndProlog diff --git a/lib/tk8.4/safetk.tcl b/lib/tk8.4/safetk.tcl new file mode 100644 index 00000000..33ec8a61 --- /dev/null +++ b/lib/tk8.4/safetk.tcl @@ -0,0 +1,277 @@ +# safetk.tcl -- +# +# Support procs to use Tk in safe interpreters. +# +# RCS: @(#) $Id: safetk.tcl,v 1.8.8.1 2006/01/25 18:21:41 dgp Exp $ +# +# Copyright (c) 1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +# see safetk.n for documentation + +# +# +# Note: It is now ok to let untrusted code being executed +# between the creation of the interp and the actual loading +# of Tk in that interp because the C side Tk_Init will +# now look up the master interp and ask its safe::TkInit +# for the actual parameters to use for it's initialization (if allowed), +# not relying on the slave state. +# + +# We use opt (optional arguments parsing) +package require opt 0.4.1; + +namespace eval ::safe { + + # counter for safe toplevels + variable tkSafeId 0; + + # + # tkInterpInit : prepare the slave interpreter for tk loading + # most of the real job is done by loadTk + # returns the slave name (tkInterpInit does) + # + proc ::safe::tkInterpInit {slave argv} { + global env tk_library + + # We have to make sure that the tk_library variable uses a file + # pathname that works better in Tk (of the style returned by + # [file join], ie C:/path/to/tk/lib, not C:\path\to\tk\lib + set tk_library [file join $tk_library] + + # Clear Tk's access for that interp (path). + allowTk $slave $argv + + # there seems to be an obscure case where the tk_library + # variable value is changed to point to a sym link destination + # dir instead of the sym link itself, and thus where the $tk_library + # would then not be anymore one of the auto_path dir, so we use + # the addToAccessPath which adds if it's not already in instead + # of the more conventional findInAccessPath. + # Might be usefull for masters without Tk really loaded too. + ::interp eval $slave [list set tk_library [::safe::interpAddToAccessPath $slave $tk_library]] + return $slave + } + + +# tkInterpLoadTk : +# Do additional configuration as needed (calling tkInterpInit) +# and actually load Tk into the slave. +# +# Either contained in the specified windowId (-use) or +# creating a decorated toplevel for it. + +# empty definition for auto_mkIndex +proc ::safe::loadTk {} {} + +::tcl::OptProc loadTk { + {slave -interp "name of the slave interpreter"} + {-use -windowId {} "window Id to use (new toplevel otherwise)"} + {-display -displayName {} "display name to use (current one otherwise)"} +} { + set displayGiven [::tcl::OptProcArgGiven "-display"] + if {!$displayGiven} { + + # Try to get the current display from "." + # (which might not exist if the master is tk-less) + + if {[catch {set display [winfo screen .]}]} { + if {[info exists ::env(DISPLAY)]} { + set display $::env(DISPLAY) + } else { + Log $slave "no winfo screen . nor env(DISPLAY)" WARNING + set display ":0.0" + } + } + } + if {![::tcl::OptProcArgGiven "-use"]} { + + # create a decorated toplevel + + ::tcl::Lassign [tkTopLevel $slave $display] w use + + # set our delete hook (slave arg is added by interpDelete) + # to clean up both window related code and tkInit(slave) + Set [DeleteHookName $slave] [list tkDelete {} $w] + + } else { + + # set our delete hook (slave arg is added by interpDelete) + # to clean up tkInit(slave) + + Set [DeleteHookName $slave] [list disallowTk] + + # Let's be nice and also accept tk window names instead of ids + + if {[string match ".*" $use]} { + set windowName $use + set use [winfo id $windowName] + set nDisplay [winfo screen $windowName] + } else { + + # Check for a better -display value + # (works only for multi screens on single host, but not + # cross hosts, for that a tk window name would be better + # but embeding is also usefull for non tk names) + + if {![catch {winfo pathname $use} name]} { + set nDisplay [winfo screen $name] + } else { + + # Can't have a better one + + set nDisplay $display + } + } + if {$nDisplay ne $display} { + if {$displayGiven} { + error "conflicting -display $display and -use\ + $use -> $nDisplay" + } else { + set display $nDisplay + } + } + } + + # Prepares the slave for tk with those parameters + + tkInterpInit $slave [list "-use" $use "-display" $display] + + load {} Tk $slave + + return $slave +} + +proc ::safe::TkInit {interpPath} { + variable tkInit + if {[info exists tkInit($interpPath)]} { + set value $tkInit($interpPath) + Log $interpPath "TkInit called, returning \"$value\"" NOTICE + return $value + } else { + Log $interpPath "TkInit called for interp with clearance:\ + preventing Tk init" ERROR + error "not allowed" + } +} + +# safe::allowTk -- +# +# Set tkInit(interpPath) to allow Tk to be initialized in +# safe::TkInit. +# +# Arguments: +# interpPath slave interpreter handle +# argv arguments passed to safe::TkInterpInit +# +# Results: +# none. + +proc ::safe::allowTk {interpPath argv} { + variable tkInit + set tkInit($interpPath) $argv + return +} + + +# safe::disallowTk -- +# +# Unset tkInit(interpPath) to disallow Tk from getting initialized +# in safe::TkInit. +# +# Arguments: +# interpPath slave interpreter handle +# +# Results: +# none. + +proc ::safe::disallowTk {interpPath} { + variable tkInit + # This can already be deleted by the DeleteHook of the interp + if {[info exists tkInit($interpPath)]} { + unset tkInit($interpPath) + } + return +} + + +# safe::tkDelete -- +# +# Clean up the window associated with the interp being deleted. +# +# Arguments: +# interpPath slave interpreter handle +# +# Results: +# none. + +proc ::safe::tkDelete {W window slave} { + + # we are going to be called for each widget... skip untill it's + # top level + + Log $slave "Called tkDelete $W $window" NOTICE + if {[::interp exists $slave]} { + if {[catch {::safe::interpDelete $slave} msg]} { + Log $slave "Deletion error : $msg" + } + } + if {[winfo exists $window]} { + Log $slave "Destroy toplevel $window" NOTICE + destroy $window + } + + # clean up tkInit(slave) + disallowTk $slave + return +} + +proc ::safe::tkTopLevel {slave display} { + variable tkSafeId + incr tkSafeId + set w ".safe$tkSafeId" + if {[catch {toplevel $w -screen $display -class SafeTk} msg]} { + return -code error "Unable to create toplevel for\ + safe slave \"$slave\" ($msg)" + } + Log $slave "New toplevel $w" NOTICE + + set msg "Untrusted Tcl applet ($slave)" + wm title $w $msg + + # Control frame + set wc $w.fc + frame $wc -bg red -borderwidth 3 -relief ridge + + # We will destroy the interp when the window is destroyed + bindtags $wc [concat Safe$wc [bindtags $wc]] + bind Safe$wc [list ::safe::tkDelete %W $w $slave] + + label $wc.l -text $msg -padx 2 -pady 0 -anchor w + + # We want the button to be the last visible item + # (so be packed first) and at the right and not resizing horizontally + + # frame the button so it does not expand horizontally + # but still have the default background instead of red one from the parent + frame $wc.fb -bd 0 + button $wc.fb.b -text "Delete" \ + -bd 1 -padx 2 -pady 0 -highlightthickness 0 \ + -command [list ::safe::tkDelete $w $w $slave] + pack $wc.fb.b -side right -fill both + pack $wc.fb -side right -fill both -expand 1 + pack $wc.l -side left -fill both -expand 1 + pack $wc -side bottom -fill x + + # Container frame + frame $w.c -container 1 + pack $w.c -fill both -expand 1 + + # return both the toplevel window name and the id to use for embedding + list $w [winfo id $w.c] +} + +} diff --git a/lib/tk8.4/scale.tcl b/lib/tk8.4/scale.tcl new file mode 100644 index 00000000..4cb0a3f3 --- /dev/null +++ b/lib/tk8.4/scale.tcl @@ -0,0 +1,285 @@ +# scale.tcl -- +# +# This file defines the default bindings for Tk scale widgets and provides +# procedures that help in implementing the bindings. +# +# RCS: @(#) $Id: scale.tcl,v 1.9.2.5 2006/03/17 10:50:11 patthoyts Exp $ +# +# Copyright (c) 1994 The Regents of the University of California. +# Copyright (c) 1994-1995 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for entries. +#------------------------------------------------------------------------- + +# Standard Motif bindings: + +bind Scale { + if {$tk_strictMotif} { + set tk::Priv(activeBg) [%W cget -activebackground] + %W configure -activebackground [%W cget -background] + } + tk::ScaleActivate %W %x %y +} +bind Scale { + tk::ScaleActivate %W %x %y +} +bind Scale { + if {$tk_strictMotif} { + %W configure -activebackground $tk::Priv(activeBg) + } + if {[%W cget -state] eq "active"} { + %W configure -state normal + } +} +bind Scale <1> { + tk::ScaleButtonDown %W %x %y +} +bind Scale { + tk::ScaleDrag %W %x %y +} +bind Scale { } +bind Scale { } +bind Scale { + tk::CancelRepeat + tk::ScaleEndDrag %W + tk::ScaleActivate %W %x %y +} +bind Scale <2> { + tk::ScaleButton2Down %W %x %y +} +bind Scale { + tk::ScaleDrag %W %x %y +} +bind Scale { } +bind Scale { } +bind Scale { + tk::CancelRepeat + tk::ScaleEndDrag %W + tk::ScaleActivate %W %x %y +} +if {$tcl_platform(platform) eq "windows"} { + # On Windows do the same with button 3, as that is the right mouse button + bind Scale <3> [bind Scale <2>] + bind Scale [bind Scale ] + bind Scale [bind Scale ] + bind Scale [bind Scale ] + bind Scale [bind Scale ] +} +bind Scale { + tk::ScaleControlPress %W %x %y +} +bind Scale { + tk::ScaleIncrement %W up little noRepeat +} +bind Scale { + tk::ScaleIncrement %W down little noRepeat +} +bind Scale { + tk::ScaleIncrement %W up little noRepeat +} +bind Scale { + tk::ScaleIncrement %W down little noRepeat +} +bind Scale { + tk::ScaleIncrement %W up big noRepeat +} +bind Scale { + tk::ScaleIncrement %W down big noRepeat +} +bind Scale { + tk::ScaleIncrement %W up big noRepeat +} +bind Scale { + tk::ScaleIncrement %W down big noRepeat +} +bind Scale { + %W set [%W cget -from] +} +bind Scale { + %W set [%W cget -to] +} + +# ::tk::ScaleActivate -- +# This procedure is invoked to check a given x-y position in the +# scale and activate the slider if the x-y position falls within +# the slider. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates. + +proc ::tk::ScaleActivate {w x y} { + if {[$w cget -state] eq "disabled"} { + return + } + if {[$w identify $x $y] eq "slider"} { + set state active + } else { + set state normal + } + if {[$w cget -state] ne $state} { + $w configure -state $state + } +} + +# ::tk::ScaleButtonDown -- +# This procedure is invoked when a button is pressed in a scale. It +# takes different actions depending on where the button was pressed. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates of button press. + +proc ::tk::ScaleButtonDown {w x y} { + variable ::tk::Priv + set Priv(dragging) 0 + set el [$w identify $x $y] + + # save the relief + set Priv($w,relief) [$w cget -sliderrelief] + + if {$el eq "trough1"} { + ScaleIncrement $w up little initial + } elseif {$el eq "trough2"} { + ScaleIncrement $w down little initial + } elseif {$el eq "slider"} { + set Priv(dragging) 1 + set Priv(initValue) [$w get] + set coords [$w coords] + set Priv(deltaX) [expr {$x - [lindex $coords 0]}] + set Priv(deltaY) [expr {$y - [lindex $coords 1]}] + switch -exact -- $Priv($w,relief) { + "raised" { $w configure -sliderrelief sunken } + "ridge" { $w configure -sliderrelief groove } + } + } +} + +# ::tk::ScaleDrag -- +# This procedure is called when the mouse is dragged with +# mouse button 1 down. If the drag started inside the slider +# (i.e. the scale is active) then the scale's value is adjusted +# to reflect the mouse's position. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates. + +proc ::tk::ScaleDrag {w x y} { + variable ::tk::Priv + if {!$Priv(dragging)} { + return + } + $w set [$w get [expr {$x-$Priv(deltaX)}] [expr {$y-$Priv(deltaY)}]] +} + +# ::tk::ScaleEndDrag -- +# This procedure is called to end an interactive drag of the +# slider. It just marks the drag as over. +# +# Arguments: +# w - The scale widget. + +proc ::tk::ScaleEndDrag {w} { + variable ::tk::Priv + set Priv(dragging) 0 + if {[info exists Priv($w,relief)]} { + $w configure -sliderrelief $Priv($w,relief) + unset Priv($w,relief) + } +} + +# ::tk::ScaleIncrement -- +# This procedure is invoked to increment the value of a scale and +# to set up auto-repeating of the action if that is desired. The +# way the value is incremented depends on the "dir" and "big" +# arguments. +# +# Arguments: +# w - The scale widget. +# dir - "up" means move value towards -from, "down" means +# move towards -to. +# big - Size of increments: "big" or "little". +# repeat - Whether and how to auto-repeat the action: "noRepeat" +# means don't auto-repeat, "initial" means this is the +# first action in an auto-repeat sequence, and "again" +# means this is the second repetition or later. + +proc ::tk::ScaleIncrement {w dir big repeat} { + variable ::tk::Priv + if {![winfo exists $w]} return + if {$big eq "big"} { + set inc [$w cget -bigincrement] + if {$inc == 0} { + set inc [expr {abs([$w cget -to] - [$w cget -from])/10.0}] + } + if {$inc < [$w cget -resolution]} { + set inc [$w cget -resolution] + } + } else { + set inc [$w cget -resolution] + } + if {([$w cget -from] > [$w cget -to]) ^ ($dir eq "up")} { + set inc [expr {-$inc}] + } + $w set [expr {[$w get] + $inc}] + + if {$repeat eq "again"} { + set Priv(afterId) [after [$w cget -repeatinterval] \ + [list tk::ScaleIncrement $w $dir $big again]] + } elseif {$repeat eq "initial"} { + set delay [$w cget -repeatdelay] + if {$delay > 0} { + set Priv(afterId) [after $delay \ + [list tk::ScaleIncrement $w $dir $big again]] + } + } +} + +# ::tk::ScaleControlPress -- +# This procedure handles button presses that are made with the Control +# key down. Depending on the mouse position, it adjusts the scale +# value to one end of the range or the other. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates where the button was pressed. + +proc ::tk::ScaleControlPress {w x y} { + set el [$w identify $x $y] + if {$el eq "trough1"} { + $w set [$w cget -from] + } elseif {$el eq "trough2"} { + $w set [$w cget -to] + } +} + +# ::tk::ScaleButton2Down +# This procedure is invoked when button 2 is pressed over a scale. +# It sets the value to correspond to the mouse position and starts +# a slider drag. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates within the widget. + +proc ::tk::ScaleButton2Down {w x y} { + variable ::tk::Priv + + if {[$w cget -state] eq "disabled"} { + return + } + $w configure -state active + $w set [$w get $x $y] + set Priv(dragging) 1 + set Priv(initValue) [$w get] + set Priv($w,relief) [$w cget -sliderrelief] + set coords "$x $y" + set Priv(deltaX) 0 + set Priv(deltaY) 0 +} diff --git a/lib/tk8.4/scrlbar.tcl b/lib/tk8.4/scrlbar.tcl new file mode 100644 index 00000000..bec329dd --- /dev/null +++ b/lib/tk8.4/scrlbar.tcl @@ -0,0 +1,427 @@ +# scrlbar.tcl -- +# +# This file defines the default bindings for Tk scrollbar widgets. +# It also provides procedures that help in implementing the bindings. +# +# RCS: @(#) $Id: scrlbar.tcl,v 1.10.2.3 2006/03/17 10:50:11 patthoyts Exp $ +# +# Copyright (c) 1994 The Regents of the University of California. +# Copyright (c) 1994-1996 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for scrollbars. +#------------------------------------------------------------------------- + +# Standard Motif bindings: +if {[tk windowingsystem] eq "x11"} { + +bind Scrollbar { + if {$tk_strictMotif} { + set tk::Priv(activeBg) [%W cget -activebackground] + %W configure -activebackground [%W cget -background] + } + %W activate [%W identify %x %y] +} +bind Scrollbar { + %W activate [%W identify %x %y] +} + +# The "info exists" command in the following binding handles the +# situation where a Leave event occurs for a scrollbar without the Enter +# event. This seems to happen on some systems (such as Solaris 2.4) for +# unknown reasons. + +bind Scrollbar { + if {$tk_strictMotif && [info exists tk::Priv(activeBg)]} { + %W configure -activebackground $tk::Priv(activeBg) + } + %W activate {} +} +bind Scrollbar <1> { + tk::ScrollButtonDown %W %x %y +} +bind Scrollbar { + tk::ScrollDrag %W %x %y +} +bind Scrollbar { + tk::ScrollDrag %W %x %y +} +bind Scrollbar { + tk::ScrollButtonUp %W %x %y +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar <2> { + tk::ScrollButton2Down %W %x %y +} +bind Scrollbar { + # Do nothing, since button 1 is already down. +} +bind Scrollbar { + # Do nothing, since button 2 is already down. +} +bind Scrollbar { + tk::ScrollDrag %W %x %y +} +bind Scrollbar { + tk::ScrollButtonUp %W %x %y +} +bind Scrollbar { + # Do nothing: B1 release will handle it. +} +bind Scrollbar { + # Do nothing: B2 release will handle it. +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar { + tk::ScrollTopBottom %W %x %y +} +bind Scrollbar { + tk::ScrollTopBottom %W %x %y +} + +bind Scrollbar { + tk::ScrollByUnits %W v -1 +} +bind Scrollbar { + tk::ScrollByUnits %W v 1 +} +bind Scrollbar { + tk::ScrollByPages %W v -1 +} +bind Scrollbar { + tk::ScrollByPages %W v 1 +} +bind Scrollbar { + tk::ScrollByUnits %W h -1 +} +bind Scrollbar { + tk::ScrollByUnits %W h 1 +} +bind Scrollbar { + tk::ScrollByPages %W h -1 +} +bind Scrollbar { + tk::ScrollByPages %W h 1 +} +bind Scrollbar { + tk::ScrollByPages %W hv -1 +} +bind Scrollbar { + tk::ScrollByPages %W hv 1 +} +bind Scrollbar { + tk::ScrollToPos %W 0 +} +bind Scrollbar { + tk::ScrollToPos %W 1 +} +} +if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { + bind Scrollbar { + tk::ScrollByUnits %W v [expr {- (%D)}] + } + bind Scrollbar { + tk::ScrollByUnits %W v [expr {-10 * (%D)}] + } + bind Scrollbar { + tk::ScrollByUnits %W h [expr {- (%D)}] + } + bind Scrollbar { + tk::ScrollByUnits %W h [expr {-10 * (%D)}] + } +} +# tk::ScrollButtonDown -- +# This procedure is invoked when a button is pressed in a scrollbar. +# It changes the way the scrollbar is displayed and takes actions +# depending on where the mouse is. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates. + +proc tk::ScrollButtonDown {w x y} { + variable ::tk::Priv + set Priv(relief) [$w cget -activerelief] + $w configure -activerelief sunken + set element [$w identify $x $y] + if {$element eq "slider"} { + ScrollStartDrag $w $x $y + } else { + ScrollSelect $w $element initial + } +} + +# ::tk::ScrollButtonUp -- +# This procedure is invoked when a button is released in a scrollbar. +# It cancels scans and auto-repeats that were in progress, and restores +# the way the active element is displayed. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates. + +proc ::tk::ScrollButtonUp {w x y} { + variable ::tk::Priv + tk::CancelRepeat + if {[info exists Priv(relief)]} { + # Avoid error due to spurious release events + $w configure -activerelief $Priv(relief) + ScrollEndDrag $w $x $y + $w activate [$w identify $x $y] + } +} + +# ::tk::ScrollSelect -- +# This procedure is invoked when a button is pressed over the scrollbar. +# It invokes one of several scrolling actions depending on where in +# the scrollbar the button was pressed. +# +# Arguments: +# w - The scrollbar widget. +# element - The element of the scrollbar that was selected, such +# as "arrow1" or "trough2". Shouldn't be "slider". +# repeat - Whether and how to auto-repeat the action: "noRepeat" +# means don't auto-repeat, "initial" means this is the +# first action in an auto-repeat sequence, and "again" +# means this is the second repetition or later. + +proc ::tk::ScrollSelect {w element repeat} { + variable ::tk::Priv + if {![winfo exists $w]} return + switch -- $element { + "arrow1" {ScrollByUnits $w hv -1} + "trough1" {ScrollByPages $w hv -1} + "trough2" {ScrollByPages $w hv 1} + "arrow2" {ScrollByUnits $w hv 1} + default {return} + } + if {$repeat eq "again"} { + set Priv(afterId) [after [$w cget -repeatinterval] \ + [list tk::ScrollSelect $w $element again]] + } elseif {$repeat eq "initial"} { + set delay [$w cget -repeatdelay] + if {$delay > 0} { + set Priv(afterId) [after $delay \ + [list tk::ScrollSelect $w $element again]] + } + } +} + +# ::tk::ScrollStartDrag -- +# This procedure is called to initiate a drag of the slider. It just +# remembers the starting position of the mouse and slider. +# +# Arguments: +# w - The scrollbar widget. +# x, y - The mouse position at the start of the drag operation. + +proc ::tk::ScrollStartDrag {w x y} { + variable ::tk::Priv + + if {[$w cget -command] eq ""} { + return + } + set Priv(pressX) $x + set Priv(pressY) $y + set Priv(initValues) [$w get] + set iv0 [lindex $Priv(initValues) 0] + if {[llength $Priv(initValues)] == 2} { + set Priv(initPos) $iv0 + } elseif {$iv0 == 0} { + set Priv(initPos) 0.0 + } else { + set Priv(initPos) [expr {(double([lindex $Priv(initValues) 2])) \ + / [lindex $Priv(initValues) 0]}] + } +} + +# ::tk::ScrollDrag -- +# This procedure is called for each mouse motion even when the slider +# is being dragged. It notifies the associated widget if we're not +# jump scrolling, and it just updates the scrollbar if we are jump +# scrolling. +# +# Arguments: +# w - The scrollbar widget. +# x, y - The current mouse position. + +proc ::tk::ScrollDrag {w x y} { + variable ::tk::Priv + + if {$Priv(initPos) eq ""} { + return + } + set delta [$w delta [expr {$x - $Priv(pressX)}] [expr {$y - $Priv(pressY)}]] + if {[$w cget -jump]} { + if {[llength $Priv(initValues)] == 2} { + $w set [expr {[lindex $Priv(initValues) 0] + $delta}] \ + [expr {[lindex $Priv(initValues) 1] + $delta}] + } else { + set delta [expr {round($delta * [lindex $Priv(initValues) 0])}] + eval [list $w] set [lreplace $Priv(initValues) 2 3 \ + [expr {[lindex $Priv(initValues) 2] + $delta}] \ + [expr {[lindex $Priv(initValues) 3] + $delta}]] + } + } else { + ScrollToPos $w [expr {$Priv(initPos) + $delta}] + } +} + +# ::tk::ScrollEndDrag -- +# This procedure is called to end an interactive drag of the slider. +# It scrolls the window if we're in jump mode, otherwise it does nothing. +# +# Arguments: +# w - The scrollbar widget. +# x, y - The mouse position at the end of the drag operation. + +proc ::tk::ScrollEndDrag {w x y} { + variable ::tk::Priv + + if {$Priv(initPos) eq ""} { + return + } + if {[$w cget -jump]} { + set delta [$w delta [expr {$x - $Priv(pressX)}] \ + [expr {$y - $Priv(pressY)}]] + ScrollToPos $w [expr {$Priv(initPos) + $delta}] + } + set Priv(initPos) "" +} + +# ::tk::ScrollByUnits -- +# This procedure tells the scrollbar's associated widget to scroll up +# or down by a given number of units. It notifies the associated widget +# in different ways for old and new command syntaxes. +# +# Arguments: +# w - The scrollbar widget. +# orient - Which kinds of scrollbars this applies to: "h" for +# horizontal, "v" for vertical, "hv" for both. +# amount - How many units to scroll: typically 1 or -1. + +proc ::tk::ScrollByUnits {w orient amount} { + set cmd [$w cget -command] + if {$cmd eq "" || ([string first [string index [$w cget -orient] 0] $orient] < 0)} { + return + } + set info [$w get] + if {[llength $info] == 2} { + uplevel #0 $cmd scroll $amount units + } else { + uplevel #0 $cmd [expr {[lindex $info 2] + $amount}] + } +} + +# ::tk::ScrollByPages -- +# This procedure tells the scrollbar's associated widget to scroll up +# or down by a given number of screenfuls. It notifies the associated +# widget in different ways for old and new command syntaxes. +# +# Arguments: +# w - The scrollbar widget. +# orient - Which kinds of scrollbars this applies to: "h" for +# horizontal, "v" for vertical, "hv" for both. +# amount - How many screens to scroll: typically 1 or -1. + +proc ::tk::ScrollByPages {w orient amount} { + set cmd [$w cget -command] + if {$cmd eq "" || ([string first [string index [$w cget -orient] 0] $orient] < 0)} { + return + } + set info [$w get] + if {[llength $info] == 2} { + uplevel #0 $cmd scroll $amount pages + } else { + uplevel #0 $cmd [expr {[lindex $info 2] + $amount*([lindex $info 1] - 1)}] + } +} + +# ::tk::ScrollToPos -- +# This procedure tells the scrollbar's associated widget to scroll to +# a particular location, given by a fraction between 0 and 1. It notifies +# the associated widget in different ways for old and new command syntaxes. +# +# Arguments: +# w - The scrollbar widget. +# pos - A fraction between 0 and 1 indicating a desired position +# in the document. + +proc ::tk::ScrollToPos {w pos} { + set cmd [$w cget -command] + if {$cmd eq ""} { + return + } + set info [$w get] + if {[llength $info] == 2} { + uplevel #0 $cmd moveto $pos + } else { + uplevel #0 $cmd [expr {round([lindex $info 0]*$pos)}] + } +} + +# ::tk::ScrollTopBottom +# Scroll to the top or bottom of the document, depending on the mouse +# position. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates within the widget. + +proc ::tk::ScrollTopBottom {w x y} { + variable ::tk::Priv + set element [$w identify $x $y] + if {[string match *1 $element]} { + ScrollToPos $w 0 + } elseif {[string match *2 $element]} { + ScrollToPos $w 1 + } + + # Set Priv(relief), since it's needed by tk::ScrollButtonUp. + + set Priv(relief) [$w cget -activerelief] +} + +# ::tk::ScrollButton2Down +# This procedure is invoked when button 2 is pressed over a scrollbar. +# If the button is over the trough or slider, it sets the scrollbar to +# the mouse position and starts a slider drag. Otherwise it just +# behaves the same as button 1. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates within the widget. + +proc ::tk::ScrollButton2Down {w x y} { + variable ::tk::Priv + set element [$w identify $x $y] + if {[string match {arrow[12]} $element]} { + ScrollButtonDown $w $x $y + return + } + ScrollToPos $w [$w fraction $x $y] + set Priv(relief) [$w cget -activerelief] + + # Need the "update idletasks" below so that the widget calls us + # back to reset the actual scrollbar position before we start the + # slider drag. + + update idletasks + $w configure -activerelief sunken + $w activate slider + ScrollStartDrag $w $x $y +} diff --git a/lib/tk8.4/spinbox.tcl b/lib/tk8.4/spinbox.tcl new file mode 100644 index 00000000..5cce0318 --- /dev/null +++ b/lib/tk8.4/spinbox.tcl @@ -0,0 +1,568 @@ +# spinbox.tcl -- +# +# This file defines the default bindings for Tk spinbox widgets and provides +# procedures that help in implementing those bindings. The spinbox builds +# off the entry widget, so it can reuse Entry bindings and procedures. +# +# RCS: @(#) $Id: spinbox.tcl,v 1.6.2.1 2006/01/25 18:21:41 dgp Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# Copyright (c) 1999-2000 Jeffrey Hobbs +# Copyright (c) 2000 Ajuba Solutions +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# Elements of tk::Priv that are used in this file: +# +# afterId - If non-null, it means that auto-scanning is underway +# and it gives the "after" id for the next auto-scan +# command to be executed. +# mouseMoved - Non-zero means the mouse has moved a significant +# amount since the button went down (so, for example, +# start dragging out a selection). +# pressX - X-coordinate at which the mouse button was pressed. +# selectMode - The style of selection currently underway: +# char, word, or line. +# x, y - Last known mouse coordinates for scanning +# and auto-scanning. +# data - Used for Cut and Copy +#------------------------------------------------------------------------- + +# Initialize namespace +namespace eval ::tk::spinbox {} + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for entries. +#------------------------------------------------------------------------- +bind Spinbox <> { + if {![catch {::tk::spinbox::GetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + %W delete sel.first sel.last + unset tk::Priv(data) + } +} +bind Spinbox <> { + if {![catch {::tk::spinbox::GetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + unset tk::Priv(data) + } +} +bind Spinbox <> { + global tcl_platform + catch { + if {[tk windowingsystem] ne "x11"} { + catch { + %W delete sel.first sel.last + } + } + %W insert insert [::tk::GetSelection %W CLIPBOARD] + ::tk::EntrySeeInsert %W + } +} +bind Spinbox <> { + %W delete sel.first sel.last +} +bind Spinbox <> { + if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] + || !$tk::Priv(mouseMoved)} { + ::tk::spinbox::Paste %W %x + } +} + +# Standard Motif bindings: + +bind Spinbox <1> { + ::tk::spinbox::ButtonDown %W %x %y +} +bind Spinbox { + ::tk::spinbox::Motion %W %x %y +} +bind Spinbox { + set tk::Priv(selectMode) word + ::tk::spinbox::MouseSelect %W %x sel.first +} +bind Spinbox { + set tk::Priv(selectMode) line + ::tk::spinbox::MouseSelect %W %x 0 +} +bind Spinbox { + set tk::Priv(selectMode) char + %W selection adjust @%x +} +bind Spinbox { + set tk::Priv(selectMode) word + ::tk::spinbox::MouseSelect %W %x +} +bind Spinbox { + set tk::Priv(selectMode) line + ::tk::spinbox::MouseSelect %W %x +} +bind Spinbox { + set tk::Priv(x) %x + ::tk::spinbox::AutoScan %W +} +bind Spinbox { + tk::CancelRepeat +} +bind Spinbox { + ::tk::spinbox::ButtonUp %W %x %y +} +bind Spinbox { + %W icursor @%x +} + +bind Spinbox { + %W invoke buttonup +} +bind Spinbox { + %W invoke buttondown +} + +bind Spinbox { + ::tk::EntrySetCursor %W [expr {[%W index insert] - 1}] +} +bind Spinbox { + ::tk::EntrySetCursor %W [expr {[%W index insert] + 1}] +} +bind Spinbox { + ::tk::EntryKeySelect %W [expr {[%W index insert] - 1}] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntryKeySelect %W [expr {[%W index insert] + 1}] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntrySetCursor %W [::tk::EntryPreviousWord %W insert] +} +bind Spinbox { + ::tk::EntrySetCursor %W [::tk::EntryNextWord %W insert] +} +bind Spinbox { + ::tk::EntryKeySelect %W [::tk::EntryPreviousWord %W insert] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntryKeySelect %W [::tk::EntryNextWord %W insert] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntrySetCursor %W 0 +} +bind Spinbox { + ::tk::EntryKeySelect %W 0 + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntrySetCursor %W end +} +bind Spinbox { + ::tk::EntryKeySelect %W end + ::tk::EntrySeeInsert %W +} + +bind Spinbox { + if {[%W selection present]} { + %W delete sel.first sel.last + } else { + %W delete insert + } +} +bind Spinbox { + ::tk::EntryBackspace %W +} + +bind Spinbox { + %W selection from insert +} +bind Spinbox { + %W mark set anchor insert +} +bind Text { + set tk::Priv(selectMode) char + tk::TextKeyExtend %W insert +} +bind Text { + set tk::Priv(selectMode) char + tk::TextKeyExtend %W insert +} +bind Text { + %W tag add sel 1.0 end +} +bind Text { + %W tag remove sel 1.0 end +} +bind Text <> { + tk_textCut %W +} +bind Text <> { + tk_textCopy %W +} +bind Text <> { + tk_textPaste %W +} +bind Text <> { + catch {%W delete sel.first sel.last} +} +bind Text <> { + if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] + || !$tk::Priv(mouseMoved)} { + tk::TextPasteSelection %W %x %y + } +} +bind Text { + catch {tk::TextInsert %W [::tk::GetSelection %W PRIMARY]} +} +bind Text { + tk::TextInsert %W %A +} + +# Ignore all Alt, Meta, and Control keypresses unless explicitly bound. +# Otherwise, if a widget binding for one of these is defined, the +# class binding will also fire and insert the character, +# which is wrong. Ditto for . + +bind Text {# nothing } +bind Text {# nothing} +bind Text {# nothing} +bind Text {# nothing} +bind Text {# nothing} + +if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { + bind Text {# nothing} +} + +# Additional emacs-like bindings: + +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W {insert linestart} + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W insert-1c + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete insert + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W {insert lineend} + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W insert+1c + } +} +bind Text { + if {!$tk_strictMotif} { + if {[%W compare insert == {insert lineend}]} { + %W delete insert + } else { + %W delete insert {insert lineend} + } + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextUpDownLine %W 1] + } +} +bind Text { + if {!$tk_strictMotif} { + %W insert insert \n + %W mark set insert insert-1c + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextUpDownLine %W -1] + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextTranspose %W + } +} + +bind Text <> { + catch { %W edit undo } +} + +bind Text <> { + catch { %W edit redo } +} + +if {$tcl_platform(platform) ne "windows"} { +bind Text { + if {!$tk_strictMotif} { + tk::TextScrollPages %W 1 + } +} +} + +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete insert [tk::TextNextWord %W insert] + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextNextWord %W insert] + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W 1.0 + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W end-1c + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete [tk::TextPrevPos %W insert tcl_startOfPreviousWord] insert + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete [tk::TextPrevPos %W insert tcl_startOfPreviousWord] insert + } +} + +# Macintosh only bindings: + +if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { +bind Text { + %W configure -selectbackground systemHighlight -selectforeground systemHighlightText +} +bind Text { + %W configure -selectbackground systemHighlightSecondary -selectforeground systemHighlightText +} +bind Text { + tk::TextSetCursor %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] +} +bind Text { + tk::TextSetCursor %W [tk::TextNextWord %W insert] +} +bind Text { + tk::TextSetCursor %W [tk::TextPrevPara %W insert] +} +bind Text { + tk::TextSetCursor %W [tk::TextNextPara %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] +} +bind Text { + tk::TextKeySelect %W [tk::TextNextWord %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextPrevPara %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextNextPara %W insert] +} + +# End of Mac only bindings +} + +# A few additional bindings of my own. + +bind Text { + if {!$tk_strictMotif} { + if {[%W compare insert != 1.0]} { + %W delete insert-1c + %W see insert + } + } +} +bind Text <2> { + if {!$tk_strictMotif} { + tk::TextScanMark %W %x %y + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextScanDrag %W %x %y + } +} +set ::tk::Priv(prevPos) {} + +# The MouseWheel will typically only fire on Windows and MacOS X. +# However, someone could use the "event generate" command to produce +# one on other platforms. + +if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { + bind Text { + %W yview scroll [expr {- (%D)}] units + } + bind Text { + %W yview scroll [expr {-10 * (%D)}] units + } + bind Text { + %W xview scroll [expr {- (%D)}] units + } + bind Text { + %W xview scroll [expr {-10 * (%D)}] units + } +} else { + bind Text { + %W yview scroll [expr {- (%D / 120) * 4}] units + } +} + +if {"x11" eq [tk windowingsystem]} { + # Support for mousewheels on Linux/Unix commonly comes through mapping + # the wheel to the extended buttons. If you have a mousewheel, find + # Linux configuration info at: + # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ + bind Text <4> { + if {!$tk_strictMotif} { + %W yview scroll -5 units + } + } + bind Text <5> { + if {!$tk_strictMotif} { + %W yview scroll 5 units + } + } +} + +# ::tk::TextClosestGap -- +# Given x and y coordinates, this procedure finds the closest boundary +# between characters to the given coordinates and returns the index +# of the character just after the boundary. +# +# Arguments: +# w - The text window. +# x - X-coordinate within the window. +# y - Y-coordinate within the window. + +proc ::tk::TextClosestGap {w x y} { + set pos [$w index @$x,$y] + set bbox [$w bbox $pos] + if {$bbox eq ""} { + return $pos + } + if {($x - [lindex $bbox 0]) < ([lindex $bbox 2]/2)} { + return $pos + } + $w index "$pos + 1 char" +} + +# ::tk::TextButton1 -- +# This procedure is invoked to handle button-1 presses in text +# widgets. It moves the insertion cursor, sets the selection anchor, +# and claims the input focus. +# +# Arguments: +# w - The text window in which the button was pressed. +# x - The x-coordinate of the button press. +# y - The x-coordinate of the button press. + +proc ::tk::TextButton1 {w x y} { + variable ::tk::Priv + + set Priv(selectMode) char + set Priv(mouseMoved) 0 + set Priv(pressX) $x + $w mark set insert [TextClosestGap $w $x $y] + $w mark set anchor insert + # Allow focus in any case on Windows, because that will let the + # selection be displayed even for state disabled text widgets. + if {$::tcl_platform(platform) eq "windows" || [$w cget -state] eq "normal"} {focus $w} + if {[$w cget -autoseparators]} {$w edit separator} +} + +# ::tk::TextSelectTo -- +# This procedure is invoked to extend the selection, typically when +# dragging it with the mouse. Depending on the selection mode (character, +# word, line) it selects in different-sized units. This procedure +# ignores mouse motions initially until the mouse has moved from +# one character to another or until there have been multiple clicks. +# +# Arguments: +# w - The text window in which the button was pressed. +# x - Mouse x position. +# y - Mouse y position. + +proc ::tk::TextSelectTo {w x y {extend 0}} { + global tcl_platform + variable ::tk::Priv + + set cur [TextClosestGap $w $x $y] + if {[catch {$w index anchor}]} { + $w mark set anchor $cur + } + set anchor [$w index anchor] + if {[$w compare $cur != $anchor] || (abs($Priv(pressX) - $x) >= 3)} { + set Priv(mouseMoved) 1 + } + switch $Priv(selectMode) { + char { + if {[$w compare $cur < anchor]} { + set first $cur + set last anchor + } else { + set first anchor + set last $cur + } + } + word { + if {[$w compare $cur < anchor]} { + set first [TextPrevPos $w "$cur + 1c" tcl_wordBreakBefore] + if { !$extend } { + set last [TextNextPos $w "anchor" tcl_wordBreakAfter] + } else { + set last anchor + } + } else { + set last [TextNextPos $w "$cur - 1c" tcl_wordBreakAfter] + if { !$extend } { + set first [TextPrevPos $w anchor tcl_wordBreakBefore] + } else { + set first anchor + } + } + } + line { + if {[$w compare $cur < anchor]} { + set first [$w index "$cur linestart"] + set last [$w index "anchor - 1c lineend + 1c"] + } else { + set first [$w index "anchor linestart"] + set last [$w index "$cur lineend + 1c"] + } + } + } + if {$Priv(mouseMoved) || $Priv(selectMode) ne "char"} { + $w tag remove sel 0.0 end + $w mark set insert $cur + $w tag add sel $first $last + $w tag remove sel $last end + update idletasks + } +} + +# ::tk::TextKeyExtend -- +# This procedure handles extending the selection from the keyboard, +# where the point to extend to is really the boundary between two +# characters rather than a particular character. +# +# Arguments: +# w - The text window. +# index - The point to which the selection is to be extended. + +proc ::tk::TextKeyExtend {w index} { + + set cur [$w index $index] + if {[catch {$w index anchor}]} { + $w mark set anchor $cur + } + set anchor [$w index anchor] + if {[$w compare $cur < anchor]} { + set first $cur + set last anchor + } else { + set first anchor + set last $cur + } + $w tag remove sel 0.0 $first + $w tag add sel $first $last + $w tag remove sel $last end +} + +# ::tk::TextPasteSelection -- +# This procedure sets the insertion cursor to the mouse position, +# inserts the selection, and sets the focus to the window. +# +# Arguments: +# w - The text window. +# x, y - Position of the mouse. + +proc ::tk::TextPasteSelection {w x y} { + $w mark set insert [TextClosestGap $w $x $y] + if {![catch {::tk::GetSelection $w PRIMARY} sel]} { + set oldSeparator [$w cget -autoseparators] + if {$oldSeparator} { + $w configure -autoseparators 0 + $w edit separator + } + $w insert insert $sel + if {$oldSeparator} { + $w edit separator + $w configure -autoseparators 1 + } + } + if {[$w cget -state] eq "normal"} {focus $w} +} + +# ::tk::TextAutoScan -- +# This procedure is invoked when the mouse leaves a text window +# with button 1 down. It scrolls the window up, down, left, or right, +# depending on where the mouse is (this information was saved in +# ::tk::Priv(x) and ::tk::Priv(y)), and reschedules itself as an "after" +# command so that the window continues to scroll until the mouse +# moves back into the window or the mouse button is released. +# +# Arguments: +# w - The text window. + +proc ::tk::TextAutoScan {w} { + variable ::tk::Priv + if {![winfo exists $w]} return + if {$Priv(y) >= [winfo height $w]} { + $w yview scroll 2 units + } elseif {$Priv(y) < 0} { + $w yview scroll -2 units + } elseif {$Priv(x) >= [winfo width $w]} { + $w xview scroll 2 units + } elseif {$Priv(x) < 0} { + $w xview scroll -2 units + } else { + return + } + TextSelectTo $w $Priv(x) $Priv(y) + set Priv(afterId) [after 50 [list tk::TextAutoScan $w]] +} + +# ::tk::TextSetCursor +# Move the insertion cursor to a given position in a text. Also +# clears the selection, if there is one in the text, and makes sure +# that the insertion cursor is visible. Also, don't let the insertion +# cursor appear on the dummy last line of the text. +# +# Arguments: +# w - The text window. +# pos - The desired new position for the cursor in the window. + +proc ::tk::TextSetCursor {w pos} { + + if {[$w compare $pos == end]} { + set pos {end - 1 chars} + } + $w mark set insert $pos + $w tag remove sel 1.0 end + $w see insert + if {[$w cget -autoseparators]} {$w edit separator} +} + +# ::tk::TextKeySelect +# This procedure is invoked when stroking out selections using the +# keyboard. It moves the cursor to a new position, then extends +# the selection to that position. +# +# Arguments: +# w - The text window. +# new - A new position for the insertion cursor (the cursor hasn't +# actually been moved to this position yet). + +proc ::tk::TextKeySelect {w new} { + + if {[$w tag nextrange sel 1.0 end] eq ""} { + if {[$w compare $new < insert]} { + $w tag add sel $new insert + } else { + $w tag add sel insert $new + } + $w mark set anchor insert + } else { + if {[$w compare $new < anchor]} { + set first $new + set last anchor + } else { + set first anchor + set last $new + } + $w tag remove sel 1.0 $first + $w tag add sel $first $last + $w tag remove sel $last end + } + $w mark set insert $new + $w see insert + update idletasks +} + +# ::tk::TextResetAnchor -- +# Set the selection anchor to whichever end is farthest from the +# index argument. One special trick: if the selection has two or +# fewer characters, just leave the anchor where it is. In this +# case it doesn't matter which point gets chosen for the anchor, +# and for the things like Shift-Left and Shift-Right this produces +# better behavior when the cursor moves back and forth across the +# anchor. +# +# Arguments: +# w - The text widget. +# index - Position at which mouse button was pressed, which determines +# which end of selection should be used as anchor point. + +proc ::tk::TextResetAnchor {w index} { + + if {[$w tag ranges sel] eq ""} { + # Don't move the anchor if there is no selection now; this makes + # the widget behave "correctly" when the user clicks once, then + # shift-clicks somewhere -- ie, the area between the two clicks will be + # selected. [Bug: 5929]. + return + } + set a [$w index $index] + set b [$w index sel.first] + set c [$w index sel.last] + if {[$w compare $a < $b]} { + $w mark set anchor sel.last + return + } + if {[$w compare $a > $c]} { + $w mark set anchor sel.first + return + } + scan $a "%d.%d" lineA chA + scan $b "%d.%d" lineB chB + scan $c "%d.%d" lineC chC + if {$lineB < $lineC+2} { + set total [string length [$w get $b $c]] + if {$total <= 2} { + return + } + if {[string length [$w get $b $a]] < ($total/2)} { + $w mark set anchor sel.last + } else { + $w mark set anchor sel.first + } + return + } + if {($lineA-$lineB) < ($lineC-$lineA)} { + $w mark set anchor sel.last + } else { + $w mark set anchor sel.first + } +} + +# ::tk::TextInsert -- +# Insert a string into a text at the point of the insertion cursor. +# If there is a selection in the text, and it covers the point of the +# insertion cursor, then delete the selection before inserting. +# +# Arguments: +# w - The text window in which to insert the string +# s - The string to insert (usually just a single character) + +proc ::tk::TextInsert {w s} { + if {$s eq "" || [$w cget -state] eq "disabled"} { + return + } + set compound 0 + catch { + if {[$w compare sel.first <= insert] \ + && [$w compare sel.last >= insert]} { + set oldSeparator [$w cget -autoseparators] + if { $oldSeparator } { + $w configure -autoseparators 0 + $w edit separator + set compound 1 + } + $w delete sel.first sel.last + } + } + $w insert insert $s + $w see insert + if { $compound && $oldSeparator } { + $w edit separator + $w configure -autoseparators 1 + } +} + +# ::tk::TextUpDownLine -- +# Returns the index of the character one line above or below the +# insertion cursor. There are two tricky things here. First, +# we want to maintain the original column across repeated operations, +# even though some lines that will get passed through don't have +# enough characters to cover the original column. Second, don't +# try to scroll past the beginning or end of the text. +# +# Arguments: +# w - The text window in which the cursor is to move. +# n - The number of lines to move: -1 for up one line, +# +1 for down one line. + +proc ::tk::TextUpDownLine {w n} { + variable ::tk::Priv + + set i [$w index insert] + scan $i "%d.%d" line char + if {$Priv(prevPos) ne $i} { + set Priv(char) $char + } + set new [$w index [expr {$line + $n}].$Priv(char)] + if {[$w compare $new == end] || [$w compare $new == "insert linestart"]} { + set new $i + } + set Priv(prevPos) $new + return $new +} + +# ::tk::TextPrevPara -- +# Returns the index of the beginning of the paragraph just before a given +# position in the text (the beginning of a paragraph is the first non-blank +# character after a blank line). +# +# Arguments: +# w - The text window in which the cursor is to move. +# pos - Position at which to start search. + +proc ::tk::TextPrevPara {w pos} { + set pos [$w index "$pos linestart"] + while {1} { + if {([$w get "$pos - 1 line"] eq "\n" \ + && [$w get $pos] ne "\n") || $pos eq "1.0"} { + if {[regexp -indices {^[ ]+(.)} [$w get $pos "$pos lineend"] \ + dummy index]} { + set pos [$w index "$pos + [lindex $index 0] chars"] + } + if {[$w compare $pos != insert] || [lindex [split $pos .] 0] == 1} { + return $pos + } + } + set pos [$w index "$pos - 1 line"] + } +} + +# ::tk::TextNextPara -- +# Returns the index of the beginning of the paragraph just after a given +# position in the text (the beginning of a paragraph is the first non-blank +# character after a blank line). +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. + +proc ::tk::TextNextPara {w start} { + set pos [$w index "$start linestart + 1 line"] + while {[$w get $pos] ne "\n"} { + if {[$w compare $pos == end]} { + return [$w index "end - 1c"] + } + set pos [$w index "$pos + 1 line"] + } + while {[$w get $pos] eq "\n"} { + set pos [$w index "$pos + 1 line"] + if {[$w compare $pos == end]} { + return [$w index "end - 1c"] + } + } + if {[regexp -indices {^[ ]+(.)} [$w get $pos "$pos lineend"] \ + dummy index]} { + return [$w index "$pos + [lindex $index 0] chars"] + } + return $pos +} + +# ::tk::TextScrollPages -- +# This is a utility procedure used in bindings for moving up and down +# pages and possibly extending the selection along the way. It scrolls +# the view in the widget by the number of pages, and it returns the +# index of the character that is at the same position in the new view +# as the insertion cursor used to be in the old view. +# +# Arguments: +# w - The text window in which the cursor is to move. +# count - Number of pages forward to scroll; may be negative +# to scroll backwards. + +proc ::tk::TextScrollPages {w count} { + set bbox [$w bbox insert] + $w yview scroll $count pages + if {$bbox eq ""} { + return [$w index @[expr {[winfo height $w]/2}],0] + } + return [$w index @[lindex $bbox 0],[lindex $bbox 1]] +} + +# ::tk::TextTranspose -- +# This procedure implements the "transpose" function for text widgets. +# It tranposes the characters on either side of the insertion cursor, +# unless the cursor is at the end of the line. In this case it +# transposes the two characters to the left of the cursor. In either +# case, the cursor ends up to the right of the transposed characters. +# +# Arguments: +# w - Text window in which to transpose. + +proc ::tk::TextTranspose w { + set pos insert + if {[$w compare $pos != "$pos lineend"]} { + set pos [$w index "$pos + 1 char"] + } + set new [$w get "$pos - 1 char"][$w get "$pos - 2 char"] + if {[$w compare "$pos - 1 char" == 1.0]} { + return + } + # ensure this is seen as an atomic op to undo + set autosep [$w cget -autoseparators] + if {$autosep} { + $w configure -autoseparators 0 + $w edit separator + } + $w delete "$pos - 2 char" $pos + $w insert insert $new + $w see insert + if {$autosep} { + $w edit separator + $w configure -autoseparators $autosep + } +} + +# ::tk_textCopy -- +# This procedure copies the selection from a text widget into the +# clipboard. +# +# Arguments: +# w - Name of a text widget. + +proc ::tk_textCopy w { + if {![catch {set data [$w get sel.first sel.last]}]} { + clipboard clear -displayof $w + clipboard append -displayof $w $data + } +} + +# ::tk_textCut -- +# This procedure copies the selection from a text widget into the +# clipboard, then deletes the selection (if it exists in the given +# widget). +# +# Arguments: +# w - Name of a text widget. + +proc ::tk_textCut w { + if {![catch {set data [$w get sel.first sel.last]}]} { + clipboard clear -displayof $w + clipboard append -displayof $w $data + $w delete sel.first sel.last + } +} + +# ::tk_textPaste -- +# This procedure pastes the contents of the clipboard to the insertion +# point in a text widget. +# +# Arguments: +# w - Name of a text widget. + +proc ::tk_textPaste w { + global tcl_platform + if {![catch {::tk::GetSelection $w CLIPBOARD} sel]} { + # ensure this is seen as an atomic op to undo + set oldSeparator [$w cget -autoseparators] + if { $oldSeparator } { + $w configure -autoseparators 0 + $w edit separator + } + if {[tk windowingsystem] ne "x11"} { + catch { $w delete sel.first sel.last } + } + $w insert insert $sel + if { $oldSeparator } { + $w edit separator + $w configure -autoseparators 1 + } + } +} + +# ::tk::TextNextWord -- +# Returns the index of the next word position after a given position in the +# text. The next word is platform dependent and may be either the next +# end-of-word position or the next start-of-word position after the next +# end-of-word position. +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. + +if {$tcl_platform(platform) eq "windows"} { + proc ::tk::TextNextWord {w start} { + TextNextPos $w [TextNextPos $w $start tcl_endOfWord] \ + tcl_startOfNextWord + } +} else { + proc ::tk::TextNextWord {w start} { + TextNextPos $w $start tcl_endOfWord + } +} + +# ::tk::TextNextPos -- +# Returns the index of the next position after the given starting +# position in the text as computed by a specified function. +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. +# op - Function to use to find next position. + +proc ::tk::TextNextPos {w start op} { + set text "" + set cur $start + while {[$w compare $cur < end]} { + set text $text[$w get $cur "$cur lineend + 1c"] + set pos [$op $text 0] + if {$pos >= 0} { + ## Adjust for embedded windows and images + ## dump gives us 3 items per window/image + set dump [$w dump -image -window $start "$start + $pos c"] + if {[llength $dump]} { + set pos [expr {$pos + ([llength $dump]/3)}] + } + return [$w index "$start + $pos c"] + } + set cur [$w index "$cur lineend +1c"] + } + return end +} + +# ::tk::TextPrevPos -- +# Returns the index of the previous position before the given starting +# position in the text as computed by a specified function. +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. +# op - Function to use to find next position. + +proc ::tk::TextPrevPos {w start op} { + set text "" + set cur $start + while {[$w compare $cur > 0.0]} { + set text [$w get "$cur linestart - 1c" $cur]$text + set pos [$op $text end] + if {$pos >= 0} { + ## Adjust for embedded windows and images + ## dump gives us 3 items per window/image + set dump [$w dump -image -window "$cur linestart" "$start - 1c"] + if {[llength $dump]} { + ## This is a hokey extra hack for control-arrow movement + ## that should be in a while loop to be correct (hobbs) + if {[$w compare [lindex $dump 2] > \ + "$cur linestart - 1c + $pos c"]} { + incr pos -1 + } + set pos [expr {$pos + ([llength $dump]/3)}] + } + return [$w index "$cur linestart - 1c + $pos c"] + } + set cur [$w index "$cur linestart - 1c"] + } + return 0.0 +} + +# ::tk::TextScanMark -- +# +# Marks the start of a possible scan drag operation +# +# Arguments: +# w - The text window from which the text to get +# x - x location on screen +# y - y location on screen + +proc ::tk::TextScanMark {w x y} { + $w scan mark $x $y + set ::tk::Priv(x) $x + set ::tk::Priv(y) $y + set ::tk::Priv(mouseMoved) 0 +} + +# ::tk::TextScanDrag -- +# +# Marks the start of a possible scan drag operation +# +# Arguments: +# w - The text window from which the text to get +# x - x location on screen +# y - y location on screen + +proc ::tk::TextScanDrag {w x y} { + # Make sure these exist, as some weird situations can trigger the + # motion binding without the initial press. [Bug #220269] + if {![info exists ::tk::Priv(x)]} { set ::tk::Priv(x) $x } + if {![info exists ::tk::Priv(y)]} { set ::tk::Priv(y) $y } + if {($x != $::tk::Priv(x)) || ($y != $::tk::Priv(y))} { + set ::tk::Priv(mouseMoved) 1 + } + if {[info exists ::tk::Priv(mouseMoved)] && $::tk::Priv(mouseMoved)} { + $w scan dragto $x $y + } +} diff --git a/lib/tk8.4/tk.tcl b/lib/tk8.4/tk.tcl new file mode 100644 index 00000000..2abd90fd --- /dev/null +++ b/lib/tk8.4/tk.tcl @@ -0,0 +1,590 @@ +# tk.tcl -- +# +# Initialization script normally executed in the interpreter for each +# Tk-based application. Arranges class bindings for widgets. +# +# RCS: @(#) $Id: tk.tcl,v 1.46.2.6 2006/09/25 17:28:20 andreas_kupries Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1996 Sun Microsystems, Inc. +# Copyright (c) 1998-2000 Ajuba Solutions. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +# Insist on running with compatible versions of Tcl and Tk. +package require -exact Tk 8.4 +package require -exact Tcl 8.4 + +# Create a ::tk namespace +namespace eval ::tk { + # Set up the msgcat commands + namespace eval msgcat { + namespace export mc mcmax + if {[interp issafe] || [catch {package require msgcat}]} { + # The msgcat package is not available. Supply our own + # minimal replacement. + proc mc {src args} { + return [eval [list format $src] $args] + } + proc mcmax {args} { + set max 0 + foreach string $args { + set len [string length $string] + if {$len>$max} { + set max $len + } + } + return $max + } + } else { + # Get the commands from the msgcat package that Tk uses. + namespace import ::msgcat::mc + namespace import ::msgcat::mcmax + ::msgcat::mcload [file join $::tk_library msgs] + } + } + namespace import ::tk::msgcat::* +} + +# Add Tk's directory to the end of the auto-load search path, if it +# isn't already on the path: + +if {[info exists ::auto_path] && $::tk_library ne "" && \ + [lsearch -exact $::auto_path $::tk_library] < 0} { + lappend ::auto_path $::tk_library +} + +# Turn off strict Motif look and feel as a default. + +set ::tk_strictMotif 0 + +# Turn on useinputmethods (X Input Methods) by default. +# We catch this because safe interpreters may not allow the call. + +catch {tk useinputmethods 1} + +# ::tk::PlaceWindow -- +# place a toplevel at a particular position +# Arguments: +# toplevel name of toplevel window +# ?placement? pointer ?center? ; places $w centered on the pointer +# widget widgetPath ; centers $w over widget_name +# defaults to placing toplevel in the middle of the screen +# ?anchor? center or widgetPath +# Results: +# Returns nothing +# +proc ::tk::PlaceWindow {w {place ""} {anchor ""}} { + wm withdraw $w + update idletasks + set checkBounds 1 + set place_len [string length $place] + if {$place eq ""} { + set x [expr {([winfo screenwidth $w]-[winfo reqwidth $w])/2}] + set y [expr {([winfo screenheight $w]-[winfo reqheight $w])/2}] + set checkBounds 0 + } elseif {[string equal -length $place_len $place "pointer"]} { + ## place at POINTER (centered if $anchor == center) + if {[string equal -length [string length $anchor] $anchor "center"]} { + set x [expr {[winfo pointerx $w]-[winfo reqwidth $w]/2}] + set y [expr {[winfo pointery $w]-[winfo reqheight $w]/2}] + } else { + set x [winfo pointerx $w] + set y [winfo pointery $w] + } + } elseif {[string equal -length $place_len $place "widget"] && \ + [winfo exists $anchor] && [winfo ismapped $anchor]} { + ## center about WIDGET $anchor, widget must be mapped + set x [expr {[winfo rootx $anchor] + \ + ([winfo width $anchor]-[winfo reqwidth $w])/2}] + set y [expr {[winfo rooty $anchor] + \ + ([winfo height $anchor]-[winfo reqheight $w])/2}] + } else { + set x [expr {([winfo screenwidth $w]-[winfo reqwidth $w])/2}] + set y [expr {([winfo screenheight $w]-[winfo reqheight $w])/2}] + set checkBounds 0 + } + + set windowingsystem [tk windowingsystem] + + if {$windowingsystem eq "win32"} { + # Bug 533519: win32 multiple desktops may produce negative geometry. + set checkBounds 0 + } + if {$checkBounds} { + if {$x < 0} { + set x 0 + } elseif {$x > ([winfo screenwidth $w]-[winfo reqwidth $w])} { + set x [expr {[winfo screenwidth $w]-[winfo reqwidth $w]}] + } + if {$y < 0} { + set y 0 + } elseif {$y > ([winfo screenheight $w]-[winfo reqheight $w])} { + set y [expr {[winfo screenheight $w]-[winfo reqheight $w]}] + } + if {$windowingsystem eq "macintosh" || $windowingsystem eq "aqua"} { + # Avoid the native menu bar which sits on top of everything. + if {$y < 20} { set y 20 } + } + } + wm geometry $w +$x+$y + wm deiconify $w +} + +# ::tk::SetFocusGrab -- +# swap out current focus and grab temporarily (for dialogs) +# Arguments: +# grab new window to grab +# focus window to give focus to +# Results: +# Returns nothing +# +proc ::tk::SetFocusGrab {grab {focus {}}} { + set index "$grab,$focus" + upvar ::tk::FocusGrab($index) data + + lappend data [focus] + set oldGrab [grab current $grab] + lappend data $oldGrab + if {[winfo exists $oldGrab]} { + lappend data [grab status $oldGrab] + } + # The "grab" command will fail if another application + # already holds the grab. So catch it. + catch {grab $grab} + if {[winfo exists $focus]} { + focus $focus + } +} + +# ::tk::RestoreFocusGrab -- +# restore old focus and grab (for dialogs) +# Arguments: +# grab window that had taken grab +# focus window that had taken focus +# destroy destroy|withdraw - how to handle the old grabbed window +# Results: +# Returns nothing +# +proc ::tk::RestoreFocusGrab {grab focus {destroy destroy}} { + set index "$grab,$focus" + if {[info exists ::tk::FocusGrab($index)]} { + foreach {oldFocus oldGrab oldStatus} $::tk::FocusGrab($index) { break } + unset ::tk::FocusGrab($index) + } else { + set oldGrab "" + } + + catch {focus $oldFocus} + grab release $grab + if {$destroy eq "withdraw"} { + wm withdraw $grab + } else { + destroy $grab + } + if {[winfo exists $oldGrab] && [winfo ismapped $oldGrab]} { + if {$oldStatus eq "global"} { + grab -global $oldGrab + } else { + grab $oldGrab + } + } +} + +# ::tk::GetSelection -- +# This tries to obtain the default selection. On Unix, we first try +# and get a UTF8_STRING, a type supported by modern Unix apps for +# passing Unicode data safely. We fall back on the default STRING +# type otherwise. On Windows, only the STRING type is necessary. +# Arguments: +# w The widget for which the selection will be retrieved. +# Important for the -displayof property. +# sel The source of the selection (PRIMARY or CLIPBOARD) +# Results: +# Returns the selection, or an error if none could be found +# +if {$tcl_platform(platform) eq "unix"} { + proc ::tk::GetSelection {w {sel PRIMARY}} { + if {[catch {selection get -displayof $w -selection $sel \ + -type UTF8_STRING} txt] \ + && [catch {selection get -displayof $w -selection $sel} txt]} { + return -code error "could not find default selection" + } else { + return $txt + } + } +} else { + proc ::tk::GetSelection {w {sel PRIMARY}} { + if {[catch {selection get -displayof $w -selection $sel} txt]} { + return -code error "could not find default selection" + } else { + return $txt + } + } +} + +# ::tk::ScreenChanged -- +# This procedure is invoked by the binding mechanism whenever the +# "current" screen is changing. The procedure does two things. +# First, it uses "upvar" to make variable "::tk::Priv" point at an +# array variable that holds state for the current display. Second, +# it initializes the array if it didn't already exist. +# +# Arguments: +# screen - The name of the new screen. + +proc ::tk::ScreenChanged screen { + set x [string last . $screen] + if {$x > 0} { + set disp [string range $screen 0 [expr {$x - 1}]] + } else { + set disp $screen + } + + uplevel #0 upvar #0 ::tk::Priv.$disp ::tk::Priv + variable ::tk::Priv + global tcl_platform + + if {[info exists Priv]} { + set Priv(screen) $screen + return + } + array set Priv { + activeMenu {} + activeItem {} + afterId {} + buttons 0 + buttonWindow {} + dragging 0 + focus {} + grab {} + initPos {} + inMenubutton {} + listboxPrev {} + menuBar {} + mouseMoved 0 + oldGrab {} + popup {} + postedMb {} + pressX 0 + pressY 0 + prevPos 0 + selectMode char + } + set Priv(screen) $screen + set Priv(tearoff) [string equal [tk windowingsystem] "x11"] + set Priv(window) {} +} + +# Do initial setup for Priv, so that it is always bound to something +# (otherwise, if someone references it, it may get set to a non-upvar-ed +# value, which will cause trouble later). + +tk::ScreenChanged [winfo screen .] + +# ::tk::EventMotifBindings -- +# This procedure is invoked as a trace whenever ::tk_strictMotif is +# changed. It is used to turn on or turn off the motif virtual +# bindings. +# +# Arguments: +# n1 - the name of the variable being changed ("::tk_strictMotif"). + +proc ::tk::EventMotifBindings {n1 dummy dummy} { + upvar $n1 name + + if {$name} { + set op delete + } else { + set op add + } + + event $op <> + event $op <> + event $op <> + event $op <> +} + +#---------------------------------------------------------------------- +# Define common dialogs on platforms where they are not implemented +# using compiled code. +#---------------------------------------------------------------------- + +if {[info commands tk_chooseColor] eq ""} { + proc ::tk_chooseColor {args} { + return [eval tk::dialog::color:: $args] + } +} +if {[info commands tk_getOpenFile] eq ""} { + proc ::tk_getOpenFile {args} { + if {$::tk_strictMotif} { + return [eval tk::MotifFDialog open $args] + } else { + return [eval ::tk::dialog::file:: open $args] + } + } +} +if {[info commands tk_getSaveFile] eq ""} { + proc ::tk_getSaveFile {args} { + if {$::tk_strictMotif} { + return [eval tk::MotifFDialog save $args] + } else { + return [eval ::tk::dialog::file:: save $args] + } + } +} +if {[info commands tk_messageBox] eq ""} { + proc ::tk_messageBox {args} { + return [eval tk::MessageBox $args] + } +} +if {[info command tk_chooseDirectory] eq ""} { + proc ::tk_chooseDirectory {args} { + return [eval ::tk::dialog::file::chooseDir:: $args] + } +} + +#---------------------------------------------------------------------- +# Define the set of common virtual events. +#---------------------------------------------------------------------- + +switch [tk windowingsystem] { + "x11" { + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + # Some OS's define a goofy (as in, not ) keysym + # that is returned when the user presses . In order for + # tab traversal to work, we have to add these keysyms to the + # PrevWindow event. + # We use catch just in case the keysym isn't recognized. + # This is needed for XFree86 systems + catch { event add <> } + # This seems to be correct on *some* HP systems. + catch { event add <> } + + trace add variable ::tk_strictMotif write ::tk::EventMotifBindings + set ::tk_strictMotif $::tk_strictMotif + # On unix, we want to always display entry/text selection, + # regardless of which window has focus + set ::tk::AlwaysShowSelection 1 + } + "win32" { + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + } + "aqua" { + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + } + "classic" { + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + } +} +# ---------------------------------------------------------------------- +# Read in files that define all of the class bindings. +# ---------------------------------------------------------------------- + +if {$::tk_library ne ""} { + if {$tcl_platform(platform) eq "macintosh"} { + proc ::tk::SourceLibFile {file} { + if {[catch { + namespace eval :: \ + [list source [file join $::tk_library $file.tcl]] + }]} { + namespace eval :: [list source -rsrc $file] + } + } + } else { + proc ::tk::SourceLibFile {file} { + namespace eval :: [list source [file join $::tk_library $file.tcl]] + } + } + namespace eval ::tk { + SourceLibFile button + SourceLibFile entry + SourceLibFile listbox + SourceLibFile menu + SourceLibFile panedwindow + SourceLibFile scale + SourceLibFile scrlbar + SourceLibFile spinbox + SourceLibFile text + } +} +# ---------------------------------------------------------------------- +# Default bindings for keyboard traversal. +# ---------------------------------------------------------------------- + +event add <> +bind all {tk::TabToWindow [tk_focusNext %W]} +bind all <> {tk::TabToWindow [tk_focusPrev %W]} + +# ::tk::CancelRepeat -- +# This procedure is invoked to cancel an auto-repeat action described +# by ::tk::Priv(afterId). It's used by several widgets to auto-scroll +# the widget when the mouse is dragged out of the widget with a +# button pressed. +# +# Arguments: +# None. + +proc ::tk::CancelRepeat {} { + variable ::tk::Priv + after cancel $Priv(afterId) + set Priv(afterId) {} +} + +# ::tk::TabToWindow -- +# This procedure moves the focus to the given widget. If the widget +# is an entry or a spinbox, it selects the entire contents of the widget. +# +# Arguments: +# w - Window to which focus should be set. + +proc ::tk::TabToWindow {w} { + set wclass [winfo class $w] + + if {$wclass eq "Entry" || $wclass eq "Spinbox"} { + $w selection range 0 end + $w icursor end + } + focus $w +} + +# ::tk::UnderlineAmpersand -- +# This procedure takes some text with ampersand and returns +# text w/o ampersand and position of the ampersand. +# Double ampersands are converted to single ones. +# Position returned is -1 when there is no ampersand. +# +proc ::tk::UnderlineAmpersand {text} { + set idx [string first "&" $text] + if {$idx >= 0} { + set underline $idx + # ignore "&&" + while {[string match "&" [string index $text [expr {$idx + 1}]]]} { + set base [expr {$idx + 2}] + set idx [string first "&" [string range $text $base end]] + if {$idx < 0} { + break + } else { + set underline [expr {$underline + $idx + 1}] + incr idx $base + } + } + } + if {$idx >= 0} { + regsub -all -- {&([^&])} $text {\1} text + } + return [list $text $idx] +} + +# ::tk::SetAmpText -- +# Given widget path and text with "magic ampersands", +# sets -text and -underline options for the widget +# +proc ::tk::SetAmpText {widget text} { + foreach {newtext under} [::tk::UnderlineAmpersand $text] { + $widget configure -text $newtext -underline $under + } +} + +# ::tk::AmpWidget -- +# Creates new widget, turning -text option into -text and +# -underline options, returned by ::tk::UnderlineAmpersand. +# +proc ::tk::AmpWidget {class path args} { + set wcmd [list $class $path] + foreach {opt val} $args { + if {$opt eq "-text"} { + foreach {newtext under} [::tk::UnderlineAmpersand $val] { + lappend wcmd -text $newtext -underline $under + } + } else { + lappend wcmd $opt $val + } + } + eval $wcmd + if {$class eq "button"} { + bind $path <> [list $path invoke] + } + return $path +} + +# ::tk::FindAltKeyTarget -- +# search recursively through the hierarchy of visible widgets +# to find button or label which has $char as underlined character +# +proc ::tk::FindAltKeyTarget {path char} { + switch [winfo class $path] { + Button - + Label { + if {[string equal -nocase $char \ + [string index [$path cget -text] \ + [$path cget -underline]]]} {return $path} else {return {}} + } + default { + foreach child \ + [concat [grid slaves $path] \ + [pack slaves $path] \ + [place slaves $path] ] { + if {"" ne [set target [::tk::FindAltKeyTarget $child $char]]} { + return $target + } + } + } + } + return {} +} + +# ::tk::AltKeyInDialog -- +# event handler for standard dialogs. Sends <> +# to button or label which has appropriate underlined character +# +proc ::tk::AltKeyInDialog {path key} { + set target [::tk::FindAltKeyTarget $path $key] + if { $target eq ""} return + event generate $target <> +} + +# ::tk::mcmaxamp -- +# Replacement for mcmax, used for texts with "magic ampersand" in it. +# + +proc ::tk::mcmaxamp {args} { + set maxlen 0 + foreach arg $args { + set length [string length [lindex [::tk::UnderlineAmpersand [mc $arg]] 0]] + if {$length>$maxlen} { + set maxlen $length + } + } + return $maxlen +} +# For now, turn off the custom mdef proc for the mac: + +if {[tk windowingsystem] eq "aqua"} { + namespace eval ::tk::mac { + set useCustomMDEF 0 + } +} diff --git a/lib/tk8.4/tkAppInit.c b/lib/tk8.4/tkAppInit.c new file mode 100644 index 00000000..3a215fea --- /dev/null +++ b/lib/tk8.4/tkAppInit.c @@ -0,0 +1,136 @@ +/* + * tkAppInit.c -- + * + * Provides a default version of the Tcl_AppInit procedure for + * use in wish and similar Tk-based applications. + * + * Copyright (c) 1993 The Regents of the University of California. + * Copyright (c) 1994-1997 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: @(#) $Id: tkAppInit.c,v 1.7 2002/06/21 20:24:29 dgp Exp $ + */ + +#include "tk.h" +#include "locale.h" + +#ifdef TK_TEST +extern int Tktest_Init _ANSI_ARGS_((Tcl_Interp *interp)); +#endif /* TK_TEST */ + +/* + *---------------------------------------------------------------------- + * + * main -- + * + * This is the main program for the application. + * + * Results: + * None: Tk_Main never returns here, so this procedure never + * returns either. + * + * Side effects: + * Whatever the application does. + * + *---------------------------------------------------------------------- + */ + +int +main(argc, argv) + int argc; /* Number of command-line arguments. */ + char **argv; /* Values of command-line arguments. */ +{ + /* + * The following #if block allows you to change the AppInit + * function by using a #define of TCL_LOCAL_APPINIT instead + * of rewriting this entire file. The #if checks for that + * #define and uses Tcl_AppInit if it doesn't exist. + */ + +#ifndef TK_LOCAL_APPINIT +#define TK_LOCAL_APPINIT Tcl_AppInit +#endif + extern int TK_LOCAL_APPINIT _ANSI_ARGS_((Tcl_Interp *interp)); + + /* + * The following #if block allows you to change how Tcl finds the startup + * script, prime the library or encoding paths, fiddle with the argv, + * etc., without needing to rewrite Tk_Main() + */ + +#ifdef TK_LOCAL_MAIN_HOOK + extern int TK_LOCAL_MAIN_HOOK _ANSI_ARGS_((int *argc, char ***argv)); + TK_LOCAL_MAIN_HOOK(&argc, &argv); +#endif + + Tk_Main(argc, argv, TK_LOCAL_APPINIT); + return 0; /* Needed only to prevent compiler warning. */ +} + +/* + *---------------------------------------------------------------------- + * + * Tcl_AppInit -- + * + * This procedure performs application-specific initialization. + * Most applications, especially those that incorporate additional + * packages, will have their own version of this procedure. + * + * Results: + * Returns a standard Tcl completion code, and leaves an error + * message in the interp's result if an error occurs. + * + * Side effects: + * Depends on the startup script. + * + *---------------------------------------------------------------------- + */ + +int +Tcl_AppInit(interp) + Tcl_Interp *interp; /* Interpreter for application. */ +{ + if (Tcl_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + if (Tk_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit); +#ifdef TK_TEST + if (Tktest_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + Tcl_StaticPackage(interp, "Tktest", Tktest_Init, + (Tcl_PackageInitProc *) NULL); +#endif /* TK_TEST */ + + + /* + * Call the init procedures for included packages. Each call should + * look like this: + * + * if (Mod_Init(interp) == TCL_ERROR) { + * return TCL_ERROR; + * } + * + * where "Mod" is the name of the module. + */ + + /* + * Call Tcl_CreateCommand for application-specific commands, if + * they weren't already created by the init procedures called above. + */ + + /* + * Specify a user-specific startup file to invoke if the application + * is run interactively. Typically the startup file is "~/.apprc" + * where "app" is the name of the application. If this line is deleted + * then no user-specific startup file will be run under any conditions. + */ + + Tcl_SetVar(interp, "tcl_rcFileName", "~/.wishrc", TCL_GLOBAL_ONLY); + return TCL_OK; +} diff --git a/lib/tk8.4/tkfbox.tcl b/lib/tk8.4/tkfbox.tcl new file mode 100644 index 00000000..ec37d552 --- /dev/null +++ b/lib/tk8.4/tkfbox.tcl @@ -0,0 +1,1815 @@ +# tkfbox.tcl -- +# +# Implements the "TK" standard file selection dialog box. This +# dialog box is used on the Unix platforms whenever the tk_strictMotif +# flag is not set. +# +# The "TK" standard file selection dialog box is similar to the +# file selection dialog box on Win95(TM). The user can navigate +# the directories by clicking on the folder icons or by +# selecting the "Directory" option menu. The user can select +# files by clicking on the file icons or by entering a filename +# in the "Filename:" entry. +# +# RCS: @(#) $Id: tkfbox.tcl,v 1.38.2.12 2006/07/07 00:38:47 hobbs Exp $ +# +# Copyright (c) 1994-1998 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#---------------------------------------------------------------------- +# +# I C O N L I S T +# +# This is a pseudo-widget that implements the icon list inside the +# ::tk::dialog::file:: dialog box. +# +#---------------------------------------------------------------------- + +# ::tk::IconList -- +# +# Creates an IconList widget. +# +proc ::tk::IconList {w args} { + IconList_Config $w $args + IconList_Create $w +} + +proc ::tk::IconList_Index {w i} { + upvar #0 ::tk::$w data + upvar #0 ::tk::$w:itemList itemList + if {![info exists data(list)]} {set data(list) {}} + switch -regexp -- $i { + "^-?[0-9]+$" { + if { $i < 0 } { + set i 0 + } + if { $i >= [llength $data(list)] } { + set i [expr {[llength $data(list)] - 1}] + } + return $i + } + "^active$" { + return $data(index,active) + } + "^anchor$" { + return $data(index,anchor) + } + "^end$" { + return [llength $data(list)] + } + "@-?[0-9]+,-?[0-9]+" { + foreach {x y} [scan $i "@%d,%d"] { + break + } + set item [$data(canvas) find closest $x $y] + return [lindex [$data(canvas) itemcget $item -tags] 1] + } + } +} + +proc ::tk::IconList_Selection {w op args} { + upvar ::tk::$w data + switch -exact -- $op { + "anchor" { + if { [llength $args] == 1 } { + set data(index,anchor) [tk::IconList_Index $w [lindex $args 0]] + } else { + return $data(index,anchor) + } + } + "clear" { + if { [llength $args] == 2 } { + foreach {first last} $args { + break + } + } elseif { [llength $args] == 1 } { + set first [set last [lindex $args 0]] + } else { + error "wrong # args: should be [lindex [info level 0] 0] path\ + clear first ?last?" + } + set first [IconList_Index $w $first] + set last [IconList_Index $w $last] + if { $first > $last } { + set tmp $first + set first $last + set last $tmp + } + set ind 0 + foreach item $data(selection) { + if { $item >= $first } { + set first $ind + break + } + } + set ind [expr {[llength $data(selection)] - 1}] + for {} {$ind >= 0} {incr ind -1} { + set item [lindex $data(selection) $ind] + if { $item <= $last } { + set last $ind + break + } + } + + if { $first > $last } { + return + } + set data(selection) [lreplace $data(selection) $first $last] + event generate $w <> + IconList_DrawSelection $w + } + "includes" { + set index [lsearch -exact $data(selection) [lindex $args 0]] + return [expr {$index != -1}] + } + "set" { + if { [llength $args] == 2 } { + foreach {first last} $args { + break + } + } elseif { [llength $args] == 1 } { + set last [set first [lindex $args 0]] + } else { + error "wrong # args: should be [lindex [info level 0] 0] path\ + set first ?last?" + } + + set first [IconList_Index $w $first] + set last [IconList_Index $w $last] + if { $first > $last } { + set tmp $first + set first $last + set last $tmp + } + for {set i $first} {$i <= $last} {incr i} { + lappend data(selection) $i + } + set data(selection) [lsort -integer -unique $data(selection)] + event generate $w <> + IconList_DrawSelection $w + } + } +} + +proc ::tk::IconList_Curselection {w} { + upvar ::tk::$w data + return $data(selection) +} + +proc ::tk::IconList_DrawSelection {w} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + + $data(canvas) delete selection + foreach item $data(selection) { + set rTag [lindex [lindex $data(list) $item] 2] + foreach {iTag tTag text serial} $itemList($rTag) { + break + } + + set bbox [$data(canvas) bbox $tTag] + $data(canvas) create rect $bbox -fill \#a0a0ff -outline \#a0a0ff \ + -tags selection + } + $data(canvas) lower selection + return +} + +proc ::tk::IconList_Get {w item} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + set rTag [lindex [lindex $data(list) $item] 2] + foreach {iTag tTag text serial} $itemList($rTag) { + break + } + return $text +} + +# ::tk::IconList_Config -- +# +# Configure the widget variables of IconList, according to the command +# line arguments. +# +proc ::tk::IconList_Config {w argList} { + + # 1: the configuration specs + # + set specs { + {-command "" "" ""} + {-multiple "" "" "0"} + } + + # 2: parse the arguments + # + tclParseConfigSpec ::tk::$w $specs "" $argList +} + +# ::tk::IconList_Create -- +# +# Creates an IconList widget by assembling a canvas widget and a +# scrollbar widget. Sets all the bindings necessary for the IconList's +# operations. +# +proc ::tk::IconList_Create {w} { + upvar ::tk::$w data + + frame $w + set data(sbar) [scrollbar $w.sbar -orient horizontal -takefocus 0] + catch {$data(sbar) configure -highlightthickness 0} + set data(canvas) [canvas $w.canvas -bd 2 -relief sunken \ + -width 400 -height 120 -takefocus 1] + pack $data(sbar) -side bottom -fill x -padx 2 + pack $data(canvas) -expand yes -fill both + + $data(sbar) configure -command [list $data(canvas) xview] + $data(canvas) configure -xscrollcommand [list $data(sbar) set] + + # Initializes the max icon/text width and height and other variables + # + set data(maxIW) 1 + set data(maxIH) 1 + set data(maxTW) 1 + set data(maxTH) 1 + set data(numItems) 0 + set data(curItem) {} + set data(noScroll) 1 + set data(selection) {} + set data(index,anchor) "" + set fg [option get $data(canvas) foreground Foreground] + if {$fg eq ""} { + set data(fill) black + } else { + set data(fill) $fg + } + + # Creates the event bindings. + # + bind $data(canvas) [list tk::IconList_Arrange $w] + + bind $data(canvas) <1> [list tk::IconList_Btn1 $w %x %y] + bind $data(canvas) [list tk::IconList_Motion1 $w %x %y] + bind $data(canvas) [list tk::IconList_Leave1 $w %x %y] + bind $data(canvas) [list tk::IconList_CtrlBtn1 $w %x %y] + bind $data(canvas) [list tk::IconList_ShiftBtn1 $w %x %y] + bind $data(canvas) [list tk::CancelRepeat] + bind $data(canvas) [list tk::CancelRepeat] + bind $data(canvas) \ + [list tk::IconList_Double1 $w %x %y] + + bind $data(canvas) [list tk::IconList_UpDown $w -1] + bind $data(canvas) [list tk::IconList_UpDown $w 1] + bind $data(canvas) [list tk::IconList_LeftRight $w -1] + bind $data(canvas) [list tk::IconList_LeftRight $w 1] + bind $data(canvas) [list tk::IconList_ReturnKey $w] + bind $data(canvas) [list tk::IconList_KeyPress $w %A] + bind $data(canvas) ";" + bind $data(canvas) ";" + + bind $data(canvas) [list tk::IconList_FocusIn $w] + bind $data(canvas) [list tk::IconList_FocusOut $w] + + return $w +} + +# ::tk::IconList_AutoScan -- +# +# This procedure is invoked when the mouse leaves an entry window +# with button 1 down. It scrolls the window up, down, left, or +# right, depending on where the mouse left the window, and reschedules +# itself as an "after" command so that the window continues to scroll until +# the mouse moves back into the window or the mouse button is released. +# +# Arguments: +# w - The IconList window. +# +proc ::tk::IconList_AutoScan {w} { + upvar ::tk::$w data + variable ::tk::Priv + + if {![winfo exists $w]} return + set x $Priv(x) + set y $Priv(y) + + if {$data(noScroll)} { + return + } + if {$x >= [winfo width $data(canvas)]} { + $data(canvas) xview scroll 1 units + } elseif {$x < 0} { + $data(canvas) xview scroll -1 units + } elseif {$y >= [winfo height $data(canvas)]} { + # do nothing + } elseif {$y < 0} { + # do nothing + } else { + return + } + + IconList_Motion1 $w $x $y + set Priv(afterId) [after 50 [list tk::IconList_AutoScan $w]] +} + +# Deletes all the items inside the canvas subwidget and reset the IconList's +# state. +# +proc ::tk::IconList_DeleteAll {w} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + + $data(canvas) delete all + unset -nocomplain data(selected) data(rect) data(list) itemList + set data(maxIW) 1 + set data(maxIH) 1 + set data(maxTW) 1 + set data(maxTH) 1 + set data(numItems) 0 + set data(curItem) {} + set data(noScroll) 1 + set data(selection) {} + set data(index,anchor) "" + $data(sbar) set 0.0 1.0 + $data(canvas) xview moveto 0 +} + +# Adds an icon into the IconList with the designated image and text +# +proc ::tk::IconList_Add {w image items} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + upvar ::tk::$w:textList textList + + foreach text $items { + set iTag [$data(canvas) create image 0 0 -image $image -anchor nw \ + -tags [list icon $data(numItems) item$data(numItems)]] + set tTag [$data(canvas) create text 0 0 -text $text -anchor nw \ + -font $data(font) -fill $data(fill) \ + -tags [list text $data(numItems) item$data(numItems)]] + set rTag [$data(canvas) create rect 0 0 0 0 -fill "" -outline "" \ + -tags [list rect $data(numItems) item$data(numItems)]] + + foreach {x1 y1 x2 y2} [$data(canvas) bbox $iTag] { + break + } + set iW [expr {$x2 - $x1}] + set iH [expr {$y2 - $y1}] + if {$data(maxIW) < $iW} { + set data(maxIW) $iW + } + if {$data(maxIH) < $iH} { + set data(maxIH) $iH + } + + foreach {x1 y1 x2 y2} [$data(canvas) bbox $tTag] { + break + } + set tW [expr {$x2 - $x1}] + set tH [expr {$y2 - $y1}] + if {$data(maxTW) < $tW} { + set data(maxTW) $tW + } + if {$data(maxTH) < $tH} { + set data(maxTH) $tH + } + + lappend data(list) [list $iTag $tTag $rTag $iW $iH $tW \ + $tH $data(numItems)] + set itemList($rTag) [list $iTag $tTag $text $data(numItems)] + set textList($data(numItems)) [string tolower $text] + incr data(numItems) + } +} + +# Places the icons in a column-major arrangement. +# +proc ::tk::IconList_Arrange {w} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + if {[info exists data(canvas)] && [winfo exists $data(canvas)]} { + set data(noScroll) 1 + $data(sbar) configure -command "" + } + return + } + + set W [winfo width $data(canvas)] + set H [winfo height $data(canvas)] + set pad [expr {[$data(canvas) cget -highlightthickness] + \ + [$data(canvas) cget -bd]}] + if {$pad < 2} { + set pad 2 + } + + incr W -[expr {$pad*2}] + incr H -[expr {$pad*2}] + + set dx [expr {$data(maxIW) + $data(maxTW) + 8}] + if {$data(maxTH) > $data(maxIH)} { + set dy $data(maxTH) + } else { + set dy $data(maxIH) + } + incr dy 2 + set shift [expr {$data(maxIW) + 4}] + + set x [expr {$pad * 2}] + set y [expr {$pad * 1}] ; # Why * 1 ? + set usedColumn 0 + foreach sublist $data(list) { + set usedColumn 1 + foreach {iTag tTag rTag iW iH tW tH} $sublist { + break + } + + set i_dy [expr {($dy - $iH)/2}] + set t_dy [expr {($dy - $tH)/2}] + + $data(canvas) coords $iTag $x [expr {$y + $i_dy}] + $data(canvas) coords $tTag [expr {$x + $shift}] [expr {$y + $t_dy}] + $data(canvas) coords $rTag $x $y [expr {$x+$dx}] [expr {$y+$dy}] + + incr y $dy + if {($y + $dy) > $H} { + set y [expr {$pad * 1}] ; # *1 ? + incr x $dx + set usedColumn 0 + } + } + + if {$usedColumn} { + set sW [expr {$x + $dx}] + } else { + set sW $x + } + + if {$sW < $W} { + $data(canvas) configure -scrollregion [list $pad $pad $sW $H] + $data(sbar) configure -command "" + $data(canvas) xview moveto 0 + set data(noScroll) 1 + } else { + $data(canvas) configure -scrollregion [list $pad $pad $sW $H] + $data(sbar) configure -command [list $data(canvas) xview] + set data(noScroll) 0 + } + + set data(itemsPerColumn) [expr {($H-$pad)/$dy}] + if {$data(itemsPerColumn) < 1} { + set data(itemsPerColumn) 1 + } + + if {$data(curItem) ne ""} { + IconList_Select $w [lindex [lindex $data(list) $data(curItem)] 2] 0 + } +} + +# Gets called when the user invokes the IconList (usually by double-clicking +# or pressing the Return key). +# +proc ::tk::IconList_Invoke {w} { + upvar ::tk::$w data + + if {$data(-command) ne "" && [llength $data(selection)]} { + uplevel #0 $data(-command) + } +} + +# ::tk::IconList_See -- +# +# If the item is not (completely) visible, scroll the canvas so that +# it becomes visible. +proc ::tk::IconList_See {w rTag} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + + if {$data(noScroll)} { + return + } + set sRegion [$data(canvas) cget -scrollregion] + if {$sRegion eq ""} { + return + } + + if { $rTag < 0 || $rTag >= [llength $data(list)] } { + return + } + + set bbox [$data(canvas) bbox item$rTag] + set pad [expr {[$data(canvas) cget -highlightthickness] + \ + [$data(canvas) cget -bd]}] + + set x1 [lindex $bbox 0] + set x2 [lindex $bbox 2] + incr x1 -[expr {$pad * 2}] + incr x2 -[expr {$pad * 1}] ; # *1 ? + + set cW [expr {[winfo width $data(canvas)] - $pad*2}] + + set scrollW [expr {[lindex $sRegion 2]-[lindex $sRegion 0]+1}] + set dispX [expr {int([lindex [$data(canvas) xview] 0]*$scrollW)}] + set oldDispX $dispX + + # check if out of the right edge + # + if {($x2 - $dispX) >= $cW} { + set dispX [expr {$x2 - $cW}] + } + # check if out of the left edge + # + if {($x1 - $dispX) < 0} { + set dispX $x1 + } + + if {$oldDispX ne $dispX} { + set fraction [expr {double($dispX)/double($scrollW)}] + $data(canvas) xview moveto $fraction + } +} + +proc ::tk::IconList_Btn1 {w x y} { + upvar ::tk::$w data + + focus $data(canvas) + set x [expr {int([$data(canvas) canvasx $x])}] + set y [expr {int([$data(canvas) canvasy $y])}] + set i [IconList_Index $w @${x},${y}] + if {$i eq ""} return + IconList_Selection $w clear 0 end + IconList_Selection $w set $i + IconList_Selection $w anchor $i +} + +proc ::tk::IconList_CtrlBtn1 {w x y} { + upvar ::tk::$w data + + if { $data(-multiple) } { + focus $data(canvas) + set x [expr {int([$data(canvas) canvasx $x])}] + set y [expr {int([$data(canvas) canvasy $y])}] + set i [IconList_Index $w @${x},${y}] + if {$i eq ""} return + if { [IconList_Selection $w includes $i] } { + IconList_Selection $w clear $i + } else { + IconList_Selection $w set $i + IconList_Selection $w anchor $i + } + } +} + +proc ::tk::IconList_ShiftBtn1 {w x y} { + upvar ::tk::$w data + + if { $data(-multiple) } { + focus $data(canvas) + set x [expr {int([$data(canvas) canvasx $x])}] + set y [expr {int([$data(canvas) canvasy $y])}] + set i [IconList_Index $w @${x},${y}] + if {$i eq ""} return + set a [IconList_Index $w anchor] + if { $a eq "" } { + set a $i + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $a $i + } +} + +# Gets called on button-1 motions +# +proc ::tk::IconList_Motion1 {w x y} { + upvar ::tk::$w data + variable ::tk::Priv + set Priv(x) $x + set Priv(y) $y + set x [expr {int([$data(canvas) canvasx $x])}] + set y [expr {int([$data(canvas) canvasy $y])}] + set i [IconList_Index $w @${x},${y}] + if {$i eq ""} return + IconList_Selection $w clear 0 end + IconList_Selection $w set $i +} + +proc ::tk::IconList_Double1 {w x y} { + upvar ::tk::$w data + + if {[llength $data(selection)]} { + IconList_Invoke $w + } +} + +proc ::tk::IconList_ReturnKey {w} { + IconList_Invoke $w +} + +proc ::tk::IconList_Leave1 {w x y} { + variable ::tk::Priv + + set Priv(x) $x + set Priv(y) $y + IconList_AutoScan $w +} + +proc ::tk::IconList_FocusIn {w} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + return + } + + if {[llength $data(selection)]} { + IconList_DrawSelection $w + } +} + +proc ::tk::IconList_FocusOut {w} { + IconList_Selection $w clear 0 end +} + +# ::tk::IconList_UpDown -- +# +# Moves the active element up or down by one element +# +# Arguments: +# w - The IconList widget. +# amount - +1 to move down one item, -1 to move back one item. +# +proc ::tk::IconList_UpDown {w amount} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + return + } + + set curr [tk::IconList_Curselection $w] + if { [llength $curr] == 0 } { + set i 0 + } else { + set i [tk::IconList_Index $w anchor] + if {$i eq ""} return + incr i $amount + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $i + IconList_Selection $w anchor $i + IconList_See $w $i +} + +# ::tk::IconList_LeftRight -- +# +# Moves the active element left or right by one column +# +# Arguments: +# w - The IconList widget. +# amount - +1 to move right one column, -1 to move left one column. +# +proc ::tk::IconList_LeftRight {w amount} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + return + } + + set curr [IconList_Curselection $w] + if { [llength $curr] == 0 } { + set i 0 + } else { + set i [IconList_Index $w anchor] + if {$i eq ""} return + incr i [expr {$amount*$data(itemsPerColumn)}] + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $i + IconList_Selection $w anchor $i + IconList_See $w $i +} + +#---------------------------------------------------------------------- +# Accelerator key bindings +#---------------------------------------------------------------------- + +# ::tk::IconList_KeyPress -- +# +# Gets called when user enters an arbitrary key in the listbox. +# +proc ::tk::IconList_KeyPress {w key} { + variable ::tk::Priv + + append Priv(ILAccel,$w) $key + IconList_Goto $w $Priv(ILAccel,$w) + catch { + after cancel $Priv(ILAccel,$w,afterId) + } + set Priv(ILAccel,$w,afterId) [after 500 [list tk::IconList_Reset $w]] +} + +proc ::tk::IconList_Goto {w text} { + upvar ::tk::$w data + upvar ::tk::$w:textList textList + + if {![info exists data(list)]} { + return + } + + if {$text eq ""} { + return + } + + if {$data(curItem) eq "" || $data(curItem) == 0} { + set start 0 + } else { + set start $data(curItem) + } + + set text [string tolower $text] + set theIndex -1 + set less 0 + set len [string length $text] + set len0 [expr {$len-1}] + set i $start + + # Search forward until we find a filename whose prefix is an exact match + # with $text + while {1} { + set sub [string range $textList($i) 0 $len0] + if {$text eq $sub} { + set theIndex $i + break + } + incr i + if {$i == $data(numItems)} { + set i 0 + } + if {$i == $start} { + break + } + } + + if {$theIndex > -1} { + IconList_Selection $w clear 0 end + IconList_Selection $w set $theIndex + IconList_Selection $w anchor $theIndex + IconList_See $w $theIndex + } +} + +proc ::tk::IconList_Reset {w} { + variable ::tk::Priv + + unset -nocomplain Priv(ILAccel,$w) +} + +#---------------------------------------------------------------------- +# +# F I L E D I A L O G +# +#---------------------------------------------------------------------- + +namespace eval ::tk::dialog {} +namespace eval ::tk::dialog::file { + namespace import -force ::tk::msgcat::* + set ::tk::dialog::file::showHiddenBtn 0 + set ::tk::dialog::file::showHiddenVar 1 +} + +# ::tk::dialog::file:: -- +# +# Implements the TK file selection dialog. This dialog is used when +# the tk_strictMotif flag is set to false. This procedure shouldn't +# be called directly. Call tk_getOpenFile or tk_getSaveFile instead. +# +# Arguments: +# type "open" or "save" +# args Options parsed by the procedure. +# + +proc ::tk::dialog::file:: {type args} { + variable ::tk::Priv + set dataName __tk_filedialog + upvar ::tk::dialog::file::$dataName data + + ::tk::dialog::file::Config $dataName $type $args + + if {$data(-parent) eq "."} { + set w .$dataName + } else { + set w $data(-parent).$dataName + } + + # (re)create the dialog box if necessary + # + if {![winfo exists $w]} { + ::tk::dialog::file::Create $w TkFDialog + } elseif {[winfo class $w] ne "TkFDialog"} { + destroy $w + ::tk::dialog::file::Create $w TkFDialog + } else { + set data(dirMenuBtn) $w.f1.menu + set data(dirMenu) $w.f1.menu.menu + set data(upBtn) $w.f1.up + set data(icons) $w.icons + set data(ent) $w.f2.ent + set data(typeMenuLab) $w.f2.lab2 + set data(typeMenuBtn) $w.f2.menu + set data(typeMenu) $data(typeMenuBtn).m + set data(okBtn) $w.f2.ok + set data(cancelBtn) $w.f2.cancel + set data(hiddenBtn) $w.f2.hidden + ::tk::dialog::file::SetSelectMode $w $data(-multiple) + } + if {$::tk::dialog::file::showHiddenBtn} { + $data(hiddenBtn) configure -state normal + grid $data(hiddenBtn) + } else { + $data(hiddenBtn) configure -state disabled + grid remove $data(hiddenBtn) + } + + # Make sure subseqent uses of this dialog are independent [Bug 845189] + unset -nocomplain data(extUsed) + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + + if {[winfo viewable [winfo toplevel $data(-parent)]]} { + wm transient $w $data(-parent) + } + + # Add traces on the selectPath variable + # + + trace add variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] + $data(dirMenuBtn) configure \ + -textvariable ::tk::dialog::file::${dataName}(selectPath) + + # Initialize the file types menu + # + if {[llength $data(-filetypes)]} { + $data(typeMenu) delete 0 end + foreach type $data(-filetypes) { + set title [lindex $type 0] + set filter [lindex $type 1] + $data(typeMenu) add command -label $title \ + -command [list ::tk::dialog::file::SetFilter $w $type] + } + ::tk::dialog::file::SetFilter $w [lindex $data(-filetypes) 0] + $data(typeMenuBtn) configure -state normal + $data(typeMenuLab) configure -state normal + } else { + set data(filter) "*" + $data(typeMenuBtn) configure -state disabled -takefocus 0 + $data(typeMenuLab) configure -state disabled + } + ::tk::dialog::file::UpdateWhenIdle $w + + # Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + ::tk::PlaceWindow $w widget $data(-parent) + wm title $w $data(-title) + + # Set a grab and claim the focus too. + + ::tk::SetFocusGrab $w $data(ent) + $data(ent) delete 0 end + $data(ent) insert 0 $data(selectFile) + $data(ent) selection range 0 end + $data(ent) icursor end + + # Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(selectFilePath) + + ::tk::RestoreFocusGrab $w $data(ent) withdraw + + # Cleanup traces on selectPath variable + # + + foreach trace [trace info variable data(selectPath)] { + trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] + } + $data(dirMenuBtn) configure -textvariable {} + + return $Priv(selectFilePath) +} + +# ::tk::dialog::file::Config -- +# +# Configures the TK filedialog according to the argument list +# +proc ::tk::dialog::file::Config {dataName type argList} { + upvar ::tk::dialog::file::$dataName data + + set data(type) $type + + # 0: Delete all variable that were set on data(selectPath) the + # last time the file dialog is used. The traces may cause troubles + # if the dialog is now used with a different -parent option. + + foreach trace [trace info variable data(selectPath)] { + trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] + } + + # 1: the configuration specs + # + set specs { + {-defaultextension "" "" ""} + {-filetypes "" "" ""} + {-initialdir "" "" ""} + {-initialfile "" "" ""} + {-parent "" "" "."} + {-title "" "" ""} + } + + # The "-multiple" option is only available for the "open" file dialog. + # + if { $type eq "open" } { + lappend specs {-multiple "" "" "0"} + } + + # 2: default values depending on the type of the dialog + # + if {![info exists data(selectPath)]} { + # first time the dialog has been popped up + set data(selectPath) [pwd] + set data(selectFile) "" + } + + # 3: parse the arguments + # + tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList + + if {$data(-title) eq ""} { + if {$type eq "open"} { + set data(-title) "[mc "Open"]" + } else { + set data(-title) "[mc "Save As"]" + } + } + + # 4: set the default directory and selection according to the -initial + # settings + # + if {$data(-initialdir) ne ""} { + # Ensure that initialdir is an absolute path name. + if {[file isdirectory $data(-initialdir)]} { + set old [pwd] + cd $data(-initialdir) + set data(selectPath) [pwd] + cd $old + } else { + set data(selectPath) [pwd] + } + } + set data(selectFile) $data(-initialfile) + + # 5. Parse the -filetypes option + # + set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] + + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } + + # Set -multiple to a one or zero value (not other boolean types + # like "yes") so we can use it in tests more easily. + if {$type eq "save"} { + set data(-multiple) 0 + } elseif {$data(-multiple)} { + set data(-multiple) 1 + } else { + set data(-multiple) 0 + } +} + +proc ::tk::dialog::file::Create {w class} { + set dataName [lindex [split $w .] end] + upvar ::tk::dialog::file::$dataName data + variable ::tk::Priv + global tk_library + + toplevel $w -class $class + + # f1: the frame with the directory option menu + # + set f1 [frame $w.f1] + bind [::tk::AmpWidget label $f1.lab -text "[mc "&Directory:"]" ] \ + <> [list focus $f1.menu] + + set data(dirMenuBtn) $f1.menu + set data(dirMenu) [tk_optionMenu $f1.menu [format %s(selectPath) ::tk::dialog::file::$dataName] ""] + set data(upBtn) [button $f1.up] + if {![info exists Priv(updirImage)]} { + set Priv(updirImage) [image create bitmap -data { +#define updir_width 28 +#define updir_height 16 +static char updir_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, + 0x20, 0x40, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x01, 0x10, 0x00, 0x00, 0x01, + 0x10, 0x02, 0x00, 0x01, 0x10, 0x07, 0x00, 0x01, 0x90, 0x0f, 0x00, 0x01, + 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, + 0x10, 0xfe, 0x07, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, + 0xf0, 0xff, 0xff, 0x01};}] + } + $data(upBtn) configure -image $Priv(updirImage) + + $f1.menu configure -takefocus 1 -highlightthickness 2 + + pack $data(upBtn) -side right -padx 4 -fill both + pack $f1.lab -side left -padx 4 -fill both + pack $f1.menu -expand yes -fill both -padx 4 + + # data(icons): the IconList that list the files and directories. + # + if { $class eq "TkFDialog" } { + if { $data(-multiple) } { + set fNameCaption [mc "File &names:"] + } else { + set fNameCaption [mc "File &name:"] + } + set fTypeCaption [mc "Files of &type:"] + set iconListCommand [list ::tk::dialog::file::OkCmd $w] + } else { + set fNameCaption [mc "&Selection:"] + set iconListCommand [list ::tk::dialog::file::chooseDir::DblClick $w] + } + set data(icons) [::tk::IconList $w.icons \ + -command $iconListCommand \ + -multiple $data(-multiple)] + bind $data(icons) <> \ + [list ::tk::dialog::file::ListBrowse $w] + + # f2: the frame with the OK button, cancel button, "file name" field + # and file types field. + # + set f2 [frame $w.f2 -bd 0] + bind [::tk::AmpWidget label $f2.lab -text $fNameCaption -anchor e -pady 0]\ + <> [list focus $f2.ent] + set data(ent) [entry $f2.ent] + + # The font to use for the icons. The default Canvas font on Unix + # is just deviant. + set ::tk::$w.icons(font) [$data(ent) cget -font] + + # Make the file types bits only if this is a File Dialog + if { $class eq "TkFDialog" } { + set data(typeMenuLab) [::tk::AmpWidget label $f2.lab2 \ + -text $fTypeCaption -anchor e -pady [$f2.lab cget -pady]] + set data(typeMenuBtn) [menubutton $f2.menu -indicatoron 1 \ + -menu $f2.menu.m] + set data(typeMenu) [menu $data(typeMenuBtn).m -tearoff 0] + $data(typeMenuBtn) configure -takefocus 1 -highlightthickness 2 \ + -relief raised -bd 2 -anchor w + bind $data(typeMenuLab) <> [list \ + focus $data(typeMenuBtn)] + } + + # The hidden button is displayed when ::tk::dialog::file::showHiddenBtn + # is true. Create it disabled so the binding doesn't trigger if it + # isn't shown. + if {$class eq "TkFDialog"} { + set text [mc "Show &Hidden Files and Directories"] + } else { + set text [mc "Show &Hidden Directories"] + } + set data(hiddenBtn) [::tk::AmpWidget checkbutton $f2.hidden \ + -text $text -anchor w -padx 3 -state disabled \ + -variable ::tk::dialog::file::showHiddenVar \ + -command [list ::tk::dialog::file::UpdateWhenIdle $w]] + + # the okBtn is created after the typeMenu so that the keyboard traversal + # is in the right order, and add binding so that we find out when the + # dialog is destroyed by the user (added here instead of to the overall + # window so no confusion about how much gets called; exactly + # once will do). [Bug 987169] + + set data(okBtn) [::tk::AmpWidget button $f2.ok \ + -text [mc "&OK"] -default active -pady 3] + bind $data(okBtn) [list ::tk::dialog::file::Destroyed $w] + set data(cancelBtn) [::tk::AmpWidget button $f2.cancel \ + -text [mc "&Cancel"] -default normal -pady 3] + + # grid the widgets in f2 + # + grid $f2.lab $f2.ent $data(okBtn) -padx 4 -sticky ew + grid configure $f2.ent -padx 2 + if { $class eq "TkFDialog" } { + grid $data(typeMenuLab) $data(typeMenuBtn) $data(cancelBtn) \ + -padx 4 -sticky ew + grid configure $data(typeMenuBtn) -padx 0 + grid $data(hiddenBtn) -columnspan 2 -padx 4 -sticky ew + } else { + grid $data(hiddenBtn) - $data(cancelBtn) -padx 4 -sticky ew + } + grid columnconfigure $f2 1 -weight 1 + + # Pack all the frames together. We are done with widget construction. + # + pack $f1 -side top -fill x -pady 4 + pack $f2 -side bottom -fill x + pack $data(icons) -expand yes -fill both -padx 4 -pady 1 + + # Set up the event handlers that are common to Directory and File Dialogs + # + + wm protocol $w WM_DELETE_WINDOW [list ::tk::dialog::file::CancelCmd $w] + $data(upBtn) configure -command [list ::tk::dialog::file::UpDirCmd $w] + $data(cancelBtn) configure -command [list ::tk::dialog::file::CancelCmd $w] + bind $w [list tk::ButtonInvoke $data(cancelBtn)] + bind $w [list tk::AltKeyInDialog $w %A] + + # Set up event handlers specific to File or Directory Dialogs + # + if { $class eq "TkFDialog" } { + bind $data(ent) [list ::tk::dialog::file::ActivateEnt $w] + $data(okBtn) configure -command [list ::tk::dialog::file::OkCmd $w] + bind $w [format { + if {[%s cget -state] eq "normal"} { + focus %s + } + } $data(typeMenuBtn) $data(typeMenuBtn)] + } else { + set okCmd [list ::tk::dialog::file::chooseDir::OkCmd $w] + bind $data(ent) $okCmd + $data(okBtn) configure -command $okCmd + bind $w [list focus $data(ent)] + bind $w [list tk::ButtonInvoke $data(okBtn)] + } + bind $w [list $data(hiddenBtn) invoke] + + # Build the focus group for all the entries + # + ::tk::FocusGroup_Create $w + ::tk::FocusGroup_BindIn $w $data(ent) [list ::tk::dialog::file::EntFocusIn $w] + ::tk::FocusGroup_BindOut $w $data(ent) [list ::tk::dialog::file::EntFocusOut $w] +} + +# ::tk::dialog::file::SetSelectMode -- +# +# Set the select mode of the dialog to single select or multi-select. +# +# Arguments: +# w The dialog path. +# multi 1 if the dialog is multi-select; 0 otherwise. +# +# Results: +# None. + +proc ::tk::dialog::file::SetSelectMode {w multi} { + set dataName __tk_filedialog + upvar ::tk::dialog::file::$dataName data + if { $multi } { + set fNameCaption "[mc {File &names:}]" + } else { + set fNameCaption "[mc {File &name:}]" + } + set iconListCommand [list ::tk::dialog::file::OkCmd $w] + ::tk::SetAmpText $w.f2.lab $fNameCaption + ::tk::IconList_Config $data(icons) \ + [list -multiple $multi -command $iconListCommand] + return +} + +# ::tk::dialog::file::UpdateWhenIdle -- +# +# Creates an idle event handler which updates the dialog in idle +# time. This is important because loading the directory may take a long +# time and we don't want to load the same directory for multiple times +# due to multiple concurrent events. +# +proc ::tk::dialog::file::UpdateWhenIdle {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[info exists data(updateId)]} { + return + } else { + set data(updateId) [after idle [list ::tk::dialog::file::Update $w]] + } +} + +# ::tk::dialog::file::Update -- +# +# Loads the files and directories into the IconList widget. Also +# sets up the directory option menu for quick access to parent +# directories. +# +proc ::tk::dialog::file::Update {w} { + + # This proc may be called within an idle handler. Make sure that the + # window has not been destroyed before this proc is called + if {![winfo exists $w]} { + return + } + set class [winfo class $w] + if {($class ne "TkFDialog") && ($class ne "TkChooseDir")} { + return + } + + set dataName [winfo name $w] + upvar ::tk::dialog::file::$dataName data + variable ::tk::Priv + global tk_library + unset -nocomplain data(updateId) + + if {![info exists Priv(folderImage)]} { + set Priv(folderImage) [image create photo -data { +R0lGODlhEAAMAKEAAAD//wAAAPD/gAAAACH5BAEAAAAALAAAAAAQAAwAAAIghINhyycvVFsB +QtmS3rjaH1Hg141WaT5ouprt2HHcUgAAOw==}] + set Priv(fileImage) [image create photo -data { +R0lGODlhDAAMAKEAALLA3AAAAP//8wAAACH5BAEAAAAALAAAAAAMAAwAAAIgRI4Ha+IfWHsO +rSASvJTGhnhcV3EJlo3kh53ltF5nAhQAOw==}] + } + set folder $Priv(folderImage) + set file $Priv(fileImage) + + set appPWD [pwd] + if {[catch { + cd $data(selectPath) + }]} { + # We cannot change directory to $data(selectPath). $data(selectPath) + # should have been checked before ::tk::dialog::file::Update is called, so + # we normally won't come to here. Anyways, give an error and abort + # action. + tk_messageBox -type ok -parent $w -icon warning -message \ + [mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $data(selectPath)] + cd $appPWD + return + } + + # Turn on the busy cursor. BUG?? We haven't disabled X events, though, + # so the user may still click and cause havoc ... + # + set entCursor [$data(ent) cget -cursor] + set dlgCursor [$w cget -cursor] + $data(ent) configure -cursor watch + $w configure -cursor watch + update idletasks + + ::tk::IconList_DeleteAll $data(icons) + + set showHidden $::tk::dialog::file::showHiddenVar + + # Make the dir list + # Using -directory [pwd] is better in some VFS cases. + set cmd [list glob -tails -directory [pwd] -type d -nocomplain *] + if {$showHidden} { lappend cmd .* } + set dirs [lsort -dictionary -unique [eval $cmd]] + set dirList {} + foreach d $dirs { + if {$d eq "." || $d eq ".."} { + continue + } + lappend dirList $d + } + ::tk::IconList_Add $data(icons) $folder $dirList + + if {$class eq "TkFDialog"} { + # Make the file list if this is a File Dialog, selecting all + # but 'd'irectory type files. + # + set cmd [list glob -tails -directory [pwd] \ + -type {f b c l p s} -nocomplain] + if {$data(filter) eq "*"} { + lappend cmd * + if {$showHidden} { lappend cmd .* } + } else { + eval [list lappend cmd] $data(filter) + } + set fileList [lsort -dictionary -unique [eval $cmd]] + ::tk::IconList_Add $data(icons) $file $fileList + } + + ::tk::IconList_Arrange $data(icons) + + # Update the Directory: option menu + # + set list "" + set dir "" + foreach subdir [file split $data(selectPath)] { + set dir [file join $dir $subdir] + lappend list $dir + } + + $data(dirMenu) delete 0 end + set var [format %s(selectPath) ::tk::dialog::file::$dataName] + foreach path $list { + $data(dirMenu) add command -label $path -command [list set $var $path] + } + + # Restore the PWD to the application's PWD + # + cd $appPWD + + if { $class eq "TkFDialog" } { + # Restore the Open/Save Button if this is a File Dialog + # + if {$data(type) eq "open"} { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } else { + ::tk::SetAmpText $data(okBtn) [mc "&Save"] + } + } + + # turn off the busy cursor. + # + $data(ent) configure -cursor $entCursor + $w configure -cursor $dlgCursor +} + +# ::tk::dialog::file::SetPathSilently -- +# +# Sets data(selectPath) without invoking the trace procedure +# +proc ::tk::dialog::file::SetPathSilently {w path} { + upvar ::tk::dialog::file::[winfo name $w] data + + trace remove variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] + set data(selectPath) $path + trace add variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] +} + + +# This proc gets called whenever data(selectPath) is set +# +proc ::tk::dialog::file::SetPath {w name1 name2 op} { + if {[winfo exists $w]} { + upvar ::tk::dialog::file::[winfo name $w] data + ::tk::dialog::file::UpdateWhenIdle $w + # On directory dialogs, we keep the entry in sync with the currentdir. + if { [winfo class $w] eq "TkChooseDir" } { + $data(ent) delete 0 end + $data(ent) insert end $data(selectPath) + } + } +} + +# This proc gets called whenever data(filter) is set +# +proc ::tk::dialog::file::SetFilter {w type} { + upvar ::tk::dialog::file::[winfo name $w] data + upvar ::tk::$data(icons) icons + + set data(filter) [lindex $type 1] + $data(typeMenuBtn) configure -text [lindex $type 0] -indicatoron 1 + + # If we aren't using a default extension, use the one suppled + # by the filter. + if {![info exists data(extUsed)]} { + if {[string length $data(-defaultextension)]} { + set data(extUsed) 1 + } else { + set data(extUsed) 0 + } + } + + if {!$data(extUsed)} { + # Get the first extension in the list that matches {^\*\.\w+$} + # and remove all * from the filter. + set index [lsearch -regexp $data(filter) {^\*\.\w+$}] + if {$index >= 0} { + set data(-defaultextension) \ + [string trimleft [lindex $data(filter) $index] "*"] + } else { + # Couldn't find anything! Reset to a safe default... + set data(-defaultextension) "" + } + } + + $icons(sbar) set 0.0 0.0 + + ::tk::dialog::file::UpdateWhenIdle $w +} + +# tk::dialog::file::ResolveFile -- +# +# Interpret the user's text input in a file selection dialog. +# Performs: +# +# (1) ~ substitution +# (2) resolve all instances of . and .. +# (3) check for non-existent files/directories +# (4) check for chdir permissions +# +# Arguments: +# context: the current directory you are in +# text: the text entered by the user +# defaultext: the default extension to add to files with no extension +# +# Return vaue: +# [list $flag $directory $file] +# +# flag = OK : valid input +# = PATTERN : valid directory/pattern +# = PATH : the directory does not exist +# = FILE : the directory exists by the file doesn't +# exist +# = CHDIR : Cannot change to the directory +# = ERROR : Invalid entry +# +# directory : valid only if flag = OK or PATTERN or FILE +# file : valid only if flag = OK or PATTERN +# +# directory may not be the same as context, because text may contain +# a subdirectory name +# +proc ::tk::dialog::file::ResolveFile {context text defaultext} { + + set appPWD [pwd] + + set path [::tk::dialog::file::JoinFile $context $text] + + # If the file has no extension, append the default. Be careful not + # to do this for directories, otherwise typing a dirname in the box + # will give back "dirname.extension" instead of trying to change dir. + if {![file isdirectory $path] && [file ext $path] eq ""} { + set path "$path$defaultext" + } + + + if {[catch {file exists $path}]} { + # This "if" block can be safely removed if the following code + # stop generating errors. + # + # file exists ~nonsuchuser + # + return [list ERROR $path ""] + } + + if {[file exists $path]} { + if {[file isdirectory $path]} { + if {[catch {cd $path}]} { + return [list CHDIR $path ""] + } + set directory [pwd] + set file "" + set flag OK + cd $appPWD + } else { + if {[catch {cd [file dirname $path]}]} { + return [list CHDIR [file dirname $path] ""] + } + set directory [pwd] + set file [file tail $path] + set flag OK + cd $appPWD + } + } else { + set dirname [file dirname $path] + if {[file exists $dirname]} { + if {[catch {cd $dirname}]} { + return [list CHDIR $dirname ""] + } + set directory [pwd] + set file [file tail $path] + if {[regexp {[*]|[?]} $file]} { + set flag PATTERN + } else { + set flag FILE + } + cd $appPWD + } else { + set directory $dirname + set file [file tail $path] + set flag PATH + } + } + + return [list $flag $directory $file] +} + + +# Gets called when the entry box gets keyboard focus. We clear the selection +# from the icon list . This way the user can be certain that the input in the +# entry box is the selection. +# +proc ::tk::dialog::file::EntFocusIn {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(ent) get] ne ""} { + $data(ent) selection range 0 end + $data(ent) icursor end + } else { + $data(ent) selection clear + } + + if { [winfo class $w] eq "TkFDialog" } { + # If this is a File Dialog, make sure the buttons are labeled right. + if {$data(type) eq "open"} { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } else { + ::tk::SetAmpText $data(okBtn) [mc "&Save"] + } + } +} + +proc ::tk::dialog::file::EntFocusOut {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + $data(ent) selection clear +} + + +# Gets called when user presses Return in the "File name" entry. +# +proc ::tk::dialog::file::ActivateEnt {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set text [$data(ent) get] + if {$data(-multiple)} { + # For the multiple case we have to be careful to get the file + # names as a true list, watching out for a single file with a + # space in the name. Thus we query the IconList directly. + + set selIcos [::tk::IconList_Curselection $data(icons)] + set data(selectFile) "" + if {[llength $selIcos] == 0 && $text ne ""} { + # This assumes the user typed something in without selecting + # files - so assume they only type in a single filename. + ::tk::dialog::file::VerifyFileName $w $text + } else { + foreach item $selIcos { + ::tk::dialog::file::VerifyFileName $w \ + [::tk::IconList_Get $data(icons) $item] + } + } + } else { + ::tk::dialog::file::VerifyFileName $w $text + } +} + +# Verification procedure +# +proc ::tk::dialog::file::VerifyFileName {w filename} { + upvar ::tk::dialog::file::[winfo name $w] data + + set list [::tk::dialog::file::ResolveFile $data(selectPath) $filename \ + $data(-defaultextension)] + foreach {flag path file} $list { + break + } + + switch -- $flag { + OK { + if {$file eq ""} { + # user has entered an existing (sub)directory + set data(selectPath) $path + $data(ent) delete 0 end + } else { + ::tk::dialog::file::SetPathSilently $w $path + if {$data(-multiple)} { + lappend data(selectFile) $file + } else { + set data(selectFile) $file + } + ::tk::dialog::file::Done $w + } + } + PATTERN { + set data(selectPath) $path + set data(filter) $file + } + FILE { + if {$data(type) eq "open"} { + tk_messageBox -icon warning -type ok -parent $w \ + -message "[mc "File \"%1\$s\" does not exist." [file join $path $file]]" + $data(ent) selection range 0 end + $data(ent) icursor end + } else { + ::tk::dialog::file::SetPathSilently $w $path + if {$data(-multiple)} { + lappend data(selectFile) $file + } else { + set data(selectFile) $file + } + ::tk::dialog::file::Done $w + } + } + PATH { + tk_messageBox -icon warning -type ok -parent $w \ + -message "[mc "Directory \"%1\$s\" does not exist." $path]" + $data(ent) selection range 0 end + $data(ent) icursor end + } + CHDIR { + tk_messageBox -type ok -parent $w -message \ + "[mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $path]"\ + -icon warning + $data(ent) selection range 0 end + $data(ent) icursor end + } + ERROR { + tk_messageBox -type ok -parent $w -message \ + "[mc "Invalid file name \"%1\$s\"." $path]"\ + -icon warning + $data(ent) selection range 0 end + $data(ent) icursor end + } + } +} + +# Gets called when user presses the Alt-s or Alt-o keys. +# +proc ::tk::dialog::file::InvokeBtn {w key} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(okBtn) cget -text] eq $key} { + ::tk::ButtonInvoke $data(okBtn) + } +} + +# Gets called when user presses the "parent directory" button +# +proc ::tk::dialog::file::UpDirCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {$data(selectPath) ne "/"} { + set data(selectPath) [file dirname $data(selectPath)] + } +} + +# Join a file name to a path name. The "file join" command will break +# if the filename begins with ~ +# +proc ::tk::dialog::file::JoinFile {path file} { + if {[string match {~*} $file] && [file exists $path/$file]} { + return [file join $path ./$file] + } else { + return [file join $path $file] + } +} + +# Gets called when user presses the "OK" button +# +proc ::tk::dialog::file::OkCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set filenames {} + foreach item [::tk::IconList_Curselection $data(icons)] { + lappend filenames [::tk::IconList_Get $data(icons) $item] + } + + if {([llength $filenames] && !$data(-multiple)) || \ + ($data(-multiple) && ([llength $filenames] == 1))} { + set filename [lindex $filenames 0] + set file [::tk::dialog::file::JoinFile $data(selectPath) $filename] + if {[file isdirectory $file]} { + ::tk::dialog::file::ListInvoke $w [list $filename] + return + } + } + + ::tk::dialog::file::ActivateEnt $w +} + +# Gets called when user presses the "Cancel" button +# +proc ::tk::dialog::file::CancelCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + bind $data(okBtn) {} + set Priv(selectFilePath) "" +} + +# Gets called when user destroys the dialog directly [Bug 987169] +# +proc ::tk::dialog::file::Destroyed {w} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + set Priv(selectFilePath) "" +} + +# Gets called when user browses the IconList widget (dragging mouse, arrow +# keys, etc) +# +proc ::tk::dialog::file::ListBrowse {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set text {} + foreach item [::tk::IconList_Curselection $data(icons)] { + lappend text [::tk::IconList_Get $data(icons) $item] + } + if {[llength $text] == 0} { + return + } + if { [llength $text] > 1 } { + set newtext {} + foreach file $text { + set fullfile [::tk::dialog::file::JoinFile $data(selectPath) $file] + if { ![file isdirectory $fullfile] } { + lappend newtext $file + } + } + set text $newtext + set isDir 0 + } else { + set text [lindex $text 0] + set file [::tk::dialog::file::JoinFile $data(selectPath) $text] + set isDir [file isdirectory $file] + } + if {!$isDir} { + $data(ent) delete 0 end + $data(ent) insert 0 $text + + if { [winfo class $w] eq "TkFDialog" } { + if {$data(type) eq "open"} { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } else { + ::tk::SetAmpText $data(okBtn) [mc "&Save"] + } + } + } else { + if { [winfo class $w] eq "TkFDialog" } { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } + } +} + +# Gets called when user invokes the IconList widget (double-click, +# Return key, etc) +# +proc ::tk::dialog::file::ListInvoke {w filenames} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[llength $filenames] == 0} { + return + } + + set file [::tk::dialog::file::JoinFile $data(selectPath) \ + [lindex $filenames 0]] + + set class [winfo class $w] + if {$class eq "TkChooseDir" || [file isdirectory $file]} { + set appPWD [pwd] + if {[catch {cd $file}]} { + tk_messageBox -type ok -parent $w -message \ + "[mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $file]"\ + -icon warning + } else { + cd $appPWD + set data(selectPath) $file + } + } else { + if {$data(-multiple)} { + set data(selectFile) $filenames + } else { + set data(selectFile) $file + } + ::tk::dialog::file::Done $w + } +} + +# ::tk::dialog::file::Done -- +# +# Gets called when user has input a valid filename. Pops up a +# dialog box to confirm selection when necessary. Sets the +# tk::Priv(selectFilePath) variable, which will break the "vwait" +# loop in ::tk::dialog::file:: and return the selected filename to the +# script that calls tk_getOpenFile or tk_getSaveFile +# +proc ::tk::dialog::file::Done {w {selectFilePath ""}} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + if {$selectFilePath eq ""} { + if {$data(-multiple)} { + set selectFilePath {} + foreach f $data(selectFile) { + lappend selectFilePath [::tk::dialog::file::JoinFile \ + $data(selectPath) $f] + } + } else { + set selectFilePath [::tk::dialog::file::JoinFile \ + $data(selectPath) $data(selectFile)] + } + + set Priv(selectFile) $data(selectFile) + set Priv(selectPath) $data(selectPath) + + if {$data(type) eq "save"} { + if {[file exists $selectFilePath]} { + set reply [tk_messageBox -icon warning -type yesno\ + -parent $w -message \ + "[mc "File \"%1\$s\" already exists.\nDo you want to overwrite it?" $selectFilePath]"] + if {$reply eq "no"} { + return + } + } + } + } + bind $data(okBtn) {} + set Priv(selectFilePath) $selectFilePath +} diff --git a/lib/tk8.4/unsupported.tcl b/lib/tk8.4/unsupported.tcl new file mode 100644 index 00000000..72171c34 --- /dev/null +++ b/lib/tk8.4/unsupported.tcl @@ -0,0 +1,297 @@ +# unsupported.tcl -- +# +# Commands provided by Tk without official support. Use them at your +# own risk. They may change or go away without notice. +# +# RCS: @(#) $Id: unsupported.tcl,v 1.4 2002/07/17 16:51:53 rmax Exp $ +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +# ---------------------------------------------------------------------- +# Unsupported compatibility interface for folks accessing Tk's private +# commands and variable against recommended usage. +# ---------------------------------------------------------------------- + +namespace eval ::tk::unsupported { + + # Map from the old global names of Tk private commands to their + # new namespace-encapsulated names. + + variable PrivateCommands + array set PrivateCommands { + tkButtonAutoInvoke ::tk::ButtonAutoInvoke + tkButtonDown ::tk::ButtonDown + tkButtonEnter ::tk::ButtonEnter + tkButtonInvoke ::tk::ButtonInvoke + tkButtonLeave ::tk::ButtonLeave + tkButtonUp ::tk::ButtonUp + tkCancelRepeat ::tk::CancelRepeat + tkCheckRadioDown ::tk::CheckRadioDown + tkCheckRadioEnter ::tk::CheckRadioEnter + tkCheckRadioInvoke ::tk::CheckRadioInvoke + tkColorDialog ::tk::dialog::color:: + tkColorDialog_BuildDialog ::tk::dialog::color::BuildDialog + tkColorDialog_CancelCmd ::tk::dialog::color::CancelCmd + tkColorDialog_Config ::tk::dialog::color::Config + tkColorDialog_CreateSelector ::tk::dialog::color::CreateSelector + tkColorDialog_DrawColorScale ::tk::dialog::color::DrawColorScale + tkColorDialog_EnterColorBar ::tk::dialog::color::EnterColorBar + tkColorDialog_InitValues ::tk::dialog::color::InitValues + tkColorDialog_HandleRGBEntry ::tk::dialog::color::HandleRGBEntry + tkColorDialog_HandleSelEntry ::tk::dialog::color::HandleSelEntry + tkColorDialog_LeaveColorBar ::tk::dialog::color::LeaveColorBar + tkColorDialog_MoveSelector ::tk::dialog::color::MoveSelector + tkColorDialog_OkCmd ::tk::dialog::color::OkCmd + tkColorDialog_RedrawColorBars ::tk::dialog::color::RedrawColorBars + tkColorDialog_RedrawFinalColor ::tk::dialog::color::RedrawFinalColor + tkColorDialog_ReleaseMouse ::tk::dialog::color::ReleaseMouse + tkColorDialog_ResizeColorBars ::tk::dialog::color::ResizeColorBars + tkColorDialog_RgbToX ::tk::dialog::color::RgbToX + tkColorDialog_SetRGBValue ::tk::dialog::color::SetRGBValue + tkColorDialog_StartMove ::tk::dialog::color::StartMove + tkColorDialog_XToRgb ::tk::dialog::color::XToRGB + tkConsoleAbout ::tk::ConsoleAbout + tkConsoleBind ::tk::ConsoleBind + tkConsoleExit ::tk::ConsoleExit + tkConsoleHistory ::tk::ConsoleHistory + tkConsoleInit ::tk::ConsoleInit + tkConsoleInsert ::tk::ConsoleInsert + tkConsoleInvoke ::tk::ConsoleInvoke + tkConsoleOutput ::tk::ConsoleOutput + tkConsolePrompt ::tk::ConsolePrompt + tkConsoleSource ::tk::ConsoleSource + tkDarken ::tk::Darken + tkEntryAutoScan ::tk::EntryAutoScan + tkEntryBackspace ::tk::EntryBackspace + tkEntryButton1 ::tk::EntryButton1 + tkEntryClosestGap ::tk::EntryClosestGap + tkEntryGetSelection ::tk::EntryGetSelection + tkEntryInsert ::tk::EntryInsert + tkEntryKeySelect ::tk::EntryKeySelect + tkEntryMouseSelect ::tk::EntryMouseSelect + tkEntryNextWord ::tk::EntryNextWord + tkEntryPaste ::tk::EntryPaste + tkEntryPreviousWord ::tk::EntryPreviousWord + tkEntrySeeInsert ::tk::EntrySeeInsert + tkEntrySetCursor ::tk::EntrySetCursor + tkEntryTranspose ::tk::EntryTranspose + tkEventMotifBindings ::tk::EventMotifBindings + tkFDGetFileTypes ::tk::FDGetFileTypes + tkFirstMenu ::tk::FirstMenu + tkFocusGroup_BindIn ::tk::FocusGroup_BindIn + tkFocusGroup_BindOut ::tk::FocusGroup_BindOut + tkFocusGroup_Create ::tk::FocusGroup_Create + tkFocusGroup_Destroy ::tk::FocusGroup_Destroy + tkFocusGroup_In ::tk::FocusGroup_In + tkFocusGroup_Out ::tk::FocusGroup_Out + tkFocusOK ::tk::FocusOK + tkGenerateMenuSelect ::tk::GenerateMenuSelect + tkIconList ::tk::IconList + tkIconList_Add ::tk::IconList_Add + tkIconList_Arrange ::tk::IconList_Arrange + tkIconList_AutoScan ::tk::IconList_AutoScan + tkIconList_Btn1 ::tk::IconList_Btn1 + tkIconList_Config ::tk::IconList_Config + tkIconList_Create ::tk::IconList_Create + tkIconList_CtrlBtn1 ::tk::IconList_CtrlBtn1 + tkIconList_Curselection ::tk::IconList_Curselection + tkIconList_DeleteAll ::tk::IconList_DeleteAll + tkIconList_Double1 ::tk::IconList_Double1 + tkIconList_DrawSelection ::tk::IconList_DrawSelection + tkIconList_FocusIn ::tk::IconList_FocusIn + tkIconList_FocusOut ::tk::IconList_FocusOut + tkIconList_Get ::tk::IconList_Get + tkIconList_Goto ::tk::IconList_Goto + tkIconList_Index ::tk::IconList_Index + tkIconList_Invoke ::tk::IconList_Invoke + tkIconList_KeyPress ::tk::IconList_KeyPress + tkIconList_Leave1 ::tk::IconList_Leave1 + tkIconList_LeftRight ::tk::IconList_LeftRight + tkIconList_Motion1 ::tk::IconList_Motion1 + tkIconList_Reset ::tk::IconList_Reset + tkIconList_ReturnKey ::tk::IconList_ReturnKey + tkIconList_See ::tk::IconList_See + tkIconList_Select ::tk::IconList_Select + tkIconList_Selection ::tk::IconList_Selection + tkIconList_ShiftBtn1 ::tk::IconList_ShiftBtn1 + tkIconList_UpDown ::tk::IconList_UpDown + tkListbox ::tk::Listbox + tkListboxAutoScan ::tk::ListboxAutoScan + tkListboxBeginExtend ::tk::ListboxBeginExtend + tkListboxBeginSelect ::tk::ListboxBeginSelect + tkListboxBeginToggle ::tk::ListboxBeginToggle + tkListboxCancel ::tk::ListboxCancel + tkListboxDataExtend ::tk::ListboxDataExtend + tkListboxExtendUpDown ::tk::ListboxExtendUpDown + tkListboxKeyAccel_Goto ::tk::ListboxKeyAccel_Goto + tkListboxKeyAccel_Key ::tk::ListboxKeyAccel_Key + tkListboxKeyAccel_Reset ::tk::ListboxKeyAccel_Reset + tkListboxKeyAccel_Set ::tk::ListboxKeyAccel_Set + tkListboxKeyAccel_Unset ::tk::ListboxKeyAccel_Unxet + tkListboxMotion ::tk::ListboxMotion + tkListboxSelectAll ::tk::ListboxSelectAll + tkListboxUpDown ::tk::ListboxUpDown + tkListboxBeginToggle ::tk::ListboxBeginToggle + tkMbButtonUp ::tk::MbButtonUp + tkMbEnter ::tk::MbEnter + tkMbLeave ::tk::MbLeave + tkMbMotion ::tk::MbMotion + tkMbPost ::tk::MbPost + tkMenuButtonDown ::tk::MenuButtonDown + tkMenuDownArrow ::tk::MenuDownArrow + tkMenuDup ::tk::MenuDup + tkMenuEscape ::tk::MenuEscape + tkMenuFind ::tk::MenuFind + tkMenuFindName ::tk::MenuFindName + tkMenuFirstEntry ::tk::MenuFirstEntry + tkMenuInvoke ::tk::MenuInvoke + tkMenuLeave ::tk::MenuLeave + tkMenuLeftArrow ::tk::MenuLeftArrow + tkMenuMotion ::tk::MenuMotion + tkMenuNextEntry ::tk::MenuNextEntry + tkMenuNextMenu ::tk::MenuNextMenu + tkMenuRightArrow ::tk::MenuRightArrow + tkMenuUnpost ::tk::MenuUnpost + tkMenuUpArrow ::tk::MenuUpArrow + tkMessageBox ::tk::MessageBox + tkMotifFDialog ::tk::MotifFDialog + tkMotifFDialog_ActivateDList ::tk::MotifFDialog_ActivateDList + tkMotifFDialog_ActivateFList ::tk::MotifFDialog_ActivateFList + tkMotifFDialog_ActivateFEnt ::tk::MotifFDialog_ActivateFEnt + tkMotifFDialog_ActivateSEnt ::tk::MotifFDialog_ActivateSEnt + tkMotifFDialog ::tk::MotifFDialog + tkMotifFDialog_BrowseDList ::tk::MotifFDialog_BrowseDList + tkMotifFDialog_BrowseFList ::tk::MotifFDialog_BrowseFList + tkMotifFDialog_BuildUI ::tk::MotifFDialog_BuildUI + tkMotifFDialog_CancelCmd ::tk::MotifFDialog_CancelCmd + tkMotifFDialog_Config ::tk::MotifFDialog_Config + tkMotifFDialog_Create ::tk::MotifFDialog_Create + tkMotifFDialog_FileTypes ::tk::MotifFDialog_FileTypes + tkMotifFDialog_FilterCmd ::tk::MotifFDialog_FilterCmd + tkMotifFDialog_InterpFilter ::tk::MotifFDialog_InterpFilter + tkMotifFDialog_LoadFiles ::tk::MotifFDialog_LoadFiles + tkMotifFDialog_MakeSList ::tk::MotifFDialog_MakeSList + tkMotifFDialog_OkCmd ::tk::MotifFDialog_OkCmd + tkMotifFDialog_SetFilter ::tk::MotifFDialog_SetFilter + tkMotifFDialog_SetListMode ::tk::MotifFDialog_SetListMode + tkMotifFDialog_Update ::tk::MotifFDialog_Update + tkPostOverPoint ::tk::PostOverPoint + tkRecolorTree ::tk::RecolorTree + tkRestoreOldGrab ::tk::RestoreOldGrab + tkSaveGrabInfo ::tk::SaveGrabInfo + tkScaleActivate ::tk::ScaleActivate + tkScaleButtonDown ::tk::ScaleButtonDown + tkScaleButton2Down ::tk::ScaleButton2Down + tkScaleControlPress ::tk::ScaleControlPress + tkScaleDrag ::tk::ScaleDrag + tkScaleEndDrag ::tk::ScaleEndDrag + tkScaleIncrement ::tk::ScaleIncrement + tkScreenChanged ::tk::ScreenChanged + tkScrollButtonDown ::tk::ScrollButtonDown + tkScrollButton2Down ::tk::ScrollButton2Down + tkScrollButtonDrag ::tk::ScrollButtonDrag + tkScrollButtonUp ::tk::ScrollButtonUp + tkScrollByPages ::tk::ScrollByPages + tkScrollByUnits ::tk::ScrollByUnits + tkScrollEndDrag ::tk::ScrollEndDrag + tkScrollSelect ::tk::ScrollSelect + tkScrollStartDrag ::tk::ScrollStartDrag + tkScrollTopBottom ::tk::ScrollTopBottom + tkScrollToPos ::tk::ScrollToPos + tkTabToWindow ::tk::TabToWindow + tkTearOffMenu ::tk::TearOffMenu + tkTextAutoScan ::tk::TextAutoScan + tkTextButton1 ::tk::TextButton1 + tkTextClosestGap ::tk::TextClosestGap + tkTextInsert ::tk::TextInsert + tkTextKeyExtend ::tk::TextKeyExtend + tkTextKeySelect ::tk::TextKeySelect + tkTextNextPara ::tk::TextNextPara + tkTextNextPos ::tk::TextNextPos + tkTextNextWord ::tk::TextNextWord + tkTextPaste ::tk::TextPaste + tkTextPrevPara ::tk::TextPrevPara + tkTextPrevPos ::tk::TextPrevPos + tkTextPrevWord ::tk::TextPrevWord + tkTextResetAnchor ::tk::TextResetAnchor + tkTextScrollPages ::tk::TextScrollPages + tkTextSelectTo ::tk::TextSelectTo + tkTextSetCursor ::tk::TextSetCursor + tkTextTranspose ::tk::TextTranspose + tkTextUpDownLine ::tk::TextUpDownLine + tkTraverseToMenu ::tk::TraverseToMenu + tkTraverseWithinMenu ::tk::TraverseWithinMenu + unsupported1 ::tk::unsupported::MacWindowStyle + } + + # Map from the old global names of Tk private variable to their + # new namespace-encapsulated names. + + variable PrivateVariables + array set PrivateVariables { + droped_to_start ::tk::mac::Droped_to_start + histNum ::tk::HistNum + stub_location ::tk::mac::Stub_location + tkFocusIn ::tk::FocusIn + tkFocusOut ::tk::FocusOut + tkPalette ::tk::Palette + tkPriv ::tk::Priv + tkPrivMsgBox ::tk::PrivMsgBox + } +} + +# ::tk::unsupported::ExposePrivateCommand -- +# +# Expose one of Tk's private commands to be visible under its +# old global name +# +# Arguments: +# cmd Global name by which the command was once known, +# or a glob-style pattern. +# +# Results: +# None. +# +# Side effects: +# The old command name in the global namespace is aliased to the +# new private name. + +proc ::tk::unsupported::ExposePrivateCommand {cmd} { + variable PrivateCommands + set cmds [array get PrivateCommands $cmd] + if {[llength $cmds] == 0} { + return -code error "No compatibility support for \[$cmd]" + } + foreach {old new} $cmds { + namespace eval :: [list interp alias {} $old {}] $new + } +} + +# ::tk::unsupported::ExposePrivateVariable -- +# +# Expose one of Tk's private variables to be visible under its +# old global name +# +# Arguments: +# var Global name by which the variable was once known, +# or a glob-style pattern. +# +# Results: +# None. +# +# Side effects: +# The old variable name in the global namespace is aliased to the +# new private name. + +proc ::tk::unsupported::ExposePrivateVariable {var} { + variable PrivateVariables + set vars [array get PrivateVariables $var] + if {[llength $vars] == 0} { + return -code error "No compatibility support for \$$var" + } + namespace eval ::tk::mac {} + foreach {old new} $vars { + namespace eval :: [list upvar "#0" $new $old] + } +} diff --git a/lib/tk8.4/xmfbox.tcl b/lib/tk8.4/xmfbox.tcl new file mode 100644 index 00000000..953b6e29 --- /dev/null +++ b/lib/tk8.4/xmfbox.tcl @@ -0,0 +1,963 @@ +# xmfbox.tcl -- +# +# Implements the "Motif" style file selection dialog for the +# Unix platform. This implementation is used only if the +# "::tk_strictMotif" flag is set. +# +# RCS: @(#) $Id: xmfbox.tcl,v 1.25.2.3 2006/03/17 10:50:11 patthoyts Exp $ +# +# Copyright (c) 1996 Sun Microsystems, Inc. +# Copyright (c) 1998-2000 Scriptics Corporation +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +namespace eval ::tk::dialog {} +namespace eval ::tk::dialog::file {} + + +# ::tk::MotifFDialog -- +# +# Implements a file dialog similar to the standard Motif file +# selection box. +# +# Arguments: +# type "open" or "save" +# args Options parsed by the procedure. +# +# Results: +# When -multiple is set to 0, this returns the absolute pathname +# of the selected file. (NOTE: This is not the same as a single +# element list.) +# +# When -multiple is set to > 0, this returns a Tcl list of absolute +# pathnames. The argument for -multiple is ignored, but for consistency +# with Windows it defines the maximum amount of memory to allocate for +# the returned filenames. + +proc ::tk::MotifFDialog {type args} { + variable ::tk::Priv + set dataName __tk_filedialog + upvar ::tk::dialog::file::$dataName data + + set w [MotifFDialog_Create $dataName $type $args] + + # Set a grab and claim the focus too. + + ::tk::SetFocusGrab $w $data(sEnt) + $data(sEnt) selection range 0 end + + # Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(selectFilePath) + set result $Priv(selectFilePath) + ::tk::RestoreFocusGrab $w $data(sEnt) withdraw + + return $result +} + +# ::tk::MotifFDialog_Create -- +# +# Creates the Motif file dialog (if it doesn't exist yet) and +# initialize the internal data structure associated with the +# dialog. +# +# This procedure is used by ::tk::MotifFDialog to create the +# dialog. It's also used by the test suite to test the Motif +# file dialog implementation. User code shouldn't call this +# procedure directly. +# +# Arguments: +# dataName Name of the global "data" array for the file dialog. +# type "Save" or "Open" +# argList Options parsed by the procedure. +# +# Results: +# Pathname of the file dialog. + +proc ::tk::MotifFDialog_Create {dataName type argList} { + upvar ::tk::dialog::file::$dataName data + + MotifFDialog_Config $dataName $type $argList + + if {$data(-parent) eq "."} { + set w .$dataName + } else { + set w $data(-parent).$dataName + } + + # (re)create the dialog box if necessary + # + if {![winfo exists $w]} { + MotifFDialog_BuildUI $w + } elseif {[winfo class $w] ne "TkMotifFDialog"} { + destroy $w + MotifFDialog_BuildUI $w + } else { + set data(fEnt) $w.top.f1.ent + set data(dList) $w.top.f2.a.l + set data(fList) $w.top.f2.b.l + set data(sEnt) $w.top.f3.ent + set data(okBtn) $w.bot.ok + set data(filterBtn) $w.bot.filter + set data(cancelBtn) $w.bot.cancel + } + MotifFDialog_SetListMode $w + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + + if {[winfo viewable [winfo toplevel $data(-parent)]] } { + wm transient $w $data(-parent) + } + + MotifFDialog_FileTypes $w + MotifFDialog_Update $w + + # Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display (Motif style) and de-iconify it. + + ::tk::PlaceWindow $w + wm title $w $data(-title) + + return $w +} + +# ::tk::MotifFDialog_FileTypes -- +# +# Checks the -filetypes option. If present this adds a list of radio- +# buttons to pick the file types from. +# +# Arguments: +# w Pathname of the tk_get*File dialogue. +# +# Results: +# none + +proc ::tk::MotifFDialog_FileTypes {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set f $w.top.f3.types + destroy $f + + # No file types: use "*" as the filter and display no radio-buttons + if {$data(-filetypes) eq ""} { + set data(filter) * + return + } + + # The filetypes radiobuttons + # set data(fileType) $data(-defaulttype) + set data(fileType) 0 + + MotifFDialog_SetFilter $w [lindex $data(-filetypes) $data(fileType)] + + #don't produce radiobuttons for only one filetype + if {[llength $data(-filetypes)] == 1} { + return + } + + frame $f + set cnt 0 + if {$data(-filetypes) ne ""} { + foreach type $data(-filetypes) { + set title [lindex [lindex $type 0] 0] + set filter [lindex $type 1] + radiobutton $f.b$cnt \ + -text $title \ + -variable ::tk::dialog::file::[winfo name $w](fileType) \ + -value $cnt \ + -command "[list tk::MotifFDialog_SetFilter $w $type]" + pack $f.b$cnt -side left + incr cnt + } + } + $f.b$data(fileType) invoke + + pack $f -side bottom -fill both + + return +} + +# This proc gets called whenever data(filter) is set +# +proc ::tk::MotifFDialog_SetFilter {w type} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + set data(filter) [lindex $type 1] + set Priv(selectFileType) [lindex [lindex $type 0] 0] + + MotifFDialog_Update $w +} + +# ::tk::MotifFDialog_Config -- +# +# Iterates over the optional arguments to determine the option +# values for the Motif file dialog; gives default values to +# unspecified options. +# +# Arguments: +# dataName The name of the global variable in which +# data for the file dialog is stored. +# type "Save" or "Open" +# argList Options parsed by the procedure. + +proc ::tk::MotifFDialog_Config {dataName type argList} { + upvar ::tk::dialog::file::$dataName data + + set data(type) $type + + # 1: the configuration specs + # + set specs { + {-defaultextension "" "" ""} + {-filetypes "" "" ""} + {-initialdir "" "" ""} + {-initialfile "" "" ""} + {-parent "" "" "."} + {-title "" "" ""} + } + if { $type eq "open" } { + lappend specs {-multiple "" "" "0"} + } + + set data(-multiple) 0 + # 2: default values depending on the type of the dialog + # + if {![info exists data(selectPath)]} { + # first time the dialog has been popped up + set data(selectPath) [pwd] + set data(selectFile) "" + } + + # 3: parse the arguments + # + tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList + + if {$data(-title) eq ""} { + if {$type eq "open"} { + if {$data(-multiple) != 0} { + set data(-title) "[mc {Open Multiple Files}]" + } else { + set data(-title) [mc "Open"] + } + } else { + set data(-title) [mc "Save As"] + } + } + + # 4: set the default directory and selection according to the -initial + # settings + # + if {$data(-initialdir) ne ""} { + if {[file isdirectory $data(-initialdir)]} { + set data(selectPath) [lindex [glob $data(-initialdir)] 0] + } else { + set data(selectPath) [pwd] + } + + # Convert the initialdir to an absolute path name. + + set old [pwd] + cd $data(selectPath) + set data(selectPath) [pwd] + cd $old + } + set data(selectFile) $data(-initialfile) + + # 5. Parse the -filetypes option. It is not used by the motif + # file dialog, but we check for validity of the value to make sure + # the application code also runs fine with the TK file dialog. + # + set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] + + if {![info exists data(filter)]} { + set data(filter) * + } + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } +} + +# ::tk::MotifFDialog_BuildUI -- +# +# Builds the UI components of the Motif file dialog. +# +# Arguments: +# w Pathname of the dialog to build. +# +# Results: +# None. + +proc ::tk::MotifFDialog_BuildUI {w} { + set dataName [lindex [split $w .] end] + upvar ::tk::dialog::file::$dataName data + + # Create the dialog toplevel and internal frames. + # + toplevel $w -class TkMotifFDialog + set top [frame $w.top -relief raised -bd 1] + set bot [frame $w.bot -relief raised -bd 1] + + pack $w.bot -side bottom -fill x + pack $w.top -side top -expand yes -fill both + + set f1 [frame $top.f1] + set f2 [frame $top.f2] + set f3 [frame $top.f3] + + pack $f1 -side top -fill x + pack $f3 -side bottom -fill x + pack $f2 -expand yes -fill both + + set f2a [frame $f2.a] + set f2b [frame $f2.b] + + grid $f2a -row 0 -column 0 -rowspan 1 -columnspan 1 -padx 4 -pady 4 \ + -sticky news + grid $f2b -row 0 -column 1 -rowspan 1 -columnspan 1 -padx 4 -pady 4 \ + -sticky news + grid rowconfigure $f2 0 -minsize 0 -weight 1 + grid columnconfigure $f2 0 -minsize 0 -weight 1 + grid columnconfigure $f2 1 -minsize 150 -weight 2 + + # The Filter box + # + bind [::tk::AmpWidget label $f1.lab -text [mc "Fil&ter:"] -anchor w] \ + <> [list focus $f1.ent] + entry $f1.ent + pack $f1.lab -side top -fill x -padx 6 -pady 4 + pack $f1.ent -side top -fill x -padx 4 -pady 0 + set data(fEnt) $f1.ent + + # The file and directory lists + # + set data(dList) [MotifFDialog_MakeSList $w $f2a \ + [mc "&Directory:"] DList] + set data(fList) [MotifFDialog_MakeSList $w $f2b \ + [mc "Fi&les:"] FList] + + # The Selection box + # + bind [::tk::AmpWidget label $f3.lab -text [mc "&Selection:"] -anchor w] \ + <> [list focus $f3.ent] + entry $f3.ent + pack $f3.lab -side top -fill x -padx 6 -pady 0 + pack $f3.ent -side top -fill x -padx 4 -pady 4 + set data(sEnt) $f3.ent + + # The buttons + # + set maxWidth [::tk::mcmaxamp &OK &Filter &Cancel] + set maxWidth [expr {$maxWidth<6?6:$maxWidth}] + set data(okBtn) [::tk::AmpWidget button $bot.ok -text [mc "&OK"] \ + -width $maxWidth \ + -command [list tk::MotifFDialog_OkCmd $w]] + set data(filterBtn) [::tk::AmpWidget button $bot.filter -text [mc "&Filter"] \ + -width $maxWidth \ + -command [list tk::MotifFDialog_FilterCmd $w]] + set data(cancelBtn) [::tk::AmpWidget button $bot.cancel -text [mc "&Cancel"] \ + -width $maxWidth \ + -command [list tk::MotifFDialog_CancelCmd $w]] + + pack $bot.ok $bot.filter $bot.cancel -padx 10 -pady 10 -expand yes \ + -side left + + # Create the bindings: + # + bind $w [list ::tk::AltKeyInDialog $w %A] + + bind $data(fEnt) [list tk::MotifFDialog_ActivateFEnt $w] + bind $data(sEnt) [list tk::MotifFDialog_ActivateSEnt $w] + bind $w [list tk::MotifFDialog_CancelCmd $w] + bind $w.bot {set ::tk::Priv(selectFilePath) {}} + + wm protocol $w WM_DELETE_WINDOW [list tk::MotifFDialog_CancelCmd $w] +} + +proc ::tk::MotifFDialog_SetListMode {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {$data(-multiple) != 0} { + set selectmode extended + } else { + set selectmode browse + } + set f $w.top.f2.b + $f.l configure -selectmode $selectmode +} + +# ::tk::MotifFDialog_MakeSList -- +# +# Create a scrolled-listbox and set the keyboard accelerator +# bindings so that the list selection follows what the user +# types. +# +# Arguments: +# w Pathname of the dialog box. +# f Frame widget inside which to create the scrolled +# listbox. This frame widget already exists. +# label The string to display on top of the listbox. +# under Sets the -under option of the label. +# cmdPrefix Specifies procedures to call when the listbox is +# browsed or activated. + +proc ::tk::MotifFDialog_MakeSList {w f label cmdPrefix} { + bind [::tk::AmpWidget label $f.lab -text $label -anchor w] \ + <> [list focus $f.l] + listbox $f.l -width 12 -height 5 -exportselection 0\ + -xscrollcommand [list $f.h set] -yscrollcommand [list $f.v set] + scrollbar $f.v -orient vertical -takefocus 0 -command [list $f.l yview] + scrollbar $f.h -orient horizontal -takefocus 0 -command [list $f.l xview] + grid $f.lab -row 0 -column 0 -sticky news -rowspan 1 -columnspan 2 \ + -padx 2 -pady 2 + grid $f.l -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news + grid $f.v -row 1 -column 1 -rowspan 1 -columnspan 1 -sticky news + grid $f.h -row 2 -column 0 -rowspan 1 -columnspan 1 -sticky news + + grid rowconfigure $f 0 -weight 0 -minsize 0 + grid rowconfigure $f 1 -weight 1 -minsize 0 + grid columnconfigure $f 0 -weight 1 -minsize 0 + + # bindings for the listboxes + # + set list $f.l + bind $list <> [list tk::MotifFDialog_Browse$cmdPrefix $w] + bind $list \ + [list tk::MotifFDialog_Activate$cmdPrefix $w] + bind $list "tk::MotifFDialog_Browse$cmdPrefix [list $w]; \ + tk::MotifFDialog_Activate$cmdPrefix [list $w]" + + bindtags $list [list Listbox $list [winfo toplevel $list] all] + ListBoxKeyAccel_Set $list + + return $f.l +} + +# ::tk::MotifFDialog_InterpFilter -- +# +# Interpret the string in the filter entry into two components: +# the directory and the pattern. If the string is a relative +# pathname, give a warning to the user and restore the pattern +# to original. +# +# Arguments: +# w pathname of the dialog box. +# +# Results: +# A list of two elements. The first element is the directory +# specified # by the filter. The second element is the filter +# pattern itself. + +proc ::tk::MotifFDialog_InterpFilter {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set text [string trim [$data(fEnt) get]] + + # Perform tilde substitution + # + set badTilde 0 + if {[string index $text 0] eq "~"} { + set list [file split $text] + set tilde [lindex $list 0] + if {[catch {set tilde [glob $tilde]}]} { + set badTilde 1 + } else { + set text [eval file join [concat $tilde [lrange $list 1 end]]] + } + } + + # If the string is a relative pathname, combine it + # with the current selectPath. + + set relative 0 + if {[file pathtype $text] eq "relative"} { + set relative 1 + } elseif {$badTilde} { + set relative 1 + } + + if {$relative} { + tk_messageBox -icon warning -type ok \ + -message "\"$text\" must be an absolute pathname" + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + $data(filter)] + + return [list $data(selectPath) $data(filter)] + } + + set resolved [::tk::dialog::file::JoinFile [file dirname $text] [file tail $text]] + + if {[file isdirectory $resolved]} { + set dir $resolved + set fil $data(filter) + } else { + set dir [file dirname $resolved] + set fil [file tail $resolved] + } + + return [list $dir $fil] +} + +# ::tk::MotifFDialog_Update +# +# Load the files and synchronize the "filter" and "selection" fields +# boxes. +# +# Arguments: +# w pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_Update {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 \ + [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)] + $data(sEnt) delete 0 end + $data(sEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + $data(selectFile)] + + MotifFDialog_LoadFiles $w +} + +# ::tk::MotifFDialog_LoadFiles -- +# +# Loads the files and directories into the two listboxes according +# to the filter setting. +# +# Arguments: +# w pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_LoadFiles {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + $data(dList) delete 0 end + $data(fList) delete 0 end + + set appPWD [pwd] + if {[catch {cd $data(selectPath)}]} { + cd $appPWD + + $data(dList) insert end ".." + return + } + + # Make the dir and file lists + # + # For speed we only have one glob, which reduces the file system + # calls (good for slow NFS networks). + # + # We also do two smaller sorts (files + dirs) instead of one large sort, + # which gives a small speed increase. + # + set top 0 + set dlist "" + set flist "" + foreach f [glob -nocomplain .* *] { + if {[file isdir ./$f]} { + lappend dlist $f + } else { + foreach pat $data(filter) { + if {[string match $pat $f]} { + if {[string match .* $f]} { + incr top + } + lappend flist $f + break + } + } + } + } + eval [list $data(dList) insert end] [lsort -dictionary $dlist] + eval [list $data(fList) insert end] [lsort -dictionary $flist] + + # The user probably doesn't want to see the . files. We adjust the view + # so that the listbox displays all the non-dot files + $data(fList) yview $top + + cd $appPWD +} + +# ::tk::MotifFDialog_BrowseDList -- +# +# This procedure is called when the directory list is browsed +# (clicked-over) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_BrowseDList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + focus $data(dList) + if {[$data(dList) curselection] eq ""} { + return + } + set subdir [$data(dList) get [$data(dList) curselection]] + if {$subdir eq ""} { + return + } + + $data(fList) selection clear 0 end + + set list [MotifFDialog_InterpFilter $w] + set data(filter) [lindex $list 1] + + switch -- $subdir { + . { + set newSpec [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)] + } + .. { + set newSpec [::tk::dialog::file::JoinFile [file dirname $data(selectPath)] \ + $data(filter)] + } + default { + set newSpec [::tk::dialog::file::JoinFile [::tk::dialog::file::JoinFile \ + $data(selectPath) $subdir] $data(filter)] + } + } + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 $newSpec +} + +# ::tk::MotifFDialog_ActivateDList -- +# +# This procedure is called when the directory list is activated +# (double-clicked) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateDList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(dList) curselection] eq ""} { + return + } + set subdir [$data(dList) get [$data(dList) curselection]] + if {$subdir eq ""} { + return + } + + $data(fList) selection clear 0 end + + switch -- $subdir { + . { + set newDir $data(selectPath) + } + .. { + set newDir [file dirname $data(selectPath)] + } + default { + set newDir [::tk::dialog::file::JoinFile $data(selectPath) $subdir] + } + } + + set data(selectPath) $newDir + MotifFDialog_Update $w + + if {$subdir ne ".."} { + $data(dList) selection set 0 + $data(dList) activate 0 + } else { + $data(dList) selection set 1 + $data(dList) activate 1 + } +} + +# ::tk::MotifFDialog_BrowseFList -- +# +# This procedure is called when the file list is browsed +# (clicked-over) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_BrowseFList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + focus $data(fList) + set data(selectFile) "" + foreach item [$data(fList) curselection] { + lappend data(selectFile) [$data(fList) get $item] + } + if {[llength $data(selectFile)] == 0} { + return + } + + $data(dList) selection clear 0 end + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + $data(filter)] + $data(fEnt) xview end + + # if it's a multiple selection box, just put in the filenames + # otherwise put in the full path as usual + $data(sEnt) delete 0 end + if {$data(-multiple) != 0} { + $data(sEnt) insert 0 $data(selectFile) + } else { + $data(sEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + [lindex $data(selectFile) 0]] + } + $data(sEnt) xview end +} + +# ::tk::MotifFDialog_ActivateFList -- +# +# This procedure is called when the file list is activated +# (double-clicked) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateFList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(fList) curselection] eq ""} { + return + } + set data(selectFile) [$data(fList) get [$data(fList) curselection]] + if {$data(selectFile) eq ""} { + return + } else { + MotifFDialog_ActivateSEnt $w + } +} + +# ::tk::MotifFDialog_ActivateFEnt -- +# +# This procedure is called when the user presses Return inside +# the "filter" entry. It updates the dialog according to the +# text inside the filter entry. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateFEnt {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set list [MotifFDialog_InterpFilter $w] + set data(selectPath) [lindex $list 0] + set data(filter) [lindex $list 1] + + MotifFDialog_Update $w +} + +# ::tk::MotifFDialog_ActivateSEnt -- +# +# This procedure is called when the user presses Return inside +# the "selection" entry. It sets the ::tk::Priv(selectFilePath) +# variable so that the vwait loop in tk::MotifFDialog will be +# terminated. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateSEnt {w} { + variable ::tk::Priv + upvar ::tk::dialog::file::[winfo name $w] data + + set selectFilePath [string trim [$data(sEnt) get]] + + if {$selectFilePath eq ""} { + MotifFDialog_FilterCmd $w + return + } + + if {$data(-multiple) == 0} { + set selectFilePath [list $selectFilePath] + } + + if {[file isdirectory [lindex $selectFilePath 0]]} { + set data(selectPath) [lindex [glob $selectFilePath] 0] + set data(selectFile) "" + MotifFDialog_Update $w + return + } + + set newFileList "" + foreach item $selectFilePath { + if {[file pathtype $item] ne "absolute"} { + set item [file join $data(selectPath) $item] + } elseif {![file exists [file dirname $item]]} { + tk_messageBox -icon warning -type ok \ + -message [mc {Directory "%1$s" does not exist.} \ + [file dirname $item]] + return + } + + if {![file exists $item]} { + if {$data(type) eq "open"} { + tk_messageBox -icon warning -type ok \ + -message [mc {File "%1$s" does not exist.} $item] + return + } + } else { + if {$data(type) eq "save"} { + set message [format %s%s \ + [mc "File \"%1\$s\" already exists.\n\n" \ + $selectFilePath] \ + [mc {Replace existing file?}]] + set answer [tk_messageBox -icon warning -type yesno \ + -message $message] + if {$answer eq "no"} { + return + } + } + } + + lappend newFileList $item + } + + if {$data(-multiple) != 0} { + set Priv(selectFilePath) $newFileList + } else { + set Priv(selectFilePath) [lindex $newFileList 0] + } + + # Set selectFile and selectPath to first item in list + set Priv(selectFile) [file tail [lindex $newFileList 0]] + set Priv(selectPath) [file dirname [lindex $newFileList 0]] +} + + +proc ::tk::MotifFDialog_OkCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + MotifFDialog_ActivateSEnt $w +} + +proc ::tk::MotifFDialog_FilterCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + MotifFDialog_ActivateFEnt $w +} + +proc ::tk::MotifFDialog_CancelCmd {w} { + variable ::tk::Priv + + set Priv(selectFilePath) "" + set Priv(selectFile) "" + set Priv(selectPath) "" +} + +proc ::tk::ListBoxKeyAccel_Set {w} { + bind Listbox "" + bind $w [list tk::ListBoxKeyAccel_Unset $w] + bind $w [list tk::ListBoxKeyAccel_Key $w %A] +} + +proc ::tk::ListBoxKeyAccel_Unset {w} { + variable ::tk::Priv + + catch {after cancel $Priv(lbAccel,$w,afterId)} + unset -nocomplain Priv(lbAccel,$w) Priv(lbAccel,$w,afterId) +} + +# ::tk::ListBoxKeyAccel_Key-- +# +# This procedure maintains a list of recently entered keystrokes +# over a listbox widget. It arranges an idle event to move the +# selection of the listbox to the entry that begins with the +# keystrokes. +# +# Arguments: +# w The pathname of the listbox. +# key The key which the user just pressed. +# +# Results: +# None. + +proc ::tk::ListBoxKeyAccel_Key {w key} { + variable ::tk::Priv + + if { $key eq "" } { + return + } + append Priv(lbAccel,$w) $key + ListBoxKeyAccel_Goto $w $Priv(lbAccel,$w) + catch { + after cancel $Priv(lbAccel,$w,afterId) + } + set Priv(lbAccel,$w,afterId) [after 500 \ + [list tk::ListBoxKeyAccel_Reset $w]] +} + +proc ::tk::ListBoxKeyAccel_Goto {w string} { + variable ::tk::Priv + + set string [string tolower $string] + set end [$w index end] + set theIndex -1 + + for {set i 0} {$i < $end} {incr i} { + set item [string tolower [$w get $i]] + if {[string compare $string $item] >= 0} { + set theIndex $i + } + if {[string compare $string $item] <= 0} { + set theIndex $i + break + } + } + + if {$theIndex >= 0} { + $w selection clear 0 end + $w selection set $theIndex $theIndex + $w activate $theIndex + $w see $theIndex + event generate $w <> + } +} + +proc ::tk::ListBoxKeyAccel_Reset {w} { + variable ::tk::Priv + + unset -nocomplain Priv(lbAccel,$w) +} + +proc ::tk_getFileType {} { + variable ::tk::Priv + + return $Priv(selectFileType) +} + diff --git a/lib/tkConfig.sh b/lib/tkConfig.sh new file mode 100644 index 00000000..d1b1b98f --- /dev/null +++ b/lib/tkConfig.sh @@ -0,0 +1,87 @@ +# tkConfig.sh -- +# +# This shell script (for sh) is generated automatically by Tk's +# configure script. It will create shell variables for most of +# the configuration options discovered by the configure script. +# This script is intended to be included by the configure scripts +# for Tk extensions so that they don't have to figure this all +# out for themselves. This file does not duplicate information +# already provided by tclConfig.sh, so you may need to use that +# file in addition to this one. +# +# The information in this file is specific to a single platform. +# +# RCS: @(#) $Id: tkConfig.sh.in,v 1.2 2001/10/15 21:19:16 hobbs Exp $ + +# Tk's version number. +TK_VERSION='8.4' +TK_MAJOR_VERSION='8' +TK_MINOR_VERSION='4' +TK_PATCH_LEVEL='.14' + +# -D flags for use with the C compiler. +TK_DEFS=' ' + +# Flag, 1: we built a shared lib, 0 we didn't +TK_SHARED_BUILD=1 + +# This indicates if Tk was build with debugging symbols +TK_DBGX= + +# The name of the Tk library (may be either a .a file or a shared library): +TK_LIB_FILE='libtk84.a' + +# Additional libraries to use when linking Tk. +TK_LIBS=' -lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32' + +# Top-level directory in which Tcl's platform-independent files are +# installed. +TK_PREFIX='/home/lilydev/vc/gub/target/mingw/gubfiles/install/tcltk-8.4.14-root/usr' + +# Top-level directory in which Tcl's platform-specific files (e.g. +# executables) are installed. +TK_EXEC_PREFIX='/home/lilydev/vc/gub/target/mingw/gubfiles/install/tcltk-8.4.14-root/usr' + +# -l flag to pass to the linker to pick up the Tcl library +TK_LIB_FLAG='-ltk84' + +# String to pass to linker to pick up the Tk library from its +# build directory. +TK_BUILD_LIB_SPEC='-L/home/lilydev/vc/gub/target/mingw/gubfiles/build/tcltk-8.4.14/tk -ltk84' + +# String to pass to linker to pick up the Tk library from its +# installed directory. +TK_LIB_SPEC='-L/home/lilydev/vc/gub/target/mingw/gubfiles/install/tcltk-8.4.14-root/usr/lib -ltk84' + +# Location of the top-level source directory from which Tk was built. +# This is the directory that contains a README file as well as +# subdirectories such as generic, unix, etc. If Tk was compiled in a +# different place than the directory containing the source files, this +# points to the location of the sources, not the location where Tk was +# compiled. +TK_SRC_DIR='/home/lilydev/vc/gub/target/mingw/gubfiles/src/tcltk-8.4.14/tk' + +# Needed if you want to make a 'fat' shared library library +# containing tk objects or link a different wish. +TK_CC_SEARCH_FLAGS='' +TK_LD_SEARCH_FLAGS='' + +# The name of the Tk stub library (.a): +TK_STUB_LIB_FILE='libtkstub84.a' + +# -l flag to pass to the linker to pick up the Tk stub library +TK_STUB_LIB_FLAG='-ltkstub84' + +# String to pass to linker to pick up the Tk stub library from its +# build directory. +TK_BUILD_STUB_LIB_SPEC='-L/home/lilydev/vc/gub/target/mingw/gubfiles/build/tcltk-8.4.14/tk -ltkstub84' + +# String to pass to linker to pick up the Tk stub library from its +# installed directory. +TK_STUB_LIB_SPEC='-L/home/lilydev/vc/gub/target/mingw/gubfiles/install/tcltk-8.4.14-root/usr/lib -ltkstub84' + +# Path to the Tk stub library in the build directory. +TK_BUILD_STUB_LIB_PATH='/home/lilydev/vc/gub/target/mingw/gubfiles/build/tcltk-8.4.14/tk/libtkstub84.a' + +# Path to the Tk stub library in the install directory. +TK_STUB_LIB_PATH='/home/lilydev/vc/gub/target/mingw/gubfiles/install/tcltk-8.4.14-root/usr/lib/libtkstub84.a' -- 2.11.4.GIT