[Oberon] Re: Viewer marking.

peter at easthope.ca peter at easthope.ca
Wed Mar 14 17:50:14 CET 2018


Andreas, 

From:	Andreas Pirklbauer <andreas_pirklbauer at yahoo.com>
Date:	Tue, 6 Mar 2018 18:21:27 +0100
> If you can modify module Oberon, just add the following procedure
>
>   PROCEDURE PointerOn*(): BOOLEAN;
>   ...

OK, thanks.  No problem with that.

What about generalizing?  Add the check to MarkedViewer?  

(** Returns the star-marked viewer. *)
    PROCEDURE MarkedViewer* (): Viewers.Viewer;
    VAR v: Viewers.Viewer; 
    BEGIN
      IF PointerOn() THEN
        v := Viewers.This(Pointer.X, Pointer.Y)
      ELSE
        v := NIL
      END;
      RETURN v
    END MarkedViewer;

> Perhaps the reason why Sort traps is that Oberon.MarkedViewer
> returns the filler viewer, whose fields Viewers.FillerViewer.dsc
> and Viewers.FillerViewer.next are both always set to NIL.

Another possibility I failed to anticipate. Ideally a command should 
be bulletproof but that might be impossible.  Is there a practical way 
to check whether the Pointer is in a Text or Document viewer and not 
in the FillerViewer?

Thanks,                                               Lyall E.

-- 
This message was transmitted by software carefully written to avoid
the necessity, vulnerability and overhead of antivirus software.

123456789 123456789 123456789 123456789 123456789 123456789 123456789
Tel: +1 360 639 0202                      Pender Is.: +1 250 629 3757
http://easthope.ca/Peter.html              Bcc: peter at easthope. ca


More information about the Oberon mailing list