{-# LANGUAGE MultiParamTypeClasses #-}
module Graphics.XHB.Requests.Internal.Instances.XFixes () where
import Graphics.XHB.Gen.XFixes
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 ChangeSaveSet where
        requestIO req conn = changeSaveSet conn req

instance Request SelectSelectionInput where
        requestIO req conn = selectSelectionInput conn req

instance Request SelectCursorInput where
        requestIO (MkSelectCursorInput a b) conn
          = selectCursorInput conn a b

instance RequestWithReply GetCursorImage GetCursorImageReply where
        requestWithReplyIO (MkGetCursorImage) conn
          = fmap getReply (getCursorImage conn)

instance Request CreateRegion where
        requestIO (MkCreateRegion a b) conn = createRegion conn a b

instance Request CreateRegionFromBitmap where
        requestIO (MkCreateRegionFromBitmap a b) conn
          = createRegionFromBitmap conn a b

instance Request CreateRegionFromWindow where
        requestIO req conn = createRegionFromWindow conn req

instance Request CreateRegionFromGC where
        requestIO (MkCreateRegionFromGC a b) conn
          = createRegionFromGC conn a b

instance Request CreateRegionFromPicture where
        requestIO (MkCreateRegionFromPicture a b) conn
          = createRegionFromPicture conn a b

instance Request DestroyRegion where
        requestIO (MkDestroyRegion a) conn = destroyRegion conn a

instance Request SetRegion where
        requestIO (MkSetRegion a b) conn = setRegion conn a b

instance Request CopyRegion where
        requestIO (MkCopyRegion a b) conn = copyRegion conn a b

instance Request UnionRegion where
        requestIO req conn = unionRegion conn req

instance Request IntersectRegion where
        requestIO req conn = intersectRegion conn req

instance Request SubtractRegion where
        requestIO req conn = subtractRegion conn req

instance Request InvertRegion where
        requestIO req conn = invertRegion conn req

instance Request TranslateRegion where
        requestIO req conn = translateRegion conn req

instance Request RegionExtents where
        requestIO (MkRegionExtents a b) conn = regionExtents conn a b

instance RequestWithReply FetchRegion FetchRegionReply where
        requestWithReplyIO (MkFetchRegion a) conn
          = fmap getReply (fetchRegion conn a)

instance Request SetGCClipRegion where
        requestIO req conn = setGCClipRegion conn req

instance Request SetWindowShapeRegion where
        requestIO req conn = setWindowShapeRegion conn req

instance Request SetPictureClipRegion where
        requestIO req conn = setPictureClipRegion conn req

instance Request SetCursorName where
        requestIO req conn = setCursorName conn req

instance RequestWithReply GetCursorName GetCursorNameReply where
        requestWithReplyIO (MkGetCursorName a) conn
          = fmap getReply (getCursorName conn a)

instance RequestWithReply GetCursorImageAndName
         GetCursorImageAndNameReply where
        requestWithReplyIO (MkGetCursorImageAndName) conn
          = fmap getReply (getCursorImageAndName conn)

instance Request ChangeCursor where
        requestIO (MkChangeCursor a b) conn = changeCursor conn a b

instance Request ChangeCursorByName where
        requestIO req conn = changeCursorByName conn req

instance Request ExpandRegion where
        requestIO req conn = expandRegion conn req

instance Request HideCursor where
        requestIO (MkHideCursor a) conn = hideCursor conn a

instance Request ShowCursor where
        requestIO (MkShowCursor a) conn = showCursor conn a