lab.eas at gmail.com
Fri Feb 1 23:56:34 CET 2013
] > Getting the tokens at the cursor is exactly what must happen with:
] > Oberon.Call(S.s, Oberon.Par, FALSE, res);
]> But the <TextScanner> does NOT read the cursor co-ordinates;
] Have a look at TextFrames.Call(), which calls Oberon.Call() after setting
] up the parameters to the command.
] TextFrames.Call() is called from TextFrames.Edit() when tracking the mouse.
] TextFrames.Edit is in turn called from the TextFrames message handler
OK, but I still can't see how to get the char at the CURSOR.
Is this correct:--
Oberon.GetSelection(text, beg, end, time);
char := <Scan 'text' from 'beg'>
would get the char of mouse: RM.
But the RECORD in Oberon.Mod which holds 'text' and 'beg'
has been Set by a process, which runs in the background,
which is not published.
I want the CURSOR-chars, to be returned, for various keys, like they
can be, for mouse: RM, via < Scan(GetSelected(args)) >.
The code which allows MM to be replaced by kybrd:Ctrl, would also be
close to my requirements. But I can't find it, and perhaps it was only
in the early DOSbased version.
======= OK I found something! Geunter Feldmann's archives are substantial
and he's done a substantial job makeing ETHO usable on other OSs.
NO/Input.Mod == ...
PROCEDURE Mouse*(VAR keys: SET; VAR x, y: INTEGER);
(* middle button emulation *)
IF buttons # 3 THEN (* -2, 2, -3 *)
IF buttons = 2 THEN (* 2 => Ctrl is middle button *)
But I can't find a solution from this lead, either.
The difficult part, is that the <text stream viewed on the screen/display>
consists of differnt sized rectangles.
It seems to me that there can be no 'mapping' from X,Y to the correspondingly
displayed-char. Because eg. if you change the font-size of charN, then the
X,Y of char (n + i) changes.
So the X,Y location of any char/object is <where it gets allocated, depending
on the number a sizes of preceding chars>.
Analagously: is it possible to know the Nth prime number, without knowing all
OMG, it's even more complex: it's NOT the char that has coordinates; it's
the pixel-rectangle of the char. But *that* mapping is direct/easy.
I'm not getting near a solution.
== Chris Glur.
More information about the Oberon