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

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

instance Request Rectangles where
        requestIO req conn = rectangles conn req

instance Request Mask where
        requestIO req conn = mask conn req

instance Request Combine where
        requestIO req conn = combine conn req

instance Request Offset where
        requestIO req conn = offset conn req

instance RequestWithReply QueryExtents QueryExtentsReply where
        requestWithReplyIO (MkQueryExtents a) conn
          = fmap getReply (queryExtents conn a)

instance Request SelectInput where
        requestIO (MkSelectInput a b) conn = selectInput conn a b

instance RequestWithReply InputSelected InputSelectedReply where
        requestWithReplyIO (MkInputSelected a) conn
          = fmap (fmap (second MkInputSelectedReply))
              (fmap getReply (inputSelected conn a))

instance RequestWithReply GetRectangles GetRectanglesReply where
        requestWithReplyIO (MkGetRectangles a b) conn
          = fmap getReply (getRectangles conn a b)