{-# LANGUAGE MultiParamTypeClasses #-}
module Graphics.XHB.Requests.Internal.Instances.Composite () where
import Graphics.XHB.Gen.Composite
import Graphics.XHB.Requests.Internal.Classes
import Prelude (fmap)
import Data.Bifunctor (second)
import Graphics.XHB (getReply)

instance RequestWithReply QueryVersion QueryVersionReply where
        requestWithReplyIO (MkQueryVersion a b) conn
          = fmap getReply (queryVersion conn a b)

instance Request RedirectWindow where
        requestIO (MkRedirectWindow a b) conn = redirectWindow conn a b

instance Request RedirectSubwindows where
        requestIO (MkRedirectSubwindows a b) conn
          = redirectSubwindows conn a b

instance Request UnredirectWindow where
        requestIO (MkUnredirectWindow a b) conn = unredirectWindow conn a b

instance Request UnredirectSubwindows where
        requestIO (MkUnredirectSubwindows a b) conn
          = unredirectSubwindows conn a b

instance Request CreateRegionFromBorderClip where
        requestIO (MkCreateRegionFromBorderClip a b) conn
          = createRegionFromBorderClip conn a b

instance Request NameWindowPixmap where
        requestIO (MkNameWindowPixmap a b) conn = nameWindowPixmap conn a b

instance RequestWithReply GetOverlayWindow GetOverlayWindowReply
         where
        requestWithReplyIO (MkGetOverlayWindow a) conn
          = fmap (fmap (second MkGetOverlayWindowReply))
              (fmap getReply (getOverlayWindow conn a))

instance Request ReleaseOverlayWindow where
        requestIO (MkReleaseOverlayWindow a) conn
          = releaseOverlayWindow conn a