Ahh, thanks for the clarification. I always thought, that it was in fact
just the pointer i/f, which was used.
Yes, the loose menu item select was done in Basic of course (ok, therefor
CURSEN/CURDIS, if no PE is present), but how did they manage the "outline"
of the loose item, when the pointer is above? Must be done in MC as it was
drawn as fast as in QRam those days on a QL. If done in Basic, this is drawn
a lot slower (on a QL!). Maybe one of the other keywords there.
How have you investigated that all?
Cheers...Ralf
----- Original Message -----
From: "Marcel Kilgus"
Sent: Monday, January 05, 2009 3:40 PM
Subject: Re: [Ql-Users] Qlib's window and pointer handling
Ralf Reköndt wrote:
many years ago, I was thinking about the way, QLib handles it's own
"Applikation Window" under PE. I do not really think, it heavily uses
WMAN,
but I always wanted to know, how it does, what it does.
Actually it doesn't use WMAN at all. They've implemented their own
little WMAN (in BASIC, nonetheless). Long story short: the loose item
highlight is drawn in BASIC and if no PE is present changed according
to the cursor keys as any other none-PE program could do.
If the PE ist present WM_RPTR is called (the Basic routine mentioned,
not the WMAN vector WM.RPTR! Remember, WMAN is not used. The routine
uses IOP.RPTR internally), which (among others) returns when the mouse
is moved. If it is, FWIND is called which apparently looks through an
array of coordinates of the loose items to find whether one of them is
under the mouse pointer. If yes and it's a different one, the
highlight is changed and it's back to WM_RPTR.
So nothing really special here, the routines are really just a thin
wrapper around PTR_GEN, the only exception being FWIND which is used
to speed up hit testing but in itself is very very simple and could be
implemented in BASIC if it wasn't for speed concerns back then. You
can do the same with any PE toolkit, like QPTR, EasyPtr and I'm sure
TurboPtr, too.
Marcel
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm