🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.atari.st
Article #27087

Re: Three questions to the gurus

#27087
From: uace0
Date: Sat, 30 May 1987 01:06
107 lines
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!uace0
References: <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...