Copyright | (c) Alastair Reid 1999-2003 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | libraries@haskell.org |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
Graphics.X11.Xlib
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
- newtype Display = Display (Ptr Display)
- data Screen
- data Visual
- data GC
- data SetWindowAttributes
- data VisualInfo = VisualInfo {
- visualInfo_visual :: Visual
- visualInfo_visualID :: VisualID
- visualInfo_screen :: ScreenNumber
- visualInfo_depth :: CInt
- visualInfo_class :: CInt
- visualInfo_redMask :: CULong
- visualInfo_greenMask :: CULong
- visualInfo_blueMask :: CULong
- visualInfo_colormapSize :: CInt
- visualInfo_bitsPerRGB :: CInt
- data Point = Point {}
- data Rectangle = Rectangle {
- rect_x :: !Position
- rect_y :: !Position
- rect_width :: !Dimension
- rect_height :: !Dimension
- data Arc = Arc {
- arc_x :: Position
- arc_y :: Position
- arc_width :: Dimension
- arc_height :: Dimension
- arc_angle1 :: Angle
- arc_angle2 :: Angle
- data Segment = Segment {}
- data Color = Color {
- color_pixel :: Pixel
- color_red :: Word16
- color_green :: Word16
- color_blue :: Word16
- color_flags :: Word8
- type Pixel = Word64
- type Position = Int32
- type Dimension = Word32
- type Angle = CInt
- type ScreenNumber = Word32
- type Buffer = CInt
- 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.Cursor
- module Graphics.X11.Xlib.Font
- module Graphics.X11.Xlib.Atom
- module Graphics.X11.Xlib.Region
- module Graphics.X11.Xlib.Image
- 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
pointer to an X11 Display
structure
Instances
Eq Display # | |
Data Display # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Display -> c Display gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Display dataTypeOf :: Display -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Display) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Display) gmapT :: (forall b. Data b => b -> b) -> Display -> Display gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Display -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Display -> r gmapQ :: (forall d. Data d => d -> u) -> Display -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Display -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Display -> m Display gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Display -> m Display gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Display -> m Display | |
Ord Display # | |
Show Display # | |
pointer to an X11 Screen
structure
Instances
Eq Screen # | |
Data Screen # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Screen -> c Screen gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Screen dataTypeOf :: Screen -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Screen) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Screen) gmapT :: (forall b. Data b => b -> b) -> Screen -> Screen gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Screen -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Screen -> r gmapQ :: (forall d. Data d => d -> u) -> Screen -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Screen -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Screen -> m Screen gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Screen -> m Screen gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Screen -> m Screen | |
Ord Screen # | |
Show Screen # | |
pointer to an X11 Visual
structure
Instances
Eq Visual # | |
Data Visual # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Visual -> c Visual gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Visual dataTypeOf :: Visual -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Visual) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Visual) gmapT :: (forall b. Data b => b -> b) -> Visual -> Visual gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Visual -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Visual -> r gmapQ :: (forall d. Data d => d -> u) -> Visual -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Visual -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Visual -> m Visual gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Visual -> m Visual gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Visual -> m Visual | |
Ord Visual # | |
Show Visual # | |
pointer to an X11 GC
structure
Instances
Eq GC # | |
Data GC # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GC -> c GC gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GC dataTypeOf :: GC -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GC) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GC) gmapT :: (forall b. Data b => b -> b) -> GC -> GC gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GC -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GC -> r gmapQ :: (forall d. Data d => d -> u) -> GC -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> GC -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> GC -> m GC gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GC -> m GC gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GC -> m GC | |
Ord GC # | |
Show GC # | |
data SetWindowAttributes #
pointer to an X11 XSetWindowAttributes
structure
Instances
data VisualInfo #
counterpart of an X11 XVisualInfo
structure
Constructors
VisualInfo | |
Fields
|
Instances
Eq VisualInfo # | |
Defined in Graphics.X11.Xlib.Types | |
Show VisualInfo # | |
Defined in Graphics.X11.Xlib.Types Methods showsPrec :: Int -> VisualInfo -> ShowS show :: VisualInfo -> String showList :: [VisualInfo] -> ShowS | |
Storable VisualInfo # | |
Defined in Graphics.X11.Xlib.Types Methods sizeOf :: VisualInfo -> Int alignment :: VisualInfo -> Int peekElemOff :: Ptr VisualInfo -> Int -> IO VisualInfo pokeElemOff :: Ptr VisualInfo -> Int -> VisualInfo -> IO () peekByteOff :: Ptr b -> Int -> IO VisualInfo pokeByteOff :: Ptr b -> Int -> VisualInfo -> IO () peek :: Ptr VisualInfo -> IO VisualInfo poke :: Ptr VisualInfo -> VisualInfo -> IO () | |
Default VisualInfo # | |
Defined in Graphics.X11.Xlib.Types Methods def :: VisualInfo |
counterpart of an X11 XPoint
structure
Instances
Eq Point # | |
Data Point # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Point -> c Point gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Point dataTypeOf :: Point -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Point) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Point) gmapT :: (forall b. Data b => b -> b) -> Point -> Point gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Point -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Point -> r gmapQ :: (forall d. Data d => d -> u) -> Point -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Point -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Point -> m Point gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Point -> m Point gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Point -> m Point | |
Show Point # | |
Storable Point # | |
Defined in Graphics.X11.Xlib.Types Methods peekElemOff :: Ptr Point -> Int -> IO Point pokeElemOff :: Ptr Point -> Int -> Point -> IO () peekByteOff :: Ptr b -> Int -> IO Point pokeByteOff :: Ptr b -> Int -> Point -> IO () |
counterpart of an X11 XRectangle
structure
Constructors
Rectangle | |
Fields
|
Instances
Eq Rectangle # | |
Data Rectangle # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Rectangle -> c Rectangle gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Rectangle toConstr :: Rectangle -> Constr dataTypeOf :: Rectangle -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Rectangle) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Rectangle) gmapT :: (forall b. Data b => b -> b) -> Rectangle -> Rectangle gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Rectangle -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Rectangle -> r gmapQ :: (forall d. Data d => d -> u) -> Rectangle -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Rectangle -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Rectangle -> m Rectangle gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Rectangle -> m Rectangle gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Rectangle -> m Rectangle | |
Read Rectangle # | |
Defined in Graphics.X11.Xlib.Types | |
Show Rectangle # | |
Storable Rectangle # | |
Defined in Graphics.X11.Xlib.Types Methods peekElemOff :: Ptr Rectangle -> Int -> IO Rectangle pokeElemOff :: Ptr Rectangle -> Int -> Rectangle -> IO () peekByteOff :: Ptr b -> Int -> IO Rectangle pokeByteOff :: Ptr b -> Int -> Rectangle -> IO () |
counterpart of an X11 XArc
structure
Constructors
Arc | |
Fields
|
Instances
Eq Arc # | |
Show Arc # | |
Storable Arc # | |
Defined in Graphics.X11.Xlib.Types Methods peekElemOff :: Ptr Arc -> Int -> IO Arc pokeElemOff :: Ptr Arc -> Int -> Arc -> IO () peekByteOff :: Ptr b -> Int -> IO Arc pokeByteOff :: Ptr b -> Int -> Arc -> IO () |
counterpart of an X11 XSegment
structure
Constructors
Segment | |
Instances
Eq Segment # | |
Data Segment # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Segment -> c Segment gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Segment dataTypeOf :: Segment -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Segment) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Segment) gmapT :: (forall b. Data b => b -> b) -> Segment -> Segment gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Segment -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Segment -> r gmapQ :: (forall d. Data d => d -> u) -> Segment -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Segment -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Segment -> m Segment gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Segment -> m Segment gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Segment -> m Segment | |
Show Segment # | |
Storable Segment # | |
Defined in Graphics.X11.Xlib.Types Methods peekElemOff :: Ptr Segment -> Int -> IO Segment pokeElemOff :: Ptr Segment -> Int -> Segment -> IO () peekByteOff :: Ptr b -> Int -> IO Segment pokeByteOff :: Ptr b -> Int -> Segment -> IO () |
counterpart of an X11 XColor
structure
Constructors
Color | |
Fields
|
Instances
Eq Color # | |
Data Color # | |
Defined in Graphics.X11.Xlib.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Color -> c Color gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Color dataTypeOf :: Color -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Color) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Color) gmapT :: (forall b. Data b => b -> b) -> Color -> Color gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Color -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Color -> r gmapQ :: (forall d. Data d => d -> u) -> Color -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Color -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Color -> m Color gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Color -> m Color gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Color -> m Color | |
Show Color # | |
Storable Color # | |
Defined in Graphics.X11.Xlib.Types Methods peekElemOff :: Ptr Color -> Int -> IO Color pokeElemOff :: Ptr Color -> Int -> Color -> IO () peekByteOff :: Ptr b -> Int -> IO Color pokeByteOff :: Ptr b -> Int -> Color -> IO () |
type ScreenNumber = Word32 #
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.Cursor
module Graphics.X11.Xlib.Font
module Graphics.X11.Xlib.Atom
module Graphics.X11.Xlib.Region
module Graphics.X11.Xlib.Image
module Graphics.X11.Xlib.Misc