1 | # unicodeout.tcl -- |
---|
2 | # |
---|
3 | # This demonstration script shows how you can produce output (in label |
---|
4 | # widgets) using many different alphabets. |
---|
5 | # |
---|
6 | # RCS: @(#) $Id: unicodeout.tcl,v 1.2 2003/02/21 13:05:06 dkf Exp $ |
---|
7 | |
---|
8 | if {![info exists widgetDemo]} { |
---|
9 | error "This script should be run from the \"widget\" demo." |
---|
10 | } |
---|
11 | |
---|
12 | set w .unicodeout |
---|
13 | catch {destroy $w} |
---|
14 | toplevel $w |
---|
15 | wm title $w "Unicode Label Demonstration" |
---|
16 | wm iconname $w "unicodeout" |
---|
17 | positionWindow $w |
---|
18 | |
---|
19 | label $w.msg -font $font -wraplength 4i -justify left \ |
---|
20 | -text "This is a sample of Tk's support for languages that use\ |
---|
21 | non-Western character sets. However, what you will actually see\ |
---|
22 | below depends largely on what character sets you have installed,\ |
---|
23 | and what you see for characters that are not present varies greatly\ |
---|
24 | between platforms as well. The strings are written in Tcl using\ |
---|
25 | UNICODE characters using the \\uXXXX escape so as to do so in a\ |
---|
26 | portable fashion." |
---|
27 | pack $w.msg -side top |
---|
28 | |
---|
29 | frame $w.buttons |
---|
30 | pack $w.buttons -side bottom -fill x -pady 2m |
---|
31 | button $w.buttons.dismiss -text Dismiss -command "destroy $w" |
---|
32 | button $w.buttons.code -text "See Code" -command "showCode $w" |
---|
33 | pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 |
---|
34 | |
---|
35 | pack [label $w.wait -text "Please wait while loading fonts..." \ |
---|
36 | -font {Helvetica 12 italic}] |
---|
37 | pack [frame $w.f] -expand 1 -fill both -padx 2m -pady 1m |
---|
38 | grid columnconfigure $w.f 1 -weight 1 |
---|
39 | |
---|
40 | set i 0 |
---|
41 | proc addSample {w language args} { |
---|
42 | global font i |
---|
43 | set sample [join $args ""] |
---|
44 | set j [incr i] |
---|
45 | label $w.f.l$j -font $font -text "${language}:" -anchor nw -pady 0 |
---|
46 | label $w.f.s$j -font $font -text $sample -anchor nw -width 30 -pady 0 |
---|
47 | grid $w.f.l$j $w.f.s$j -sticky ew -pady 0 |
---|
48 | grid configure $w.f.l$j -padx 1m |
---|
49 | } |
---|
50 | |
---|
51 | # Processing when some characters are missing might take a while, so make |
---|
52 | # sure we're displaying something in the meantime... |
---|
53 | |
---|
54 | set oldCursor [$w cget -cursor] |
---|
55 | $w conf -cursor watch |
---|
56 | update |
---|
57 | |
---|
58 | addSample $w Arabic \ |
---|
59 | "\uFE94\uFEF4\uFE91\uFEAE\uFECC\uFEDF\uFE8D\uFE94" \ |
---|
60 | "\uFEE4\uFEE0\uFEDC\uFEDF\uFE8D" |
---|
61 | addSample $w "Trad. Chinese" "\u4E2D\u570B\u7684\u6F22\u5B57" |
---|
62 | addSample $w "Simpl. Chinese" "\u6C49\u8BED" |
---|
63 | addSample $w Greek \ |
---|
64 | "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AE " \ |
---|
65 | "\u03B3\u03BB\u03CE\u03C3\u03C3\u03B1" |
---|
66 | addSample $w Hebrew \ |
---|
67 | "\u05DD\u05D9\u05DC\u05E9\u05D5\u05E8\u05D9 " \ |
---|
68 | "\u05DC\u05D9\u05D0\u05E8\u05E9\u05D9" |
---|
69 | addSample $w Japanese \ |
---|
70 | "\u65E5\u672C\u8A9E\u306E\u3072\u3089\u304C\u306A, " \ |
---|
71 | "\u6F22\u5B57\u3068\u30AB\u30BF\u30AB\u30CA" |
---|
72 | addSample $w Korean "\uB300\uD55C\uBBFC\uAD6D\uC758 \uD55C\uAE00" |
---|
73 | addSample $w Russian \ |
---|
74 | "\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A" |
---|
75 | |
---|
76 | # We're done processing, so change things back to normal running... |
---|
77 | destroy $w.wait |
---|
78 | $w conf -cursor $oldCursor |
---|