[comp.sys.mac.hypercard] Changing userLevel

seibel@bbn.com (Fred Seibel) (01/17/90)

I have been experimenting with using mouseEnter and mouseLeave to change the
visibility and contents of a bg field to indicate to the user the action that
would occur when the mouse is clicked.  It works fine except that the changes
to the card cause the disk to updated alot.

So I thought about temporarily locking the stack to silence the disk.  This
works, but I have not been able to figure out how to perform the locking from
Hypertalk.  If anyone knows how to do this I would appreciate the tip.

In the course of this experimentation, I also played with changing the
userlevel.  Unfortunately setting the level to browsing doesn't have the
desired effect, the disk still updates.  However, much more distressing was the
fact that for one reasonable valuable stack, I chose "browsing" from the
"Protect Stack..." Menu.  This seems to be irreversible. No lock appears.

now from msg box I get the following behavior

set userLevel to 5
get UserLevel
it
1

If anyone could suggest how to undo this I would be indebted.

Fred
seibel@bbn.com

stadler@Apple.COM (Andy Stadler) (01/18/90)

In article <51012@bbn.COM> seibel@bbn.com (Fred Seibel) writes:
>
>In the course of this experimentation, I also played with changing the
>userlevel.  Unfortunately setting the level to browsing doesn't have the
>desired effect, the disk still updates.  However, much more distressing was the
>fact that for one reasonable valuable stack, I chose "browsing" from the
>"Protect Stack..." Menu.  This seems to be irreversible. No lock appears.
>
>If anyone could suggest how to undo this I would be indebted.

When you are in a stack which is protected down to userlevel 1, the problem
is that the protect stack... item no longer appears in the File menu.  How
do you get it back?  Press the command key before clicking in the File menu.
This brings back the Protect Stack... item, specifically for this purpose.

--Andy       stadler@apple.com

jdevoto@Apple.COM (Jeanne A. E. DeVoto) (01/20/90)

In article <51012@bbn.COM> seibel@bbn.com (Fred Seibel) writes:
>...I thought about temporarily locking the stack to silence the disk.  This
>works, but I have not been able to figure out how to perform the locking from
>Hypertalk.  If anyone knows how to do this I would appreciate the tip.

Try setting the cantModify property to true.

> ...     for one reasonable valuable stack, I chose "browsing" from the
>"Protect Stack..." Menu.  This seems to be irreversible. No lock appears.

To get to the Protect Stack dialog, hold down the command key while pulling
down the File menu. If you do this, the full menu appears arnd you'll be
able to access the dialog.

The level set in Protect Stack is basically a "cap" on the user level
allowed while in that stack. This is why you couldn't set the userLevel
back to 5 from the message box; the requested level was higher than the
level allowed in the stack, and so the set command was ignored.
-- 
====== jeanne a. e. devoto ========================================
 jdevoto@apple.com  |  You may not distribute this article under a
 jdevoto@well.UUCP  |  compilation copyright without my permission.
___________________________________________________________________
 Apple Computer and I are not authorized  |        CI$: 72411,165
 to speak for each other.                 |  AppleLink: SQA.TEST

taylorj@yvax.byu.edu (01/20/90)

In article <51012@bbn.COM> seibel@bbn.com (Fred Seibel) asks how to protect
the stack to cut down on disk access.

As you've discovered, setting the userlevel has nothing to do with stack
protection or disk access.  You need the following two commands:

  set the cantModify of this stack to true
  set the userModify to true

This locks the stack but still allows you (or your scripts) to do anything they
want on the current card.  Note carefully the last four words of the previous
sentence!  Once you leave a card it reverts to the state it was in before you
locked the stack.  This can cause all kinds of unexpected problems if you're
not careful.  If you can live with this, however, locking the stack eliminates
all disk access and can make your stack run much faster.


Jim Taylor
Microcomputer Support for Curriculum
Brigham Young University
taylorj@yvax.byu.edu