nil
, a menu, or the name of a slot containing a menu in the application interface.
nil
, a menu, or a function designator.
application-interface-message-callback
application-interface-application-menu
application-interface-dock-menu
The class
cocoa-default-application-interface
supports application messages and the application menu for a Cocoa application.
When non-nil, message-callback should be a function with signature
message-callback
will be called for various application messages. The
interface
argument will be the application interface and the
message
argument will be a keyword. The only currently defined message is
:open-file
. In this case
args
will contain the name of the file to open. This message is invoked when the user double-clicks on a document associated with the application or drags a document into the application icon.
application-menu
controls the application's main menu. If this is
nil
, then a minimal application menu will be made using the title of the application interface, otherwise it should be a menu containing the usual items or the name of a slot containing such a menu in the application interface.
dock-menu
provides a menu for use by the Mac OS X Dock icon. If the value is
nil
(the default), then the standard menu is used. If
dock-menu
is a function designator, it is called with the application interface as its argument when the menu is popped up and should return a menu. Otherwise
dock-menu
should be a menu, which is used directly. The Dock will add the standard items such as
Quit
to the end of the menu you supply.
interface initargs are interpreted as follows:
All of these callbacks execute in the thread that runs the Cocoa event loop, so they can call CAPI and GP functions.
The application interface also allows you to control aspects of the application. In particular:
:hidden
if the whole application is hidden and will return
:normal
otherwise.
(setf top-level-interface-display-state)
can be used to perform some operations typically found on the application menu. The display-state value can one of:
Show the application and activate it
Show the application again without activating it
Hide
Show All
To make your application use your
cocoa-default-application-interface
, do not display it explicitly, but call set-application-interface.
Note:
cocoa-default-application-interface
is implemented only in LispWorks for Macintosh with the Cocoa IDE.
examples/capi/applications/cocoa-application.lisp