1.2 Highlights of Tools and Techniques
1.3 How CLIM Helps You Achieve a Portable User Interface
1.4 What Is CLIM?
1.4.1 The Core of CLIM
1.4.1.1 Application Frames
1.4.1.2 Panes
1.4.1.3 Sheets
1.4.1.4 Enabling Input and Output
1.4.1.5 Graphics
1.4.1.6 Text
1.4.1.7 Events
1.4.1.8 Mediums
1.4.2 CLIM Facilities
1.4.2.1 Look and Feel
1.4.2.2 Controlling Look and Feel
1.4.2.3 Streams
1.4.2.4 Extended Input and Output
1.4.2.5 Presentations
1.4.2.6 Command Loop
1.4.3 Summary
1.5 Loading CLIM
2.1 Conceptual Overview of Drawing Graphics
2.1.1 Drawing Functions and Options
2.1.2 The Drawing Plane
2.1.3 Coordinates
2.1.4 Mediums, Sheets, and Streams
2.2 Examples of Using CLIM Drawing Functions
2.3.1 Arguments
2.3.2 Compound Drawing Functions
2.3.3 Patterns and Stencils
2.3.4 Pixmaps
2.4.1 Arguments
2.4.2 General Behavior of Drawing Functions
2.4.3 Medium-Specific Drawing Functions
2.5 General Geometric Objects in CLIM
2.5.1 Regions in CLIM
2.5.1.1 Region Predicates in CLIM
2.5.1.2 Composition of CLIM Regions
2.5.2 CLIM Point Objects
2.5.3 Polygons and Polylines in CLIM
2.5.3.1 Constructors for CLIM Polygons and Polylines
2.5.3.2 Accessors for CLIM Polygons and Polylines
2.5.4 Lines in CLIM
2.5.5 Rectangles in CLIM
2.5.6 Ellipses and Elliptical Arcs in CLIM
2.5.6.1 Constructor Functions for Ellipses and Elliptical Arcs in CLIM
2.5.6.2 Accessors for CLIM Elliptical Objects
2.5.7 Bounding Rectangles
2.5.7.1 The Bounding Rectangle Protocol
3.1 CLIM Mediums
3.2 Using CLIM Drawing Options
3.2.1 Set of CLIM Drawing Options
3.2.2 Using the :filled Option
3.3 CLIM Line Styles
3.5 The Transformations Used by CLIM
3.5.1 CLIM Transformation Constructors
3.5.2 CLIM Transformation Protocol
3.5.3 CLIM Transformation Predicates
5.1 Conceptual Overview of Drawing With Color
5.1.1 Color Objects
5.1.2 Rendering
5.2 CLIM Operators for Drawing in Color
5.3 Predefined Color Names in LispWorks CLIM
5.4 Indirect Inks
5.5 Flipping Ink
5.6 Examples of Simple Drawing Effects
5.6.1 Using Flipping Ink
6.1 Conceptual Overview of CLIM Presentation Types
6.1.1 User Interaction With Application Objects
6.1.2 Presentations and Presentation Types
6.1.3 Output With Its Semantics Attached
6.1.4 Input Context
6.1.5 Inheritance
6.1.6 Presentation Translators
6.1.7 What the Application Programmer Does
6.2 How to Specify a CLIM Presentation Type
6.3 Using CLIM Presentation Types for Output
6.3.1 CLOS Operators
6.3.2 Additional Functions for Operating on Presentations in CLIM
6.4 Using CLIM Presentation Types for Input
6.5 Predefined Presentation Types
6.5.1 Basic Presentation Types
6.5.2 Numeric Presentation Types
6.5.3 Character and String Presentation Types
6.5.4 Pathname Presentation Types
6.5.5 One-Of and Some-Of Presentation Types
6.5.6 Sequence Presentation Types
6.5.7 Constructor Presentation Types
6.5.8 Compound Presentation Types
7.1 Conceptual Overview of Defining a New Presentation Type
7.1.1 CLIM Presentation Type Inheritance
7.1.2 Defining an Accept for a Structure With Several Fields
7.2 CLIM Operators for Defining New Presentation Types
7.2.1 Presentation Methods in CLIM
7.2.2 CLIM Operators for Defining Presentation Type Abbreviations
7.3 Using Views With CLIM Presentation Types
7.4 Advanced Topics
8.1 Conceptual Overview of Presentation Translators
8.2 Applicability of CLIM Presentation Translators
8.2.1 Input Contexts in CLIM
8.2.2 Nested Presentations in CLIM
8.4 CLIM Operators for Defining Presentation Translators
8.5 Examples of Defining Presentation Translators in CLIM
8.5.1 Defining a Translation from Floating Point Number to Integer
8.5.2 Defining a Presentation-to-Command Translator
8.5.3 Defining Presentation Translators for the Blank Area
8.5.4 Defining a Presentation Action
8.6 Advanced Topics
9.1 Conceptual Overview of CLIM Application Frames
9.2 Defining CLIM Application Frames
9.2.1 The Application Frame Protocol
9.2.2 Using the :pane Option
9.2.3 Using the :panes and :layouts Options
9.2.4 Example of the :pane Option to define-application-frame
9.2.5 Examples of the :panes and :layout Options to define-application-frame
9.2.6 Using an :accept-values Pane in a CLIM Application Frame
9.3 Initializing CLIM Application Frames
9.4 Accessing Slots and Components of CLIM Application Frames
9.5 Running a CLIM Application
9.6 Exiting a CLIM Application
9.7 Examples of CLIM Application Frames
9.7.1 Defining a CLIM Application Frame
9.7.2 Constructing a Function as Part of Running an Application
9.8 Application Frame Operators and Accessors
9.8.1 CLIM Application Frame Accessors
9.8.2 Operators for Running CLIM Applications
9.9 Frame Managers
9.9.1 Finding Frame Managers
9.9.2 Frame Manager Operators
9.10 Advanced Topics
10.1 Panes
10.1.1 Basic Pane Construction
10.1.2 Pane Initialization Options
10.1.3 Pane Properties
10.2 Layout Panes
10.2.1 Layout Pane Options
10.2.2 Layout Pane Classes
10.2.3 Composite Pane Generic Functions
10.2.4 The Layout Protocol
10.3.1 Extended Stream Pane Options
10.3.2 Extended Stream Pane Classes
10.3.3 Making CLIM Extended Stream Panes
10.4 Defining A New Pane Type: Leaf Panes
10.5 Gadgets
10.5.1 Abstract Gadgets
10.5.1.1 Using Gadgets
10.5.1.2 Implementing Gadgets
10.5.2 Basic Gadget Classes
10.5.3 Abstract Gadget Classes
10.5.3.1 The Label Gadget
10.5.3.2 The List-Pane and Option-Pane Gadgets
10.5.3.3 The Menu-Button Gadget
10.5.3.4 The Push-Button Gadget
10.5.3.5 The Radio-Box and Check-Box Gadgets
10.5.3.6 The Scroll-Bar Gadget
10.5.3.7 The Slider Gadget
10.5.3.8 The Text-Field and Text-Editor Gadgets
10.5.3.9 The Toggle-Button Gadget
11.1 Introduction to CLIM Commands
11.2 Defining Commands the Easy Way
11.2.1 Command Names and Command Line Names
11.2.2 The Command-Defining Macro
11.3 Command Objects
11.4 CLIM Command Tables
11.5 CLIM Predefined Command Tables
11.6 Conditions Relating to CLIM Command Tables
11.7 Styles of Interaction Supported by CLIM
11.8 Command-Related Presentation Types
11.9 The CLIM Command Processor
11.10 Advanced Topics
11.10.1 CLIM Command Tables
11.10.2 CLIM Command Menu Interaction Style
11.10.3 Mouse Interaction Via Presentation Translators
11.10.4 CLIM Command Line Interaction Style
11.10.5 CLIM Keystroke Interaction Style
11.10.6 The CLIM Command Processor
12.1 Conceptual Overview of Menus and Dialogs
12.2 CLIM Menu Operators
12.4 Examples of Menus and Dialogs in CLIM
12.4.1 Using accepting-values
12.4.2 Using accept-values-command-button
12.4.3 Using : resynchronize-every-pass in accepting-values
12.4.4 Using the third value from accept in accepting-values
12.4.5 Using menu-choose
13.1 Basic Output Streams
13.3 The Text Cursor
13.3.1 The Text Cursor Protocol
13.3.2 The Stream Text Cursor Protocol
13.4 Text
13.4.1 The Text Protocol
13.4.2 Mixing Text and Graphics
13.4.3 Wrapping Text Lines
13.5 Attracting the User's Attention
13.6 Buffering Output
14.1 Conceptual Overview of Output Recording
14.2 CLIM Operators for Output Recording
14.2.1 The Basic Output Record Protocol
14.2.2 The Output Record "Database" Protocol
14.2.3 Types of Output Records
14.2.3.1 Standard Output Record Classes
14.2.3.2 Graphics Displayed Output Records
14.2.3.3 Text Displayed Output Records
14.2.3.4 Top-Level Output Records
14.2.4 Output Recording Streams
14.2.4.1 The Output Recording Stream Protocol
14.2.4.2 Graphics Output Recording
14.2.4.3 Text Output Recording
14.2.4.4 Output Recording Utilities
14.3 Conceptual Overview of Incremental Redisplay
15.1 Basic Input Streams
15.2.1 The Extended Input Stream Protocol
15.2.2 Extended Input Stream Conditions
15.3 Gestures and Gesture Names
15.4 The Pointer Protocol
15.5 Pointer Tracking
16.1 Input Editing
16.1.1 Operators for Input Editing
16.1.2 Input Editor Commands
16.2 Activation and Delimiter Gestures
16.3 Signalling Errors Inside accept Methods
16.4 Reading and Writing Tokens
16.5 Completion
16.6 Using with-accept-help: some examples
16.7 Advanced Topics
17.1 Formatting Tables in CLIM
17.1.1 Conceptual Overview of Formatting Tables
17.1.2 CLIM Operators for Formatting Tables
17.1.3 Examples of Formatting Tables
17.1.3.1 Formatting a Table From a List
17.1.3.2 Formatting a Table Representing a Calendar Month
17.1.3.3 Formatting a Table With Regular Graphic Elements
17.1.3.4 Formatting a Table With Irregular Graphics in the Cells
17.1.3.5 Formatting a Table of a Sequence of Items
17.2 Formatting Graphs in CLIM
17.2.1 Conceptual Overview of Formatting Graphs
17.2.2 CLIM Operators for Graph Formatting
17.2.3 Examples of CLIM Graph Formatting
17.5 Advanced Topics
17.5.1 The Table Formatting Protocol
17.5.1.1 The Row and Column Formatting Protocol
17.5.1.2 The Cell Formatting Protocol
18.1 Overview of Window Facilities
18.1.1 Properties of Sheets
18.1.2 Sheet Protocols
18.2 Basic Sheet Classes
18.3 Relationships Between Sheets
18.3.1 Sheet Relationship Functions
18.3.2 Sheet Genealogy Classes
18.4 Sheet Geometry
18.4.1 Sheet Geometry Functions
18.4.2 Sheet Geometry Classes
18.5.1 Input Protocol Functions
18.5.2 Input Protocol Classes
18.7.1 Mediums and Output Properties
18.7.2 Output Protocol Functions
18.7.3 Output Protocol Classes
18.7.4 Associating a Medium With a Sheet
18.8 Repaint Protocol
18.8.1 Repaint Protocol Functions
18.8.2 Repaint Protocol Classes
18.9 Sheet Notification Protocol
18.9.1 Relationship to Window System Change Notifications
18.9.2 Sheet Geometry Notifications
19.1 Introduction
19.2 Ports
19.3 Grafts
19.4 Mirrors and Mirrored Sheets
19.4.1 Mirror Functions
19.4.2 Internal Interfaces for Native Coordinates
Appendix A Glossary
Appendix B Implementation Specifics
B.1 Setting Up Your Packages to Use CLIM
B.2 CLIM Packages
Appendix C The CLIM-SYS Package
C.1 Resources
C.2 Multi-Processing
C.3 Locks
Appendix D LispWorks CLIM and CAPI
Appendix E Common Lisp Streams
E.1 Stream Classes
E.3 Character Input
E.4 Character Output
E.5 Binary Streams
Appendix F Windows