Generic Function

Determines where the geometry of an interface is saved.




top-level-interface-geometry-key interface
=> key , product-name



A top level interface.



A symbol.


A symbol, a string or a list of strings.


Returns as multiple values a key and a product name, which determine where the geometry of interface is saved. The saved geometry is used when displaying a future instance.

The supplied method on top-level-interface-geometry-key returns the class name of interface as the key , and nil as the product-name . You can define methods for your interfaces and products.

key must be a symbol.

product-name is used to derive the product-registry-path .

product-name can be a symbol which was previously defined to have a registry path by (setf sys:product-registry-path) .

product-name can alternatively be a string, which is taken directly as product-registry-path .

product-name can alternatively be a list of strings, denoting multiple path components. These are concatenated together with the appropriate separator for the platform to give product-registry-path .

The geometry of interface is saved at the path which is constructed by concatenating (with appropriate separators) these values:

user-path product-registry-path "Environment" (symbol-package key ) (symbol-name key )

where user-path is the registry branch HKEY_CURRENT_USER on Microsoft Windows and the home directory on Unix/Linux and Mac OS X.

Note: for your interface classes for which you want the geometry to be saved, define a method on top-level-interface-save-geometry-p.

Note: in an image delivered at delivery level 5, symbol names are removed by default. This breaks the saved geometry mechanism as the registry path is constructed using symbol-name . To make this work in a level 5 delivered image, explicitly keep the key symbol. See the LispWorks Delivery User Guide for details.

See also


LispWorks CAPI Reference Manual - 17 Mar 2008