{-# INCLUDE <bindings.macros.h> #-}
{-# INCLUDE <directfb.h> #-}
{-# LINE 1 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}

{-# LINE 2 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}

{-# LINE 3 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}

-- | <http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBWindow.html>

module Bindings.DirectFB.IDirectFBWindow where
import Prelude (IO,Num,return,(.),($),Eq,Show,take)
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
import Bindings.DirectFB.Types
import Bindings.DirectFB.IDirectFBSurface
import Bindings.DirectFB.IDirectFBEventBuffer

data C'IDirectFBWindow = C'IDirectFBWindow{
{-# LINE 13 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}

  c'IDirectFBWindow'GetID :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'DFBWindowID -> IO C'DFBResult)
{-# LINE 15 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GetPosition :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr CInt -> Ptr CInt -> IO C'DFBResult)
{-# LINE 17 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GetSize :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr CInt -> Ptr CInt -> IO C'DFBResult)
{-# LINE 19 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Close :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 20 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Destroy :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 21 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GetSurface :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr (Ptr C'IDirectFBSurface) -> IO C'DFBResult)
{-# LINE 23 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'ResizeSurface :: FunPtr ( Ptr C'IDirectFBWindow -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 25 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'CreateEventBuffer :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr (Ptr C'IDirectFBEventBuffer) -> IO C'DFBResult)
{-# LINE 27 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'AttachEventBuffer :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'IDirectFBEventBuffer -> IO C'DFBResult)
{-# LINE 29 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'DetachEventBuffer :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'IDirectFBEventBuffer -> IO C'DFBResult)
{-# LINE 31 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'EnableEvents :: FunPtr ( Ptr C'IDirectFBWindow -> C'DFBWindowEventType -> IO C'DFBResult)
{-# LINE 33 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'DisableEvents :: FunPtr ( Ptr C'IDirectFBWindow -> C'DFBWindowEventType -> IO C'DFBResult)
{-# LINE 35 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetOptions :: FunPtr ( Ptr C'IDirectFBWindow -> C'DFBWindowOptions -> IO C'DFBResult)
{-# LINE 37 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GetOptions :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'DFBWindowOptions -> IO C'DFBResult)
{-# LINE 39 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
-- #field SetColor , FunPtr ( Ptr <IDirectFBWindow> -> Word8 -> \
--     Word8 -> Word8 -> Word8 -> IO <DFBResult>)
,
  c'IDirectFBWindow'SetColorKey :: FunPtr ( Ptr C'IDirectFBWindow -> Word8 -> Word8 -> Word8 -> IO C'DFBResult)
{-# LINE 43 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetColorKeyIndex :: FunPtr ( Ptr C'IDirectFBWindow -> CUInt -> IO C'DFBResult)
{-# LINE 45 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetOpacity :: FunPtr ( Ptr C'IDirectFBWindow -> Word8 -> IO C'DFBResult)
{-# LINE 47 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetOpaqueRegion :: FunPtr ( Ptr C'IDirectFBWindow -> CInt -> CInt -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 49 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GetOpacity :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr Word8 -> IO C'DFBResult)
{-# LINE 51 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetCursorShape :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'IDirectFBSurface -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 53 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Move :: FunPtr ( Ptr C'IDirectFBWindow -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 55 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'MoveTo :: FunPtr ( Ptr C'IDirectFBWindow -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 57 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Resize :: FunPtr ( Ptr C'IDirectFBWindow -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 59 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetBounds :: FunPtr ( Ptr C'IDirectFBWindow -> CInt -> CInt -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 61 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetStackingClass :: FunPtr ( Ptr C'IDirectFBWindow -> C'DFBWindowStackingClass -> IO C'DFBResult)
{-# LINE 63 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Raise :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 64 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Lower :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 65 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'RaiseToTop :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 66 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'LowerToBottom :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 67 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'PutAtop :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 69 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'PutBelow :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 71 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Bind :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'IDirectFBWindow -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 73 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'Unbind :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 75 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'RequestFocus :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 76 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GrabKeyboard :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 77 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'UngrabKeyboard :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 78 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GrabPointer :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 79 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'UngrabPointer :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 80 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GrabKey :: FunPtr ( Ptr C'IDirectFBWindow -> C'DFBInputDeviceKeySymbol -> C'DFBInputDeviceModifierMask -> IO C'DFBResult)
{-# LINE 83 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'UngrabKey :: FunPtr ( Ptr C'IDirectFBWindow -> C'DFBInputDeviceKeySymbol -> C'DFBInputDeviceModifierMask -> IO C'DFBResult)
{-# LINE 86 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetKeySelection :: FunPtr ( Ptr C'IDirectFBWindow -> C'DFBWindowKeySelection -> Ptr C'DFBInputDeviceKeySymbol -> CUInt -> IO C'DFBResult)
{-# LINE 89 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GrabUnselectedKeys :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 91 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'UngrabUnselectedKeys :: FunPtr ( Ptr C'IDirectFBWindow -> IO C'DFBResult)
{-# LINE 93 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetSrcGeometry :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'DFBWindowGeometry -> IO C'DFBResult)
{-# LINE 95 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetDstGeometry :: FunPtr ( Ptr C'IDirectFBWindow -> Ptr C'DFBWindowGeometry -> IO C'DFBResult)
{-# LINE 97 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'SetProperty :: FunPtr ( Ptr C'IDirectFBWindow -> CString -> Ptr () -> Ptr (Ptr ()) -> IO C'DFBResult)
{-# LINE 99 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'GetProperty :: FunPtr ( Ptr C'IDirectFBWindow -> CString -> Ptr (Ptr ()) -> IO C'DFBResult)
{-# LINE 101 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
,
  c'IDirectFBWindow'RemoveProperty :: FunPtr ( Ptr C'IDirectFBWindow -> CString -> Ptr (Ptr ()) -> IO C'DFBResult)
{-# LINE 103 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}
-- #field SetRotation , FunPtr ( Ptr <IDirectFBWindow> -> \
--     CInt -> IO <DFBResult>)
-- #field SetAssociation , FunPtr ( Ptr <IDirectFBWindow> -> \
--     <DFBWindowID> -> IO <DFBResult>)
-- #field SetApplicationID , FunPtr ( Ptr <IDirectFBWindow> -> \
--     CLong application_id -> IO <DFBResult>)
-- #field GetApplicationID , FunPtr ( Ptr <IDirectFBWindow> -> \
--     Ptr CLong -> IO <DFBResult>)

 } deriving (Eq,Show)
instance Storable C'IDirectFBWindow where
  sizeOf _ = 208
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 16
    v1 <- peekByteOff p 20
    v2 <- peekByteOff p 24
    v3 <- peekByteOff p 164
    v4 <- peekByteOff p 168
    v5 <- peekByteOff p 48
    v6 <- peekByteOff p 176
    v7 <- peekByteOff p 28
    v8 <- peekByteOff p 32
    v9 <- peekByteOff p 36
    v10 <- peekByteOff p 40
    v11 <- peekByteOff p 44
    v12 <- peekByteOff p 64
    v13 <- peekByteOff p 68
    v14 <- peekByteOff p 72
    v15 <- peekByteOff p 76
    v16 <- peekByteOff p 80
    v17 <- peekByteOff p 84
    v18 <- peekByteOff p 88
    v19 <- peekByteOff p 92
    v20 <- peekByteOff p 124
    v21 <- peekByteOff p 128
    v22 <- peekByteOff p 132
    v23 <- peekByteOff p 172
    v24 <- peekByteOff p 136
    v25 <- peekByteOff p 140
    v26 <- peekByteOff p 144
    v27 <- peekByteOff p 148
    v28 <- peekByteOff p 152
    v29 <- peekByteOff p 156
    v30 <- peekByteOff p 160
    v31 <- peekByteOff p 180
    v32 <- peekByteOff p 184
    v33 <- peekByteOff p 96
    v34 <- peekByteOff p 100
    v35 <- peekByteOff p 104
    v36 <- peekByteOff p 108
    v37 <- peekByteOff p 112
    v38 <- peekByteOff p 116
    v39 <- peekByteOff p 120
    v40 <- peekByteOff p 188
    v41 <- peekByteOff p 192
    v42 <- peekByteOff p 196
    v43 <- peekByteOff p 200
    v44 <- peekByteOff p 204
    v45 <- peekByteOff p 52
    v46 <- peekByteOff p 56
    v47 <- peekByteOff p 60
    return $ C'IDirectFBWindow v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47
  poke p (C'IDirectFBWindow v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47) = do
    pokeByteOff p 16 v0
    pokeByteOff p 20 v1
    pokeByteOff p 24 v2
    pokeByteOff p 164 v3
    pokeByteOff p 168 v4
    pokeByteOff p 48 v5
    pokeByteOff p 176 v6
    pokeByteOff p 28 v7
    pokeByteOff p 32 v8
    pokeByteOff p 36 v9
    pokeByteOff p 40 v10
    pokeByteOff p 44 v11
    pokeByteOff p 64 v12
    pokeByteOff p 68 v13
    pokeByteOff p 72 v14
    pokeByteOff p 76 v15
    pokeByteOff p 80 v16
    pokeByteOff p 84 v17
    pokeByteOff p 88 v18
    pokeByteOff p 92 v19
    pokeByteOff p 124 v20
    pokeByteOff p 128 v21
    pokeByteOff p 132 v22
    pokeByteOff p 172 v23
    pokeByteOff p 136 v24
    pokeByteOff p 140 v25
    pokeByteOff p 144 v26
    pokeByteOff p 148 v27
    pokeByteOff p 152 v28
    pokeByteOff p 156 v29
    pokeByteOff p 160 v30
    pokeByteOff p 180 v31
    pokeByteOff p 184 v32
    pokeByteOff p 96 v33
    pokeByteOff p 100 v34
    pokeByteOff p 104 v35
    pokeByteOff p 108 v36
    pokeByteOff p 112 v37
    pokeByteOff p 116 v38
    pokeByteOff p 120 v39
    pokeByteOff p 188 v40
    pokeByteOff p 192 v41
    pokeByteOff p 196 v42
    pokeByteOff p 200 v43
    pokeByteOff p 204 v44
    pokeByteOff p 52 v45
    pokeByteOff p 56 v46
    pokeByteOff p 60 v47
    return ()

{-# LINE 112 "src/Bindings/DirectFB/IDirectFBWindow.hsc" #-}