[comp.sys.mac] One Quick and Dumb ?

DREDICK@G.BBN.COM (The Druid) (12/01/87)

  I have always wanted to write an application that does not use
  the menu bar but instead DRAW USING THE FULL MAC SCREEN including
  where the menu bar is.  I have tried to do this but I have not 
  succeeded.  This cannot be that hard at all!  I have copybits regions
  where the menubar has been.

  Well, simply -- How do you write an application that uses the FULL
  mac screen.  (pretty Dumb Question, huh?)

  -- The Druid (dredick@bbn.com)

chuq@plaid.Sun.COM (Chuq Von Rospach) (12/02/87)

>  I have always wanted to write an application that does not use
>  the menu bar but instead DRAW USING THE FULL MAC SCREEN including
>  where the menu bar is.  I have tried to do this but I have not 
>  succeeded.  This cannot be that hard at all!  I have copybits regions
>  where the menubar has been.

I wouldn't recommend this, as it will cause the application to break under
Multifinder. Everything that I've got on my system that attempts to grab the
menubar blows up when I'm running under multifinder (including SuperPaint
1.0p in full screen mode). The system really, really wants the menubar there.
---
Chuq "Fixed in 4.0" Von Rospach			chuq@sun.COM	Delphi: CHUQ

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

The Druid (dredick@bbn.com) writes:
>  I have always wanted to write an application that does not use
>  the menu bar but instead DRAW USING THE FULL MAC SCREEN including
>  where the menu bar is. [...]

The easy way:
	GrafPort  myPort;
	OpenPort(&myPort);

The slightly more difficult way:
	WindowPtr myWindow;
	Rect	  bounds;
	GrafPort  myPort;

	OpenPort(&myPort);
	bounds = myPort->portRect;
	ClosePort(&myPort);
	myWindow = NewWindow(0,&bounds,"\palmost always invisible :-)",
			false,0,-1,false,0);
	RectRgn(window.port.visRgn, &bounds);
	ShowWindow(window);

The advantage of the second way is that when the window goes away,
whatever was behind it is redrawn (you still need to do the menu bar and
desktop corners explicitly).  This way you can use it in a da or
multifinder-friendly application.

chuq@sun.UUCP (Chuq Von Rospach) writes:
>I wouldn't recommend this, as it will cause the application to break under
>Multifinder.

You can still use the second way above.  I think it's pretty rude to do
this, so I check for the presence of MultiFinder to decide whether to
grab the whole screen or just throw up a window.  You should probably
either do this or only use the whole screen if the user requests.

------------------------------------------------------------------------------
Oliver Steele				  ...!{decvax,ihnp4}!mcnc!unc!steele
							steele%unc@mcnc.org

	"Life isn't fair.  It's just fairer than death, that's all."
							-- William Goldman
							  _The Princess Bride_

howard@cpocd2.UUCP (12/03/87)

In article <35264@sun.uucp> chuq@sun.UUCP (Chuq Von Rospach) writes:
>[the following not attributed]
>>  I have always wanted to write an application that does not use
>>  the menu bar but instead DRAW USING THE FULL MAC SCREEN including
>>  where the menu bar is.
>
>I wouldn't recommend this, as it will cause the application to break under
>Multifinder. Everything that I've got on my system that attempts to grab the
>menubar blows up when I'm running under multifinder (including SuperPaint
>1.0p in full screen mode). The system really, really wants the menubar there.

Try going into HyperCard, bringing up the message window, and executing

	hide menubar

I haven't tried this under MF, but it does hide the menubar under Finder 5.5.
This is necessary, because some stacks USE the extra space (for example, the
rather odd periodic table stack that went through comp.binaries.mac recently,
and a rather infantile porn stack that someone gave me).  I would be *VERY*
surprised if this failed under MF - Atkinson has specifically stated that he
wanted HC to give programmers control of the entire screen.  The HC paint tools
work under where the menubar used to be.

Oh yes, for the extremely naive, the way to get your menubar back is:

	show menubar

-- 
	Howard A. Landman
	{oliveb,hplabs}!intelca!mipos3!cpocd2!howard
	howard%cpocd2.intel.com@RELAY.CS.NET
	"I'm sorry, Dave, but I can't do that."