module Graphics.XHB.Ewmh.Error
( EwmhErrorCtx
, runEwmhT
, getNetSupported
, getNetClientList
, getNetClientListStacking
, getNetNumberOfDesktops
, getNetDesktopGeometry
, getNetDesktopViewport
, getNetCurrentDesktop
, getNetDesktopNames
, getActiveWindow
, getNetWorkarea
, getNetSupportingWmCheck
, getNetVirtualRoots
, getNetDesktopLayout
, getNetShowingDesktop
, getNetWmName
, getNetWmVisibleName
, getNetWmIconName
, getNetWmVisibleIconName
, getNetWmDesktop
, getNetWmWindowType
, getNetWmState
, getNetWmAllowedActions
, getNetWmStrut
, getNetWmStrutPartial
, getNetWmIconGeometry
, getNetWmIcon
, getNetWmPID
, getNetWmHandledIcons
, getNetWmUserTime
, getNetWmUserTimeWindow
, getNetFrameExtents
, getNetWmOpaqueRegion
, getNetWmBypassCompositor
) where
import Control.Applicative (Applicative)
import Control.Monad.Except (MonadError(..))
import Control.Monad.IO.Class (MonadIO(..))
import Data.Word (Word32)
import Graphics.XHB (Connection, SomeError, WINDOW)
import Graphics.XHB.Ewmh.Atoms
import Graphics.XHB.Ewmh.Types
import qualified Graphics.XHB.Ewmh as E
type EwmhErrorCtx m = (MonadError SomeError m, EwmhCtx m)
eitherToError :: MonadError e m => Either e a -> m a
eitherToError (Left e) = throwError e
eitherToError (Right a) = return a
runEwmhT :: (MonadError SomeError m, MonadIO m, Applicative m)
=> Connection -> EwmhT m a -> m a
runEwmhT c m = E.runEwmhT c m >>= eitherToError
getNetSupported :: EwmhErrorCtx m => Connection -> m NetSupported
getNetSupported c = E.getNetSupported c >>= eitherToError
getNetClientList :: EwmhErrorCtx m => Connection -> m [WINDOW]
getNetClientList c = E.getNetClientList c >>= eitherToError
getNetClientListStacking :: EwmhErrorCtx m => Connection -> m [WINDOW]
getNetClientListStacking c = E.getNetClientListStacking c >>= eitherToError
getNetNumberOfDesktops :: EwmhErrorCtx m => Connection -> m Word32
getNetNumberOfDesktops c = E.getNetNumberOfDesktops c >>= eitherToError
getNetDesktopGeometry :: EwmhErrorCtx m => Connection -> m NetDesktopGeometry
getNetDesktopGeometry c = E.getNetDesktopGeometry c >>= eitherToError
getNetDesktopViewport :: EwmhErrorCtx m => Connection -> m NetDesktopViewport
getNetDesktopViewport c = E.getNetDesktopViewport c >>= eitherToError
getNetCurrentDesktop :: EwmhErrorCtx m => Connection -> m Word32
getNetCurrentDesktop c = E.getNetCurrentDesktop c >>= eitherToError
getNetDesktopNames :: EwmhErrorCtx m => Connection -> m [String]
getNetDesktopNames c = E.getNetDesktopNames c >>= eitherToError
getActiveWindow :: EwmhErrorCtx m => Connection -> m WINDOW
getActiveWindow c = E.getActiveWindow c >>= eitherToError
getNetWorkarea :: EwmhErrorCtx m => Connection -> m NetWorkarea
getNetWorkarea c = E.getNetWorkarea c >>= eitherToError
getNetSupportingWmCheck :: EwmhErrorCtx m => Connection -> m WINDOW
getNetSupportingWmCheck c = E.getNetSupportingWmCheck c >>= eitherToError
getNetVirtualRoots :: EwmhErrorCtx m => Connection -> m [WINDOW]
getNetVirtualRoots c = E.getNetVirtualRoots c >>= eitherToError
getNetDesktopLayout :: EwmhErrorCtx m => Connection -> m NetDesktopLayout
getNetDesktopLayout c = E.getNetDesktopLayout c >>= eitherToError
getNetShowingDesktop :: EwmhErrorCtx m => Connection -> m Word32
getNetShowingDesktop c = E.getNetShowingDesktop c >>= eitherToError
getNetWmName :: EwmhErrorCtx m => Connection -> WINDOW -> m [String]
getNetWmName c w = E.getNetWmName c w >>= eitherToError
getNetWmVisibleName :: EwmhErrorCtx m => Connection -> WINDOW -> m [String]
getNetWmVisibleName c w = E.getNetWmVisibleName c w >>= eitherToError
getNetWmIconName :: EwmhErrorCtx m => Connection -> WINDOW -> m [String]
getNetWmIconName c w = E.getNetWmIconName c w >>= eitherToError
getNetWmVisibleIconName :: EwmhErrorCtx m => Connection -> WINDOW -> m [String]
getNetWmVisibleIconName c w = E.getNetWmVisibleIconName c w >>= eitherToError
getNetWmDesktop :: EwmhErrorCtx m => Connection -> WINDOW -> m Word32
getNetWmDesktop c w = E.getNetWmDesktop c w >>= eitherToError
getNetWmWindowType :: EwmhErrorCtx m => Connection -> WINDOW -> m [NET_WM_WINDOW_TYPE]
getNetWmWindowType c w = E.getNetWmWindowType c w >>= eitherToError
getNetWmState :: EwmhErrorCtx m => Connection -> WINDOW -> m [NET_WM_STATE]
getNetWmState c w = E.getNetWmState c w >>= eitherToError
getNetWmAllowedActions :: EwmhErrorCtx m => Connection -> WINDOW -> m [NET_WM_ALLOWED_ACTIONS]
getNetWmAllowedActions c w = E.getNetWmAllowedActions c w >>= eitherToError
getNetWmStrut :: EwmhErrorCtx m => Connection -> WINDOW -> m NetWmStrut
getNetWmStrut c w = E.getNetWmStrut c w >>= eitherToError
getNetWmStrutPartial :: EwmhErrorCtx m => Connection -> WINDOW -> m NetWmStrutPartial
getNetWmStrutPartial c w = E.getNetWmStrutPartial c w >>= eitherToError
getNetWmIconGeometry :: EwmhErrorCtx m => Connection -> WINDOW -> m NetWmIconGeometry
getNetWmIconGeometry c w = E.getNetWmIconGeometry c w >>= eitherToError
getNetWmIcon :: EwmhErrorCtx m => Connection -> WINDOW -> m NetWmIcon
getNetWmIcon c w = E.getNetWmIcon c w >>= eitherToError
getNetWmPID :: EwmhErrorCtx m => Connection -> WINDOW -> m Word32
getNetWmPID c w = E.getNetWmPID c w >>= eitherToError
getNetWmHandledIcons :: EwmhErrorCtx m => Connection -> WINDOW -> m Word32
getNetWmHandledIcons c w = E.getNetWmHandledIcons c w >>= eitherToError
getNetWmUserTime :: EwmhErrorCtx m => Connection -> WINDOW -> m Word32
getNetWmUserTime c w = E.getNetWmUserTime c w >>= eitherToError
getNetWmUserTimeWindow :: EwmhErrorCtx m => Connection -> WINDOW -> m WINDOW
getNetWmUserTimeWindow c w = E.getNetWmUserTimeWindow c w >>= eitherToError
getNetFrameExtents :: EwmhErrorCtx m => Connection -> WINDOW -> m NetFrameExtents
getNetFrameExtents c w = E.getNetFrameExtents c w >>= eitherToError
getNetWmOpaqueRegion :: EwmhErrorCtx m => Connection -> WINDOW -> m NetWmOpaqueRegion
getNetWmOpaqueRegion c w = E.getNetWmOpaqueRegion c w >>= eitherToError
getNetWmBypassCompositor :: EwmhErrorCtx m => Connection -> WINDOW -> m Word32
getNetWmBypassCompositor c w = E.getNetWmBypassCompositor c w >>= eitherToError