Conceptually, a resource database is a set of resource name-value pairs (or resource bindings). The name in a resource binding is a list that is the concatenation of a path list and an attribute name.
A path list is a list of symbols (or strings) that corresponds to a path through a tree-structured hierarchy. For example, the path:
'(top middle bottom)
corresponds to a three-level hierarchy in which
the child of
bottom is the child of
Typically, the path of a resource name corresponds to a path in a hierarchy of windows, and each symbol/string names a window in the hierarchy. However, the first element of the path can also represent the overall name of the entire program, and subsequent path elements can refer to an application-specific hierarchy of resource names not strictly related to windows. In addition, a resource name can contain a partially-specified path list. The asterisk symbol (*) is a wildcard that can correspond to any sequence of levels in the hierarchy (including the null sequence). For example, the path:
'(top * bottom)
corresponds to a hierarchy of two or more levels in which
top is at the top level and
tom is at the bottom level. An element of a path list can
be the name of an individual window or the name of a class of windows.
The final element of a resource name list is an attribute name. This symbol (or string) identifies a specific attribute of the object(s) named by the preceding path list. The attribute name can also be the symbol * or the string "*", in which case the resource name refers to all attributes of the path object(s). However, this form of resource name is rarely useful.
Some examples of resource bindings are shown below. In these examples,
button whose name is
These resource bindings specify the following:
backgroundattribute resource of
replybutton has the value of
backgroundattribute for the rest of the
redon all screens.
backgroundattribute for all