[37] | 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 |
---|