module Graphics.X11.Xlib.Window(
storeName,
createSimpleWindow,
createWindow,
translateCoordinates,
moveResizeWindow,
resizeWindow,
moveWindow,
reparentWindow,
mapSubwindows,
unmapSubwindows,
mapWindow,
lowerWindow,
raiseWindow,
circulateSubwindowsDown,
circulateSubwindowsUp,
circulateSubwindows,
iconifyWindow,
withdrawWindow,
destroyWindow,
destroySubwindows,
setWindowBorder,
setWindowBorderPixmap,
setWindowBorderWidth,
setWindowBackground,
setWindowBackgroundPixmap,
setWindowColormap,
addToSaveSet,
removeFromSaveSet,
changeSaveSet,
clearWindow,
clearArea,
restackWindows,
) where
import Graphics.X11.Types
import Graphics.X11.Xlib.Types
import Foreign
import Foreign.C
storeName :: Display -> Window -> String -> IO ()
storeName display window name =
withCString name $ \ c_name ->
xStoreName display window c_name
foreign import ccall unsafe "HsXlib.h XStoreName"
xStoreName :: Display -> Window -> CString -> IO ()
foreign import ccall unsafe "HsXlib.h XCreateSimpleWindow"
createSimpleWindow :: Display -> Window -> Position -> Position ->
Dimension -> Dimension -> CInt -> Pixel -> Pixel -> IO Window
foreign import ccall unsafe "HsXlib.h XCreateWindow"
createWindow :: Display -> Window -> Position -> Position ->
Dimension -> Dimension -> CInt -> CInt -> WindowClass ->
Visual -> AttributeMask -> Ptr SetWindowAttributes -> IO Window
translateCoordinates :: Display -> Window -> Window -> Position -> Position ->
IO (Bool,Position,Position,Window)
translateCoordinates display src_w dest_w src_x src_y =
alloca $ \ dest_x_return ->
alloca $ \ dest_y_return ->
alloca $ \ child_return -> do
res <- xTranslateCoordinates display src_w dest_w src_x src_y
dest_x_return dest_y_return child_return
dest_x <- peek dest_x_return
dest_y <- peek dest_y_return
child <- peek child_return
return (res, dest_x, dest_y, child)
foreign import ccall unsafe "HsXlib.h XTranslateCoordinates"
xTranslateCoordinates :: Display -> Window -> Window ->
Position -> Position ->
Ptr Position -> Ptr Position -> Ptr Window -> IO Bool
foreign import ccall unsafe "HsXlib.h XMoveResizeWindow"
moveResizeWindow :: Display -> Window -> Position -> Position -> Dimension -> Dimension -> IO ()
foreign import ccall unsafe "HsXlib.h XResizeWindow"
resizeWindow :: Display -> Window -> Dimension -> Dimension -> IO ()
foreign import ccall unsafe "HsXlib.h XMoveWindow"
moveWindow :: Display -> Window -> Position -> Position -> IO ()
foreign import ccall unsafe "HsXlib.h XReparentWindow"
reparentWindow :: Display -> Window -> Window -> Position -> Position -> IO ()
foreign import ccall unsafe "HsXlib.h XMapSubwindows"
mapSubwindows :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XUnmapSubwindows"
unmapSubwindows :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XMapWindow"
mapWindow :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XLowerWindow"
lowerWindow :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XRaiseWindow"
raiseWindow :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XCirculateSubwindowsDown"
circulateSubwindowsDown :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XCirculateSubwindowsUp"
circulateSubwindowsUp :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XCirculateSubwindows"
circulateSubwindows :: Display -> Window -> CirculationDirection -> IO ()
iconifyWindow :: Display -> Window -> ScreenNumber -> IO ()
iconifyWindow display window screenno =
throwIfZero "iconifyWindow"
(xIconifyWindow display window screenno)
foreign import ccall unsafe "HsXlib.h XIconifyWindow"
xIconifyWindow :: Display -> Window -> ScreenNumber -> IO Status
withdrawWindow :: Display -> Window -> ScreenNumber -> IO ()
withdrawWindow display window screenno =
throwIfZero "withdrawWindow"
(xWithdrawWindow display window screenno)
foreign import ccall unsafe "HsXlib.h XWithdrawWindow"
xWithdrawWindow :: Display -> Window -> ScreenNumber -> IO Status
foreign import ccall unsafe "HsXlib.h XDestroyWindow"
destroyWindow :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XDestroySubwindows"
destroySubwindows :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XSetWindowBorder"
setWindowBorder :: Display -> Window -> Pixel -> IO ()
foreign import ccall unsafe "HsXlib.h XSetWindowBorderPixmap"
setWindowBorderPixmap :: Display -> Window -> Pixmap -> IO ()
foreign import ccall unsafe "HsXlib.h XSetWindowBorderWidth"
setWindowBorderWidth :: Display -> Window -> Dimension -> IO ()
foreign import ccall unsafe "HsXlib.h XSetWindowBackground"
setWindowBackground :: Display -> Window -> Pixel -> IO ()
foreign import ccall unsafe "HsXlib.h XSetWindowBackgroundPixmap"
setWindowBackgroundPixmap :: Display -> Window -> Pixmap -> IO ()
foreign import ccall unsafe "HsXlib.h XSetWindowColormap"
setWindowColormap :: Display -> Window -> Colormap -> IO ()
foreign import ccall unsafe "HsXlib.h XAddToSaveSet"
addToSaveSet :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XRemoveFromSaveSet"
removeFromSaveSet :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XChangeSaveSet"
changeSaveSet :: Display -> Window -> ChangeSaveSetMode -> IO ()
foreign import ccall unsafe "HsXlib.h XClearWindow"
clearWindow :: Display -> Window -> IO ()
foreign import ccall unsafe "HsXlib.h XClearArea"
clearArea :: Display -> Window ->
Position -> Position -> Dimension -> Dimension -> Bool -> IO ()
restackWindows :: Display -> [Window] -> IO ()
restackWindows display windows =
withArray windows $ \ window_array ->
xRestackWindows display window_array (fromIntegral (length windows))
foreign import ccall unsafe "HsXlib.h XRestackWindows"
xRestackWindows :: Display -> Ptr Window -> CInt -> IO ()