| X11 Libraries (X11 package) | Contents | Index

Graphics.X11.Xlib

Portability | portable
Stability | provisional
Maintainer | libraries@haskell.org

Contents

Conventions
Types
X11 library functions

Description

A collection of FFI declarations for interfacing with Xlib.

The library aims to provide a direct translation of the X binding into Haskell so the most important documentation you should read is The Xlib Programming Manual, available online at http://tronche.com/gui/x/xlib/. Let me say that again because it is very important. Get hold of this documentation and read it: it tells you almost everything you need to know to use this library.

Synopsis

module Graphics.X11.Types
data Display
data Screen
data Visual
data FontStruct
data GC
data XSetWindowAttributes
type Pixel = Word32
type Position = Int32
type Dimension = Word32
type Angle = Int
type ScreenNumber = Word32
type Byte = Word8
type Buffer = Int
type Point = (Position, Position)
type Rectangle = (Position, Position, Dimension, Dimension)
type Arc = (Position, Position, Dimension, Dimension, Angle, Angle)
type Segment = (Position, Position, Position, Position)
type Color = (Pixel, Word16, Word16, Word16, Word8)
module Graphics.X11.Xlib.Event
module Graphics.X11.Xlib.Display
module Graphics.X11.Xlib.Screen
module Graphics.X11.Xlib.Window
module Graphics.X11.Xlib.Context
module Graphics.X11.Xlib.Color
module Graphics.X11.Xlib.Font
module Graphics.X11.Xlib.Atom
module Graphics.X11.Xlib.Region
module Graphics.X11.Xlib.Misc

Conventions

In translating the library, we had to change names to conform with Haskell's lexical syntax: function names and names of constants must start with a lowercase letter; type names must start with an uppercase letter. The case of the remaining letters is unchanged.

In addition, we chose to take advantage of Haskell's module system to allow us to drop common prefixes (`X`, `XA_`, etc.) attached to X11 identifiers.

We named enumeration types so that function types would be easier to understand. For example, we added `Status`, `WindowClass`, etc. Note that the types are synonyms for `Int` so no extra typesafety was obtained.

We consistently raise exceptions when a function returns an error code. In practice, this only affects the following functions because most Xlib functions do not return error codes: `allocColor`, `allocNamedColor`, `fetchBuffer`, `fetchBytes`, `fontFromGC`, `getGeometry`, `getIconName`, `iconifyWindow`, `loadQueryFont`, `lookupColor`, `openDisplay`, `parseColor`, `queryBestCursor`, `queryBestSize`, `queryBestStipple`, `queryBestTile`, `rotateBuffers`, `selectInput`, `storeBuffer`, `storeBytes`, `withdrawWindow`.

Types
module Graphics.X11.Types
data Display

pointer to an X11 `Display` structure

data Screen

pointer to an X11 `Screen` structure

data Visual

pointer to an X11 `Visual` structure

data FontStruct

pointer to an X11 `XFontStruct` structure

data GC

data XSetWindowAttributes

type Pixel = Word32
type Position = Int32
type Dimension = Word32
type Angle = Int
type ScreenNumber = Word32
type Byte = Word8
type Buffer = Int
type Point = (Position, Position)
counterpart of an X11 `XPoint` structure
type Rectangle = (Position, Position, Dimension, Dimension)
counterpart of an X11 `XRectangle` structure
type Arc = (Position, Position, Dimension, Dimension, Angle, Angle)
counterpart of an X11 `XArc` structure
type Segment = (Position, Position, Position, Position)
counterpart of an X11 `XSegment` structure
type Color = (Pixel, Word16, Word16, Word16, Word8)
counterpart of an X11 `XColor` structure
X11 library functions
module Graphics.X11.Xlib.Event
module Graphics.X11.Xlib.Display
module Graphics.X11.Xlib.Screen
module Graphics.X11.Xlib.Window
module Graphics.X11.Xlib.Context
module Graphics.X11.Xlib.Color
module Graphics.X11.Xlib.Font
module Graphics.X11.Xlib.Atom
module Graphics.X11.Xlib.Region
module Graphics.X11.Xlib.Misc
Produced by Haddock version 0.7