-----------------------------------------------------------------------------
-- |
-- Module      :  Graphics.X11.Xlib.Screen
-- Copyright   :  (c) Alastair Reid, 1999-2003
-- License     :  BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer  :  libraries@haskell.org
-- Stability   :  provisional
-- Portability :  portable
--
-- A collection of FFI declarations for interfacing with Xlib Screens.
--
-----------------------------------------------------------------------------

module Graphics.X11.Xlib.Screen(

        blackPixelOfScreen,
        whitePixelOfScreen,
        cellsOfScreen,
        defaultColormapOfScreen,
        defaultDepthOfScreen,
        defaultGCOfScreen,
        defaultVisualOfScreen,
        doesBackingStore,
        doesSaveUnders,
        displayOfScreen,
        eventMaskOfScreen,
        minCmapsOfScreen,
        maxCmapsOfScreen,
        rootWindowOfScreen,
        widthOfScreen,
        widthMMOfScreen,
        heightOfScreen,
        heightMMOfScreen,
        planesOfScreen,
        screenNumberOfScreen,

        ) where

import Graphics.X11.Types
import Graphics.X11.Xlib.Types
import Foreign.C.Types

----------------------------------------------------------------
-- Screen
----------------------------------------------------------------

-- Many flags assumed to be PURE.

-- | interface to the X11 library function @XBlackPixelOfScreen()@.
foreign import ccall unsafe "HsXlib.h XBlackPixelOfScreen"
        blackPixelOfScreen      :: Screen -> Pixel

-- | interface to the X11 library function @XWhitePixelOfScreen()@.
foreign import ccall unsafe "HsXlib.h XWhitePixelOfScreen"
        whitePixelOfScreen      :: Screen -> Pixel

-- | interface to the X11 library function @XCellsOfScreen()@.
foreign import ccall unsafe "HsXlib.h XCellsOfScreen"
        cellsOfScreen           :: Screen -> CInt

-- | interface to the X11 library function @XDefaultColormapOfScreen()@.
foreign import ccall unsafe "HsXlib.h XDefaultColormapOfScreen"
        defaultColormapOfScreen :: Screen -> Colormap

-- | interface to the X11 library function @XDefaultDepthOfScreen()@.
foreign import ccall unsafe "HsXlib.h XDefaultDepthOfScreen"
        defaultDepthOfScreen    :: Screen -> CInt

-- | interface to the X11 library function @XDefaultGCOfScreen()@.
foreign import ccall unsafe "HsXlib.h XDefaultGCOfScreen"
        defaultGCOfScreen       :: Screen -> GC

-- | interface to the X11 library function @XDefaultVisualOfScreen()@.
foreign import ccall unsafe "HsXlib.h XDefaultVisualOfScreen"
        defaultVisualOfScreen   :: Screen -> Visual

-- | interface to the X11 library function @XDoesBackingStore()@.
foreign import ccall unsafe "HsXlib.h XDoesBackingStore"
        doesBackingStore        :: Screen -> Bool

-- | interface to the X11 library function @XDoesSaveUnders()@.
foreign import ccall unsafe "HsXlib.h XDoesSaveUnders"
        doesSaveUnders          :: Screen -> Bool

-- | interface to the X11 library function @XDisplayOfScreen()@.
foreign import ccall unsafe "HsXlib.h XDisplayOfScreen"
        displayOfScreen         :: Screen -> Display

-- | interface to the X11 library function @XEventMaskOfScreen()@.
-- Event mask at connection setup time - not current event mask!
foreign import ccall unsafe "HsXlib.h XEventMaskOfScreen"
        eventMaskOfScreen       :: Screen -> EventMask

-- | interface to the X11 library function @XMinCmapsOfScreen()@.
foreign import ccall unsafe "HsXlib.h XMinCmapsOfScreen"
        minCmapsOfScreen        :: Screen -> CInt

-- | interface to the X11 library function @XMaxCmapsOfScreen()@.
foreign import ccall unsafe "HsXlib.h XMaxCmapsOfScreen"
        maxCmapsOfScreen        :: Screen -> CInt

-- | interface to the X11 library function @XRootWindowOfScreen()@.
foreign import ccall unsafe "HsXlib.h XRootWindowOfScreen"
        rootWindowOfScreen      :: Screen -> Window

-- | interface to the X11 library function @XWidthOfScreen()@.
foreign import ccall unsafe "HsXlib.h XWidthOfScreen"
        widthOfScreen           :: Screen -> Dimension

-- | interface to the X11 library function @XWidthMMOfScreen()@.
foreign import ccall unsafe "HsXlib.h XWidthMMOfScreen"
        widthMMOfScreen         :: Screen -> Dimension

-- | interface to the X11 library function @XHeightOfScreen()@.
foreign import ccall unsafe "HsXlib.h XHeightOfScreen"
        heightOfScreen          :: Screen -> Dimension

-- | interface to the X11 library function @XHeightMMOfScreen()@.
foreign import ccall unsafe "HsXlib.h XHeightMMOfScreen"
        heightMMOfScreen        :: Screen -> Dimension

-- | interface to the X11 library function @XPlanesOfScreen()@.
foreign import ccall unsafe "HsXlib.h XPlanesOfScreen"
        planesOfScreen          :: Screen -> CInt

-- | interface to the X11 library function @XScreenNumberOfScreen()@.
foreign import ccall unsafe "HsXlib.h XScreenNumberOfScreen"
        screenNumberOfScreen    :: Screen -> ScreenNumber

----------------------------------------------------------------
-- End
----------------------------------------------------------------