[comp.sys.mac.programmer] Save/Discard/Cancel

oster@well.sf.ca.us (David Phillip Oster) (11/28/90)

Inside Mac Vol 4 says that there shall be a standard "save changes" dialog.
It even goes so far as to specifiy the integer coordinates of the buttons
and text. Here is a direct quote:
	"When a user chooses Close or Quit from the File menu, and the 
	active document has been changed, the Close dialog box appears,
	asking 'Save changes before closing?' A great deal of work can be 
	lost if the user mistakenly clicks the "No" button instead of 
	"Cancel". This is especially important for Switcher users, who 
	often move from one application to another and become less aware
	of  subtle differences between applications. To avoid confusion, 
	all applications should use the same standard Close dialog:"

The dialog IM4 recommends looks like this:
 ---
Save changes to file "foo" before closing?
((Yes))
 (No )		(Cancel)
 ---

Users are often tired or rushed, and our programs should not be full of 
pitfalls for people working at less than peak efficiency. Remember, when
you are designing your close dialog, that simple filenames can be quite long,
and if the user has anyway of typing a path, the result can be longer than
255 characters. I personally don't like the look of dialogs that have been
sized for the worst case: there is too much white space for the usual case.
My programs autosize these dialogs: I implement them as a dialog rather than
as an alert, construct the text I am going to show, call textEdit to measure
the number of lines the text will take, and resize the Statictext item,
move the controls and grow the window as necessary.

The IM4 recommendation on Close dialog boxes was revised in a later tech 
note to:

 ---
Save changes to file "foo" before closing?
(( Save ))
 (Discard)		(Cancel)
 ---

on the grounds that it was better to label buttons with explicit verbs,
rather than use "Yes" and "No". That way, the user is less likely to 
automatically react, without thought, to yet another Yes/No question.


Now, Inside Mac Vol 6 (beta) says:

 ---
Save changes to file "foo" before closing?
 (Don't Save)		(Cancel)	((Save))
 ---

I think the change of button labels is an improvement, but getting rid
of the two columns and moving the position of the default button all the
way to the other side of the dialog is a mistake. Apple wants us to do this
because the new word is that default buttons should always be in the lower
left, with cancel beside them. They argue that dialogs should be read from
left to right, top to bottom, so the default choice should be at the very
end. In Apple's illustration, the three buttons
are equally spaced across the bottom of the dialog box.

Apple, in the shipping version of Inside Mac Vol 6, please change this to:

 ---
 +-+
 | |
 +-+	Save changes to file "foo" before closing?
	((   Save   ))
	 (Don't Save)		(Cancel)
 ---
I think the history of this specific three button dialog is too important
to ignore. The new dialog puts the dangerous choice right where the safe
choice used to be. Further, if all the other dialogs follow Apple's new
guidelines, than it is the very difference from that standard that will
help us here. Close dialogs will be the ONLY dialogs with this distinctive
pattern of buttons, and user will know that that is what he is seeing just 
from the shape of this standard close dialog, before he even reads the dialog.

The "box" in the above figure represents the icon for the document that will
be saved. This gives the user another cue about what application is asking
him this question.


"A foolish consistency is a hobgoblin of little minds", as Asimov says 
Emerson says.
-- 
-- David Phillip Oster - At least the government doesn't make death worse.
-- oster@well.sf.ca.us = {backbone}!well!oster

ollef@sics.se (Olle Furberg) (11/29/90)

>Apple, in the shipping version of Inside Mac Vol 6, please change this to:
> 
> ---
> +-+
> | |
> +-+    Save changes to file "foo" before closing?
>        ((   Save   ))
>         (Don't Save)           (Cancel)
>

  I also think this is better than the "Discard"-version, but for another
reason: English is not my native language. It tooked me about one month to
learn that "Cancel" means "Avbryt", but I still (after 2 year?) have a lot of
problems with the "Discard"-button.

  For foreign users it would be much easier with a simple negation of a
wellknown verb e.g. "Don't Save" 

   /Olle

cheshire@Neon.Stanford.EDU (Stuart David Cheshire) (11/29/90)

Where does all this "Don't Save" rubbish come from?
"Cancel" means "Don't save, don't destroy, don't do anything."
What does "Don't Save" mean? Don't save and do WHAT instead?
I want the button to say "Discard" because that's what it does - it destroys
all the work you just did.

I have once lost a load of work like that - very tired, click the close box by
mistake and this thing comes up saying Yes/No/Cancel. My brain was in UNIX mode
[ rm *     Are you sure? (Y/N) ] so I hit "No" before I realized what I'd done.

Stuart Cheshire (cheshire@cs.stanford.edu)

wilde@tigger.Colorado.EDU (Nick Wilde) (11/30/90)

In article <1990Nov28.192747.10650@Neon.Stanford.EDU> cheshire@Neon.Stanford.EDU (Stuart David Cheshire) writes:
>Where does all this "Don't Save" rubbish come from?
>"Cancel" means "Don't save, don't destroy, don't do anything."
>What does "Don't Save" mean? Don't save and do WHAT instead?
>I want the button to say "Discard" because that's what it does - it destroys
>all the work you just did.
>
>I have once lost a load of work like that - very tired, click the close box by
>mistake and this thing comes up saying Yes/No/Cancel. My brain was in UNIX mode
>[ rm *     Are you sure? (Y/N) ] so I hit "No" before I realized what I'd done.
>
Huh ? Cancel means "Don't do anything". Don't Save means Do what I asked
you to, but Don't save first.  I'm not sure I understand you're confusion.

I'm not sure there's ANY magic combination of Verbs that will stop somebody
from misinterpreting and doing the wrong thing. In you're case, you
went into automatic and basically ignored what the machine was trying to 
tell you - "Do what I say, D*mn it!". 

I remember reading somewhere (sorry, can't remember the reference) where it
was claimed that this type of "are you sure" dialog doesn't do any good 
most of the time, anyway, for this very reason. It comes up at just the
wrong time, when the user has already decided his/her plan of action and
is busy worrying about the next step - "Don't bother me about that saving
that silly text file, darn it, I'm looking for the C compiler".

Perhaps the only thing that would work is a universal "undo" command -
Wouldn't that be neat ? I folder right next to the trash on your hard 
disk labelled "Waste paper" or something like that, where the last
document you changed and didn't save gets put by the application in
case you decide you really do want it. Like when I go diggin through
my own waste paper basket to find that note I threw away. (Only this
one wouldn't have a banana peel on top of it:))

-Nick

-- 
-------------------------------------------------------------------------------
Nick Wilde                                           wilde@boulder.colorado.edu 

kent@circus.camex.com (Kent Borg) (12/04/90)

In article <1990Nov30.041941.24294@csn.org> wilde@tigger.Colorado.EDU (Nick Wilde) writes:

[Conversation on "Are you sure you don't not want to save?" dialogs.]

>Perhaps the only thing that would work is a universal "undo" command -
>Wouldn't that be neat ? I folder right next to the trash on your hard 
>disk labelled "Waste paper" or something like that, where the last
>document you changed and didn't save gets put by the application in
>case you decide you really do want it. Like when I go diggin through
>my own waste paper basket to find that note I threw away. (Only this
>one wouldn't have a banana peel on top of it:))

That's it!!!  When an application wants to save something valuable and
the user thinks (foolishly) that it can be safely trashed, the
application should dump a copy in the Trash!  (Under 7.0 the Trash
doesn't empty until the user requests it.)

I know that on booting 7.0b1 sometimes I see in the Trash a fleeting
"Items Rescued from MyHardDisk"-folder.  (It seems to vanish after
Finder settles down.)  Maybe applications should put potentially
useful things there?

Question: What happens if an application calls FSDelete under 7.0?
Really erases the file, huh?  Maybe we need an FSSoftDelete that
"Trash"es the file, puts it in the rescued folder?

Comments?

--
Kent Borg                            internet: kent@camex.com   AOL: kent borg
                                            H:(617) 776-6899  W:(617) 426-3577
"The prospect of their mass excites astrophysicists, who are always on the
 lookout for ways to make the universe heavier"   -- The Economist, 9-22-90