home *** CD-ROM | disk | FTP | other *** search
- {copyright 1986 by Herb Barad}
- {Protocol is a program to produce a PICT representation of a class}
- {hierarchy from a textual description.}
- {parts from Flow MacApp sample - copyright 1986 by Apple Computer}
-
- UNIT UProtocolChart;
-
- INTERFACE
-
- {$R-}
-
- USES
- MemTypes, QuickDraw, OSIntf, ToolIntf,
- UObject;
-
- CONST
-
- maxDepth = 60;
- kMaxNumStr = 2;
-
- TYPE
-
- String80 = STRING[80];
- KeyStr = STRING[8];
- NumStr = STRING[kMaxNumStr];
-
-
- KShape = (shNone, shRectNone, shRect, shOval, shRoundRect, shDRect);
-
- KAlignment = (alLeft, alMiddle,alRight);
-
- KMultiLine = (mlNone, mlFirst, mlMiddle, mlEnd);
-
- TNode = OBJECT (TObject)
- fFirstChild, fNextChild : TNode;
- fTree: TTree;
- fBounds : Rect;
- fAlignment : KAlignment;
- fFace : Style;
- fShapeKind : KShape;
- fDoubled: BOOLEAN;
- fCaption : String80;
- fNumber : NumStr; {if <> '' then draw a "numbered" circle}
-
- PROCEDURE TNode.INode(aTree: TTree;
- aCaption : String80;
- anAlignment : KAlignment;
- aStyle : Style;
- aShape : KShape;
- aNumber : NumStr);
- PROCEDURE TNode.Free; OVERRIDE;
- {$IFC qDebug}
- PROCEDURE TNode.Inspect; OVERRIDE;
- {$ENDC}
- PROCEDURE TNode.AddChild (child : TNode);
- PROCEDURE TNode.AddLinkHeight (sib : TNode;
- VAR v : INTEGER);
- PROCEDURE TNode.MeasureText (VAR topToBase, topToBottom, leftToRight : INTEGER);
- PROCEDURE TNode.Condense;
- PROCEDURE TNode.Draw(area: Rect; forPicture: BOOLEAN);
- PROCEDURE TNode.DrawCaption(forPicture: BOOLEAN);
- PROCEDURE TNode.DrawChildren(area: Rect; forPicture: BOOLEAN);
- PROCEDURE TNode.DrawEnclosure(forPicture: BOOLEAN);
- PROCEDURE TNode.DrawLink(sib : TNode; forPicture: BOOLEAN);
- PROCEDURE TNode.DrawNumber(area: Rect; forPicture: BOOLEAN; endCaption: Point);
- PROCEDURE TNode.Locate (middle : INTEGER;
- VAR v : INTEGER);
- PROCEDURE TNode.Measure (VAR dh, dv : INTEGER);
- END;
-
- Path = array[-1..maxDepth] OF TNode;
-
- TTree = OBJECT (TObject)
- fTypeFont, fTypeSize, fPenThickness, fSpacing, fShadow: INTEGER;
- fHead : TNode; {only valid after Layout}
- fPath : Path; {Last node created at each level}
- fLastLevel: INTEGER; {Level of last node added}
-
- PROCEDURE TTree.ITree (aTypeFont, aTypeSize : INTEGER; shadowed: BOOLEAN);
- PROCEDURE TTree.Free; OVERRIDE;
- PROCEDURE TTree.Draw(area: Rect; forPicture: BOOLEAN);
- PROCEDURE TTree.GenLine (inputLine : String80);
- PROCEDURE TTree.GenNode (level : INTEGER;
- aCaption : String80;
- anAlignment : KAlignment;
- aStyle : Style;
- aShape : KShape;
- aNumber : NumStr);
- PROCEDURE TTree.Layout (VAR viewRect : Rect);
- PROCEDURE TTree.SetFont (aTypeFont: INTEGER);
- PROCEDURE TTree.SetSize (aTypeSize: INTEGER);
- PROCEDURE TTree.SetThickness (aPenThickness : INTEGER);
- END;
-
-
- VAR gNowPrinting: BOOLEAN; {must be set by USER before calling TTree.Layout or TTree.Draw}
-
- PROCEDURE InitProtocolchart;
- PROCEDURE AddKeyword(aKeyWord: KeyStr; aShape: KShape; anAlignment: KAlignment; aStyle: Style);
-
-
- IMPLEMENTATION
-
- {$I UProtocolchart.inc1.p}
-
- END.
-