diff -r b0f556e670a0 -r 796ff0ae8306 FontDescription.st --- a/FontDescription.st Wed Feb 04 00:27:49 2004 +0100 +++ b/FontDescription.st Thu Feb 05 23:22:21 2004 +0100 @@ -16,7 +16,8 @@ instanceVariableNames:'family face style size encoding manufacturer name flags masks pixelSize' classVariableNames:'BoldnessMask FixedFlag ItalicFlag OutlineFlag SerifFlag - ShadowFlag StrikeoutFlag UnderlineFlag CharacterSetToFontMapping' + ShadowFlag StrikeoutFlag UnderlineFlag CharacterSetToFontMapping + CharacterEncodingToCharacterSetMapping' poolDictionaries:'' category:'Graphics-Support' ! @@ -92,9 +93,25 @@ StrikeoutFlag := 2r0100000000. UnderlineFlag := 2r1000000000. + self initializeCharacterEncodingToCharacterSetMapping. self initializeCharacterSetToFontMapping. ! +initializeCharacterEncodingToCharacterSetMapping + "character encoding" + + CharacterEncodingToCharacterSetMapping isNil ifTrue:[ + CharacterEncodingToCharacterSetMapping := Dictionary new + ]. + + #( + 'utf7' 'unicode' + 'utf8' 'unicode' + ) pairWiseDo:[:encoding :fontEncoding| + CharacterEncodingToCharacterSetMapping at:encoding put:fontEncoding + ]. +! + initializeCharacterSetToFontMapping "character sets" @@ -103,6 +120,10 @@ ]. #( + 'unicode' 'iso10646-*' + + 'koi8-r' 'iso8859-5' + 'iso2022-jp' 'jis*0208*' 'x-iso2022-jp' 'jis*0208*' 'x-euc-jp' 'jis*0208*' @@ -272,6 +293,16 @@ !FontDescription class methodsFor:'queries'! +characterSetForCharacterEncoding:encodingName + "return the font-encoding for a character encoding" + + ^ CharacterEncodingToCharacterSet at:encodingName ifAbsent:nil + + " + FontDescription characterSetForCharacterEncoding:'ucs8' + " +! + fontNamePatternForCharset:aCharSetName "return the font-encoding for an iso-charset" @@ -1037,7 +1068,7 @@ !FontDescription class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libview/FontDescription.st,v 1.46 2003-05-07 14:32:08 cg Exp $' + ^ '$Header: /cvs/stx/stx/libview/FontDescription.st,v 1.47 2004-02-05 22:22:21 cg Exp $' ! ! FontDescription initialize!