home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sys / mac / hypercar / 4120 < prev    next >
Encoding:
Internet Message Format  |  1992-11-08  |  4.3 KB

  1. Path: sparky!uunet!mcsun!sunic!random.se!ianf
  2. From: ianf@random.se (HyperAgent In Disguise[tm])
  3. Newsgroups: comp.sys.mac.hypercard
  4. Date: Sun, 08 Nov 92 09:03:27 +0100
  5. Message-ID: <a7228859@random.se>
  6. X-Mailer: Fernmail 1.2b2f
  7. Apparently-To: rnews@sunet.se
  8. Organization: random design -- "Opinions, cheaply"
  9. Lines: 88
  10. Summary: ask not the user & ye shall be rewarded
  11. Subject: Re: Show/hide menubar
  12.  
  13.  
  14.   A while back NoName <clas005@csc.canterbury.ac.nz> had this
  15.   to say in regard to a query by another poster:
  16.  
  17. # Date: 13 Oct 92 04:07:54 GMT
  18.  
  19. >>> Although you can use the command "show/hide menubar", HC will not
  20. >>> evaluate the visible state of the menubar.  I.e., "the visible of
  21. >>> the menubar" does not return true or false.  Does anyone know how
  22. >>> one could construct a button to toggle between showing and hiding
  23. >>> the menubar?  Thanks.
  24. >>> --David
  25.  
  26. >> You could keep a variable containing the state of the menubar.
  27.  
  28. > But that variable would not be updated if the *user* hide or
  29. > showed the menubar.
  30.  
  31. > The *simplest* way to do *exactly* what the original questioner
  32. > asked is to ask HyperCard to simulate typing SPACE with the
  33. > COMMAND key held down.  This, after all, is the user command for
  34. > toggling the menubar.  Just say, "type space with commandKey". 
  35.  
  36.   SIMPLE it is.
  37.  
  38. > If you really need to *know* whether the menubar is visible, there
  39. > is an XCMD that tells you.  However, it is not clear to me why you
  40. > need to know this, since you can make sure it is showing by asking
  41. > for show, make sure it is hidden by asking for hide, and toggle by
  42. > the method just described. 
  43.  
  44.  
  45.   I've no quibble with the toggle-menubar-method described, simple
  46.   though it may be.  I would, however, object to an implementation
  47.   that NoName seems to be favouring: to require explicit end-user
  48.   interaction ("ask for show"; "ask for hide") ) for such simple-
  49.   minded tasks as these.
  50.  
  51.   This seems to me just another example of the common widespread
  52.   misconception as to what is, or should be, the essence of user
  53.   interaction and --in a wider sense-- that of programming and
  54.   computing itself.  
  55.   
  56.   My opinion of the first (the need and extent of user interaction)
  57.   is that end-users should only be asked to supply explicit anwers
  58.   or expected to make decisions in matters of essence or of great
  59.   importance.  All the other "administrative" actions should be
  60.   taken care of by the program itself, with a minimum of needless
  61.   user interaction and/ or notification.  It is by protecting the
  62.   users from simplistic tasks like these, not by offering them an
  63.   illusion of being "in control at all times," that they best be
  64.   served. 
  65.   
  66.   If the designer of a program (in this case of a stack) considers
  67.   showing or hiding of a menubar to be of importance, requiring the
  68.   user to press a button to toggle it on and off, then perhaps s/he
  69.   ought to reconsider the design itself. 
  70.   
  71.   A better course of action would be to draw up conditions under
  72.   which the menubar should remain off (or on) and then to trap, and
  73.   continuously check for, occurencies of those conditions.  Once
  74.   detected, take the default action without any explicit involvement
  75.   by the user.  Include a toggle button, by all means, but treat it
  76.   solely as a secondary mechanism, a "menuBar display undo" sort of.
  77.   In this particular case, menuBar status could easiest by tracked
  78.   and transformed by the following handler:
  79.  
  80.  on myEvent ---------------say 'openCard'
  81.    if menubarIsShowing() --XFCN by Eric Carlson, (c) Apple 1990;
  82.    then hide menuBar ------included in Support Tools eXternals 1.2.5
  83.    else show menuBar ------stack [Apple's spelling, not mine]
  84.  end myEvent
  85.  
  86.  
  87.   Those among you wanting to ensure that no end-user ever be able
  88.   to find and delete that eternal piece of code from one of your
  89.   scripts may elect to do the same thing in the following highly-
  90.   obfuscated inline fashion:
  91.  
  92.  do&&(item offset(char 1 of menubarIsShowing(),"tf") of "hide,show)&&"menubar" --add a confusing comment like "MAKING SURE THE DATA ARE SECURE" or something; (c) Basil Fawlty School of Advanced Programming Logic, Summer Course '92
  93.  
  94.  
  95.   After all, isn't protecting the user from mundane tasks like
  96.   having to decide whether or not the menubar should be on just
  97.   what 'programming' should be all about?
  98.  
  99.  
  100. __Ian "name of the game is 'Five Card Stud'" Feldman
  101.