DIRECTORY Rope, UnifiedFonts; UFFontDirReader: CEDAR DEFINITIONS = BEGIN Key: TYPE = UnifiedFonts.Key; GraphicsType: TYPE = {none, press, sd, strike}; DeviceType: TYPE = UnifiedFonts.DeviceType; ROPE: TYPE = Rope.ROPE; ExamineProc: TYPE = PROCEDURE [ candidateFontName: REF READONLY TEXT, candidateSize, candidateMaxSize, candidateMinSize: REAL, candidateRotation: REAL, candidateDeviceType: DeviceType ] RETURNS [match: BOOLEAN _ FALSE]; ResultProc: TYPE = PROCEDURE [ candidateFontName: REF READONLY TEXT, candidateSize, candidateMaxSize, candidateMinSize: REAL, candidateRotation: REAL, candidateDeviceType: DeviceType, codeScheme: Key, metricsType: ATOM, metricsName: Key, graphicsType: ATOM, graphicsName: Key ] RETURNS [quit: BOOLEAN _ TRUE]; EnumerateFontDirectory: PROCEDURE [fontDirectoryName: ROPE, examine: ExamineProc, result: ResultProc]; END. 8UFFontDirReader.mesa Written January 14, 1983 1:53 pm Last edited by Michael Plass, January 20, 1983 3:07 pm The examine procedure is called for each entry in the font directory; when a match is found, the result procedure is called, and it has the option of quitting or continuing the search through the font directory. The REF TEXT passed to the examine procedure do not change through the call to the result procedure, so they may be held on to for that long; however they will be subsequently re-used, so don't depend on them after the result proc exits. Êk˜Jšœ™Jšœ ™ J™6IunitšÏk œ˜šœœ˜$Jš˜Kšœœ˜Kšœœ˜/Kšœ œ˜+Kšœœœ˜šÏn œœ œ˜Jšœœœœ˜%Jšœ3œ˜8Jšœœ˜Jšœ˜Jšœœ œœ˜#—šž œœ œ˜Jšœœœœ˜%Jšœ3œ˜8Jšœœ˜Jšœ ˜ Jšœ˜Jšœ œ˜$Jšœœ˜%Jšœœœœ˜!—šžœ œœ,˜fJ™Â—Jšœ˜—J™J˜—…—\ÿ