(* Copyright (C) 1992, Digital Equipment Corporation *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* *) (* Last modified on Mon Jun 16 17:21:21 PDT 1997 by heydon *) <* PRAGMA LL *> UNSAFE MODULE JunoWM; IMPORT VBT, Trestle, TrestleComm, TrestleImpl, VBTClass, XParam; IMPORT Axis, Point, StableVBT; <* LL.sup < VBT.mu *> PROCEDURE Install(w: VBT.T; disp, geom: TEXT; applName: TEXT) RAISES {Error, TrestleComm.Failure} = VAR trsl := Trestle.Connect(disp); scrId: INTEGER; BEGIN TrestleImpl.SetDefault(trsl); LOCK VBT.mu DO Trestle.Attach(w, trsl); Trestle.Decorate(w, applName := applName); TRY VAR geomRec: XParam.Geometry; BEGIN IF geom # NIL THEN geomRec := XParam.ParseGeometry(geom); IF geomRec.size = XParam.Missing THEN VAR shapes := VBTClass.GetShapes(w, FALSE); BEGIN geomRec.size.h := shapes[Axis.T.Hor].pref; geomRec.size.v := shapes[Axis.T.Ver].pref END ELSE StableVBT.SetShape(w, geomRec.size.h, geomRec.size.v) END END; IF disp = NIL THEN scrId := Trestle.ScreenOf(w, Point.Origin).id ELSE scrId := XParam.ParseDisplay(disp).screen END; Trestle.Overlap(w, scrId, XParam.Position(trsl, scrId, geomRec)) END EXCEPT XParam.Error (info) => VAR arg: TEXT; BEGIN TYPECASE info OF <* NOWARN *> | XParam.GeometryInfo => arg := "-geometry" | XParam.DisplayInfo => arg := "-display" END; RAISE Error("illegal " & arg & " argument: " & info.spec) END END END (* LOCK *) END Install; BEGIN END JunoWM.