for Chimara 0.9.2


Annotation Glossary
I. Chimara API Reference
ChimaraGlk — Widget which executes a Glk program
ChimaraIF — Widget which plays an interactive fiction game
II. Glk API Specification, version 0.7.4
Introduction
What Glk Is
What About the Virtual Machine?
What Does Glk Not Do?
Conventions of This Document
Credits
Overall Structure
Your Program's Main Function — How Glk starts your program
Exiting Your Program — How to terminate a Glk program cleanly
The Interrupt Handler — Specifying an interrupt handler for cleaning up critical resources
The Tick Thing — Yielding time to the operating system
Basic Types — Basic types used in Glk
Opaque Objects — Complex objects in Glk
The Gestalt System — Testing Glk's capabilities
Other API Conventions — General information about the Glk API
Character Encoding
Character Encoding — Latin-1 and Unicode characters
Output — Printing basics
Line Input — Reading lines of text
Character Input — Waiting for a single keystroke
Upper and Lower Case — Changing the case of strings
Unicode String Normalization — Combining characters
A Note on Unicode Case-Folding and Normalization — How to handle line input
Windows
Windows — Introduction to Glk windows
Window Arrangement — The Way of Window Arrangement
Window Opening, Closing, and Constraints — Creating new windows and closing them
Changing Window Constraints — Manipulating the size of a window
A Note on Display Style — How windows may be displayed on different platforms
The Types of Windows — Blank, pair, text grid, text buffer, and graphics windows
Echo Streams — Creating a copy of a window's output
Other Window Functions — Miscellaneous functions for windows
Events
Events — Waiting for events
Character Input Events — Events representing a single keystroke
Line Input Events — Events representing a line of user input
Mouse Input Events — Events representing a mouse click
Timer Events — Events sent at fixed intervals
Other Events — Events in future versions of Glk
Streams
Streams — Input and output abstractions
How to Print — Printing to streams
How to Read — Reading from streams
Closing Streams — Closing streams and retrieving their character counts
Stream Positions — Moving the read/write mark
Styles — Changing the appearance of printed text
Suggesting the Appearance of Styles — Setting style hints
Testing the Appearance of Styles — Finding out how the library displays your style hints
The Types of Streams — Window, memory, file, and resource streams
Other Stream Functions — Miscellaneous functions for streams
File References
File References — A platform-independent way to refer to disk files
The Types of File References — Four different ways to create a file reference
Other File Reference Functions — Miscellaneous functions for file references
Graphics
Image Resources — Graphics in Glk
Graphics in Graphics Windows — Drawing graphics in graphics windows
Graphics in Text Buffer Windows — Drawing graphics inside or beside text
Testing for Graphics Capabilities — Checking whether the library supports graphics
Sound
Sound Resources — Sound in Glk
Creating and Destroying Sound Channels — Creating new sound channels and closing them
Playing Sounds — Producing noise
Other Sound Channel Functions — Miscellaneous functions for sound channels
Testing for Sound Capabilities — Checking whether the library supports sound
Hyperlinks
Creating Hyperlinks — Printing text as a hyperlink
Accepting Hyperlink Events — Generating and catching hyperlink navigation events
Testing for Hyperlink Capabilities — Checking whether the library supports hyperlinks
The System Clock
The System Clock — Getting the current time from the system clock
Time and Date Conversions — Converting from timestamps to date structures and back
Testing for Clock Capabilities — Checking whether the library supports the clock functions
Porting, Adapting, and Other Messy Bits
Startup Options
Going Outside the Glk API
Memory Management
String Manipulation
File Handling
Private Extensions to Glk
Glk and the Virtual Machine
Implementing a Higher Layer over Glk
Glk as a VM's Native API
A. The Dispatch Layer
The Dispatch Layer — Calling Glk functions dynamically
Interrogating the Interface — Finding out what functions the Glk library exports
Dispatching — Dispatching the call to the Glk library
Getting Argument Prototypes — Querying Glk function prototypes
Functions the Library Must Provide — Platform-dependent dispatch layer functions
Table of Selectors — Table of dispatch selectors for Glk functions
B. The Blorb Layer
The Blorb Layer — Loading resources from a Blorb file
What the Program Does — How to use the Blorb layer in your program
What the Library Does — How to implement the Blorb layer in your library
What the Blorb Layer Does — The platform-independent functions in the Blorb layer
Blorb Errors — Error codes returned by the Blorb layer functions
C. Glk Extensions
Startup Code — Parsing startup options
Unix Extensions — Unix-specific functions
Gargoyle Extensions — Gargoyle extensions to Glk
Index of symbols
Index of deprecated symbols