[comp.sys.mac.programmer] Meaning a few of the SIZE bits w/ Multifinder

tomc@mntgfx.mentor.com (Tom Carstensen) (03/10/88)

I Understand what most of the SIZE bits means to Multifinder,
excepts for the bit labled 'Juggler Aware' (with ResEdit 1.1b3)
and also the bit Background only.  What do these mean.  There
is already a bit for accept suspend/resume events, so what
it the Juggler Aware bit for?

:------------------------------------------------------------:
: Tom Carstensen         Usenet: tomc@mntgfx.MENTOR.COM      :
: Mentor Graphics                Delphi: CARSTENSEN          :
:                                GEnie:  XPC23637            :
:                                                            :
:     . . . about the world we live in, and live in general. :
:                                       - Depeche Mode       :
:------------------------------------------------------------:

steele@unc.cs.unc.edu (Oliver Steele) (03/12/88)

tomc@mntgfx.mentor.com (Tom Carstensen) writes:
>I Understand what most of the SIZE bits means to Multifinder,
>excepts for the bit labled 'Juggler Aware' (with ResEdit 1.1b3)
>and also the bit Background only.  What do these mean.  There
>is already a bit for accept suspend/resume events, so what
>it the Juggler Aware bit for?

Accept-suspend/resume means "Pass me those app4events and I'll
put my stuff in the clipboard and take it out without you're having
to fake me out with desk accessories."

Juggler/MF-aware means "I'll also activate/deactivate my front window, or
call SystemEvent if it's a desk accessory when I get a suspend/resume."
If only Suspend/Resume is set, MF also passes separate activate/deactivate
events.

Background-only means "Start me up and I'll do my stuff and call
{Get,Wait}NextEvent periodically, but don't send me any events because
I'm just an Eplethnet daemon or whatever, and return immediately to
the launching application."  Set this and your application will never
come to the foreground.  It's undocumented and I can't quite figure
out how to work it so that the menu bar comes back to life after the
background-only application is run; try it with an app that blinks a
square on the screen somewhere every half second and you'll see how
it works and what I mean.

Disable-option apparently doesn't do anything.  Certainly not the
obvious thing involving DAs that you'd guess from the name.

----------------------------------------------------------------------------
Oliver Steele					   ...!uunet!mcnc!unc!steele
							   steele@cs.unc.edu
"I worry about anyone under eighteen who isn't a cynic --
 and anyone over eighteen who is."     -- Spider Robinson

lsr@Apple.COM (Larry Rosenstein) (03/12/88)

In article <1988Mar9.111506.1858@mntgfx.mentor.com> tomc@mntgfx.mentor.com (Tom Carstensen) writes:
>I Understand what most of the SIZE bits means to Multifinder,
>excepts for the bit labled 'Juggler Aware' (with ResEdit 1.1b3)
>and also the bit Background only.  What do these mean.  There
>is already a bit for accept suspend/resume events, so what
>it the Juggler Aware bit for?

Juggler Aware means that the application will deactivate its frontmost
window when it gets a suspend event and reactivate it on a resume.  If this
bit is not set, MultiFinder will do something to force the application to
deactivate the window, which will rquire extra time for the context switch.

Before MultiFinder, an application only had to worry about clipboard
conversion when it received a suspend event.

-- 
		 Larry Rosenstein,  Object Specialist
 Apple Computer, Inc.  20525 Mariani Ave, MS 32E  Cupertino, CA 95014
	    AppleLink:Rosenstein1    domain:lsr@Apple.COM
		UUCP:{sun,voder,nsc,decwrl}!apple!lsr

saf@moss.ATT.COM (03/14/88)

The bits in the SIZE resource for MF are:

	14 - accepts suspend/resume events
	12 - accepts background null events
	11 - aware of MF

Turning on suspend/resume gets you a suspend event so you can convert
your scrap to universal format - then next time you ask for an event,
you go to sleep.  This is for efficiency - MF will work around it if
you can't handle syspend/resume.

Background nulls imply that you will call for an event about 10 times
a second - this allows the foreground job to stay responsive.  I'm
guessing but I imagine failure to set this will keep you asleep unless
you are on top (i.e., the current job).

MF awareness is tricky - you have to treat suspend/resume as implying
activate/deactivate ONLY if you are they top-most job.  If a DA is on
top, you have to pass the appropriate activate/deactivate event to it
using SystemEvent().

I found that just setting "background" and the minimum/preferred sizes
lets "well-behaved" code run just fine under MF.  Note that CurrentA5
will NOT be valid any more!!!  You have to make your own.  If you've
never heard of CurrentA5 don't worry about it.  It's an assembly
language thing used by interrupt handlers.

	Steve Falco   moss!saf   saf@moss.ATT.COM