Chapter 1 Using CLIM

1.1 Conceptual Overview

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 Application Frames Panes Sheets Enabling Input and Output Graphics Text Events Mediums

1.4.2 CLIM Facilities Look and Feel Controlling Look and Feel Changing the appearance on Windows Changing the appearance on X11/Motif Streams Extended Input and Output Presentations Command Loop

1.4.3 Summary

1.5 Loading CLIM

1.6 Testing Code Examples

1.7 The CLIM demos

Chapter 2 Drawing Graphics

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 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 Graphics Protocols

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 Region Predicates in CLIM Composition of CLIM Regions

2.5.2 CLIM Point Objects

2.5.3 Polygons and Polylines in CLIM Constructors for CLIM Polygons and Polylines 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 Constructor Functions for Ellipses and Elliptical Arcs in CLIM Accessors for CLIM Elliptical Objects

2.5.7 Bounding Rectangles The Bounding Rectangle Protocol Bounding Rectangle Convenience Functions

Chapter 3 The CLIM Drawing Environment

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.4 Transformations in CLIM

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

3.5.4 CLIM Transformation Functions

3.5.5 Applying CLIM Transformations

Chapter 4 Text Styles

4.1 Conceptual Overview of Text Styles

4.2 CLIM Text Style Objects

4.3 CLIM Text Style Functions

4.4 Text Style Binding Forms

4.5 Controlling Text Style Mappings

Chapter 5 Drawing in Color

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

Chapter 6 Presentation Types

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

6.5.9 Command and Form Presentation Types

6.6 Functions That Operate on CLIM Presentation Types

Chapter 7 Defining a New Presentation Type

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

Chapter 8 Presentation Translators in CLIM

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.3 Pointer Gestures 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

Chapter 9 Defining Application Frames

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

Chapter 10 Panes and Gadgets

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 Extended Stream Panes

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 Using Gadgets Implementing Gadgets

10.5.2 Basic Gadget Classes

10.5.3 Abstract Gadget Classes The Label Gadget The List-Pane and Option-Pane Gadgets The Menu-Button Gadget The Push-Button Gadget The Radio-Box and Check-Box Gadgets The Scroll-Bar Gadget The Slider Gadget The Text-Field and Text-Editor Gadgets The Toggle-Button Gadget

10.5.4 Integrating Gadgets and Output Records

Chapter 11 Commands

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

Chapter 12 Menus and Dialogs

12.1 Conceptual Overview of Menus and Dialogs

12.2 CLIM Menu Operators

12.3 CLIM Dialog 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

12.4.6 Using menu-choose-from-drawer

Chapter 13 Extended Stream Output Facilities

13.1 Basic Output Streams

13.2 Extended 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

13.7 CLIM Window Stream Pane Functions

Chapter 14 Output Recording and Redisplay

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 Standard Output Record Classes Graphics Displayed Output Records Text Displayed Output Records Top-Level Output Records

14.2.4 Output Recording Streams The Output Recording Stream Protocol Graphics Output Recording Text Output Recording Output Recording Utilities

14.3 Conceptual Overview of Incremental Redisplay

14.4 CLIM Operators for Incremental Redisplay

14.5 Using updating-output

14.6 Example of Incremental Redisplay in CLIM

Chapter 15 Extended Stream Input Facilities

15.1 Basic Input Streams

15.2 Extended 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

Chapter 16 Input Editing and Completion Facilities

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

Chapter 17 Formatted Output

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 Formatting a Table From a List Formatting a Table Representing a Calendar Month Formatting a Table With Regular Graphic Elements Formatting a Table With Irregular Graphics in the Cells 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.3 Formatting Text in CLIM

17.4 Bordered Output in CLIM

17.5 Advanced Topics

17.5.1 The Table Formatting Protocol The Row and Column Formatting Protocol The Cell Formatting Protocol

17.5.2 The Item List Formatting Protocol

17.5.3 The Graph Formatting Protocol

Chapter 18 Sheets

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 Sheet Protocols: Input

18.5.1 Input Protocol Functions

18.5.2 Input Protocol Classes

18.6 Standard Device Events

18.7 Sheet Protocols: Output

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

Chapter 19 Ports, Grafts, and Mirrored Sheets

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 AGlossary

Appendix BImplementation Specifics

B.1 Setting Up Your Packages to Use CLIM

B.2 CLIM Packages

Appendix CThe CLIM-SYS Package

C.1 Resources

C.2 Multi-Processing

C.3 Locks

C.4 Multiple-Value Setf

Appendix DCommon Lisp Streams

D.1 Stream Classes

D.2 Basic Stream Functions

D.3 Character Input

D.4 Character Output

D.5 Binary Streams

D.6 Hardcopy Streams in CLIM

Appendix EWindows

E.1 Window Stream Operations in CLIM

E.2 Functions for Operating on Windows Directly


Common Lisp Interface Manager 2.0 User's Guide - 27 Feb 2008