(* Copyright (C) 1992, Digital Equipment Corporation *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* *) (* Last modified on Wed Dec 21 19:09:28 PST 1994 by heydon *) MODULE VBTExtras; IMPORT VBT, Font, Palette, Rect, ScrnFont, ScrnFontExtras; IMPORT VBTRep, PlttFrnds; (* Most of this code was copied from "VBT.m3". *) PROCEDURE TightBoundingBox(v: VBT.Leaf; txt: TEXT; fnt: Font.T): Rect.T = BEGIN LOOP LOCK v DO IF v.st = NIL THEN RETURN ScrnFontExtras.TightBoundingBox(txt, NIL) END; VAR sf: ScrnFont.T := NIL; BEGIN IF fnt.fnt < NUMBER(v.st.fonts^) THEN sf := v.st.fonts[fnt.fnt] END; IF sf # NIL AND sf # PlttFrnds.noFont THEN RETURN ScrnFontExtras.TightBoundingBox(txt, sf) END END END; VAR st: VBT.ScreenType; BEGIN LOCK v DO st := v.st END; IF st # NIL THEN EVAL Palette.ResolveFont(st, fnt) END END END END TightBoundingBox; BEGIN END VBTExtras.