Cover Contents Index Acknowledgments



Table of Contents

Overview and Conventions
1Overview of CLIM
2Conventions
2.1Audience, Goals, and Purpose
2.2Package Structure
2.3``Spread'' Point Arguments to Functions
2.4Immutability of Objects
2.4.1Behavior of Interfaces
2.5Protocol Classes and Predicates
2.6Specialized Arguments to Generic Functions
2.7Multiple Value setf
2.8Sheet, Stream, or Medium Arguments to Macros
2.9Macros that Expand into Calls to Advertised Functions
2.10Terminology Pertaining to Error Conditions
Geometry Substrate
3Regions
3.1General Regions
3.1.1The Region Predicate Protocol
3.1.2Region Composition Protocol
3.2Other Region Types
3.2.1Points
3.2.1.1The Point Protocol
3.2.2Polygons and Polylines
3.2.2.1The Polygon and Polyline Protocol
3.2.3Lines
3.2.3.1The Line Protocol
3.2.4Rectangles
3.2.4.1The Rectangle Protocol
3.2.5Ellipses and Elliptical Arcs
3.2.5.1The Ellipse and Elliptical Arc Protocol
4Bounding Rectangles
4.1Bounding Rectangles
4.1.1The Bounding Rectangle Protocol
4.1.2Bounding Rectangle Convenience Functions
5Affine Transformations
5.1Transformations
5.1.1Transformation Conditions
5.2Transformation Constructors
5.3The Transformation Protocol
5.3.1Transformation Predicates
5.3.2Composition of Transformations
5.3.3Applying Transformations
Windowing Substrate
6Overview of Window Facilities
6.1Introduction
6.2Properties of Sheets
6.3Sheet Protocols
7Properties of Sheets
7.1Basic Sheet Classes
7.2Relationships Between Sheets
7.2.1Sheet Relationship Functions
7.2.2Sheet Genealogy Classes
7.3Sheet Geometry
7.3.1Sheet Geometry Functions
7.3.2Sheet Geometry Classes
8Sheet Protocols
8.1Input Protocol
8.1.1Input Protocol Functions
8.1.2Input Protocol Classes
8.2Standard Device Events
8.3Output Protocol
8.3.1Output Properties
8.3.2Output Protocol Functions
8.3.3Output Protocol Classes
8.3.4Associating a Medium with a Sheet
8.3.4.1Grafting and Degrafting of Mediums
8.4Repaint Protocol
8.4.1Repaint Protocol Functions
8.4.2Repaint Protocol Classes
8.5Sheet Notification Protocol
8.5.1Relationship to Window System Change Notifications
8.5.2Sheet Geometry Notifications
9Ports, Grafts, and Mirrored Sheets
9.1Introduction
9.2Ports
9.3Grafts
9.4Mirrors and Mirrored Sheets
9.4.1Mirror Functions
9.4.2Internal Interfaces for Native Coordinates
Sheet and Medium Output Facilities
10Drawing Options
10.1Medium Components
10.2Drawing Option Binding Forms
10.2.1Transformation ``Convenience'' Forms
10.2.2Establishing Local Coordinate Systems
10.3Line Styles
10.3.1Line Style Protocol and Line Style Suboptions
10.3.2Contrasting Dash Patterns
11Text Styles
11.1Text Styles
11.1.1Text Style Protocol and Text Style Suboptions
11.2Text Style Binding Forms
11.3Controlling Text Style Mappings
12Graphics
12.1Overview of Graphics
12.2Definitions
12.3Drawing is Approximate
12.4Rendering Conventions for Geometric Shapes
12.4.1Permissible Alternatives During Rendering
12.5Drawing Functions
12.5.1Basic Drawing Functions
12.5.2Compound Drawing Functions
12.6Pixmaps
12.7Graphics Protocols
12.7.1General Behavior of Drawing Functions
12.7.2Medium-specific Drawing Functions
12.7.3Other Medium-specific Output Functions
13Drawing in Color
13.1The :ink Drawing Option
13.2Basic Designs
13.3Color
13.3.1Standard Color Names and Constants
13.3.2Contrasting Colors
13.4Opacity
13.5Color Blending
13.6Indirect Inks
13.7Flipping Ink
13.8Examples of Simple Drawing Effects
14General Designs
14.1The Compositing Protocol
14.2Patterns and Stencils
14.3Tiling
14.4Regions as Designs
14.5Arbitrary Designs
14.6Examples of More Complex Drawing Effects
14.7Design Protocol
Extended Stream Output Facilities
15Extended Stream Output
15.1Basic Output Streams
15.2Extended Output Streams
15.3The Text Cursor
15.3.1Text Cursor Protocol
15.3.2Stream Text Cursor Protocol
15.4Text Protocol
15.4.1Mixing Text and Graphics
15.4.2Wrapping of Text Lines
15.5Attracting the User's Attention
15.6Buffering of Output
16Output Recording
16.1Overview of Output Recording
16.2Output Records
16.2.1The Basic Output Record Protocol
16.2.2The Output Record ``Database'' Protocol
16.2.3Output Record Change Notification Protocol
16.3Types of Output Records
16.3.1Standard Output Record Classes
16.3.2Graphics Displayed Output Records
16.3.3Text Displayed Output Record
16.3.4Top-Level Output Records
16.4Output Recording Streams
16.4.1The Output Recording Stream Protocol
16.4.2Graphics Output Recording
16.4.3Text Output Recording
16.4.4Output Recording Utilities
17Table Formatting
17.1Overview of Table Formatting Facilities
17.2Table Formatting Functions
17.3The Table and Item List Formatting Protocols
17.3.1Table Formatting Protocol
17.3.2Row and Column Formatting Protocol
17.3.3Cell Formatting Protocol
17.3.4Item List Formatting Protocol
18Graph Formatting
18.1Graph Formatting Functions
18.2The Graph Formatting Protocols
19Bordered Output
20Text Formatting
20.1Textual List Formatting
20.2Indented Output
20.3Filled Output
21Incremental Redisplay
21.1Overview of Incremental Redisplay
21.1.1Examples of Incremental Redisplay
21.2Standard Programmer Interface
21.3Incremental Redisplay Protocol
21.4Incremental Redisplay Stream Protocol
Extended Stream Input Facilities
22Extended Stream Input
22.1Basic Input Streams
22.2Extended Input Streams
22.2.1The Extended Input Stream Protocol
22.2.2Extended Input Stream Conditions
22.3Gestures and Gesture Names
22.3.1Standard Gesture Names
22.4The Pointer Protocol
22.5Pointer Tracking
23Presentation Types
23.1Overview of Presentation Types
23.2Presentations
23.2.1The Presentation Protocol
23.3Presentation Types
23.3.1Defining Presentation Types
23.3.2Presentation Type Abbreviations
23.3.3Presentation Methods
23.3.4Presentation Type Functions
23.4Typed Output
23.5Context-dependent (Typed) Input
23.6Views
23.7Presentation Translators
23.7.1Defining Presentation Translators
23.7.2Presentation Translator Functions
23.7.3Finding Applicable Presentations
23.7.4Translator Applicability
23.8Standard Presentation Types
23.8.1Basic Presentation Types
23.8.2Numeric Presentation Types
23.8.3Character and String Presentation Types
23.8.4Pathname Presentation Type
23.8.5``One-of'' and ``Some-of'' Presentation Types
23.8.6Sequence Presentation Types
23.8.7``Meta'' Presentation Types
23.8.8Compound Presentation Types
23.8.9Lisp Expression Presentation Types
24Input Editing and Completion Facilities
24.1The Input Editor
24.1.1The Input Editing Stream Protocol
24.1.2Suggestions for Input Editing Commands
24.2Activation and Delimiter Gestures
24.3Signalling Errors Inside present Methods
24.4Reading and Writing of Tokens
24.5Completion
25Menu Facilities
26Dialog Facilities
Building Applications
27Command Processing
27.1Commands
27.2Command Tables
27.3Command Menus
27.4Keystroke Accelerators
27.5Presentation Translator Utilities
27.6The Command Processor
27.6.1Command Presentation Types
28Application Frames
28.1Overview of Application Frames
28.2Defining and Creating Application Frames
28.2.1Specifying the Panes of a Frame
28.3Application Frame Functions
28.3.1Interface with Presentation Types
28.4The Generic Command Loop
28.5Frame Managers
28.5.1Finding Frame Managers
28.5.2Frame Manager Operations
28.5.3Frame Manager Settings
28.6Examples of Applications
29Panes
29.1Overview of Panes
29.2Basic Pane Construction
29.2.1Pane Initialization Options
29.2.2Pane Properties
29.3Composite and Layout Panes
29.3.1Layout Pane Options
29.3.2Layout Pane Classes
29.3.3Scroller Pane Classes
29.3.4The Layout Protocol
29.4CLIM Stream Panes
29.4.1CLIM Stream Pane Options
29.4.2CLIM Stream Pane Classes
29.4.3Making CLIM Stream Panes
29.4.4CLIM Stream Pane Functions
29.4.5Creating a Standalone CLIM Window
29.5Defining New Pane Types
29.5.1Defining a New Leaf Pane
29.5.2Defining a New Composite Pane
30Gadgets
30.1Overview of Gadgets
30.2Abstract Gadgets
30.2.1Using Gadgets
30.2.2Implementing Gadgets
30.3Basic Gadget Classes
30.4Abstract Gadget Classes
30.4.1The push-button Gadget
30.4.2The toggle-button Gadget
30.4.3The menu-button Gadget
30.4.4The scroll-bar Gadget
30.4.5The slider Gadget
30.4.6The radio-box and check-box Gadgets
30.4.7The list-pane and option-pane Gadgets
30.4.8The text-field Gadget
30.4.9The text-editor Gadget
30.5Integrating Gadgets and Output Records
Appendices
31Glossary
32The CLIM-SYS Package
32.1Resources
32.2Multi-processing
32.3Locks
32.4Multiple Value setf
33Encapsulating Streams
33.1Encapsulating Stream Classes
33.1.1Encapsulating Stream Protocol
33.1.2The ``Delegation Problem''
34Common Lisp Streams
34.1Stream Classes
34.2Basic Stream Functions
34.3Character Input
34.4Character Output
34.5Binary Streams
35Suggested Extensions to CLIM
35.1Support for PostScript Output
35.2Support for Reading Bitmap Files
36Changes from CLIM 1.0
Index
Index



Cover Contents Index Acknowledgments