Using TT Fonts?

Aaron reic0024 at d.umn.edu
Mon Aug 26 20:34:27 UTC 2002


On Mon, 26 Aug 2002, [iso-8859-1] Stéphane Rollandin wrote:

> ... this is an html page containing only the ASCII version of the two
> attachments. how can I get the plugin.zip and StrikesFromHost.2.cs from there ?

Getting around this sort of thing isn't too hard.  Copy and paste the
encoded stuff, including the header, into a file, funkydory.b64.  Open it
up in winzip, grab the file inside of the b64, rename it plugin.zip, and
unzip it.

That trick didn't work on the text .cs though. So I looked at Yahoo
groups, which makes decoded attachments downloadable:

http://groups.yahoo.com/group/squeak/message/39510

However, I had problems getting the .CS off that page. :/ So I had to
resort to manually decoding the change set, which I've attached.  Would've
been a huge pain in the butt for a larger file, though.

Works great!

Regards,
Aaron
-------------- next part --------------
Content-Type: application/octet-stream;
name="StrikesFromHost.2.cs"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="StrikesFromHost.2.cs"

'From Squeak3.2gamma of 3 February 2002 [latest update: #4653] on 4 =
February 2002 at 10:07:33 pm'!=0DAbstractFont subclass: #StrikeFont=0D=
instanceVariableNames: 'characterToGlyphMap xTable glyphs name type =
minAscii maxAscii maxWidth strikeLength ascent descent xOffset raster =
subscript superscript emphasis derivativeFonts pointSize '=0D=
classVariableNames: 'DefaultStringScanner ToSqueakMap '=0D=
poolDictionaries: 'TextConstants '=0Dcategory: =
'Graphics-Text'!=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:51'!=0DfontName: fontName size: ptSize emphasis: =
emphasisCode=0D"=0D^StrikeFont fontName: (StrikeFont =
fontNameFromUser) size: 12 emphasis: 0.=0D"=0D| fontHandle xStart w =
glyphForm fontHeight fw enc fullWidth |=0DfontHandle _ self =
primitiveCreateFont: fontName size: ptSize emphasis: emphasisCode.=0D=
fontHandle ifNil:[^nil].=0DpointSize _ ptSize.=0Dname _ fontName.=0D=
emphasis _ emphasisCode.=0DminAscii _ 0.=0DmaxAscii _ 255.=0Dascent _ =
self primitiveFontAscent: fontHandle.=0Ddescent _ self =
primitiveFontDescent: fontHandle.=0DfontHeight _ ascent + descent.=0D=
xTable _ Array new: 258.=0DfullWidth _ Array new: 256.=0DxStart _ =
maxWidth _ 0.=0D0 to: 255 do:[:i|=0DxTable at: i+1 put: xStart.=0D=
fw _ self primitiveFont: fontHandle fullWidthOfChar: i.=0D(i =3D 9 =
or:[i =3D 13]) ifTrue:[fw :=3D {0. 0. 0}].=0DfullWidth at: i+1 put: =
fw.=0Dw _ fw at: 2.=0D(fw at: 1) > 0 ifTrue:[w _ w + (fw at: 1)].=0D=
(fw at: 3) > 0 ifTrue:[w _ w + (fw at: 3)].=0Dw > maxWidth =
ifTrue:[maxWidth _ w].=0DxStart _ xStart + w].=0DxStart =3D 0 =
ifTrue:[^nil].=0DstrikeLength _ xStart.=0DxTable at: 256 put: =
xStart.=0DxTable at: 257 put: xStart.=0DxTable at: 258 put: xStart.=0D=
glyphs _ Form extent: xTable last @ fontHeight depth: 1.=0DglyphForm _ =
Form extent: maxWidth @ fontHeight depth: 1.=0D0 to: 255 do:[:i|=0D=
glyphForm fillWhite.=0Dself primitiveFont: fontHandle glyphOfChar: i =
into: glyphForm.=0DxStart _ xTable at: i+1.=0DglyphForm displayOn: =
glyphs at: xStart at 0.=0D"glyphForm displayOn: Display at: xStart at 0."=0D=
].=0Denc :=3D self primitiveFontEncoding: fontHandle.=0Denc =3D 1 =
ifTrue:[characterToGlyphMap :=3D self isoToSqueakMap].=0Dself =
primitiveDestroyFont: fontHandle.=0D^self! !=0D=0D!StrikeFont =
methodsFor: 'host fonts' stamp: 'ar 2/4/2002 21:52'!=0DisoToSqueakMap=0D=
ToSqueakMap ifNotNil:[ToSqueakMap].=0DToSqueakMap :=3D Array new: =
256.=0D0 to: 255 do:[:i|=0DToSqueakMap at: i+1 put: (Character value: =
i) squeakToIso asciiValue.=0D].=0D^ToSqueakMap! !=0D=0D!StrikeFont =
methodsFor: 'host fonts' stamp: 'ar 2/4/2002 =
21:42'!=0DprimitiveCreateFont: fontName size: fontSize emphasis: =
fontFlags=0D<primitive:'primitiveCreateFont' module:'FontPlugin'>=0D=
^nil! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar 2/4/2002 =
21:42'!=0DprimitiveDestroyFont: fontHandle=0D=
<primitive:'primitiveDestroyFont' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:42'!=0DprimitiveFont: fontHandle fullWidthOfChar: =
charIndex=0D<primitive:'primitiveFontFullWidthOfChar' =
module:'FontPlugin'>=0D^Array =0Dwith: 0=0Dwith: (self =
primitiveFont: fontHandle widthOfChar: charIndex)=0Dwith: 0! =
!=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar 2/4/2002 =
21:42'!=0DprimitiveFont: fontHandle getData: buffer=0D=
<primitive:'primitiveGetFontData' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:43'!=0DprimitiveFont: fontHandle getKernPair: kernIndex=0D=
<primitive:'primitiveFontGetKernPair' module:'FontPlugin'>=0D^0! =
!=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar 2/4/2002 =
21:43'!=0DprimitiveFont: fontHandle glyphOfChar: charIndex into: =
glyphForm=0D<primitive:'primitiveFontGlyphOfChar' =
module:'FontPlugin'>=0D^self primitiveFailed! !=0D=0D!StrikeFont =
methodsFor: 'host fonts' stamp: 'ar 2/4/2002 21:43'!=0DprimitiveFont: =
fontHandle widthOfChar: charIndex=0D=
<primitive:'primitiveFontWidthOfChar' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:43'!=0DprimitiveFontAscent: fontHandle=0D=
<primitive:'primitiveFontAscent' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:43'!=0DprimitiveFontDataSize: fontHandle=0D=
<primitive:'primitiveFontDataSize' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:43'!=0DprimitiveFontDescent: fontHandle=0D=
<primitive:'primitiveFontDescent' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:43'!=0DprimitiveFontEmbeddingFlags: fontHandle=0D=
<primitive:'primitiveFontEmbeddingFlags' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:43'!=0DprimitiveFontEncoding: fontHandle=0D=
<primitive:'primitiveFontEncoding' module:'FontPlugin'>=0D^self =
primitiveFailed! !=0D=0D!StrikeFont methodsFor: 'host fonts' stamp: 'ar =
2/4/2002 21:43'!=0DprimitiveFontNumKernPairs: fontHandle=0D=
<primitive:'primitiveFontNumKernPairs' module:'FontPlugin'>=0D^0! =
!=0D=0D=0D!StrikeFont class methodsFor: 'host fonts' stamp: 'ar 2/4/2002 =
21:52'!=0DfontName: fontName size: ptSize emphasis: emphasisCode=0D"=0D=
^StrikeFont fontName: (StrikeFont fontNameFromUser) size: 12 emphasis: =
0.=0D"=0D^self new fontName: fontName size: ptSize emphasis: =
emphasisCode! !=0D=0D!StrikeFont class methodsFor: 'host fonts' stamp: =
'ar 2/4/2002 21:53'!=0DfontNameFromUser=0D"StrikeFont =
fontNameFromUser"=0D| fontNames index labels |=0DfontNames _ self =
listFontNames asSortedCollection.=0Dlabels _ WriteStream on: (String =
new: 100).=0DfontNames do:[:fn| labels nextPutAll: fn] =
separatedBy:[labels cr].=0Dindex _ (PopUpMenu labels: labels contents) =
startUpWithCaption:'Choose your font'.=0Dindex =3D 0 ifTrue:[^nil].=0D=
^fontNames at: index! !=0D=0D!StrikeFont class methodsFor: 'host fonts' =
stamp: 'ar 2/4/2002 21:44'!=0DlistFontName: index=0D=
<primitive:'primitiveListFont' module:'FontPlugin'>=0D^nil! =
!=0D=0D!StrikeFont class methodsFor: 'host fonts' stamp: 'ar 2/4/2002 =
21:53'!=0DlistFontNames=0D"StrikeFont listFontNames"=0D"List all the =
OS font names"=0D| font fontNames index |=0DfontNames _ WriteStream =
on: Array new.=0Dindex _ 0.=0D[font _ self listFontName: index.=0D=
font =3D=3D nil] whileFalse:[=0DfontNames nextPut: font.=0Dindex _ =
index + 1].=0D^fontNames contents! !=0D=0D!StrikeFont class methodsFor: =
'host fonts' stamp: 'ar 2/4/2002 21:55'!=0DtextStyleFrom: fontName=0D=
"StrikeFont textStyleFromUser"=0D| styleName fonts |=0DstyleName _ =
fontName asSymbol.=0D"(TextConstants includesKey: styleName)=0D=
ifTrue:[(self confirm: =0DstyleName , ' is already defined in =
TextConstants.=0DDo you want to replace that definition?')=0DifFalse: =
[^ self]]."=0Dfonts _ #(10 11 12 13 14 16 18 20 22 24 26 28 30 36 48 60 =
72 90).=0D('Rendering ', styleName) displayProgressAt: Sensor =
cursorPoint=0Dfrom: 1 to: fonts size during:[:bar|=0Dfonts _ =
fonts=0Dcollect:[:ptSize| bar value: (fonts indexOf: ptSize).=0D=
   self fontName: styleName =0Dsize: ptSize=0D=
emphasis: 0]=0DthenSelect:[:font| font notNil]]. "reject those that =
failed"=0Dfonts size =3D 0 ifTrue:[^self error:'Could not create font =
style', styleName].=0D^TextConstants=0Dat: styleName=0Dput: =
(TextStyle fontArray: fonts).! !=0D=0D!StrikeFont class methodsFor: =
'host fonts' stamp: 'ar 2/4/2002 21:55'!=0DtextStyleFrom: fontName =
sizes: ptSizes=0D| styleName fonts |=0DstyleName _ fontName =
asSymbol.=0D(TextConstants includesKey: styleName)=0DifTrue:[(self =
confirm: =0DstyleName , ' is already defined in TextConstants.=0DDo you =
want to replace that definition?')=0DifFalse: [^ self]].=0D=
('Rendering ', styleName) displayProgressAt: Sensor cursorPoint=0D=
from: 1 to: ptSizes size during:[:bar|=0Dfonts _ ptSizes=0D=
collect:[:ptSize| bar value: (ptSizes indexOf: ptSize).=0D   self =
fontName: styleName =0Dsize: ptSize=0Demphasis: 0]=0D=
thenSelect:[:font| font notNil]]. "reject those that failed"=0Dfonts =
size =3D 0 ifTrue:[^self error:'Could not create font style', =
styleName].=0D^TextConstants=0Dat: styleName=0Dput: (TextStyle =
fontArray: fonts)! !=0D=0D!StrikeFont class methodsFor: 'host fonts' =
stamp: 'ar 2/4/2002 21:55'!=0DtextStyleFromUser=0D"StrikeFont =
textStyleFromUser"=0D| styleName fonts |=0DstyleName _ self =
fontNameFromUser ifNil:[^self].=0DstyleName _ styleName asSymbol.=0D=
(TextConstants includesKey: styleName)=0DifTrue:[(self confirm: =
=0DstyleName , ' is already defined in TextConstants.=0DDo you want to =
replace that definition?')=0DifFalse: [^ self]].=0Dfonts _ #(10 12 =
14 16 18 20 22 24 26 28 30 36 48 60 72 90).=0D('Rendering ', styleName) =
displayProgressAt: Sensor cursorPoint=0Dfrom: 1 to: fonts size =
during:[:bar|=0Dfonts _ fonts=0Dcollect:[:ptSize| bar value: =
(fonts indexOf: ptSize).=0D   self fontName: styleName =0D=
size: ptSize=0Demphasis: 0]=0DthenSelect:[:font| font =
notNil]]. "reject those that failed"=0Dfonts size =3D 0 ifTrue:[^self =
error:'Could not create font style', styleName].=0D^TextConstants=0D=
at: styleName=0Dput: (TextStyle fontArray: fonts)! !=0D=0D


More information about the Squeak-dev mailing list