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