{-# LANGUAGE MultiParamTypeClasses #-}
module Graphics.XHB.Requests.Internal.Instances.Xinerama () where
import Graphics.XHB.Gen.Xinerama
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 RequestWithReply GetState GetStateReply where
        requestWithReplyIO (MkGetState a) conn
          = fmap getReply (getState conn a)

instance RequestWithReply GetScreenCount GetScreenCountReply where
        requestWithReplyIO (MkGetScreenCount a) conn
          = fmap getReply (getScreenCount conn a)

instance RequestWithReply GetScreenSize GetScreenSizeReply where
        requestWithReplyIO (MkGetScreenSize a b) conn
          = fmap getReply (getScreenSize conn a b)

instance RequestWithReply IsActive IsActiveReply where
        requestWithReplyIO (MkIsActive) conn
          = fmap (fmap (second MkIsActiveReply))
              (fmap getReply (isActive conn))

instance RequestWithReply QueryScreens QueryScreensReply where
        requestWithReplyIO (MkQueryScreens) conn
          = fmap getReply (queryScreens conn)