[comp.sys.atari.st.tech] Box w/o form_do

moses@hao.ucar.edu (Julie Moses) (10/30/90)

   I have a program in which one of the dialogue boxes are handled
without using  form_do(). Yes, form_do() is the easiest way to
handle dialogue boxes but I am doing some trickier things than
what form_do() can handle.

Problem -   If I depress the mouse button outside the dialogue box
which is being handled without form_do() and atop the slider bars,
or GEM dropdowns (anything GEM itself is taking care of through
evnt_messages), it locks up the program completely; only the mouse
can move yet do nothing.

Ques. -How is it I can disable GEM so that this will be prevented
while I am using this dialogue box?


Thanks,

J.Moses

csbrod@medusa.informatik.uni-erlangen.de (Claus Brod ) (10/30/90)

moses@hao.ucar.edu (Julie Moses) writes:

>Problem -   If I depress the mouse button outside the dialogue box
>which is being handled without form_do() and atop the slider bars,
>or GEM dropdowns (anything GEM itself is taking care of through
>evnt_messages), it locks up the program completely; only the mouse
>can move yet do nothing.

Use wind_update(BEG_UPDATE) and wind_update(END_UPDATE) to prevent
the AES screen manager from taking care of menus and the like while
you are doing your dialog tricks on the screen. This hint is valid
for any situation where you are doing something on the screen (VDI
calls, but objc_change() calls also).


----------------------------------------------------------------------
Claus Brod, Am Felsenkeller 2,			Things. Take. Time.
D-8772 Marktheidenfeld, West Germany		(Piet Hein)
csbrod@medusa.informatik.uni-erlangen.de
----------------------------------------------------------------------

mui@atari.UUCP (Derek Mui) (11/01/90)

in article <8978@ncar.ucar.edu>, moses@hao.ucar.edu (Julie Moses) says:
> 
> 
>    I have a program in which one of the dialogue boxes are handled
> without using  form_do(). Yes, form_do() is the easiest way to
> handle dialogue boxes but I am doing some trickier things than
> what form_do() can handle.
> 
> Problem -   If I depress the mouse button outside the dialogue box
> which is being handled without form_do() and atop the slider bars,
> or GEM dropdowns (anything GEM itself is taking care of through
> evnt_messages), it locks up the program completely; only the mouse
> can move yet do nothing.
> 
> Ques. -How is it I can disable GEM so that this will be prevented
> while I am using this dialogue box?
> 
> 
> Thanks,
> 
> J.Moses


	Use the wind_update( TRUE ) in the beginning of your function
and use wind_update( FALSE ) at the end of it.


==================================================================
Derek Mui, Atari Corp, 1196 Borregas Ave, Sunnyvale, CA 94086

UUCP: {..ames!atari!mui}

Disclaimer: Opinions expressed here are my own and they may be 
	    hazardous to your mind.
==================================================================

moses@hao.ucar.edu (Julie Moses) (11/01/90)

> 
>    I have a program in which one of the dialogue boxes are handled
> without using  form_do(). Yes, form_do() is the easiest way to
> handle dialogue boxes but I am doing some trickier things than
> what form_do() can handle.
> 
> Problem -   If I depress the mouse button outside the dialogue box
> which is being handled without form_do() and atop the slider bars,
> or GEM dropdowns (anything GEM itself is taking care of through
> evnt_messages), it locks up the program completely; only the mouse
> can move yet do nothing.
> 
> Ques. -How is it I can disable GEM so that this will be prevented
> while I am using this dialogue box?
> 

Several people sent me private mail and altogether I was directed
to using wind_update() with the parameters BEG_MCTRL and END_MCTRL.

I am familiar with the parameters BEG_UPDATE and END_UPDATE but had
not tried the other pair due to the lack of information on the
differences in their function.

As you might already know AES is multi-tasking - it handles the GEM
window and menu in conjunction with the functions built into ones
program. BEG_MCTRL (and END_)  disables the AES more than BEG_UPDATE;
it prevents any dropdown, slider bar or window button from being 
controlled by the AES. If you use BEG_MCTRL then there is no need to
also call wind_update with the parameters BEG_UPDATE (END_); the 
former is a superset of BEG_UPDATE functionality.

Case closed. FYI. Thanks.

J.Moses