More good stuff.
Holding onto your stuff here and made some notes for myself. Moving onto my next QDT piece since I am trying to get an update ready for the upcoming show and every minute right now seems to count. Staying with the behavior I last described (as per your previous suggestion - works as you advertised) but what you propose here points me to a way that I think I can tune it the rest of the way. Want to think about the side affects first though (got to love the creativity of software users :) ).
Will place with this a bit later.
Cheers, jim
On Oct 1, 2004, at 5:00 AM, P Witte wrote:
James Hunkins writes:
<>The not so good side affect is say the user moves the called program away to a better spot on the screen, so that the calling program is uncovered. Now just moving the cursor over the calling program pops the top program to the top and [now for the bad part], the cursor pops over to top program. Pretty disconcerting (and definitely against the concept followed throughout the pointer environment), not to mention, with a lot of screen real-estate, you might not see where the cursor went. Looking forward to the emails and phone calls for that.
Well, you asked for it ;)
Here is a more developed version of the tester I posted previously. It works
slightly differently in that you have to DO the calling program to re-pick
the called program to the top, but you can fmodify this behaviour using
various tests and fiddling the termination vector.
Requires ptrmen_cde from EasyPtr to be LRESRed (included with my Msprv,
available on my website http://knoware.mysite.freeserve.com/index.html)
In place of FEP('Files') use your own program, eg id = FEX(<path>Fred_exe).
100 OUTL 110 DIM pr%(16): REMark Pointer Record 120 tv% = 1: REMark Termination vector 130 id = FEP("Files") 140 REPeat 150 RDPT tv% 160 PVAL pr%: REMark Read last event 170 IF pr%(5) = 2 OR pr%(7) = 61 THEN 180 REMark On DO or "Wake", .. 190 IF JobLives(id) THEN 200 REMark pick to top 210 PTOP id 212 REMark Or PTOP id \ (ie Pick and Wake) 220 ELSE 230 REMark Resume normal services 240 EXIT 250 END IF 260 END IF 270 END REPeat 280 : 290 DEFine FuNction JobLives(jid) 300 LOCal nj, n 310 IF jid = 0: RETurn 1 320 REPeat nj 330 n = NXJOB(n, 0) 340 IF n = 0 OR n = jid: EXIT nj 350 END REPeat nj 360 RETurn n 370 END DEFine JobLives 380 :
Of course, this is only a sketch. Special conditions may apply (eg Job 0),
and you may want to develop different versions for different cases. My point
is, you can - by a lot of hard work - usually emulate, to some degree, the
effect you want to achieve. Far from satisfactory (and certainly not fool
proof), but its available now! and better than nothing.
Per
_______________________________________________ QL-Users Mailing List http://www.quanta.org.uk/mailing.htm
_______________________________________________ QL-Users Mailing List http://www.quanta.org.uk/mailing.htm