The generic function top-level-interface-geometry-key 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 interface returns the class name of
interface
as the
key
, and
nil
as the
product-name
. You can define methods for your interfaces and products.
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.