Type Definitions
BOXTREE: TYPE ~ REF BoxTreeRep;
BoxTreeRep: TYPE ; -- use implementation type
STYLE:
TYPE ~
RECORD [
scale: REAL ← 1.0, -- scaling factor for bounding box
looks: REF ANY ← NIL -- italics, bold...
];
Selection: TYPE ~ RECORD[expr: InternalExpr.EXPR, color: Imager.Color];
Display & Formatting
Format:
PUBLIC
PROC [expr: InternalExpr.
EXPR, style:
STYLE]
RETURNS [boxTree:
BOXTREE];
returns a boxed expression formatted in user space
Paint:
PUBLIC
PROC [boxTree:
BOXTREE, context: Imager.Context, selections:
LIST
OF Selection];
paints a boxed expression in the imager space given by context
Selection Operations
Selectable:
PROC[expr: InternalExpr.EXPR]
RETURNS[
BOOL];
effects: Returns TRUE iff expr is selectable.
SelectableParent:
PROC[expr: InternalExpr.EXPR]
RETURNS[InternalExpr.EXPR];
effects: Returns the parent (enclosing expression) of expr.
SIGNALS noSelection if no selectable parent exists.
SelectableChild:
PROC[expr: InternalExpr.EXPR]
RETURNS[InternalExpr.EXPR];
effects: Returns a child expressions (subexpression) for expr.
SIGNALS noSelection if no selectable child exists.
SelectableSibling:
PROC[expr: InternalExpr.EXPR]
RETURNS[InternalExpr.EXPR];
effects: Returns the "next" sibling expression from expr.
SIGNALS noSelection if no selectable sibling exists.
Replace:
PROC[expr, old, new: InternalExpr.EXPR]
RETURNS[InternalExpr.EXPR];
effects: Returns a copy of expression expr with new substituted for old.
caveats: Return value must be reformatted before Paint[]'ing.
Note that new is used (not a copy).