chh9@quads.uchicago.edu (Conrad Halton Halling) (03/10/91)
Ten days ago I obtained HyperCard 2.0v2 from the file server here at the University, where we have a site license. Before I continue, I want to say that 2.0 is a wonderful improvement on 1.2.x; the new features have solved alot of problems I had with scripting. I think the HyperCard team of programmers should be congratulated on producing such a wonderful product. I have observed what I would consider unexpected behavior in 2.0v2 (with System 6.0.5 on an SE with 2.5 MB), and I want to know if the following are bugs (i.e., the behavior is unintended) or if they are "undocumented features" (i.e., the behavior is intended but not documented). Please don't ask me to RTFM, because I don't have TFM, just the help stacks :-). I have a stack of cards, each of which permits access to another stack. I do not want the user to be able to delete or cut a card without deleting the associated stack, nor do I want the user to create a new card or paste a card since such a card would have no associated stack. I thought I could prevent this by disabling menuItems "New Card", "Delete Card", "Cut Card", and "Copy Card" of menu "Edit". This is where the problems begin. o Although I am able to disable menuItems of the "File" and "Go" menus, disable does not work with "New Card", "Delete Card", or "Cut Card" of the "Edit" menu. I am able to disable "Copy Card". I can disable the entire "Edit" menu, but I need to retain access to the other menuItems. Although I can't disable them, it is possible to delete "New Card", "Delete Card", and "Cut Card" from the "Edit" menu (but this causes new problems, as described below). o On the "Menu Behavior" card of the "Help Extras" stack, it says: You can use the set, get, put, delete, enable, and disable commands with menus that arenUt currently visible (perhaps because the menu bar is hidden, the user level is set too low, or a different tool is chosen). I know it doesn't say so, but I would think that you could use the set, get, etc. commands with menuItems that aren't currently visible because the user level is set too low. However, I can't delete menuItem "Copy Card" of menu "Edit" when the userLevel is 2. o It gets more bizarre. If you delete menuItem "Cut Card" from menu "Edit", then set the userLevel to 2, the menu no longer includes the "Cut" command. So you can't even cut text from the message box. Similarly, if you delete menuItem "Copy Card" from menu "Edit", then set the userLevel to 2, you lose the "Copy" command. So deleting these unwanted menuItems doesn't help me. My solution, which is not as elegant as it should be, is to (1) set the cantDelete of all cards of the stack to true to block the "Cut Card" and "Delete Card" commands; and (2) to intercept any "New Card" or "Paste Card" commands with a doMenu handler and provide some sort of warning to the user. It would be much more desirable if I could simply disable the menuItems. Other problems I have encountered: o I have changed the first menuItem of menu 1 (the apple menu) from "About HyperCard..." to "About myStackName...". When the user chooses this menuItem, my stack goes to a special card describing itself. However, I cannot intercept "About myStackName..." in a doMenu handler, but I can intercept "About HyperCard...". The Help Stacks don't seem to document this subtlety. o If you are working with more than one window, you can't disable menuItem "Next Window" of menu "Go". -- Con Halling chh9@midway.uchicago.edu