ð±Syntax10.Scn.FntöÿÿÿP¥à"StampElemsAlloc3 Jul 96Syntax10b.Scn.Fnt{JSyntax10i.Scn.Fntn" ³MODULE Screen; (*HM *) (*Needs Screen.Menu.Text!*) IMPORT Display, Files, Viewers, TextFrames, Oberon, Texts, MenuViewers; VAR neutralize: Oberon.ControlMsg; PROCEDURE OneTrack*; VAR v: MenuViewers.Viewer; v0: Viewers.Viewer; t: Texts.Text; buf: Texts.Buffer; BEGIN v0 := Viewers.This(0, 0); IF v0.W < Display.Width THEN v0 := Viewers.This(Display.Width - 1, Display.Height - 1); Viewers.Broadcast(neutralize); Display.ReplConst(Display.black, 0, 0, Display.Width, Display.Height, Display.replace); Oberon.OpenTrack(0, Display.Width); v := MenuViewers.New( TextFrames.NewMenu("System.Log", "^Screen.Menu.Text"), TextFrames.NewText(Oberon.Log, 0), TextFrames.menuH, 0, TextFrames.menuH + 50); v.dsc.next.handle := v0.dsc.next.handle (* use same handler as the log viewer (which normally is the topmost viewer in the system track) *) END END OneTrack; PROCEDURE TwoTracks*; VAR v, v1: Viewers.Viewer; BEGIN v := Viewers.This(0, 0); IF v.W = Display.Width THEN Viewers.Broadcast(neutralize); REPEAT v1 := Viewers.Next(v); Viewers.Close(v); v := v1 UNTIL v.state <= 1 END END TwoTracks; BEGIN neutralize.id := Oberon.neutralize END Screen.OneTrack