{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) Describes a change of keyboard focus. -} module GI.Gdk.Structs.EventFocus ( -- * Exported types EventFocus(..) , noEventFocus , -- * Properties -- ** In eventFocusReadIn , -- ** SendEvent eventFocusReadSendEvent , -- ** Type eventFocusReadType , -- ** Window eventFocusReadWindow , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Gdk.Types import GI.Gdk.Callbacks newtype EventFocus = EventFocus (ForeignPtr EventFocus) noEventFocus :: Maybe EventFocus noEventFocus = Nothing eventFocusReadType :: EventFocus -> IO EventType eventFocusReadType s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CUInt let val' = (toEnum . fromIntegral) val return val' eventFocusReadWindow :: EventFocus -> IO Window eventFocusReadWindow s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO (Ptr Window) val' <- (newObject Window) val return val' eventFocusReadSendEvent :: EventFocus -> IO Int8 eventFocusReadSendEvent s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO Int8 return val eventFocusReadIn :: EventFocus -> IO Int16 eventFocusReadIn s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 18) :: IO Int16 return val