DIRECTORY Imager USING [Context], Rope USING [ROPE]; Icons: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; iconW: INTEGER ~ 64; iconH: INTEGER ~ 64; IconFlavor: TYPE ~ MACHINE DEPENDENT { -- pre-defined icons document(0), dirtyDocument(1), fileCabinet(2), tool(3), typescript(4), private(177776B), -- will cause call of viewer paintProc to paint icon unInit(177777B) -- flag for unitialised icon type }; IconRef: TYPE ~ REF IconRep; IconRep: TYPE ~ MACHINE DEPENDENT RECORD [ bits: ARRAY [0..iconH*iconW/16) OF WORD, -- 64 x 64 bit pattern label: BOOL _ FALSE, -- label icon with viewer name? invertLabel: BOOL _ FALSE, -- label drawn with white bits if TRUE filler: [0..16384) _ 0, -- unused lx, ly, lw, lh: INTEGER _ 0, -- rectangle for label (from bottom left) proc: DrawIconProc _ NIL -- proc to draw pattern ]; DrawIconProc: TYPE ~ PROC [flavor: IconFlavor, context: Imager.Context, x, y: INTEGER _ 0, label: ROPE _ NIL]; DrawIcon: DrawIconProc; NewIcon: PROC [info: IconRef] RETURNS [newFlavor: IconFlavor]; NewIconFromFile: PROC [file: ROPE, n: CARDINAL] RETURNS [newFlavor: IconFlavor]; IconFileFormat: TYPE ~ MACHINE DEPENDENT RECORD [ bits: ARRAY [0..iconH*iconW/16) OF WORD _ ALL[0], label: BOOL _ FALSE, invertLabel: BOOL _ FALSE, filler: [0..16384) _ 0, -- leftovers lx, ly, lw, lh: INTEGER _ 0, empty: ARRAY [0..251) OF WORD _ ALL[0] -- leftovers ]; END. ΰIcons.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Edited by McGregor on August 16, 1982 11:19 am Last Edited by: Maxwell, December 17, 1982 9:57 am Doug Wyatt, March 28, 1985 2:37:54 pm PST Draw an icon in a context Create a new icon type Create a new icon type from the n'th icon read from the file Icon File Format (for wizards/hackers). Icons must be packed into the file at two pages per icon, corresponding to a logical record type as follows: Κ›– "Mesa" style˜codešΟc ™ Kšœ Οmœ1™Kš™K˜—š ‘œŸœŸœŸœŸœ˜PKš<™