Sheets are arranged in a tree-structured, acyclic, top-down hierarchy. Thus, in general, a sheet has one parent (or no parent) 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 need to define some terms. [annotate]
The generic functions in this section comprise the sheet protocol. All sheet objects must implement or inherit methods for each of these generic functions. [annotate]
Returns the parent of the sheet sheet, or nil if the sheet has no parent. [annotate] |
Returns a list of sheets that are the children of the sheet sheet. Some sheet classes support only a single child; in this case, the result of sheet-children will be a list of one element. This function returns objects that reveal CLIM's internal state; do not modify those objects. [annotate] |
Adds the child sheet child to the set of children of the sheet sheet, and makes the sheet the child's parent. If child already has a parent, the sheet-already-has-parent error will be signalled. [annotate] Some sheet classes support only a single child. For such sheets, attempting to adopt more than a single child will cause the sheet-supports-only-one-child error to be signalled. [annotate] |
Removes the child sheet child from the set of children of the sheet sheet, and makes the parent of the child be nil. If child is not actually a child of sheet and errorp is true, then the sheet-is-not-child error will be signalled. [annotate] |
Returns a list of all of the siblings of the sheet sheet. The sibling are all of the children of sheet's parent excluding sheet itself. This function returns fresh objects that may be modified. [annotate] |
Returns a list of those children of the sheet sheet that are enabled. This function returns fresh objects that may be modified. [annotate] |
Returns true if the the sheet putative-ancestor is in fact an ancestor of the sheet sheet, otherwise returns false. [annotate] |
These functions reorder the children of a sheet by raising the sheet sheet to the top or burying it at the bottom. Raising a sheet puts it at the beginning of the ordering; burying it puts it at the end. If sheets overlap, the one that appears "on top" on the display device is earlier in the ordering than the one underneath. [annotate] This may change which parts of which sheets are visible on the display device. [annotate] Note: Maybe we should have these as vanilla functions calling reorder-sheets. [edit]-- Gilbert Baumann 2004-11-20 23:52Z |
Reorders the children of the sheet sheet to have the new ordering specified by new-ordering. new-ordering is an ordered list of the child sheets; elements at the front of new-ordering are "on top" of elements at the rear. [annotate] If new-ordering does not contain all of the children of sheet, the sheet-ordering-underspecified error will be signalled. If new-ordering contains a sheet that is not a child of sheet, the sheet-is-not-child error will be signalled. [annotate] Note: An note-children-reordered generic function would be nice to have for some layout panes, which want react on the order changed by re-arranging the position of the children. Though I really don't know if that is the correct way. Also see the note to raise-sheet and bury-sheet [edit]-- Gilbert Baumann 2004-11-20 23:55Z |
Returns true if the the sheet sheet is enabled by its parent, otherwise returns false. Note that all of a sheet's ancestors must be enabled before the sheet is viewable. [annotate] |
When enabled-p is true, this enables the the sheet sheet. When enabled-p is false, this disables the sheet. [annotate] Note that a sheet is not visible unless it and all of its ancestors are enabled. [annotate] |
Returns true if the sheet sheet and all its ancestors are enabled, and if one of its ancestors is a graft. See Chapter 9 for further information. [annotate] |
Returns a list of the sheet child's siblings that occlude part or all of the region of the child. In general, these are the siblings that are enabled and appear earlier in the sheet sheet's children. If sheet does not permit overlapping among its children, sheet-occluding-sheets will return nil. [annotate] This function returns fresh objects that may be modified. [annotate] |
Applies the function function to the sheet sheet, and then applies function to all of the descendents (the children, the children's children, and so forth) of sheet. [annotate] Function is a function of one argument, the sheet; it has dynamic extent. [annotate] |
Different "mixin" classes are provided that implement the relationship protocol. None of the four following classes is instantiable. [annotate]
This class is mixed into sheet classes that have a parent. [annotate] |
This class is mixed into sheet classes that will never have children. [annotate] |
This class is mixed into sheet classes that have at most a single child. [annotate] |
This class is mixed into sheet classes that may have zero or more children. [annotate] |