Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: 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... 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! + >>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<