diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-10-17 19:50:58 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-10-17 19:50:58 (GMT) |
commit | 9b7a6c3507ea3383c60aaecb29f873c9b590ccca (patch) | |
tree | 82ce31ebd8f46803d969034f5aa3db8d7974493c /tk8.6/library/demos/unicodeout.tcl | |
parent | 87fca7325b97005eb44dcf3e198277640af66115 (diff) | |
download | blt-9b7a6c3507ea3383c60aaecb29f873c9b590ccca.zip blt-9b7a6c3507ea3383c60aaecb29f873c9b590ccca.tar.gz blt-9b7a6c3507ea3383c60aaecb29f873c9b590ccca.tar.bz2 |
rm tcl/tk 8.6.7
Diffstat (limited to 'tk8.6/library/demos/unicodeout.tcl')
-rw-r--r-- | tk8.6/library/demos/unicodeout.tcl | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/tk8.6/library/demos/unicodeout.tcl b/tk8.6/library/demos/unicodeout.tcl deleted file mode 100644 index faa9f90..0000000 --- a/tk8.6/library/demos/unicodeout.tcl +++ /dev/null @@ -1,137 +0,0 @@ -# unicodeout.tcl -- -# -# This demonstration script shows how you can produce output (in label -# widgets) using many different alphabets. - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -package require Tk - -set w .unicodeout -catch {destroy $w} -toplevel $w -wm title $w "Unicode Label Demonstration" -wm iconname $w "unicodeout" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -anchor w -justify left \ - -text "This is a sample of Tk's support for languages that use\ - non-Western character sets. However, what you will actually see\ - below depends largely on what character sets you have installed,\ - and what you see for characters that are not present varies greatly\ - between platforms as well. The strings are written in Tcl using\ - UNICODE characters using the \\uXXXX escape so as to do so in a\ - portable fashion." -pack $w.msg -side top - -## See Code / Dismiss buttons -set btns [addSeeDismiss $w.buttons $w] -pack $btns -side bottom -fill x - -## The frame that will contain the sample texts. -pack [frame $w.f] -side bottom -expand 1 -fill both -padx 2m -pady 1m -grid columnconfigure $w.f 1 -weight 1 -set i 0 -proc addSample {w language args} { - global font i - set sample [join $args ""] - set j [incr i] - label $w.f.l$j -font $font -text "${language}:" -anchor nw -pady 0 - label $w.f.s$j -font $font -text $sample -anchor nw -width 30 -pady 0 - grid $w.f.l$j $w.f.s$j -sticky ew -pady 0 - grid configure $w.f.l$j -padx 1m -} - -## A helper procedure that determines what form to use to express languages -## that have complex rendering rules... -proc usePresentationFormsFor {language} { - switch [tk windowingsystem] { - aqua { - # OSX wants natural character order; the renderer knows how to - # compose things for display for all languages. - return false - } - x11 { - # The X11 font renderers that Tk supports all know nothing about - # composing characters, so we need to use presentation forms. - return true - } - win32 { - # On Windows, we need to determine whether the font system will - # render right-to-left text. This varies by language! - try { - package require registry - set rkey [join { - HKEY_LOCAL_MACHINE - SOFTWARE - Microsoft - {Windows NT} - CurrentVersion - LanguagePack - } \\] - return [expr { - [string toupper $language] ni [registry values $rkey] - }] - } trap error {} { - # Cannot work it out, so use presentation forms. - return true - } - } - default { - # Default to using presentation forms. - return true - } - } -} - -## Processing when some characters are not currently cached by the display -## engine might take a while, so make sure we're displaying something in the -## meantime... -pack [label $w.wait -text "Please wait while loading fonts..." \ - -font {Helvetica 12 italic}] -set oldCursor [$w cget -cursor] -$w conf -cursor watch -update - -## Add the samples... -if {[usePresentationFormsFor Arabic]} { - # Using presentation forms (pre-layouted) - addSample $w Arabic \ - "\uFE94\uFEF4\uFE91\uFEAE\uFECC\uFEDF\uFE8D " \ - "\uFE94\uFEE4\uFEE0\uFEDC\uFEDF\uFE8D" -} else { - # Using standard text characters - addSample $w Arabic \ - "\u0627\u0644\u0643\u0644\u0645\u0629 " \ - "\u0627\u0644\u0639\u0631\u0628\u064A\u0629" -} -addSample $w "Trad. Chinese" "\u4E2D\u570B\u7684\u6F22\u5B57" -addSample $w "Simpl. Chinese" "\u6C49\u8BED" -addSample $w French "Langue fran\u00E7aise" -addSample $w Greek \ - "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AE " \ - "\u03B3\u03BB\u03CE\u03C3\u03C3\u03B1" -if {[usePresentationFormsFor Hebrew]} { - # Visual order (pre-layouted) - addSample $w Hebrew \ - "\u05EA\u05D9\u05E8\u05D1\u05E2 \u05D1\u05EA\u05DB" -} else { - # Standard logical order - addSample $w Hebrew \ - "\u05DB\u05EA\u05D1 \u05E2\u05D1\u05E8\u05D9\u05EA" -} -addSample $w Hindi \ - "\u0939\u093f\u0928\u094d\u0926\u0940 \u092d\u093e\u0937\u093e" -addSample $w Icelandic "\u00CDslenska" -addSample $w Japanese \ - "\u65E5\u672C\u8A9E\u306E\u3072\u3089\u304C\u306A, " \ - "\u6F22\u5B57\u3068\u30AB\u30BF\u30AB\u30CA" -addSample $w Korean "\uB300\uD55C\uBBFC\uAD6D\uC758 \uD55C\uAE00" -addSample $w Russian \ - "\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A" - -## We're done processing, so change things back to normal running... -destroy $w.wait -$w conf -cursor $oldCursor |