[Oberon] Mice in Native Oberon.

Jörg joerg.straube at iaeth.ch
Wed Oct 28 15:06:11 CET 2015


Hi Peter

 

In the original code of Input.Mod in Native Oberon “Alpha” there is a procedure AddMouse* to add a procedure of type “PollMouse” to the MousePoller chain.

 

PROCEDURE AddMouse*(poll: PollMouse);     (** non-portable *)

VAR n: MousePoller;

BEGIN

     NEW(n); n.poll := poll; n.next := mouse; mouse := n

END AddMouse;

 

br

Jörg

 

From: Oberon [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of Jan de Kruyf
Sent: Mittwoch, 28. Oktober 2015 10:37
To: ETH Oberon and related systems
Subject: Re: [Oberon] Mice in Native Oberon.

 

hallo,

trying to get beck into things. . .

 

In answer to your observation:

In Linux my laptop also sums the pad and the mouse. So I guess it is standard behaviour

and when you want to select mouse only for instance, you switch the pad off in the bios.

 

j.

 

 

On Tue, Oct 20, 2015 at 9:42 PM, <peter at easthope.ca> wrote:

In Native Oberon,
====
MODULE Input;
        ...
TYPE
        PollMouse* = PROCEDURE (VAR keys: SET; VAR dx, dy, dz: INTEGER): BOOLEAN;       (** non-portable *)
        ...
        MousePoller = POINTER TO RECORD
                poll: PollMouse;
                next: MousePoller
        END;
                ...
VAR
                ...
        mouse: MousePoller;
====
Good!  mouse.next can point to a second mouse and etc.  That allows a list of mice.

Further on,
====
PROCEDURE Mouse*(VAR keys: SET; VAR x, y: INTEGER);
        ...
                REPEAT  (* get all available mouse events, or until keys change *)
                        p := mouse; rawkeys := {}; ok := FALSE;
                        WHILE p # NIL DO        (* poll all mice and sum keys and movements *)
                                IF p.poll(mousekeys, dx, dy, dz) THEN
                                        (* Assimilate mouse button information and X,Y coordinate information. *)
                                END;
                                p := p.next
                        END
                UNTIL ~ok OR (rawkeys # lastkeys);
====

Observation
REPEAT .. UNTIL steps through the list of mice, assimilating
information from each.  When more than one mouse is present, the
input from each is equivalent to another.  Multiple mice simply allows
redundancy.  In the sources, I've seen nothing to add a second mouse to
the list.

Conclusion
Input was built to allow multiple mice but the code to configure and use
multiple mice wasn't developed.

Correct?  Erroneous?  Comments?

Thanks,                       ... Peter E.

--
123456789 123456789 123456789 123456789 123456789 123456789 123456789 12
Tel +1 360 639 0202 <tel:%2B1%20360%20639%200202>  or  +1 604 822 7107 <tel:%2B1%20604%20822%207107> 
http://easthope.ca/Peter.html Bcc: peter at easthope. ca

--
Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
https://lists.inf.ethz.ch/mailman/listinfo/oberon

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20151028/757d730a/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 4847 bytes
Desc: not available
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20151028/757d730a/attachment.bin>


More information about the Oberon mailing list