[comp.sys.mac.hypercard] Visual effects, menubar, SysEnv-XFCN

ollef@sics.se (Olle Furberg) (08/17/89)

  Don't hide the menubar if it's not absolutly necessary!

  I have seen several HC-beginners rebooting their Macs when the menubar
disappers: you don't help anyone by hiding the menubar. Without the menubar,
you don't know how to get the message box or how to get help: you don't even
know how to quit! 

  The disappearance of the menubar confuses everybody, even an absolute
Mac-beginner. The first thing I learned on the Mac was to select menuitems!

  The fact that HyperCard contains a way to hide the menubar does not justify
the use of it: As I've understood, Bill Atkinson ((the creator of HC)) has 
never been interested in the Apple desktop-metaphor!! (But without him, we
wouldn't have any HC!!!)

  One interesting question is: should it really be any difference between the
Apple desktop metaphor interface and the HyperCard interface? What's Apple's
official opinion? Will HyperCard and (Multi)Finder be the same program in
system 8.0?


  If you really must hide the menubar (for e.g. cosmetic reasons) check the
environment first: use the SysEnv-XFCN in the TN stack. In my case it gives
the following output:

Macintosh Plus,6.0.2,Motorola 68000,false,false,Macintosh Plus keyboard,0,-32621
1,B&W

  I haven't tried it on my IIx, but the first item tells you what sort of
Mac the stack is running on and the last two items tell you how much color
you have.

  If the first item of SysEnv() contains "II", you don't need to hide the
menubar. On a MacII, HC is just another window on the desktop.



  And here we also have the solution to the other question, about visual
effects: just add the following lines to your "openstack"-handler in the bg
or the stack-script:

 if first item of second line of SysEnv() > 2 then
   answer "If you want visual effects you better turn off the color!"
 end if

NOTE: The SysEnv-XFCN is made by Chris Knepper and copyrighted by Apple!
I don't know if you're allowed to distribute it without license.


   /Olle

amanda@intercon.uu.net (Amanda Walker) (08/17/89)

In article <1989Aug16.214948.8911@sics.se>, ollef@sics.se (Olle Furberg)
writes:
>   If the first item of SysEnv() contains "II", you don't need to hide the
> menubar. On a MacII, HC is just another window on the desktop.

A better way is to check "the loc of card window".  If it's (0,0), you're
on a Plus/SE size screen.  If it's not, there's absolutely no need to hide
the menubar, since you're on a bigger screen.

--
Amanda Walker
InterCon Systems Corporation
--
amanda@intercon.uu.net    |    ...!uunet!intercon!amanda

bskendig@phoenix.Princeton.EDU (Brian Kendig) (08/18/89)

In article <1989Aug16.214948.8911@sics.se> ollef@sics.se (Olle Furberg) writes:
>  Don't hide the menubar if it's not absolutly necessary!

I beg to differ.  Read on.

>  I have seen several HC-beginners rebooting their Macs when the menubar
>disappers: you don't help anyone by hiding the menubar. Without the menubar,
>you don't know how to get the message box or how to get help: you don't even
>know how to quit! 

If you're writing a program for beginners, they may not know what a menubar
is.  I'm doing a project that will be placed in a museum, and the last thing
I want is for somebody to accidentally choose 'Quit HyperCard' and begin
putzing around in the Finder.  If the users don't know how to get the message
box and they're not supposed to anyway, they're not going to miss anything.
If you do expect them to type commands, create a button to toggle the message
box on and off.  If you provide help, add a Help button.  If you want them
to be able to quit, give them a Quit button.

>  The disappearance of the menubar confuses everybody, even an absolute
>Mac-beginner. The first thing I learned on the Mac was to select menuitems!

The audience I'm creating my stacks for are not absolute Mac-beginners.  I
assume that they have never before *seen* a computer.  If I put a button
reading "Click On Me" in front of them, and tell them which end of a mouse
to click on, they will never need to know how to select "Go Next" from the
menubar.

>  The fact that HyperCard contains a way to hide the menubar does not justify
>the use of it: As I've understood, Bill Atkinson ((the creator of HC)) has 
>never been interested in the Apple desktop-metaphor!! (But without him, we
>wouldn't have any HC!!!)

Ah, but HyperCard is no desktop.  It is a wonderful way to gently lead people
by the hand into the world of computers.

Giving people power just enough power to do what they are supposed to do
is a good way to make sure that are able to control their actions.  
Put a beginner (or a computer-illiterate!) in front of a machine and give
him the run of it, and he'll either be overwhelmed, screw things up royally,
or perhaps both.

If you think the user will need to get to the menubar, show it.  If you
don't think he should have it, hide it.  If it doesn't matter, leave it
alone; otherwise you can add scripts to make sure it stays hidden or
visible (such as one I'll mention in a moment).

>  One interesting question is: should it really be any difference between the
>Apple desktop metaphor interface and the HyperCard interface? What's Apple's
>official opinion? Will HyperCard and (Multi)Finder be the same program in
>system 8.0?

Both interfaces are a common extension of one theme: to make the user as
comfortable as possible in any given situation.  With the Mac, things are
done intuitively: you drag files in the Finder; you click on arrows in
HyperCard.  Within certain guidelines, the interface fits the need.

>  If you really must hide the menubar (for e.g. cosmetic reasons) check the
>environment first: use the SysEnv-XFCN in the TN stack.

A very good idea - and remember: If you're using a big screen on your Mac
and you don't like the menubar vanishing on you all the time when you run
stacks designed on smallscreen Macs, include this script in your Home stack:

  on hide what
    if not (what is menuBar) then pass hide
  end hide

This checks if you're trying to hide the menu bar, and only passes the message
if you're not.  I've found it more than a tad useful.

-- 
| Brian S. Kendig       |  I feel more like I   | bskendig                   |
| Computer Engineering  |  did when I got here  | @phoenix.Princeton.EDU     |
| Princeton University  |       than I do now.  | @PUCC.BITNET               |
| Systems Engineering, NASA Space Station Freedom / General Electric WP3     |

lhe@sics.se (Lars-Henrik Eriksson) (08/18/89)

In article <1989Aug16.214948.8911@sics.se>, ollef@sics (Olle Furberg) writes:
>
>  If you really must hide the menubar (for e.g. cosmetic reasons) check the
>environment first: use the SysEnv-XFCN in the TN stack. In my case it gives
>the following output:
>
>Macintosh Plus,6.0.2,Motorola 68000,false,false,Macintosh Plus keyboard,0,-32621
>1,B&W
>
>  I haven't tried it on my IIx, but the first item tells you what sort of
>Mac the stack is running on and the last two items tell you how much color
>you have.
>
>  If the first item of SysEnv() contains "II", you don't need to hide the
>menubar. On a MacII, HC is just another window on the desktop.

That has nothing at all to do with MacIIs. If the window is large
enough, HC will use an ordinary window, even on a Mac SE, say.
-- 
Lars-Henrik Eriksson				Internet: lhe@sics.se
Swedish Institute of Computer Science		Phone (intn'l): +46 8 752 15 09
Box 1263					Telefon (nat'l): 08 - 752 15 09
S-164 28  KISTA, SWEDEN

jm7f+@andrew.cmu.edu (Joe Melvin) (08/19/89)

In article <1989Aug16.214948.8911@sics.se>, ollef@sics.se (Olle Furberg)
writes:
>   If the first item of SysEnv() contains "II", you don't need to hide the
> menubar. On a MacII, HC is just another window on the desktop.

Alternatively you can check the screenrect - this fuction returns the pixel
rectangle of your mac screen.  If it is not the same as a plus/se screen
then you don't have to hide the menubar (I can't recall the size of a plus
/se screen at the moment, but this can be checked using the msg box and
the above function easy enough).

Joe Melvin
hc programmer & student
Carnegie Mellon