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