6.1 Introduction

A central notion in organizing user interfaces is allocating screen regions to particular tasks and recursively subdividing these regions into subregions. The windowing layer of CLIM defines an extensible framework for constructing, using, and managing such hierarchies of interactive regions. This framework allows uniform treatment of the following things: [annotate]

From the perspective of most CLIM users, CLIM's windowing layer plays the role of a window system. However, CLIM will usually use the services of a window system platform to provide efficient windowing, input, and output facilities. In this specification, such window system platforms will be referred to as host window systems or as display servers. [annotate]

The fundamental window abstraction defined by CLIM is called a sheet. A sheet can participate in a relationship called a windowing relationship. This relationship is one in which one sheet called the parent provides space to a number of other sheets called children. Support for establishing and maintaining this kind of relationship is the essence of what window systems provide. At any point in time, CLIM allows a sheet to be a child in one relationship called its youth windowing relationship and a parent in another relationship called its adult windowing relationship. [annotate]

[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← A Glossary]
[sheet, Concept← 9.4.2 Internal Interfaces for Native Coordinates, invalidate-cached-regions]
[sheet, Concept← 9.4.2 Internal Interfaces for Native Coordinates, invalidate-cached-transformations]
[sheet, Concept← 9.4.2 Internal Interfaces for Native Coordinates, sheet-native-region]
[sheet, Concept← 9.4.2 Internal Interfaces for Native Coordinates, sheet-native-transformation]
[sheet, Concept← 9.4.1 Mirror Functions, bury-mirror]
[sheet, Concept← 9.4.1 Mirror Functions, raise-mirror]
[sheet, Concept← 9.4.1 Mirror Functions, destroy-mirror]
[sheet, Concept← 9.4.1 Mirror Functions, realize-mirror]
[sheet, Concept← 9.4.1 Mirror Functions, sheet-mirror]
[sheet, Concept← 9.4.1 Mirror Functions, sheet-mirrored-ancestor]
[sheet, Concept← 9.4.1 Mirror Functions, sheet-direct-mirror]
[sheet, Concept← 8.5.2 Sheet Geometry Notifications, note-sheet-region-changed]
[sheet, Concept← 8.5.1 Relationship to Window System Change Notifications, note-sheet-grafted]
[sheet, Concept← 8.4.1 Repaint Protocol Functions, repaint-sheet]
[sheet, Concept← 8.4.1 Repaint Protocol Functions, handle-repaint]
[sheet, Concept← 8.4.1 Repaint Protocol Functions, queue-repaint]
[sheet, Concept← 8.3.4.1 Grafting and Degrafting of Mediums, degraft-medium]
[sheet, Concept← 8.3.4.1 Grafting and Degrafting of Mediums, engraft-medium]
[sheet, Concept← 8.3.4 Associating a Medium with a Sheet, sheet-medium]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, sheet-allocated-region]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, sheet-allocated-region]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, children-overlapping-region]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, child-containing-position]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, map-sheet-rectangle*-to-child]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, map-sheet-rectangle*-to-parent]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, map-sheet-position-to-child]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, map-sheet-position-to-parent]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, move-and-resize-sheet]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, resize-sheet]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, move-sheet]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, sheet-region]
[sheet, Concept← 7.3.1 Sheet Geometry Functions, sheet-transformation]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-occluding-sheets]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-occluding-sheets]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-viewable-p]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, (setf sheet-enabled-p)]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-enabled-p]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, reorder-sheets]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, raise-sheet]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-ancestor-p]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-ancestor-p]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-enabled-children]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-siblings]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-disown-child]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-adopt-child]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-children]
[sheet, Concept← 7.2.1 Sheet Relationship Functions, sheet-parent]
[sheet, Concept← 7.1 Basic Sheet Classes, sheetp]
[sheet, Concept← 1 Overview of CLIM]

Programmers can manipulate unrooted hierarchies of sheets (those without a connection to any particular display server). However, a sheet hierarchy must be attached to a display server to make it visible. Ports and grafts provide the functionality for managing this capability. A port is an abstract connection to a display service that is responsible for managing host display server resources and for processing input events received from the host display server. A graft is a special kind of sheet that represents a host window, typically a root window (that is, a screen-level window). A sheet is attached to a display by making it a child of a graft, which represents an appropriate host window. The sheet will then appear to be a child of that host window. So, a sheet is put onto a particular screen by making it a child of an appropriate graft and enabling it. Ports and grafts are described in detail in Chapter 9. [annotate]