(no subject)
Peter Brigham
pmbrig at gmail.com
Wed May 28 23:24:11 EDT 2008
On May 27, 2008, Lars Brehmer <larsbrehmer at mac.com> wrote:
****
...This brings me to a second question - in my standalone the close
button saves all substacks , but apparently choosing quit in the MacOS
menubar doesn't save anything. What must be done in order to have
quitting from the menu bar save changes as well?
Cheers,
Lars
****
I had this problem also, and various people on the list suggested the
solution. You have to cover all the ways you can quit from a
standalone, on both platforms. Here's the thread I saved:
From: Mark Schonewille <m.schonewille at economy-x-talk.com>
Date: Fri, 16 Nov 2007 01:16:34 +0100
Re: Re: saving data in a standalone before quit
(Was Re: (mac) application menu)
Peter,
When you use the Quit menu item, Mac OS X sends an event to
Revolution. You can catch this message with the AppleEvent handler or
the shutdownRequest handler. On Mac OS X, I prefer to use the
AppleEvent handler most of the time.
If you use either the AppleEvent handler or the shutdownRequest
handler without a pass command, the application will not quit by
itself (you can also lock messages and issue the quit command).
When you press command-Q, the Quit menu item should work just like
when you use the mouse to select this menu item and you can catch the
AppleEvent and shutdownRequest messages again. However, your script
may catch the commandKeyDown message. If you don't pass this message
with the pass command, your application may not quit.
There are versions of Revolution that don't pass the commandKeydown
message because of a bug. There are also versions that don't pass the
AppleEvent message.
If you are using Rev 2.8.1, problems with quitting are probably due
to a script.
Best regards,
Mark Schonewille
********
From: Marty Knapp <martyknapp at comcast.net>
Date: Sat, 17 Nov 2007 11:04:20 -0800
On: How to use Revolution <use-revolution at lists.runrev.com>
Re: (mac) application menu
This was driving me crazy too. After messing around with it, I pieced
the following together and it's worked for me (I am using Rev 2.6.1):
on appleEvent pClass,pID,pSender --I got this from Ken Ray's web site
switch (pClass & pID)
case "aevtquit"
answer "Save changes?" with "Don't Save" or "Save"
if it is "Save" then
doSaveStuff
pass appleEvent
else pass appleEvent
break
default
pass appleEvent
break
end switch
end appleEvent
on closeStackrequest
Global homeStack
if the short name of this stack is homeStack then
answer "Save changes?" with "Don't Save" or "Save"
if it is "Save" then
doSaveStuff
end if
end if
pass closeStackrequest
end closeStackrequest
on shutdownRequest --I only use this for Windows
Global homeStack
if the platform contains "Win" then
if the short name of this stack is homeStack then
answer "Save changes?" with "Don't Save" or "Save"
if it is "Save" then
doSaveStuff
end if
end if
end if
pass shutdownRequest
end shutdownRequest
Marty Knapp
******
Where to put the handlers depends on the structure of your stack
system. You want them high enough up in the hierarchy to trap the
messages no matter where the user is when the quit/close is
triggered, but keep in mind that putting them in the main stack
script will cause closeStackrequest to be called every time a
subordinate stack closes.
-- Peter
Peter M. Brigham
pmbrig at gmail.com
More information about the use-livecode
mailing list