Article View: comp.sys.atari.st
Article #27087Re: Three questions to the gurus
From: uace0
Date: Sat, 30 May 1987 01:06
Date: Sat, 30 May 1987 01:06
107 lines
3440 bytes
3440 bytes
In article <341@gmdzi.UUCP>, kow@gmdzi.UUCP (Oliver [DKowalski) writes:
>
> Is there a possibility to do a nowait Evnt_Multi call ?
>
> I made some experiments using the timer. But two difficulties arose:
>
> 1. Some keystrokes got lost (especially with short timer intervals)
>
> 2. Also the menu handling is interupted. The effect is that menus
> are falling down, the evnt_multi terminates and the menus are
> still visible. So parts of the screen are not redrawn and
> contains trash.
>
> Is there anybody who can help?
>
You must make sure that the evnt_multi is inside a loop which only terminates
when the proper event occurs. Sounds to me like you call evnt_multi once
then go on. You should have it in a while loop like
.
.
.
while (event) {
event=evnt_multi (MU_TIMER|MU_MESAG|MU_whatever,...., lo_time, hi_time, ...);
switch (event) {
case MU_TIMER:
break;
case MU_MESAG:
do_message();
break
case ...:
.
.
.
}
}
in any case, event will at least equal MU_TIMER.
The problems you describe about dropping characters doesn't sound related to
this, or perhaps it is if you use too long a delay, and the keyboard chip is
overrun with data. But a time of 0 or 1 in lo_time *does* work for
sampling.
>
> How can I make a 'Obscure Cursor' in GEM?
>
> A Obscure Cursor is a cursor, invisible as long as the mouse isn't moved. When
> moving the mouse the cursor becomes visible and remains visible until a
> special call hides it. Normal program execution should not be influenced.
>
> E.g. WordPlus has this feature implemented.
>
Again, you can use the evnt_multi call, but you need to sample the present
x and y of the mouse before calling it, as well as hiding the mouse, perhaps:
while (event) {
vq_mouse(handle, &button, &mx, &my);
if (Cconis()) /* a character is waiting from the console */
graf_mouse(M_OFF,0); /* hide mouse; remembers level of calls, beware */
/* the five parameters 1,mx,my,1,1, are the ev_mm1flags,ev_mm1x,ev_mmy, etc
parameters needed for detection of a mouse event, in this case
exitting a certain rectangle */
event = evnt_multi(MU_M1|MU_TIMER|MU_MESAG|...,...,1,mx,my,1,1,...);
switch (event) {
case MU_M1:
graf_mouse(M_ON,0);
break;
...
} /* switch */
} /* while */
Maybe this will help.
- Mike Vederman
>
> That's all for the moment. Thanks in advance for the bunch of answers. Just
> to mention, the callers address is :
>
> Udo Borkowski
> Endenicher Str. 277
> D-5300 Bonn 1
> West Germany
>
> and my name & address
>
> Oliver Kowalski
> usenet : {...,seismo}!mcvax!unido!gmdzi!kow
--
>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<
+ And to think, I don't get paid for this! +
>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<
Technical Details
Message-ID:
<388@uhnix2.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!rutgers!ucla-cs!ames!ptsfa!hoptoad!academ!uhnix1!uhnix2!uace0References:
<341@gmdzi.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!rutgers!ucla-cs!ames!ptsfa!hoptoad!academ!uhnix1!uhnix2!uace0 From: uace0@uhnix2.UUCP Newsgroups: comp.sys.atari.st Subject: Re: Three questions to the gurus Message-ID: <388@uhnix2.UUCP> Date: Fri, 29-May-87 21:06:59 EDT Article-I.D.: uhnix2.388 Posted: Fri May 29 21:06:59 1987 Date-Received: Thu, 4-Jun-87 05:02:51 EDT References: <341@gmdzi.UUCP> Organization: University of Houston Lines: 107 Summary: Can this be true? I don't seem to recall these problems...