{-# 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 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.Alloc (alloca)
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 _ = 224
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 16
    v1 <- peekByteOff p 20
    v2 <- peekByteOff p 24
    v3 <- peekByteOff p 168
    v4 <- peekByteOff p 172
    v5 <- peekByteOff p 48
    v6 <- peekByteOff p 180
    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 76
    v15 <- peekByteOff p 80
    v16 <- peekByteOff p 84
    v17 <- peekByteOff p 88
    v18 <- peekByteOff p 92
    v19 <- peekByteOff p 96
    v20 <- peekByteOff p 128
    v21 <- peekByteOff p 132
    v22 <- peekByteOff p 136
    v23 <- peekByteOff p 176
    v24 <- peekByteOff p 140
    v25 <- peekByteOff p 144
    v26 <- peekByteOff p 148
    v27 <- peekByteOff p 152
    v28 <- peekByteOff p 156
    v29 <- peekByteOff p 160
    v30 <- peekByteOff p 164
    v31 <- peekByteOff p 184
    v32 <- peekByteOff p 188
    v33 <- peekByteOff p 100
    v34 <- peekByteOff p 104
    v35 <- peekByteOff p 108
    v36 <- peekByteOff p 112
    v37 <- peekByteOff p 116
    v38 <- peekByteOff p 120
    v39 <- peekByteOff p 124
    v40 <- peekByteOff p 192
    v41 <- peekByteOff p 196
    v42 <- peekByteOff p 200
    v43 <- peekByteOff p 204
    v44 <- peekByteOff p 208
    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 168 v3
    pokeByteOff p 172 v4
    pokeByteOff p 48 v5
    pokeByteOff p 180 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 76 v14
    pokeByteOff p 80 v15
    pokeByteOff p 84 v16
    pokeByteOff p 88 v17
    pokeByteOff p 92 v18
    pokeByteOff p 96 v19
    pokeByteOff p 128 v20
    pokeByteOff p 132 v21
    pokeByteOff p 136 v22
    pokeByteOff p 176 v23
    pokeByteOff p 140 v24
    pokeByteOff p 144 v25
    pokeByteOff p 148 v26
    pokeByteOff p 152 v27
    pokeByteOff p 156 v28
    pokeByteOff p 160 v29
    pokeByteOff p 164 v30
    pokeByteOff p 184 v31
    pokeByteOff p 188 v32
    pokeByteOff p 100 v33
    pokeByteOff p 104 v34
    pokeByteOff p 108 v35
    pokeByteOff p 112 v36
    pokeByteOff p 116 v37
    pokeByteOff p 120 v38
    pokeByteOff p 124 v39
    pokeByteOff p 192 v40
    pokeByteOff p 196 v41
    pokeByteOff p 200 v42
    pokeByteOff p 204 v43
    pokeByteOff p 208 v44
    pokeByteOff p 52 v45
    pokeByteOff p 56 v46
    pokeByteOff p 60 v47
    return ()

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