DIRECTORY Rules, Imager, ViewerClasses, ViewerOps; RulesImpl: CEDAR PROGRAM IMPORTS Imager, ViewerOps EXPORTS Rules SHARES ViewerOps = BEGIN OPEN ViewerClasses, Rules; Create: PUBLIC PROC [info: ViewerRec, color: Imager.Color _ Imager.black, paint: BOOL _ TRUE] RETURNS [rule: Rule] = BEGIN IF info.parent=NIL THEN RETURN; info.data _ NEW[Imager.Color _ color]; info.border _ FALSE; -- we did promise uniform color RETURN[ViewerOps.CreateViewer[flavor: $Rule, info: info, paint: paint]]; END; RulePaint: PRIVATE PaintProc = BEGIN OPEN Imager; x: REF Color = NARROW[self.data]; IF x = NIL THEN RETURN; SetColor[context, x^]; MaskIntRectangle[context, [0, 0, self.cw, self.ch]]; END; RuleSet: PRIVATE SetProc = BEGIN WITH data SELECT FROM x: REF Imager.Color => self.data _ data; ENDCASE => ERROR; IF finalise THEN ViewerOps.PaintViewer[self, client, FALSE]; END; ruleClass: ViewerClasses.ViewerClass _ NEW[ViewerClasses.ViewerClassRec _ [ paint: RulePaint, set: RuleSet ]]; ViewerOps.RegisterViewerClass[$Rule, ruleClass]; -- plug in to Viewers END. ŒRulesImpl.mesa; written by Bill Paxton Edited by McGregor on July 21, 1983 2:51 pm Last Edited by: Maxwell, January 3, 1983 12:28 pm ΚΤ– "cedar" style˜JšΟc&™&Jš+™+Jšœ1™1J˜šΟk ˜ J˜J˜J˜J˜ J˜—Jšœ ž ˜J˜Jšžœ˜Jšžœ˜ Jšžœ ˜J˜Jšžœžœ˜ J˜š Οnœžœžœ>žœžœ˜]Jšžœž˜Jšžœ žœžœžœ˜Jšœ žœ˜&Jšœžœ˜4JšžœB˜HJšžœ˜J˜—šœ žœ žœžœ˜1Jšœžœ žœ ˜!Jšžœžœžœžœ˜Jšœ˜Jšœ4˜4Jšžœ˜J˜—šœ žœ ž˜ šžœžœž˜Jšœžœ"˜(Jšžœžœ˜—Jšžœ žœ%žœ˜