| 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 |