[Oberon] Viewer marking.

Andreas Pirklbauer andreas_pirklbauer at yahoo.com
Tue Mar 6 18:21:27 CET 2018


   > MarkingTest.T always reports "A Text viewer is marked."  Pressing F2 
   > to remove the marker has no effect.  How is viewer marking detected  correctly?

If you can modify module Oberon, just add the following procedure

  PROCEDURE PointerOn*(): BOOLEAN;
  BEGIN RETURN Pointer.on
  END PointerOn;

and use it as follows:

  MODULE M;
  IMPORT Viewers, Texts, Oberon;
  VAR W: Texts.Writer;

  PROCEDURE P*;
    VAR V: Viewers.Viewer; X, Y: INTEGER;
  BEGIN
    IF Oberon.PointerOn() THEN V := Oberon.MarkedViewer();
      Texts.WriteString(W, "A viewer is marked and its coordinates are");
      Texts.WriteInt(W, V.X, 4); Texts.WriteInt(W, V.Y, 4)
    ELSE Texts.WriteString(W, "No viewer is marked.")
    END ;
    Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf)
  END P;

BEGIN Texts.OpenWriter(W)
END M.

ORP.Compile M.Mod ~
M.P




More information about the Oberon mailing list