[comp.sys.next] Power-Off message to Apps

johner@portia.Stanford.EDU (John Lynch) (11/16/89)

I may have missed this discussion earlier, but I was wondering if anyone
knows what(if any) messages the Worskpace Manager sends to the running 
applications when the user hits the power off switch.  From the alert panel
that gets displayed and its statement that "all unsaved changes will be lost",
one would get the impression that all the Manager does is kill all of the
current processes.  However, in the class description for Application, there
are decalarations for methods suchch as powerOffIn:andSave:, which the 
application supposedly receives from the Workspace Manager when the machine 
powers off in so many milliseconds.  The application can supposedly go so far
as to request more time by sending an extendPowerOffBy: to the Manager, to
 allow more time for such necessities as saving documents and so forth.
  I've heard that in 0.8, there was more support for saving changes on
power off but that it was taken out for 0.9 and 1.0.  If this is true, does
anyone know the rationale for the change? As much as I like being able to
control the monitor and machine from the keyboard, having a button next to
my volume controls which can discard all of my work (with my only warning
being a quick alert panel),  seems a proposition of dubious merit. If the
idea is to allow the user a quick way to shut down the machine and all the
processes on it, then maybe that should be the last choice on that alert
panel.
  Anyway, just wondering...

ali@polya.Stanford.EDU (Ali T. Ozer) (11/17/89)

In article <6694@portia.Stanford.EDU> John Lynch writes:
>I may have missed this discussion earlier, but I was wondering if anyone
>knows what(if any) messages the Worskpace Manager sends to the running 
>applications when the user hits the power off switch.  From the alert panel
>that gets displayed and its statement that "all unsaved changes will be lost",
>one would get the impression that all the Manager does is kill all of the
>current processes.

When the user tries to log out or power off the machine, the Workspace Manager
sends a powerOffIn:andSave: method to all the apps started from the Workspace
Manager itself.  The default implementation of this method in Application
causes the appPowerOffIn:andSave: method to be called in the app's delegate
with the same arguments sent from the Workspace Manager.  The first argument
specifies the time remaining before the app will be killed, unless the app
quits on its own accord earlier.  The second argument specifies if the user
wants all files saved or not.  In 0.9, this argument would be YES or NO
depending how the user replied to the "Cancel / Save / Don't Save" panel.
In 1.0, this argument is always NO, indicating that the apps should not try 
to save unsaved documents (hence the Workspace's warning, "all unsaved changes
will be lost").

Anyway, despite that an app can take its time quitting, perhaps if it needs
to close some files and such.  If it needs more than the default time
provided, it can also ask for my time with the extendPowerOffBy: message,
just like in 0.9 (and 0.8). 

>I've heard that in 0.8, there was more support for saving changes on
>power off but that it was taken out for 0.9 and 1.0.  If this is true, does
>anyone know the rationale for the change?

Rather than having the user hit "Save" on the Logout panel and have all the 
apps try to save their files within a finite time, it's better to have the
user explicitly save the documents that need to be saved and not deal with
the documents that don't need to be saved.  It might very well be the case
that you don't want to save all the changes; only some of them.

And, as you can see from above, the apps do have time to clean up and tie
loose ends; hitting "Logout" doesn't cause the Workspace to immediately
blast away all the running apps. 

Ali

liemandt@lindy.Stanford.EDU (Joe Liemandt) (11/17/89)

In article <12846@polya.Stanford.EDU> ali@Polya.Stanford.EDU (Ali T. Ozer) writes:
>In article <6694@portia.Stanford.EDU> John Lynch writes:
>>I may have missed this discussion earlier, but I was wondering if anyone
>>knows what(if any) messages the Worskpace Manager sends to the running 
>>applications when the user hits the power off switch.  From the alert panel
>>that gets displayed and its statement that "all unsaved changes will be lost",
>>one would get the impression that all the Manager does is kill all of the
>>current processes.
>
>When the user tries to log out or power off the machine, the Workspace Manager
>sends a powerOffIn:andSave: method to all the apps started from the Workspace
>Manager itself.  The default implementation of this method in Application
>causes the appPowerOffIn:andSave: method to be called in the app's delegate
>with the same arguments sent from the Workspace Manager.  The first argument
>specifies the time remaining before the app will be killed, unless the app
>quits on its own accord earlier.  The second argument specifies if the user
>wants all files saved or not.  In 0.9, this argument would be YES or NO
>depending how the user replied to the "Cancel / Save / Don't Save" panel.
>In 1.0, this argument is always NO, indicating that the apps should not try 
>to save unsaved documents (hence the Workspace's warning, "all unsaved changes
>will be lost").

This seems to be less than optimal.  I do not always remember or know
if changes were made or need to be saved. I often hide a window or
application and could easily forget to save it.

Example:
I write a paper in WriteNow, hide it, open another, make changes.  If
I logout, the NeXT is not going to tell me I have unsaved changes.
Even if I remember to save the current window, I will probably forget
to save the hidden one.

Or what if someone wants to logout of my machine and log themselves
in.  they have no way of knowing what I have changed.

I like the Macintosh solution of going through each app and posting a
quit event.  It is much easier for the computer to prompt me for
changes rather than trying to remember where I made changes, going
there and saving them.  When I am tired, I make stupid mistakes,
please save me from them.

>>I've heard that in 0.8, there was more support for saving changes on
>>power off but that it was taken out for 0.9 and 1.0.  If this is true, does
>>anyone know the rationale for the change?
>
>Rather than having the user hit "Save" on the Logout panel and have all the 
>apps try to save their files within a finite time, it's better to have the
>user explicitly save the documents that need to be saved and not deal with
>the documents that don't need to be saved.  It might very well be the case
>that you don't want to save all the changes; only some of them.

When I quit, I should get the yes,no, cancel dialog for each window of
each app with changes.  I can save only the ones I want.

>And, as you can see from above, the apps do have time to clean up and tie
>loose ends; hitting "Logout" doesn't cause the Workspace to immediately
>blast away all the running apps. 

Apps have time to clean up, but all unsaved changes are lost.

>
>Ali

The problem with my solution is that is does not guarantee that the
machine will ever logout/powerdown.  I could leave a dialog up and not
respond to it and hang the logout.  I think this could be solved by
adding a button to the logout dialog.  So now it has three choices:

	Logout 	         - do not save changes (how it works now)
	Save if changes  - post a quit to each app and let it deal
	Cancel		 - Cancel shutdown

	Logout  	 - guarantees that the machine will shutdown
	Save  		 - no guarantee
	Cancel  	 - guaranteed not to shutdown.


This just seems a better way.  With the NeXT, I keep many applications 
open/hidden.  I am confident about the machine not bombing, so I am
less careful than I am on my Mac.  But I can just see having lots of
open unsaved windows/applications, and then logging out and losing it.

Why not just add the button?

Joe Liemandt
Stanford University

dorner@pequod.cso.uiuc.edu (Steve Dorner) (11/17/89)

In article <5844@lindy.Stanford.EDU> liemandt@lindy.Stanford.EDU (Joe Liemandt) writes:
>When I quit, I should get the yes,no, cancel dialog for each window of
>each app with changes.  I can save only the ones I want.

I want to get those dialogs, too.  Or at least have the option of getting
them.  Every time I log out, I wonder, did I forget to save something?  The
only safe way to log out is to go down the dock, quit everything that's
active, THEN log out.  This is too much hassle, so I don't do it.

So sometimes, I lose changes.  Bad.  The fact that the "M computer" does
it right ought to be embarassing for you "N people", too.
-- 
Steve Dorner, U of Illinois Computing Services Office
Internet: s-dorner@uiuc.edu  UUCP: {convex,uunet}!uiucuxc!dorner
IfUMust:  (217) 244-1765

morrison@cs.ubc.ca (Rick Morrison) (11/18/89)

In article <1989Nov17.132842.14140@ux1.cso.uiuc.edu> dorner@pequod.cso.uiuc.edu (Steve Dorner) writes:
>In article <5844@lindy.Stanford.EDU> liemandt@lindy.Stanford.EDU (Joe Liemandt) writes:
>>When I quit, I should get the yes,no, cancel dialog for each window of
>>each app with changes.  I can save only the ones I want.

No, please no. I can't stand any more dialog boxes. When I want to log out I want
to log out. Period. Personally, I'd be happier if the logout dialog box went away 
altogether. 

>I want to get those dialogs, too.  Or at least have the option of getting
>them.                                                   ^^^^^^

Having an option sounds reasonable. And while we're at it, how about an option for
click to type, window coverage, window-to-top, etc, etc.?
--------------------------------
Rick Morrison		 | {alberta,uw-beaver,uunet}!ubc-cs!morrison
Dept. of Computer Science| morrison@cs.ubc.ca
Univ. of British Columbia| morrison%ubc.csnet@csnet-relay.arpa
Vancouver, B.C. V6T 1W5  | morrison@ubc.csnet (ubc-csgrads=128.189.97.20)
(604) 228-4327

deke@ee.rochester.edu (Dikran Kassabian) (11/20/89)

In <5673@ubc-cs.UUCP> morrison@grads.cs.ubc.ca writes:
>In <1989Nov17.132842.14140@ux1.cso.uiuc.edu> dorner@pequod.cso.uiuc.edu writes:
>>In <5844@lindy.Stanford.EDU> liemandt@lindy.Stanford.EDU writes:

Too many people talking.  My ears hurt.

>>>When I quit, I should get the yes,no, cancel dialog for each window of
>>>each app with changes.  I can save only the ones I want.
>
>No, please no. I can't stand any more dialog boxes. When I want to log out I 
>want to log out. Period. Personally, I'd be happier if the logout dialog box 
>went away altogether. 

I agree with both of you.  I don't want a ton of dialog boxes, but I want
them at the write time (pun intended :-).  If I have no applications with 
unsaved changes, please just log me out, no questions asked.  If there's 
stuff that may need saving, give me (the option to have) a dialog box popped 
up for each.

>Having an option sounds reasonable. And while we're at it, how about an 
>option for click to type, window coverage, window-to-top, etc, etc.?

Oh yeah, definitely.  It annoys me that I don't seem to have the option of
making a partially covered window have input (that is, keyboard) focus.  I'm
very used to having whatever window my mouse occupies as my current window,
regardless of whether or not it is fully exposed.  If there's a way to do this,
please let me know.

Here's another gripe:  Why does WriteNow want to put a regular file in the
top level of my home directory?  I established my own dictionary, and now
there is a file called WNDictionary.wndict at my top level.  Why not an
"invisible" .wndict file?  Why not in a .NeXT directory?  I object to having
an application write visible files at my top level.  I try hard to keep my
top level organized as directories only.

Complaints aside, I love those NeXTs!


      ^Deke Kassabian,   deke@ee.rochester.edu   or   ur-valhalla!deke
   Univ of Rochester, Dept of EE, Rochester, NY 14627     (+1 716-275-3106)