18.3 Relationships Between Sheets

Sheets are arranged in a tree-structured, acyclic, top-down hierarchy. Thus, in general, a sheet has one or no parents and zero or more children. A sheet may have zero or more siblings (that is, other sheets that share the same parent). In order to describe the relationships between sheets, we define the following terms.

Adopted--A sheet is said to be
adopted
if it has a parent. A sheet becomes the parent of another sheet by adopting that sheet.

Disowned--A sheet is said to be
disowned
if it does not have a parent. A sheet ceases to be a child of another sheet by being disowned.

Grafted--A sheet is said to be
grafted
when it is part of a sheet hierarchy whose highest ancestor is a graft. In this case, the sheet may be visible on a particular window server.

Degrafted--A sheet is said to be
degrafted
when it is part of a sheet hierarchy that cannot be visible on a server, that is, the highest ancestor is not a graft.

Enabled--A sheet is said to be
enabled
when it is actively participating in the windowing relationship with its parent. If a sheet is enabled and grafted, and all its ancestors are enabled (they are grafted by definition), then the sheet will be visible if it occupies a portion of the graft region that isn't clipped by its ancestors or ancestor's siblings.