{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoFieldSelectors #-}
{-# LANGUAGE NoImplicitPrelude #-}

-- | SDL offers a simple message box API, which is useful for simple alerts, such as informing the user when something fatal happens at startup without the need to build a UI for it (or informing the user /before/ your UI is ready).
--
--     These message boxes are native system dialogs where possible.
--
--     There is both a customizable function (@SDL_ShowMessageBox()@) that offers lots of options for what to display and reports on what choice the user made, and also a much-simplified version (@SDL_ShowSimpleMessageBox()@), merely takes a text message and title, and waits until the user presses a single \"OK\" UI button. Often, this is all that is necessary. Message box flags.
--
--     If supported will display warning icon, etc.
--
--     @since 3.2.0
module SDL3.Sys.Bindgen.Messagebox (
  SDL3.Sys.Bindgen.Messagebox.SDL_MessageBoxFlags (..),
  SDL3.Sys.Bindgen.Messagebox.sDL_MESSAGEBOX_ERROR,
  SDL3.Sys.Bindgen.Messagebox.sDL_MESSAGEBOX_WARNING,
  SDL3.Sys.Bindgen.Messagebox.sDL_MESSAGEBOX_INFORMATION,
  SDL3.Sys.Bindgen.Messagebox.sDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT,
  SDL3.Sys.Bindgen.Messagebox.sDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT,
  SDL3.Sys.Bindgen.Messagebox.SDL_MessageBoxButtonFlags (..),
  SDL3.Sys.Bindgen.Messagebox.sDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT,
  SDL3.Sys.Bindgen.Messagebox.sDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT,
  SDL3.Sys.Bindgen.Messagebox.SDL_MessageBoxButtonData (..),
  SDL3.Sys.Bindgen.Messagebox.SDL_MessageBoxColor (..),
  SDL3.Sys.Bindgen.Messagebox.SDL_MessageBoxColorType (..),
  pattern SDL3.Sys.Bindgen.Messagebox.SDL_MESSAGEBOX_COLOR_BACKGROUND,
  pattern SDL3.Sys.Bindgen.Messagebox.SDL_MESSAGEBOX_COLOR_TEXT,
  pattern SDL3.Sys.Bindgen.Messagebox.SDL_MESSAGEBOX_COLOR_BUTTON_BORDER,
  pattern SDL3.Sys.Bindgen.Messagebox.SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND,
  pattern SDL3.Sys.Bindgen.Messagebox.SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED,
  pattern SDL3.Sys.Bindgen.Messagebox.SDL_MESSAGEBOX_COLOR_COUNT,
  SDL3.Sys.Bindgen.Messagebox.SDL_MessageBoxColorScheme (..),
  SDL3.Sys.Bindgen.Messagebox.SDL_MessageBoxData (..),
)
where

import Prelude (
  Bounded,
  Enum,
  Eq,
  Int,
  Integral,
  Num,
  Ord,
  Read,
  Real,
  Show,
  pure,
  (<*>),
  (>>),
  type (~),
 )

import HsBindgen.Runtime.CEnum qualified as CEnum
import HsBindgen.Runtime.ConstantArray qualified as CA
import HsBindgen.Runtime.HasCField qualified as HasCField
import HsBindgen.Runtime.Marshal qualified as Marshal
import HsBindgen.Runtime.PtrConst qualified as PtrConst
import HsBindgen.Runtime.Struct qualified as Struct
import HsBindgen.Runtime.Support qualified as BG
import HsBindgen.Runtime.Support.CompatHasField qualified as BG.CompatHasField
import SDL3.Sys.Bindgen.Stdinc qualified
import SDL3.Sys.Bindgen.Video qualified

-- | [C declaration]: @SDL_MessageBoxFlags@, defined at @SDL3\/SDL_messagebox.h 59:16@
newtype SDL_MessageBoxFlags = SDL_MessageBoxFlags
  { SDL_MessageBoxFlags -> Uint32
unwrap :: SDL3.Sys.Bindgen.Stdinc.Uint32
  }
  deriving stock ((forall x. SDL_MessageBoxFlags -> Rep SDL_MessageBoxFlags x)
-> (forall x. Rep SDL_MessageBoxFlags x -> SDL_MessageBoxFlags)
-> Generic SDL_MessageBoxFlags
forall x. Rep SDL_MessageBoxFlags x -> SDL_MessageBoxFlags
forall x. SDL_MessageBoxFlags -> Rep SDL_MessageBoxFlags x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_MessageBoxFlags -> Rep SDL_MessageBoxFlags x
from :: forall x. SDL_MessageBoxFlags -> Rep SDL_MessageBoxFlags x
$cto :: forall x. Rep SDL_MessageBoxFlags x -> SDL_MessageBoxFlags
to :: forall x. Rep SDL_MessageBoxFlags x -> SDL_MessageBoxFlags
BG.Generic, SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
(SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool)
-> Eq SDL_MessageBoxFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
== :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
$c/= :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
/= :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
Eq, Eq SDL_MessageBoxFlags
Eq SDL_MessageBoxFlags =>
(SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Ordering)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> Ord SDL_MessageBoxFlags
SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Ordering
SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Ordering
compare :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Ordering
$c< :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
< :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
$c<= :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
<= :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
$c> :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
> :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
$c>= :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
>= :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> Bool
$cmax :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
max :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cmin :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
min :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
Ord, ReadPrec [SDL_MessageBoxFlags]
ReadPrec SDL_MessageBoxFlags
Int -> ReadS SDL_MessageBoxFlags
ReadS [SDL_MessageBoxFlags]
(Int -> ReadS SDL_MessageBoxFlags)
-> ReadS [SDL_MessageBoxFlags]
-> ReadPrec SDL_MessageBoxFlags
-> ReadPrec [SDL_MessageBoxFlags]
-> Read SDL_MessageBoxFlags
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SDL_MessageBoxFlags
readsPrec :: Int -> ReadS SDL_MessageBoxFlags
$creadList :: ReadS [SDL_MessageBoxFlags]
readList :: ReadS [SDL_MessageBoxFlags]
$creadPrec :: ReadPrec SDL_MessageBoxFlags
readPrec :: ReadPrec SDL_MessageBoxFlags
$creadListPrec :: ReadPrec [SDL_MessageBoxFlags]
readListPrec :: ReadPrec [SDL_MessageBoxFlags]
Read, Int -> SDL_MessageBoxFlags -> ShowS
[SDL_MessageBoxFlags] -> ShowS
SDL_MessageBoxFlags -> String
(Int -> SDL_MessageBoxFlags -> ShowS)
-> (SDL_MessageBoxFlags -> String)
-> ([SDL_MessageBoxFlags] -> ShowS)
-> Show SDL_MessageBoxFlags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_MessageBoxFlags -> ShowS
showsPrec :: Int -> SDL_MessageBoxFlags -> ShowS
$cshow :: SDL_MessageBoxFlags -> String
show :: SDL_MessageBoxFlags -> String
$cshowList :: [SDL_MessageBoxFlags] -> ShowS
showList :: [SDL_MessageBoxFlags] -> ShowS
Show)
  deriving newtype
    ( Word64 -> Int -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> Int -> Word64
(SDL_MessageBoxFlags -> Int -> Word64)
-> (Word64 -> Int -> SDL_MessageBoxFlags)
-> Bitfield SDL_MessageBoxFlags
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: SDL_MessageBoxFlags -> Int -> Word64
narrow :: SDL_MessageBoxFlags -> Int -> Word64
$cextend :: Word64 -> Int -> SDL_MessageBoxFlags
extend :: Word64 -> Int -> SDL_MessageBoxFlags
BG.Bitfield
    , Eq SDL_MessageBoxFlags
SDL_MessageBoxFlags
Eq SDL_MessageBoxFlags =>
(SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags
-> (Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> Bool)
-> (SDL_MessageBoxFlags -> Maybe Int)
-> (SDL_MessageBoxFlags -> Int)
-> (SDL_MessageBoxFlags -> Bool)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int)
-> Bits SDL_MessageBoxFlags
Int -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> Bool
SDL_MessageBoxFlags -> Int
SDL_MessageBoxFlags -> Maybe Int
SDL_MessageBoxFlags -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> Int -> Bool
SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
.&. :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$c.|. :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
.|. :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cxor :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
xor :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$ccomplement :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
complement :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cshift :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
shift :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$crotate :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
rotate :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$czeroBits :: SDL_MessageBoxFlags
zeroBits :: SDL_MessageBoxFlags
$cbit :: Int -> SDL_MessageBoxFlags
bit :: Int -> SDL_MessageBoxFlags
$csetBit :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
setBit :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$cclearBit :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
clearBit :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$ccomplementBit :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
complementBit :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$ctestBit :: SDL_MessageBoxFlags -> Int -> Bool
testBit :: SDL_MessageBoxFlags -> Int -> Bool
$cbitSizeMaybe :: SDL_MessageBoxFlags -> Maybe Int
bitSizeMaybe :: SDL_MessageBoxFlags -> Maybe Int
$cbitSize :: SDL_MessageBoxFlags -> Int
bitSize :: SDL_MessageBoxFlags -> Int
$cisSigned :: SDL_MessageBoxFlags -> Bool
isSigned :: SDL_MessageBoxFlags -> Bool
$cshiftL :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
shiftL :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$cunsafeShiftL :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
unsafeShiftL :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$cshiftR :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
shiftR :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$cunsafeShiftR :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
unsafeShiftR :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$crotateL :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
rotateL :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$crotateR :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
rotateR :: SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags
$cpopCount :: SDL_MessageBoxFlags -> Int
popCount :: SDL_MessageBoxFlags -> Int
BG.Bits
    , Bits SDL_MessageBoxFlags
Bits SDL_MessageBoxFlags =>
(SDL_MessageBoxFlags -> Int)
-> (SDL_MessageBoxFlags -> Int)
-> (SDL_MessageBoxFlags -> Int)
-> FiniteBits SDL_MessageBoxFlags
SDL_MessageBoxFlags -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SDL_MessageBoxFlags -> Int
finiteBitSize :: SDL_MessageBoxFlags -> Int
$ccountLeadingZeros :: SDL_MessageBoxFlags -> Int
countLeadingZeros :: SDL_MessageBoxFlags -> Int
$ccountTrailingZeros :: SDL_MessageBoxFlags -> Int
countTrailingZeros :: SDL_MessageBoxFlags -> Int
BG.FiniteBits
    , FFIType SDL_MessageBoxFlags -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> FFIType SDL_MessageBoxFlags
(SDL_MessageBoxFlags -> FFIType SDL_MessageBoxFlags)
-> (FFIType SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> HasFFIType SDL_MessageBoxFlags
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_MessageBoxFlags -> FFIType SDL_MessageBoxFlags
toFFIType :: SDL_MessageBoxFlags -> FFIType SDL_MessageBoxFlags
$cfromFFIType :: FFIType SDL_MessageBoxFlags -> SDL_MessageBoxFlags
fromFFIType :: FFIType SDL_MessageBoxFlags -> SDL_MessageBoxFlags
BG.HasFFIType
    , Ord SDL_MessageBoxFlags
Ord SDL_MessageBoxFlags =>
((SDL_MessageBoxFlags, SDL_MessageBoxFlags)
 -> [SDL_MessageBoxFlags])
-> ((SDL_MessageBoxFlags, SDL_MessageBoxFlags)
    -> SDL_MessageBoxFlags -> Int)
-> ((SDL_MessageBoxFlags, SDL_MessageBoxFlags)
    -> SDL_MessageBoxFlags -> Int)
-> ((SDL_MessageBoxFlags, SDL_MessageBoxFlags)
    -> SDL_MessageBoxFlags -> Bool)
-> ((SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> Int)
-> ((SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> Int)
-> Ix SDL_MessageBoxFlags
(SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> Int
(SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> [SDL_MessageBoxFlags]
(SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Bool
(SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> [SDL_MessageBoxFlags]
range :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> [SDL_MessageBoxFlags]
$cindex :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Int
index :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Int
$cunsafeIndex :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Int
unsafeIndex :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Int
$cinRange :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Bool
inRange :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
-> SDL_MessageBoxFlags -> Bool
$crangeSize :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> Int
rangeSize :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> Int
$cunsafeRangeSize :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> Int
unsafeRangeSize :: (SDL_MessageBoxFlags, SDL_MessageBoxFlags) -> Int
BG.Ix
    , Addr# -> Int# -> SDL_MessageBoxFlags
ByteArray# -> Int# -> SDL_MessageBoxFlags
Proxy SDL_MessageBoxFlags -> Int#
SDL_MessageBoxFlags -> Int#
(Proxy SDL_MessageBoxFlags -> Int#)
-> (SDL_MessageBoxFlags -> Int#)
-> (Proxy SDL_MessageBoxFlags -> Int#)
-> (SDL_MessageBoxFlags -> Int#)
-> (ByteArray# -> Int# -> SDL_MessageBoxFlags)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #))
-> (forall s.
    MutableByteArray# s
    -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s)
-> (Addr# -> Int# -> SDL_MessageBoxFlags)
-> (forall s.
    Addr# -> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #))
-> (forall s.
    Addr# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s)
-> (forall s.
    Addr#
    -> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s)
-> Prim SDL_MessageBoxFlags
forall s.
Addr#
-> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #)
forall s.
Addr# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #)
forall s.
MutableByteArray# s
-> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy SDL_MessageBoxFlags -> Int#
sizeOfType# :: Proxy SDL_MessageBoxFlags -> Int#
$csizeOf# :: SDL_MessageBoxFlags -> Int#
sizeOf# :: SDL_MessageBoxFlags -> Int#
$calignmentOfType# :: Proxy SDL_MessageBoxFlags -> Int#
alignmentOfType# :: Proxy SDL_MessageBoxFlags -> Int#
$calignment# :: SDL_MessageBoxFlags -> Int#
alignment# :: SDL_MessageBoxFlags -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> SDL_MessageBoxFlags
indexByteArray# :: ByteArray# -> Int# -> SDL_MessageBoxFlags
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #)
$cwriteByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
$cindexOffAddr# :: Addr# -> Int# -> SDL_MessageBoxFlags
indexOffAddr# :: Addr# -> Int# -> SDL_MessageBoxFlags
$creadOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #)
readOffAddr# :: forall s.
Addr# -> Int# -> State# s -> (# State# s, SDL_MessageBoxFlags #)
$cwriteOffAddr# :: forall s.
Addr# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
writeOffAddr# :: forall s.
Addr# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr#
-> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
setOffAddr# :: forall s.
Addr#
-> Int# -> Int# -> SDL_MessageBoxFlags -> State# s -> State# s
BG.Prim
    , Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags
Ptr SDL_MessageBoxFlags -> Int -> IO SDL_MessageBoxFlags
Ptr SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags -> IO ()
Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ()
SDL_MessageBoxFlags -> Int
(SDL_MessageBoxFlags -> Int)
-> (SDL_MessageBoxFlags -> Int)
-> (Ptr SDL_MessageBoxFlags -> Int -> IO SDL_MessageBoxFlags)
-> (Ptr SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_MessageBoxFlags)
-> (forall b. Ptr b -> Int -> SDL_MessageBoxFlags -> IO ())
-> (Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags)
-> (Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ())
-> Storable SDL_MessageBoxFlags
forall b. Ptr b -> Int -> IO SDL_MessageBoxFlags
forall b. Ptr b -> Int -> SDL_MessageBoxFlags -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: SDL_MessageBoxFlags -> Int
sizeOf :: SDL_MessageBoxFlags -> Int
$calignment :: SDL_MessageBoxFlags -> Int
alignment :: SDL_MessageBoxFlags -> Int
$cpeekElemOff :: Ptr SDL_MessageBoxFlags -> Int -> IO SDL_MessageBoxFlags
peekElemOff :: Ptr SDL_MessageBoxFlags -> Int -> IO SDL_MessageBoxFlags
$cpokeElemOff :: Ptr SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags -> IO ()
pokeElemOff :: Ptr SDL_MessageBoxFlags -> Int -> SDL_MessageBoxFlags -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_MessageBoxFlags
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_MessageBoxFlags
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_MessageBoxFlags -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_MessageBoxFlags -> IO ()
$cpeek :: Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags
peek :: Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags
$cpoke :: Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ()
poke :: Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ()
BG.Storable
    , SDL_MessageBoxFlags
SDL_MessageBoxFlags
-> SDL_MessageBoxFlags -> Bounded SDL_MessageBoxFlags
forall a. a -> a -> Bounded a
$cminBound :: SDL_MessageBoxFlags
minBound :: SDL_MessageBoxFlags
$cmaxBound :: SDL_MessageBoxFlags
maxBound :: SDL_MessageBoxFlags
Bounded
    , Int -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> Int
SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
SDL_MessageBoxFlags -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> [SDL_MessageBoxFlags]
(SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (Int -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> Int)
-> (SDL_MessageBoxFlags -> [SDL_MessageBoxFlags])
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> [SDL_MessageBoxFlags])
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> [SDL_MessageBoxFlags])
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags
    -> [SDL_MessageBoxFlags])
-> Enum SDL_MessageBoxFlags
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
succ :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cpred :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
pred :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$ctoEnum :: Int -> SDL_MessageBoxFlags
toEnum :: Int -> SDL_MessageBoxFlags
$cfromEnum :: SDL_MessageBoxFlags -> Int
fromEnum :: SDL_MessageBoxFlags -> Int
$cenumFrom :: SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
enumFrom :: SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
$cenumFromThen :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
enumFromThen :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
$cenumFromTo :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
enumFromTo :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> [SDL_MessageBoxFlags]
$cenumFromThenTo :: SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> [SDL_MessageBoxFlags]
enumFromThenTo :: SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> [SDL_MessageBoxFlags]
Enum
    , Enum SDL_MessageBoxFlags
Real SDL_MessageBoxFlags
(Real SDL_MessageBoxFlags, Enum SDL_MessageBoxFlags) =>
(SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags
    -> (SDL_MessageBoxFlags, SDL_MessageBoxFlags))
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags
    -> (SDL_MessageBoxFlags, SDL_MessageBoxFlags))
-> (SDL_MessageBoxFlags -> Integer)
-> Integral SDL_MessageBoxFlags
SDL_MessageBoxFlags -> Integer
SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
quot :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$crem :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
rem :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cdiv :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
div :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cmod :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
mod :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cquotRem :: SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
quotRem :: SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
$cdivMod :: SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
divMod :: SDL_MessageBoxFlags
-> SDL_MessageBoxFlags
-> (SDL_MessageBoxFlags, SDL_MessageBoxFlags)
$ctoInteger :: SDL_MessageBoxFlags -> Integer
toInteger :: SDL_MessageBoxFlags -> Integer
Integral
    , Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags
(Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags)
-> ReadRaw SDL_MessageBoxFlags
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags
readRaw :: Ptr SDL_MessageBoxFlags -> IO SDL_MessageBoxFlags
Marshal.ReadRaw
    , Proxy SDL_MessageBoxFlags -> Int
(Proxy SDL_MessageBoxFlags -> Int)
-> (Proxy SDL_MessageBoxFlags -> Int)
-> StaticSize SDL_MessageBoxFlags
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_MessageBoxFlags -> Int
staticSizeOf :: Proxy SDL_MessageBoxFlags -> Int
$cstaticAlignment :: Proxy SDL_MessageBoxFlags -> Int
staticAlignment :: Proxy SDL_MessageBoxFlags -> Int
Marshal.StaticSize
    , Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ()
(Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ())
-> WriteRaw SDL_MessageBoxFlags
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ()
writeRaw :: Ptr SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> IO ()
Marshal.WriteRaw
    , Integer -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> SDL_MessageBoxFlags
SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
(SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags
    -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (SDL_MessageBoxFlags -> SDL_MessageBoxFlags)
-> (Integer -> SDL_MessageBoxFlags)
-> Num SDL_MessageBoxFlags
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
+ :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$c- :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
- :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$c* :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
* :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cnegate :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
negate :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cabs :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
abs :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$csignum :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
signum :: SDL_MessageBoxFlags -> SDL_MessageBoxFlags
$cfromInteger :: Integer -> SDL_MessageBoxFlags
fromInteger :: Integer -> SDL_MessageBoxFlags
Num
    , Num SDL_MessageBoxFlags
Ord SDL_MessageBoxFlags
(Num SDL_MessageBoxFlags, Ord SDL_MessageBoxFlags) =>
(SDL_MessageBoxFlags -> Rational) -> Real SDL_MessageBoxFlags
SDL_MessageBoxFlags -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SDL_MessageBoxFlags -> Rational
toRational :: SDL_MessageBoxFlags -> Rational
Real
    )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "unwrap" SDL_MessageBoxFlags ty
  where
  hasField :: SDL_MessageBoxFlags -> (ty -> SDL_MessageBoxFlags, ty)
hasField =
    \SDL_MessageBoxFlags
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxFlags{unwrap :: Uint32
unwrap = ty
Uint32
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_MessageBoxFlags
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "unwrap" (BG.Ptr SDL_MessageBoxFlags) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxFlags -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_MessageBoxFlags
-> Ptr (CFieldType SDL_MessageBoxFlags "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_MessageBoxFlags "unwrap" where
  type
    CFieldType SDL_MessageBoxFlags "unwrap" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_MessageBoxFlags -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_MessageBoxFlags
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | error dialog
--
--     [C declaration]: @macro SDL_MESSAGEBOX_ERROR@, defined at @SDL3\/SDL_messagebox.h 61:9@
sDL_MESSAGEBOX_ERROR :: BG.CUInt
sDL_MESSAGEBOX_ERROR :: CUInt
sDL_MESSAGEBOX_ERROR = (CUInt
16 :: BG.CUInt)

-- | warning dialog
--
--     [C declaration]: @macro SDL_MESSAGEBOX_WARNING@, defined at @SDL3\/SDL_messagebox.h 62:9@
sDL_MESSAGEBOX_WARNING :: BG.CUInt
sDL_MESSAGEBOX_WARNING :: CUInt
sDL_MESSAGEBOX_WARNING = (CUInt
32 :: BG.CUInt)

-- | informational dialog
--
--     [C declaration]: @macro SDL_MESSAGEBOX_INFORMATION@, defined at @SDL3\/SDL_messagebox.h 63:9@
sDL_MESSAGEBOX_INFORMATION :: BG.CUInt
sDL_MESSAGEBOX_INFORMATION :: CUInt
sDL_MESSAGEBOX_INFORMATION = (CUInt
64 :: BG.CUInt)

-- | buttons placed left to right
--
--     [C declaration]: @macro SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT@, defined at @SDL3\/SDL_messagebox.h 64:9@
sDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT :: BG.CUInt
sDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT :: CUInt
sDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT =
  (CUInt
128 :: BG.CUInt)

-- | buttons placed right to left
--
--     [C declaration]: @macro SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT@, defined at @SDL3\/SDL_messagebox.h 65:9@
sDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT :: BG.CUInt
sDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT :: CUInt
sDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT =
  (CUInt
256 :: BG.CUInt)

-- | 'SDL_MessageBoxButtonData' flags.
--
--     @since 3.2.0
--
--     [C declaration]: @SDL_MessageBoxButtonFlags@, defined at @SDL3\/SDL_messagebox.h 72:16@
newtype SDL_MessageBoxButtonFlags = SDL_MessageBoxButtonFlags
  { SDL_MessageBoxButtonFlags -> Uint32
unwrap :: SDL3.Sys.Bindgen.Stdinc.Uint32
  }
  deriving stock ((forall x.
 SDL_MessageBoxButtonFlags -> Rep SDL_MessageBoxButtonFlags x)
-> (forall x.
    Rep SDL_MessageBoxButtonFlags x -> SDL_MessageBoxButtonFlags)
-> Generic SDL_MessageBoxButtonFlags
forall x.
Rep SDL_MessageBoxButtonFlags x -> SDL_MessageBoxButtonFlags
forall x.
SDL_MessageBoxButtonFlags -> Rep SDL_MessageBoxButtonFlags x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
SDL_MessageBoxButtonFlags -> Rep SDL_MessageBoxButtonFlags x
from :: forall x.
SDL_MessageBoxButtonFlags -> Rep SDL_MessageBoxButtonFlags x
$cto :: forall x.
Rep SDL_MessageBoxButtonFlags x -> SDL_MessageBoxButtonFlags
to :: forall x.
Rep SDL_MessageBoxButtonFlags x -> SDL_MessageBoxButtonFlags
BG.Generic, SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
(SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool)
-> Eq SDL_MessageBoxButtonFlags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
== :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
$c/= :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
/= :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
Eq, Eq SDL_MessageBoxButtonFlags
Eq SDL_MessageBoxButtonFlags =>
(SDL_MessageBoxButtonFlags
 -> SDL_MessageBoxButtonFlags -> Ordering)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> Ord SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Ordering
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Ordering
compare :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Ordering
$c< :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
< :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
$c<= :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
<= :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
$c> :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
> :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
$c>= :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
>= :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> Bool
$cmax :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
max :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cmin :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
min :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
Ord, ReadPrec [SDL_MessageBoxButtonFlags]
ReadPrec SDL_MessageBoxButtonFlags
Int -> ReadS SDL_MessageBoxButtonFlags
ReadS [SDL_MessageBoxButtonFlags]
(Int -> ReadS SDL_MessageBoxButtonFlags)
-> ReadS [SDL_MessageBoxButtonFlags]
-> ReadPrec SDL_MessageBoxButtonFlags
-> ReadPrec [SDL_MessageBoxButtonFlags]
-> Read SDL_MessageBoxButtonFlags
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS SDL_MessageBoxButtonFlags
readsPrec :: Int -> ReadS SDL_MessageBoxButtonFlags
$creadList :: ReadS [SDL_MessageBoxButtonFlags]
readList :: ReadS [SDL_MessageBoxButtonFlags]
$creadPrec :: ReadPrec SDL_MessageBoxButtonFlags
readPrec :: ReadPrec SDL_MessageBoxButtonFlags
$creadListPrec :: ReadPrec [SDL_MessageBoxButtonFlags]
readListPrec :: ReadPrec [SDL_MessageBoxButtonFlags]
Read, Int -> SDL_MessageBoxButtonFlags -> ShowS
[SDL_MessageBoxButtonFlags] -> ShowS
SDL_MessageBoxButtonFlags -> String
(Int -> SDL_MessageBoxButtonFlags -> ShowS)
-> (SDL_MessageBoxButtonFlags -> String)
-> ([SDL_MessageBoxButtonFlags] -> ShowS)
-> Show SDL_MessageBoxButtonFlags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_MessageBoxButtonFlags -> ShowS
showsPrec :: Int -> SDL_MessageBoxButtonFlags -> ShowS
$cshow :: SDL_MessageBoxButtonFlags -> String
show :: SDL_MessageBoxButtonFlags -> String
$cshowList :: [SDL_MessageBoxButtonFlags] -> ShowS
showList :: [SDL_MessageBoxButtonFlags] -> ShowS
Show)
  deriving newtype
    ( Word64 -> Int -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> Int -> Word64
(SDL_MessageBoxButtonFlags -> Int -> Word64)
-> (Word64 -> Int -> SDL_MessageBoxButtonFlags)
-> Bitfield SDL_MessageBoxButtonFlags
forall a.
(a -> Int -> Word64) -> (Word64 -> Int -> a) -> Bitfield a
$cnarrow :: SDL_MessageBoxButtonFlags -> Int -> Word64
narrow :: SDL_MessageBoxButtonFlags -> Int -> Word64
$cextend :: Word64 -> Int -> SDL_MessageBoxButtonFlags
extend :: Word64 -> Int -> SDL_MessageBoxButtonFlags
BG.Bitfield
    , Eq SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags
Eq SDL_MessageBoxButtonFlags =>
(SDL_MessageBoxButtonFlags
 -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags
-> (Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> Bool)
-> (SDL_MessageBoxButtonFlags -> Maybe Int)
-> (SDL_MessageBoxButtonFlags -> Int)
-> (SDL_MessageBoxButtonFlags -> Bool)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int)
-> Bits SDL_MessageBoxButtonFlags
Int -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> Bool
SDL_MessageBoxButtonFlags -> Int
SDL_MessageBoxButtonFlags -> Maybe Int
SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> Int -> Bool
SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
.&. :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$c.|. :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
.|. :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cxor :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
xor :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$ccomplement :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
complement :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cshift :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
shift :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$crotate :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
rotate :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$czeroBits :: SDL_MessageBoxButtonFlags
zeroBits :: SDL_MessageBoxButtonFlags
$cbit :: Int -> SDL_MessageBoxButtonFlags
bit :: Int -> SDL_MessageBoxButtonFlags
$csetBit :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
setBit :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$cclearBit :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
clearBit :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$ccomplementBit :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
complementBit :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$ctestBit :: SDL_MessageBoxButtonFlags -> Int -> Bool
testBit :: SDL_MessageBoxButtonFlags -> Int -> Bool
$cbitSizeMaybe :: SDL_MessageBoxButtonFlags -> Maybe Int
bitSizeMaybe :: SDL_MessageBoxButtonFlags -> Maybe Int
$cbitSize :: SDL_MessageBoxButtonFlags -> Int
bitSize :: SDL_MessageBoxButtonFlags -> Int
$cisSigned :: SDL_MessageBoxButtonFlags -> Bool
isSigned :: SDL_MessageBoxButtonFlags -> Bool
$cshiftL :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
shiftL :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$cunsafeShiftL :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
unsafeShiftL :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$cshiftR :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
shiftR :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$cunsafeShiftR :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
unsafeShiftR :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$crotateL :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
rotateL :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$crotateR :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
rotateR :: SDL_MessageBoxButtonFlags -> Int -> SDL_MessageBoxButtonFlags
$cpopCount :: SDL_MessageBoxButtonFlags -> Int
popCount :: SDL_MessageBoxButtonFlags -> Int
BG.Bits
    , Bits SDL_MessageBoxButtonFlags
Bits SDL_MessageBoxButtonFlags =>
(SDL_MessageBoxButtonFlags -> Int)
-> (SDL_MessageBoxButtonFlags -> Int)
-> (SDL_MessageBoxButtonFlags -> Int)
-> FiniteBits SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: SDL_MessageBoxButtonFlags -> Int
finiteBitSize :: SDL_MessageBoxButtonFlags -> Int
$ccountLeadingZeros :: SDL_MessageBoxButtonFlags -> Int
countLeadingZeros :: SDL_MessageBoxButtonFlags -> Int
$ccountTrailingZeros :: SDL_MessageBoxButtonFlags -> Int
countTrailingZeros :: SDL_MessageBoxButtonFlags -> Int
BG.FiniteBits
    , FFIType SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> FFIType SDL_MessageBoxButtonFlags
(SDL_MessageBoxButtonFlags -> FFIType SDL_MessageBoxButtonFlags)
-> (FFIType SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> HasFFIType SDL_MessageBoxButtonFlags
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_MessageBoxButtonFlags -> FFIType SDL_MessageBoxButtonFlags
toFFIType :: SDL_MessageBoxButtonFlags -> FFIType SDL_MessageBoxButtonFlags
$cfromFFIType :: FFIType SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
fromFFIType :: FFIType SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
BG.HasFFIType
    , Ord SDL_MessageBoxButtonFlags
Ord SDL_MessageBoxButtonFlags =>
((SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
 -> [SDL_MessageBoxButtonFlags])
-> ((SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
    -> SDL_MessageBoxButtonFlags -> Int)
-> ((SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
    -> SDL_MessageBoxButtonFlags -> Int)
-> ((SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
    -> SDL_MessageBoxButtonFlags -> Bool)
-> ((SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags) -> Int)
-> ((SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags) -> Int)
-> Ix SDL_MessageBoxButtonFlags
(SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags) -> Int
(SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> [SDL_MessageBoxButtonFlags]
(SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Bool
(SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Int
forall a.
Ord a =>
((a, a) -> [a])
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Int)
-> ((a, a) -> a -> Bool)
-> ((a, a) -> Int)
-> ((a, a) -> Int)
-> Ix a
$crange :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> [SDL_MessageBoxButtonFlags]
range :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> [SDL_MessageBoxButtonFlags]
$cindex :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Int
index :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Int
$cunsafeIndex :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Int
unsafeIndex :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Int
$cinRange :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Bool
inRange :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
-> SDL_MessageBoxButtonFlags -> Bool
$crangeSize :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags) -> Int
rangeSize :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags) -> Int
$cunsafeRangeSize :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags) -> Int
unsafeRangeSize :: (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags) -> Int
BG.Ix
    , Addr# -> Int# -> SDL_MessageBoxButtonFlags
ByteArray# -> Int# -> SDL_MessageBoxButtonFlags
Proxy SDL_MessageBoxButtonFlags -> Int#
SDL_MessageBoxButtonFlags -> Int#
(Proxy SDL_MessageBoxButtonFlags -> Int#)
-> (SDL_MessageBoxButtonFlags -> Int#)
-> (Proxy SDL_MessageBoxButtonFlags -> Int#)
-> (SDL_MessageBoxButtonFlags -> Int#)
-> (ByteArray# -> Int# -> SDL_MessageBoxButtonFlags)
-> (forall s.
    MutableByteArray# s
    -> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #))
-> (forall s.
    MutableByteArray# s
    -> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s
    -> Int#
    -> Int#
    -> SDL_MessageBoxButtonFlags
    -> State# s
    -> State# s)
-> (Addr# -> Int# -> SDL_MessageBoxButtonFlags)
-> (forall s.
    Addr#
    -> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #))
-> (forall s.
    Addr# -> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s)
-> (forall s.
    Addr#
    -> Int#
    -> Int#
    -> SDL_MessageBoxButtonFlags
    -> State# s
    -> State# s)
-> Prim SDL_MessageBoxButtonFlags
forall s.
Addr#
-> Int#
-> Int#
-> SDL_MessageBoxButtonFlags
-> State# s
-> State# s
forall s.
Addr#
-> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #)
forall s.
Addr# -> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s
forall s.
MutableByteArray# s
-> Int#
-> Int#
-> SDL_MessageBoxButtonFlags
-> State# s
-> State# s
forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #)
forall s.
MutableByteArray# s
-> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s
forall a.
(Proxy a -> Int#)
-> (a -> Int#)
-> (Proxy a -> Int#)
-> (a -> Int#)
-> (ByteArray# -> Int# -> a)
-> (forall s.
    MutableByteArray# s -> Int# -> State# s -> (# State# s, a #))
-> (forall s.
    MutableByteArray# s -> Int# -> a -> State# s -> State# s)
-> (forall s.
    MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s)
-> (Addr# -> Int# -> a)
-> (forall s. Addr# -> Int# -> State# s -> (# State# s, a #))
-> (forall s. Addr# -> Int# -> a -> State# s -> State# s)
-> (forall s. Addr# -> Int# -> Int# -> a -> State# s -> State# s)
-> Prim a
$csizeOfType# :: Proxy SDL_MessageBoxButtonFlags -> Int#
sizeOfType# :: Proxy SDL_MessageBoxButtonFlags -> Int#
$csizeOf# :: SDL_MessageBoxButtonFlags -> Int#
sizeOf# :: SDL_MessageBoxButtonFlags -> Int#
$calignmentOfType# :: Proxy SDL_MessageBoxButtonFlags -> Int#
alignmentOfType# :: Proxy SDL_MessageBoxButtonFlags -> Int#
$calignment# :: SDL_MessageBoxButtonFlags -> Int#
alignment# :: SDL_MessageBoxButtonFlags -> Int#
$cindexByteArray# :: ByteArray# -> Int# -> SDL_MessageBoxButtonFlags
indexByteArray# :: ByteArray# -> Int# -> SDL_MessageBoxButtonFlags
$creadByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #)
readByteArray# :: forall s.
MutableByteArray# s
-> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #)
$cwriteByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s
writeByteArray# :: forall s.
MutableByteArray# s
-> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s
$csetByteArray# :: forall s.
MutableByteArray# s
-> Int#
-> Int#
-> SDL_MessageBoxButtonFlags
-> State# s
-> State# s
setByteArray# :: forall s.
MutableByteArray# s
-> Int#
-> Int#
-> SDL_MessageBoxButtonFlags
-> State# s
-> State# s
$cindexOffAddr# :: Addr# -> Int# -> SDL_MessageBoxButtonFlags
indexOffAddr# :: Addr# -> Int# -> SDL_MessageBoxButtonFlags
$creadOffAddr# :: forall s.
Addr#
-> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #)
readOffAddr# :: forall s.
Addr#
-> Int# -> State# s -> (# State# s, SDL_MessageBoxButtonFlags #)
$cwriteOffAddr# :: forall s.
Addr# -> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s
writeOffAddr# :: forall s.
Addr# -> Int# -> SDL_MessageBoxButtonFlags -> State# s -> State# s
$csetOffAddr# :: forall s.
Addr#
-> Int#
-> Int#
-> SDL_MessageBoxButtonFlags
-> State# s
-> State# s
setOffAddr# :: forall s.
Addr#
-> Int#
-> Int#
-> SDL_MessageBoxButtonFlags
-> State# s
-> State# s
BG.Prim
    , Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags
Ptr SDL_MessageBoxButtonFlags
-> Int -> IO SDL_MessageBoxButtonFlags
Ptr SDL_MessageBoxButtonFlags
-> Int -> SDL_MessageBoxButtonFlags -> IO ()
Ptr SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> IO ()
SDL_MessageBoxButtonFlags -> Int
(SDL_MessageBoxButtonFlags -> Int)
-> (SDL_MessageBoxButtonFlags -> Int)
-> (Ptr SDL_MessageBoxButtonFlags
    -> Int -> IO SDL_MessageBoxButtonFlags)
-> (Ptr SDL_MessageBoxButtonFlags
    -> Int -> SDL_MessageBoxButtonFlags -> IO ())
-> (forall b. Ptr b -> Int -> IO SDL_MessageBoxButtonFlags)
-> (forall b. Ptr b -> Int -> SDL_MessageBoxButtonFlags -> IO ())
-> (Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags)
-> (Ptr SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> IO ())
-> Storable SDL_MessageBoxButtonFlags
forall b. Ptr b -> Int -> IO SDL_MessageBoxButtonFlags
forall b. Ptr b -> Int -> SDL_MessageBoxButtonFlags -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
$csizeOf :: SDL_MessageBoxButtonFlags -> Int
sizeOf :: SDL_MessageBoxButtonFlags -> Int
$calignment :: SDL_MessageBoxButtonFlags -> Int
alignment :: SDL_MessageBoxButtonFlags -> Int
$cpeekElemOff :: Ptr SDL_MessageBoxButtonFlags
-> Int -> IO SDL_MessageBoxButtonFlags
peekElemOff :: Ptr SDL_MessageBoxButtonFlags
-> Int -> IO SDL_MessageBoxButtonFlags
$cpokeElemOff :: Ptr SDL_MessageBoxButtonFlags
-> Int -> SDL_MessageBoxButtonFlags -> IO ()
pokeElemOff :: Ptr SDL_MessageBoxButtonFlags
-> Int -> SDL_MessageBoxButtonFlags -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO SDL_MessageBoxButtonFlags
peekByteOff :: forall b. Ptr b -> Int -> IO SDL_MessageBoxButtonFlags
$cpokeByteOff :: forall b. Ptr b -> Int -> SDL_MessageBoxButtonFlags -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> SDL_MessageBoxButtonFlags -> IO ()
$cpeek :: Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags
peek :: Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags
$cpoke :: Ptr SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> IO ()
poke :: Ptr SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> IO ()
BG.Storable
    , SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> Bounded SDL_MessageBoxButtonFlags
forall a. a -> a -> Bounded a
$cminBound :: SDL_MessageBoxButtonFlags
minBound :: SDL_MessageBoxButtonFlags
$cmaxBound :: SDL_MessageBoxButtonFlags
maxBound :: SDL_MessageBoxButtonFlags
Bounded
    , Int -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> Int
SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> [SDL_MessageBoxButtonFlags]
(SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (Int -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> Int)
-> (SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags])
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags])
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags])
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags
    -> [SDL_MessageBoxButtonFlags])
-> Enum SDL_MessageBoxButtonFlags
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
succ :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cpred :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
pred :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$ctoEnum :: Int -> SDL_MessageBoxButtonFlags
toEnum :: Int -> SDL_MessageBoxButtonFlags
$cfromEnum :: SDL_MessageBoxButtonFlags -> Int
fromEnum :: SDL_MessageBoxButtonFlags -> Int
$cenumFrom :: SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
enumFrom :: SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
$cenumFromThen :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
enumFromThen :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
$cenumFromTo :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
enumFromTo :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> [SDL_MessageBoxButtonFlags]
$cenumFromThenTo :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> [SDL_MessageBoxButtonFlags]
enumFromThenTo :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> [SDL_MessageBoxButtonFlags]
Enum
    , Enum SDL_MessageBoxButtonFlags
Real SDL_MessageBoxButtonFlags
(Real SDL_MessageBoxButtonFlags, Enum SDL_MessageBoxButtonFlags) =>
(SDL_MessageBoxButtonFlags
 -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags
    -> (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags))
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags
    -> (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags))
-> (SDL_MessageBoxButtonFlags -> Integer)
-> Integral SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> Integer
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
forall a.
(Real a, Enum a) =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
$cquot :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
quot :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$crem :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
rem :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cdiv :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
div :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cmod :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
mod :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cquotRem :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
quotRem :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
$cdivMod :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
divMod :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags
-> (SDL_MessageBoxButtonFlags, SDL_MessageBoxButtonFlags)
$ctoInteger :: SDL_MessageBoxButtonFlags -> Integer
toInteger :: SDL_MessageBoxButtonFlags -> Integer
Integral
    , Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags
(Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags)
-> ReadRaw SDL_MessageBoxButtonFlags
forall a. (Ptr a -> IO a) -> ReadRaw a
$creadRaw :: Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags
readRaw :: Ptr SDL_MessageBoxButtonFlags -> IO SDL_MessageBoxButtonFlags
Marshal.ReadRaw
    , Proxy SDL_MessageBoxButtonFlags -> Int
(Proxy SDL_MessageBoxButtonFlags -> Int)
-> (Proxy SDL_MessageBoxButtonFlags -> Int)
-> StaticSize SDL_MessageBoxButtonFlags
forall a. (Proxy a -> Int) -> (Proxy a -> Int) -> StaticSize a
$cstaticSizeOf :: Proxy SDL_MessageBoxButtonFlags -> Int
staticSizeOf :: Proxy SDL_MessageBoxButtonFlags -> Int
$cstaticAlignment :: Proxy SDL_MessageBoxButtonFlags -> Int
staticAlignment :: Proxy SDL_MessageBoxButtonFlags -> Int
Marshal.StaticSize
    , Ptr SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> IO ()
(Ptr SDL_MessageBoxButtonFlags
 -> SDL_MessageBoxButtonFlags -> IO ())
-> WriteRaw SDL_MessageBoxButtonFlags
forall a. (Ptr a -> a -> IO ()) -> WriteRaw a
$cwriteRaw :: Ptr SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> IO ()
writeRaw :: Ptr SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags -> IO ()
Marshal.WriteRaw
    , Integer -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
(SDL_MessageBoxButtonFlags
 -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags
    -> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags)
-> (Integer -> SDL_MessageBoxButtonFlags)
-> Num SDL_MessageBoxButtonFlags
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
+ :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$c- :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
- :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$c* :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
* :: SDL_MessageBoxButtonFlags
-> SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cnegate :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
negate :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cabs :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
abs :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$csignum :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
signum :: SDL_MessageBoxButtonFlags -> SDL_MessageBoxButtonFlags
$cfromInteger :: Integer -> SDL_MessageBoxButtonFlags
fromInteger :: Integer -> SDL_MessageBoxButtonFlags
Num
    , Num SDL_MessageBoxButtonFlags
Ord SDL_MessageBoxButtonFlags
(Num SDL_MessageBoxButtonFlags, Ord SDL_MessageBoxButtonFlags) =>
(SDL_MessageBoxButtonFlags -> Rational)
-> Real SDL_MessageBoxButtonFlags
SDL_MessageBoxButtonFlags -> Rational
forall a. (Num a, Ord a) => (a -> Rational) -> Real a
$ctoRational :: SDL_MessageBoxButtonFlags -> Rational
toRational :: SDL_MessageBoxButtonFlags -> Rational
Real
    )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.CompatHasField.HasField "unwrap" SDL_MessageBoxButtonFlags ty
  where
  hasField :: SDL_MessageBoxButtonFlags -> (ty -> SDL_MessageBoxButtonFlags, ty)
hasField =
    \SDL_MessageBoxButtonFlags
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxButtonFlags{unwrap :: Uint32
unwrap = ty
Uint32
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_MessageBoxButtonFlags
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint32)
  => BG.HasField "unwrap" (BG.Ptr SDL_MessageBoxButtonFlags) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxButtonFlags -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_MessageBoxButtonFlags
-> Ptr (CFieldType SDL_MessageBoxButtonFlags "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_MessageBoxButtonFlags "unwrap" where
  type
    CFieldType SDL_MessageBoxButtonFlags "unwrap" =
      SDL3.Sys.Bindgen.Stdinc.Uint32

  offset# :: Proxy# SDL_MessageBoxButtonFlags -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_MessageBoxButtonFlags
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | Marks the default button when return is hit
--
--     [C declaration]: @macro SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT@, defined at @SDL3\/SDL_messagebox.h 74:9@
sDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT :: BG.CUInt
sDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT :: CUInt
sDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT =
  (CUInt
1 :: BG.CUInt)

-- | Marks the default button when escape is hit
--
--     [C declaration]: @macro SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT@, defined at @SDL3\/SDL_messagebox.h 75:9@
sDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT :: BG.CUInt
sDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT :: CUInt
sDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT =
  (CUInt
2 :: BG.CUInt)

-- | Individual button data.
--
--     @since 3.2.0
--
--     [C declaration]: @struct SDL_MessageBoxButtonData@, defined at @SDL3\/SDL_messagebox.h 82:16@
data SDL_MessageBoxButtonData = SDL_MessageBoxButtonData
  { SDL_MessageBoxButtonData -> SDL_MessageBoxButtonFlags
flags :: SDL_MessageBoxButtonFlags
  -- ^ [C declaration]: @flags@, defined at @SDL3\/SDL_messagebox.h 84:31@
  , SDL_MessageBoxButtonData -> CInt
buttonID :: BG.CInt
  -- ^ User defined button id (value returned via SDL_ShowMessageBox)
  --
  --          [C declaration]: @buttonID@, defined at @SDL3\/SDL_messagebox.h 85:9@
  , SDL_MessageBoxButtonData -> PtrConst CChar
text :: PtrConst.PtrConst BG.CChar
  -- ^ The UTF-8 button text
  --
  --          [C declaration]: @text@, defined at @SDL3\/SDL_messagebox.h 86:17@
  }
  deriving stock ((forall x.
 SDL_MessageBoxButtonData -> Rep SDL_MessageBoxButtonData x)
-> (forall x.
    Rep SDL_MessageBoxButtonData x -> SDL_MessageBoxButtonData)
-> Generic SDL_MessageBoxButtonData
forall x.
Rep SDL_MessageBoxButtonData x -> SDL_MessageBoxButtonData
forall x.
SDL_MessageBoxButtonData -> Rep SDL_MessageBoxButtonData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
SDL_MessageBoxButtonData -> Rep SDL_MessageBoxButtonData x
from :: forall x.
SDL_MessageBoxButtonData -> Rep SDL_MessageBoxButtonData x
$cto :: forall x.
Rep SDL_MessageBoxButtonData x -> SDL_MessageBoxButtonData
to :: forall x.
Rep SDL_MessageBoxButtonData x -> SDL_MessageBoxButtonData
BG.Generic, SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> Bool
(SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> Bool)
-> (SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> Bool)
-> Eq SDL_MessageBoxButtonData
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> Bool
== :: SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> Bool
$c/= :: SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> Bool
/= :: SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> Bool
Eq, Int -> SDL_MessageBoxButtonData -> ShowS
[SDL_MessageBoxButtonData] -> ShowS
SDL_MessageBoxButtonData -> String
(Int -> SDL_MessageBoxButtonData -> ShowS)
-> (SDL_MessageBoxButtonData -> String)
-> ([SDL_MessageBoxButtonData] -> ShowS)
-> Show SDL_MessageBoxButtonData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_MessageBoxButtonData -> ShowS
showsPrec :: Int -> SDL_MessageBoxButtonData -> ShowS
$cshow :: SDL_MessageBoxButtonData -> String
show :: SDL_MessageBoxButtonData -> String
$cshowList :: [SDL_MessageBoxButtonData] -> ShowS
showList :: [SDL_MessageBoxButtonData] -> ShowS
Show)

instance Marshal.StaticSize SDL_MessageBoxButtonData where
  staticSizeOf :: Proxy SDL_MessageBoxButtonData -> Int
staticSizeOf = \Proxy SDL_MessageBoxButtonData
_ -> (Int
16 :: Int)

  staticAlignment :: Proxy SDL_MessageBoxButtonData -> Int
staticAlignment = \Proxy SDL_MessageBoxButtonData
_ -> (Int
8 :: Int)

instance Marshal.ReadRaw SDL_MessageBoxButtonData where
  readRaw :: Ptr SDL_MessageBoxButtonData -> IO SDL_MessageBoxButtonData
readRaw =
    \Ptr SDL_MessageBoxButtonData
ptr0 ->
      (SDL_MessageBoxButtonFlags
 -> CInt -> PtrConst CChar -> SDL_MessageBoxButtonData)
-> IO
     (SDL_MessageBoxButtonFlags
      -> CInt -> PtrConst CChar -> SDL_MessageBoxButtonData)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_MessageBoxButtonFlags
-> CInt -> PtrConst CChar -> SDL_MessageBoxButtonData
SDL_MessageBoxButtonData
        IO
  (SDL_MessageBoxButtonFlags
   -> CInt -> PtrConst CChar -> SDL_MessageBoxButtonData)
-> IO SDL_MessageBoxButtonFlags
-> IO (CInt -> PtrConst CChar -> SDL_MessageBoxButtonData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "flags"
-> Ptr SDL_MessageBoxButtonData
-> IO (CFieldType SDL_MessageBoxButtonData "flags")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags") Ptr SDL_MessageBoxButtonData
ptr0
        IO (CInt -> PtrConst CChar -> SDL_MessageBoxButtonData)
-> IO CInt -> IO (PtrConst CChar -> SDL_MessageBoxButtonData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "buttonID"
-> Ptr SDL_MessageBoxButtonData
-> IO (CFieldType SDL_MessageBoxButtonData "buttonID")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"buttonID") Ptr SDL_MessageBoxButtonData
ptr0
        IO (PtrConst CChar -> SDL_MessageBoxButtonData)
-> IO (PtrConst CChar) -> IO SDL_MessageBoxButtonData
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "text"
-> Ptr SDL_MessageBoxButtonData
-> IO (CFieldType SDL_MessageBoxButtonData "text")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"text") Ptr SDL_MessageBoxButtonData
ptr0

instance Marshal.WriteRaw SDL_MessageBoxButtonData where
  writeRaw :: Ptr SDL_MessageBoxButtonData -> SDL_MessageBoxButtonData -> IO ()
writeRaw =
    \Ptr SDL_MessageBoxButtonData
ptr0 ->
      \SDL_MessageBoxButtonData
s1 ->
        case SDL_MessageBoxButtonData
s1 of
          SDL_MessageBoxButtonData SDL_MessageBoxButtonFlags
flags2 CInt
buttonID3 PtrConst CChar
text4 ->
            Proxy "flags"
-> Ptr SDL_MessageBoxButtonData
-> CFieldType SDL_MessageBoxButtonData "flags"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags") Ptr SDL_MessageBoxButtonData
ptr0 CFieldType SDL_MessageBoxButtonData "flags"
SDL_MessageBoxButtonFlags
flags2
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "buttonID"
-> Ptr SDL_MessageBoxButtonData
-> CFieldType SDL_MessageBoxButtonData "buttonID"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"buttonID") Ptr SDL_MessageBoxButtonData
ptr0 CInt
CFieldType SDL_MessageBoxButtonData "buttonID"
buttonID3
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "text"
-> Ptr SDL_MessageBoxButtonData
-> CFieldType SDL_MessageBoxButtonData "text"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"text") Ptr SDL_MessageBoxButtonData
ptr0 PtrConst CChar
CFieldType SDL_MessageBoxButtonData "text"
text4

deriving via
  Marshal.EquivStorable SDL_MessageBoxButtonData
  instance
    BG.Storable SDL_MessageBoxButtonData

deriving via
  Struct.IsStructViaReadRaw SDL_MessageBoxButtonData
  instance
    Struct.IsStruct SDL_MessageBoxButtonData

-- | [C declaration]: @flags@, defined at @SDL3\/SDL_messagebox.h 84:31@
instance
  (ty ~ SDL_MessageBoxButtonFlags)
  => BG.CompatHasField.HasField "flags" SDL_MessageBoxButtonData ty
  where
  hasField :: SDL_MessageBoxButtonData -> (ty -> SDL_MessageBoxButtonData, ty)
hasField =
    \SDL_MessageBoxButtonData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxButtonData
            { flags :: SDL_MessageBoxButtonFlags
flags = ty
SDL_MessageBoxButtonFlags
y1
            , buttonID :: CInt
buttonID = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttonID" SDL_MessageBoxButtonData
x0
            , text :: PtrConst CChar
text = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"text" SDL_MessageBoxButtonData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxButtonData
x0
      )

instance
  (ty ~ SDL_MessageBoxButtonFlags)
  => BG.HasField "flags" (BG.Ptr SDL_MessageBoxButtonData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxButtonData -> Ptr ty
getField = Proxy "flags"
-> Ptr SDL_MessageBoxButtonData
-> Ptr (CFieldType SDL_MessageBoxButtonData "flags")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags")

instance HasCField.HasCField SDL_MessageBoxButtonData "flags" where
  type
    CFieldType SDL_MessageBoxButtonData "flags" =
      SDL_MessageBoxButtonFlags

  offset# :: Proxy# SDL_MessageBoxButtonData -> Proxy# "flags" -> Int
offset# = \Proxy# SDL_MessageBoxButtonData
_ -> \Proxy# "flags"
_ -> Int
0

-- | User defined button id (value returned via SDL_ShowMessageBox)
--
--     [C declaration]: @buttonID@, defined at @SDL3\/SDL_messagebox.h 85:9@
instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "buttonID" SDL_MessageBoxButtonData ty
  where
  hasField :: SDL_MessageBoxButtonData -> (ty -> SDL_MessageBoxButtonData, ty)
hasField =
    \SDL_MessageBoxButtonData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxButtonData
            { buttonID :: CInt
buttonID = ty
CInt
y1
            , flags :: SDL_MessageBoxButtonFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxButtonData
x0
            , text :: PtrConst CChar
text = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"text" SDL_MessageBoxButtonData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttonID" SDL_MessageBoxButtonData
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "buttonID" (BG.Ptr SDL_MessageBoxButtonData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxButtonData -> Ptr ty
getField = Proxy "buttonID"
-> Ptr SDL_MessageBoxButtonData
-> Ptr (CFieldType SDL_MessageBoxButtonData "buttonID")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"buttonID")

instance HasCField.HasCField SDL_MessageBoxButtonData "buttonID" where
  type
    CFieldType SDL_MessageBoxButtonData "buttonID" =
      BG.CInt

  offset# :: Proxy# SDL_MessageBoxButtonData -> Proxy# "buttonID" -> Int
offset# = \Proxy# SDL_MessageBoxButtonData
_ -> \Proxy# "buttonID"
_ -> Int
4

-- | The UTF-8 button text
--
--     [C declaration]: @text@, defined at @SDL3\/SDL_messagebox.h 86:17@
instance
  (ty ~ PtrConst.PtrConst BG.CChar)
  => BG.CompatHasField.HasField "text" SDL_MessageBoxButtonData ty
  where
  hasField :: SDL_MessageBoxButtonData -> (ty -> SDL_MessageBoxButtonData, ty)
hasField =
    \SDL_MessageBoxButtonData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxButtonData
            { text :: PtrConst CChar
text = ty
PtrConst CChar
y1
            , flags :: SDL_MessageBoxButtonFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxButtonData
x0
            , buttonID :: CInt
buttonID = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttonID" SDL_MessageBoxButtonData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"text" SDL_MessageBoxButtonData
x0
      )

instance
  (ty ~ PtrConst.PtrConst BG.CChar)
  => BG.HasField "text" (BG.Ptr SDL_MessageBoxButtonData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxButtonData -> Ptr ty
getField = Proxy "text"
-> Ptr SDL_MessageBoxButtonData
-> Ptr (CFieldType SDL_MessageBoxButtonData "text")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"text")

instance HasCField.HasCField SDL_MessageBoxButtonData "text" where
  type
    CFieldType SDL_MessageBoxButtonData "text" =
      PtrConst.PtrConst BG.CChar

  offset# :: Proxy# SDL_MessageBoxButtonData -> Proxy# "text" -> Int
offset# = \Proxy# SDL_MessageBoxButtonData
_ -> \Proxy# "text"
_ -> Int
8

-- | RGB value used in a message box color scheme
--
--     @since 3.2.0
--
--     [C declaration]: @struct SDL_MessageBoxColor@, defined at @SDL3\/SDL_messagebox.h 94:16@
data SDL_MessageBoxColor = SDL_MessageBoxColor
  { SDL_MessageBoxColor -> Uint8
r :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @r@, defined at @SDL3\/SDL_messagebox.h 96:11@
  , SDL_MessageBoxColor -> Uint8
g :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @g@, defined at @SDL3\/SDL_messagebox.h 96:14@
  , SDL_MessageBoxColor -> Uint8
b :: SDL3.Sys.Bindgen.Stdinc.Uint8
  -- ^ [C declaration]: @b@, defined at @SDL3\/SDL_messagebox.h 96:17@
  }
  deriving stock ((forall x. SDL_MessageBoxColor -> Rep SDL_MessageBoxColor x)
-> (forall x. Rep SDL_MessageBoxColor x -> SDL_MessageBoxColor)
-> Generic SDL_MessageBoxColor
forall x. Rep SDL_MessageBoxColor x -> SDL_MessageBoxColor
forall x. SDL_MessageBoxColor -> Rep SDL_MessageBoxColor x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_MessageBoxColor -> Rep SDL_MessageBoxColor x
from :: forall x. SDL_MessageBoxColor -> Rep SDL_MessageBoxColor x
$cto :: forall x. Rep SDL_MessageBoxColor x -> SDL_MessageBoxColor
to :: forall x. Rep SDL_MessageBoxColor x -> SDL_MessageBoxColor
BG.Generic, SDL_MessageBoxColor -> SDL_MessageBoxColor -> Bool
(SDL_MessageBoxColor -> SDL_MessageBoxColor -> Bool)
-> (SDL_MessageBoxColor -> SDL_MessageBoxColor -> Bool)
-> Eq SDL_MessageBoxColor
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MessageBoxColor -> SDL_MessageBoxColor -> Bool
== :: SDL_MessageBoxColor -> SDL_MessageBoxColor -> Bool
$c/= :: SDL_MessageBoxColor -> SDL_MessageBoxColor -> Bool
/= :: SDL_MessageBoxColor -> SDL_MessageBoxColor -> Bool
Eq, Int -> SDL_MessageBoxColor -> ShowS
[SDL_MessageBoxColor] -> ShowS
SDL_MessageBoxColor -> String
(Int -> SDL_MessageBoxColor -> ShowS)
-> (SDL_MessageBoxColor -> String)
-> ([SDL_MessageBoxColor] -> ShowS)
-> Show SDL_MessageBoxColor
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_MessageBoxColor -> ShowS
showsPrec :: Int -> SDL_MessageBoxColor -> ShowS
$cshow :: SDL_MessageBoxColor -> String
show :: SDL_MessageBoxColor -> String
$cshowList :: [SDL_MessageBoxColor] -> ShowS
showList :: [SDL_MessageBoxColor] -> ShowS
Show)

instance Marshal.StaticSize SDL_MessageBoxColor where
  staticSizeOf :: Proxy SDL_MessageBoxColor -> Int
staticSizeOf = \Proxy SDL_MessageBoxColor
_ -> (Int
3 :: Int)

  staticAlignment :: Proxy SDL_MessageBoxColor -> Int
staticAlignment = \Proxy SDL_MessageBoxColor
_ -> (Int
1 :: Int)

instance Marshal.ReadRaw SDL_MessageBoxColor where
  readRaw :: Ptr SDL_MessageBoxColor -> IO SDL_MessageBoxColor
readRaw =
    \Ptr SDL_MessageBoxColor
ptr0 ->
      (Uint8 -> Uint8 -> Uint8 -> SDL_MessageBoxColor)
-> IO (Uint8 -> Uint8 -> Uint8 -> SDL_MessageBoxColor)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Uint8 -> Uint8 -> Uint8 -> SDL_MessageBoxColor
SDL_MessageBoxColor
        IO (Uint8 -> Uint8 -> Uint8 -> SDL_MessageBoxColor)
-> IO Uint8 -> IO (Uint8 -> Uint8 -> SDL_MessageBoxColor)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "r"
-> Ptr SDL_MessageBoxColor
-> IO (CFieldType SDL_MessageBoxColor "r")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"r") Ptr SDL_MessageBoxColor
ptr0
        IO (Uint8 -> Uint8 -> SDL_MessageBoxColor)
-> IO Uint8 -> IO (Uint8 -> SDL_MessageBoxColor)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "g"
-> Ptr SDL_MessageBoxColor
-> IO (CFieldType SDL_MessageBoxColor "g")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"g") Ptr SDL_MessageBoxColor
ptr0
        IO (Uint8 -> SDL_MessageBoxColor)
-> IO Uint8 -> IO SDL_MessageBoxColor
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "b"
-> Ptr SDL_MessageBoxColor
-> IO (CFieldType SDL_MessageBoxColor "b")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"b") Ptr SDL_MessageBoxColor
ptr0

instance Marshal.WriteRaw SDL_MessageBoxColor where
  writeRaw :: Ptr SDL_MessageBoxColor -> SDL_MessageBoxColor -> IO ()
writeRaw =
    \Ptr SDL_MessageBoxColor
ptr0 ->
      \SDL_MessageBoxColor
s1 ->
        case SDL_MessageBoxColor
s1 of
          SDL_MessageBoxColor Uint8
r2 Uint8
g3 Uint8
b4 ->
            Proxy "r"
-> Ptr SDL_MessageBoxColor
-> CFieldType SDL_MessageBoxColor "r"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"r") Ptr SDL_MessageBoxColor
ptr0 CFieldType SDL_MessageBoxColor "r"
Uint8
r2
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "g"
-> Ptr SDL_MessageBoxColor
-> CFieldType SDL_MessageBoxColor "g"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"g") Ptr SDL_MessageBoxColor
ptr0 CFieldType SDL_MessageBoxColor "g"
Uint8
g3
              IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "b"
-> Ptr SDL_MessageBoxColor
-> CFieldType SDL_MessageBoxColor "b"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"b") Ptr SDL_MessageBoxColor
ptr0 CFieldType SDL_MessageBoxColor "b"
Uint8
b4

deriving via Marshal.EquivStorable SDL_MessageBoxColor instance BG.Storable SDL_MessageBoxColor

deriving via
  Struct.IsStructViaReadRaw SDL_MessageBoxColor
  instance
    Struct.IsStruct SDL_MessageBoxColor

-- | [C declaration]: @r@, defined at @SDL3\/SDL_messagebox.h 96:11@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "r" SDL_MessageBoxColor ty
  where
  hasField :: SDL_MessageBoxColor -> (ty -> SDL_MessageBoxColor, ty)
hasField =
    \SDL_MessageBoxColor
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxColor{r :: Uint8
r = ty
Uint8
y1, g :: Uint8
g = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"g" SDL_MessageBoxColor
x0, b :: Uint8
b = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"b" SDL_MessageBoxColor
x0}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"r" SDL_MessageBoxColor
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "r" (BG.Ptr SDL_MessageBoxColor) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxColor -> Ptr ty
getField = Proxy "r"
-> Ptr SDL_MessageBoxColor
-> Ptr (CFieldType SDL_MessageBoxColor "r")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"r")

instance HasCField.HasCField SDL_MessageBoxColor "r" where
  type
    CFieldType SDL_MessageBoxColor "r" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_MessageBoxColor -> Proxy# "r" -> Int
offset# = \Proxy# SDL_MessageBoxColor
_ -> \Proxy# "r"
_ -> Int
0

-- | [C declaration]: @g@, defined at @SDL3\/SDL_messagebox.h 96:14@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "g" SDL_MessageBoxColor ty
  where
  hasField :: SDL_MessageBoxColor -> (ty -> SDL_MessageBoxColor, ty)
hasField =
    \SDL_MessageBoxColor
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxColor{g :: Uint8
g = ty
Uint8
y1, r :: Uint8
r = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"r" SDL_MessageBoxColor
x0, b :: Uint8
b = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"b" SDL_MessageBoxColor
x0}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"g" SDL_MessageBoxColor
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "g" (BG.Ptr SDL_MessageBoxColor) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxColor -> Ptr ty
getField = Proxy "g"
-> Ptr SDL_MessageBoxColor
-> Ptr (CFieldType SDL_MessageBoxColor "g")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"g")

instance HasCField.HasCField SDL_MessageBoxColor "g" where
  type
    CFieldType SDL_MessageBoxColor "g" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_MessageBoxColor -> Proxy# "g" -> Int
offset# = \Proxy# SDL_MessageBoxColor
_ -> \Proxy# "g"
_ -> Int
1

-- | [C declaration]: @b@, defined at @SDL3\/SDL_messagebox.h 96:17@
instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.CompatHasField.HasField "b" SDL_MessageBoxColor ty
  where
  hasField :: SDL_MessageBoxColor -> (ty -> SDL_MessageBoxColor, ty)
hasField =
    \SDL_MessageBoxColor
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxColor{b :: Uint8
b = ty
Uint8
y1, r :: Uint8
r = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"r" SDL_MessageBoxColor
x0, g :: Uint8
g = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"g" SDL_MessageBoxColor
x0}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"b" SDL_MessageBoxColor
x0
      )

instance
  (ty ~ SDL3.Sys.Bindgen.Stdinc.Uint8)
  => BG.HasField "b" (BG.Ptr SDL_MessageBoxColor) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxColor -> Ptr ty
getField = Proxy "b"
-> Ptr SDL_MessageBoxColor
-> Ptr (CFieldType SDL_MessageBoxColor "b")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"b")

instance HasCField.HasCField SDL_MessageBoxColor "b" where
  type
    CFieldType SDL_MessageBoxColor "b" =
      SDL3.Sys.Bindgen.Stdinc.Uint8

  offset# :: Proxy# SDL_MessageBoxColor -> Proxy# "b" -> Int
offset# = \Proxy# SDL_MessageBoxColor
_ -> \Proxy# "b"
_ -> Int
2

-- | An enumeration of indices inside the colors array of 'SDL_MessageBoxColorScheme'.
--
--     [C declaration]: @enum SDL_MessageBoxColorType@, defined at @SDL3\/SDL_messagebox.h 103:14@
newtype SDL_MessageBoxColorType = SDL_MessageBoxColorType
  { SDL_MessageBoxColorType -> CUInt
unwrap :: BG.CUInt
  }
  deriving stock ((forall x.
 SDL_MessageBoxColorType -> Rep SDL_MessageBoxColorType x)
-> (forall x.
    Rep SDL_MessageBoxColorType x -> SDL_MessageBoxColorType)
-> Generic SDL_MessageBoxColorType
forall x. Rep SDL_MessageBoxColorType x -> SDL_MessageBoxColorType
forall x. SDL_MessageBoxColorType -> Rep SDL_MessageBoxColorType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_MessageBoxColorType -> Rep SDL_MessageBoxColorType x
from :: forall x. SDL_MessageBoxColorType -> Rep SDL_MessageBoxColorType x
$cto :: forall x. Rep SDL_MessageBoxColorType x -> SDL_MessageBoxColorType
to :: forall x. Rep SDL_MessageBoxColorType x -> SDL_MessageBoxColorType
BG.Generic, SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
(SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool)
-> (SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool)
-> Eq SDL_MessageBoxColorType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
== :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
$c/= :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
/= :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
Eq, Eq SDL_MessageBoxColorType
Eq SDL_MessageBoxColorType =>
(SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Ordering)
-> (SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool)
-> (SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool)
-> (SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool)
-> (SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool)
-> (SDL_MessageBoxColorType
    -> SDL_MessageBoxColorType -> SDL_MessageBoxColorType)
-> (SDL_MessageBoxColorType
    -> SDL_MessageBoxColorType -> SDL_MessageBoxColorType)
-> Ord SDL_MessageBoxColorType
SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Ordering
SDL_MessageBoxColorType
-> SDL_MessageBoxColorType -> SDL_MessageBoxColorType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Ordering
compare :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Ordering
$c< :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
< :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
$c<= :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
<= :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
$c> :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
> :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
$c>= :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
>= :: SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> Bool
$cmax :: SDL_MessageBoxColorType
-> SDL_MessageBoxColorType -> SDL_MessageBoxColorType
max :: SDL_MessageBoxColorType
-> SDL_MessageBoxColorType -> SDL_MessageBoxColorType
$cmin :: SDL_MessageBoxColorType
-> SDL_MessageBoxColorType -> SDL_MessageBoxColorType
min :: SDL_MessageBoxColorType
-> SDL_MessageBoxColorType -> SDL_MessageBoxColorType
Ord)
  deriving newtype (FFIType SDL_MessageBoxColorType -> SDL_MessageBoxColorType
SDL_MessageBoxColorType -> FFIType SDL_MessageBoxColorType
(SDL_MessageBoxColorType -> FFIType SDL_MessageBoxColorType)
-> (FFIType SDL_MessageBoxColorType -> SDL_MessageBoxColorType)
-> HasFFIType SDL_MessageBoxColorType
forall a. (a -> FFIType a) -> (FFIType a -> a) -> HasFFIType a
$ctoFFIType :: SDL_MessageBoxColorType -> FFIType SDL_MessageBoxColorType
toFFIType :: SDL_MessageBoxColorType -> FFIType SDL_MessageBoxColorType
$cfromFFIType :: FFIType SDL_MessageBoxColorType -> SDL_MessageBoxColorType
fromFFIType :: FFIType SDL_MessageBoxColorType -> SDL_MessageBoxColorType
BG.HasFFIType)

instance Marshal.StaticSize SDL_MessageBoxColorType where
  staticSizeOf :: Proxy SDL_MessageBoxColorType -> Int
staticSizeOf = \Proxy SDL_MessageBoxColorType
_ -> (Int
4 :: Int)

  staticAlignment :: Proxy SDL_MessageBoxColorType -> Int
staticAlignment = \Proxy SDL_MessageBoxColorType
_ -> (Int
4 :: Int)

instance Marshal.ReadRaw SDL_MessageBoxColorType where
  readRaw :: Ptr SDL_MessageBoxColorType -> IO SDL_MessageBoxColorType
readRaw =
    \Ptr SDL_MessageBoxColorType
ptr0 ->
      (CUInt -> SDL_MessageBoxColorType)
-> IO (CUInt -> SDL_MessageBoxColorType)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure CUInt -> SDL_MessageBoxColorType
SDL_MessageBoxColorType
        IO (CUInt -> SDL_MessageBoxColorType)
-> IO CUInt -> IO SDL_MessageBoxColorType
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Ptr SDL_MessageBoxColorType -> Int -> IO CUInt
forall a b. ReadRaw a => Ptr b -> Int -> IO a
Marshal.readRawByteOff Ptr SDL_MessageBoxColorType
ptr0 (Int
0 :: Int)

instance Marshal.WriteRaw SDL_MessageBoxColorType where
  writeRaw :: Ptr SDL_MessageBoxColorType -> SDL_MessageBoxColorType -> IO ()
writeRaw =
    \Ptr SDL_MessageBoxColorType
ptr0 ->
      \SDL_MessageBoxColorType
s1 ->
        case SDL_MessageBoxColorType
s1 of
          SDL_MessageBoxColorType CUInt
unwrap2 ->
            Ptr SDL_MessageBoxColorType -> Int -> CUInt -> IO ()
forall a b. WriteRaw a => Ptr b -> Int -> a -> IO ()
Marshal.writeRawByteOff Ptr SDL_MessageBoxColorType
ptr0 (Int
0 :: Int) CUInt
unwrap2

deriving via
  Marshal.EquivStorable SDL_MessageBoxColorType
  instance
    BG.Storable SDL_MessageBoxColorType

deriving via BG.CUInt instance BG.Prim SDL_MessageBoxColorType

instance CEnum.CEnum SDL_MessageBoxColorType where
  type CEnumZ SDL_MessageBoxColorType = BG.CUInt

  toCEnum :: CEnumZ SDL_MessageBoxColorType -> SDL_MessageBoxColorType
toCEnum = CUInt -> SDL_MessageBoxColorType
CEnumZ SDL_MessageBoxColorType -> SDL_MessageBoxColorType
SDL_MessageBoxColorType

  fromCEnum :: SDL_MessageBoxColorType -> CEnumZ SDL_MessageBoxColorType
fromCEnum = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap"

  declaredValues :: forall (proxy :: * -> *).
proxy SDL_MessageBoxColorType
-> DeclaredValues SDL_MessageBoxColorType
declaredValues =
    \proxy SDL_MessageBoxColorType
_ ->
      [(CEnumZ SDL_MessageBoxColorType, NonEmpty String)]
-> DeclaredValues SDL_MessageBoxColorType
forall a.
Ord (CEnumZ a) =>
[(CEnumZ a, NonEmpty String)] -> DeclaredValues a
CEnum.declaredValuesFromList
        [ (CUInt
CEnumZ SDL_MessageBoxColorType
0, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MESSAGEBOX_COLOR_BACKGROUND")
        , (CUInt
CEnumZ SDL_MessageBoxColorType
1, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MESSAGEBOX_COLOR_TEXT")
        , (CUInt
CEnumZ SDL_MessageBoxColorType
2, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MESSAGEBOX_COLOR_BUTTON_BORDER")
        , (CUInt
CEnumZ SDL_MessageBoxColorType
3, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND")
        , (CUInt
CEnumZ SDL_MessageBoxColorType
4, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED")
        , (CUInt
CEnumZ SDL_MessageBoxColorType
5, String -> NonEmpty String
forall a. a -> NonEmpty a
BG.singleton String
"SDL_MESSAGEBOX_COLOR_COUNT")
        ]

  showsUndeclared :: forall (proxy :: * -> *).
proxy SDL_MessageBoxColorType
-> Int -> CEnumZ SDL_MessageBoxColorType -> ShowS
showsUndeclared =
    String
-> proxy SDL_MessageBoxColorType
-> Int
-> CEnumZ SDL_MessageBoxColorType
-> ShowS
forall a (proxy :: * -> *).
Show (CEnumZ a) =>
String -> proxy a -> Int -> CEnumZ a -> ShowS
CEnum.showsWrappedUndeclared String
"SDL_MessageBoxColorType"

  readPrecUndeclared :: ReadPrec SDL_MessageBoxColorType
readPrecUndeclared =
    String -> ReadPrec SDL_MessageBoxColorType
forall a. (CEnum a, Read (CEnumZ a)) => String -> ReadPrec a
CEnum.readPrecWrappedUndeclared String
"SDL_MessageBoxColorType"

  isDeclared :: SDL_MessageBoxColorType -> Bool
isDeclared = SDL_MessageBoxColorType -> Bool
forall a. SequentialCEnum a => a -> Bool
CEnum.seqIsDeclared

  mkDeclared :: CEnumZ SDL_MessageBoxColorType -> Maybe SDL_MessageBoxColorType
mkDeclared = CEnumZ SDL_MessageBoxColorType -> Maybe SDL_MessageBoxColorType
forall a. SequentialCEnum a => CEnumZ a -> Maybe a
CEnum.seqMkDeclared

instance CEnum.SequentialCEnum SDL_MessageBoxColorType where
  minDeclaredValue :: SDL_MessageBoxColorType
minDeclaredValue = SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_BACKGROUND

  maxDeclaredValue :: SDL_MessageBoxColorType
maxDeclaredValue = SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_COUNT

instance Show SDL_MessageBoxColorType where
  showsPrec :: Int -> SDL_MessageBoxColorType -> ShowS
showsPrec = Int -> SDL_MessageBoxColorType -> ShowS
forall a. CEnum a => Int -> a -> ShowS
CEnum.shows

instance Read SDL_MessageBoxColorType where
  readPrec :: ReadPrec SDL_MessageBoxColorType
readPrec = ReadPrec SDL_MessageBoxColorType
forall a. CEnum a => ReadPrec a
CEnum.readPrec

  readList :: ReadS [SDL_MessageBoxColorType]
readList = ReadS [SDL_MessageBoxColorType]
forall a. Read a => ReadS [a]
BG.readListDefault

  readListPrec :: ReadPrec [SDL_MessageBoxColorType]
readListPrec = ReadPrec [SDL_MessageBoxColorType]
forall a. Read a => ReadPrec [a]
BG.readListPrecDefault

instance
  (ty ~ BG.CUInt)
  => BG.CompatHasField.HasField "unwrap" SDL_MessageBoxColorType ty
  where
  hasField :: SDL_MessageBoxColorType -> (ty -> SDL_MessageBoxColorType, ty)
hasField =
    \SDL_MessageBoxColorType
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxColorType{unwrap :: CUInt
unwrap = ty
CUInt
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"unwrap" SDL_MessageBoxColorType
x0
      )

instance
  (ty ~ BG.CUInt)
  => BG.HasField "unwrap" (BG.Ptr SDL_MessageBoxColorType) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxColorType -> Ptr ty
getField = Proxy "unwrap"
-> Ptr SDL_MessageBoxColorType
-> Ptr (CFieldType SDL_MessageBoxColorType "unwrap")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"unwrap")

instance HasCField.HasCField SDL_MessageBoxColorType "unwrap" where
  type
    CFieldType SDL_MessageBoxColorType "unwrap" =
      BG.CUInt

  offset# :: Proxy# SDL_MessageBoxColorType -> Proxy# "unwrap" -> Int
offset# = \Proxy# SDL_MessageBoxColorType
_ -> \Proxy# "unwrap"
_ -> Int
0

-- | [C declaration]: @SDL_MESSAGEBOX_COLOR_BACKGROUND@, defined at @SDL3\/SDL_messagebox.h 105:5@
pattern SDL_MESSAGEBOX_COLOR_BACKGROUND :: SDL_MessageBoxColorType
pattern $mSDL_MESSAGEBOX_COLOR_BACKGROUND :: forall {r}.
SDL_MessageBoxColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MESSAGEBOX_COLOR_BACKGROUND :: SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_BACKGROUND = SDL_MessageBoxColorType 0

-- | [C declaration]: @SDL_MESSAGEBOX_COLOR_TEXT@, defined at @SDL3\/SDL_messagebox.h 106:5@
pattern SDL_MESSAGEBOX_COLOR_TEXT :: SDL_MessageBoxColorType
pattern $mSDL_MESSAGEBOX_COLOR_TEXT :: forall {r}.
SDL_MessageBoxColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MESSAGEBOX_COLOR_TEXT :: SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_TEXT = SDL_MessageBoxColorType 1

-- | [C declaration]: @SDL_MESSAGEBOX_COLOR_BUTTON_BORDER@, defined at @SDL3\/SDL_messagebox.h 107:5@
pattern SDL_MESSAGEBOX_COLOR_BUTTON_BORDER :: SDL_MessageBoxColorType
pattern $mSDL_MESSAGEBOX_COLOR_BUTTON_BORDER :: forall {r}.
SDL_MessageBoxColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MESSAGEBOX_COLOR_BUTTON_BORDER :: SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_BUTTON_BORDER = SDL_MessageBoxColorType 2

-- | [C declaration]: @SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND@, defined at @SDL3\/SDL_messagebox.h 108:5@
pattern SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND :: SDL_MessageBoxColorType
pattern $mSDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND :: forall {r}.
SDL_MessageBoxColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND :: SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND = SDL_MessageBoxColorType 3

-- | [C declaration]: @SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED@, defined at @SDL3\/SDL_messagebox.h 109:5@
pattern SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED :: SDL_MessageBoxColorType
pattern $mSDL_MESSAGEBOX_COLOR_BUTTON_SELECTED :: forall {r}.
SDL_MessageBoxColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MESSAGEBOX_COLOR_BUTTON_SELECTED :: SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED = SDL_MessageBoxColorType 4

-- | Size of the colors array of 'SDL_MessageBoxColorScheme'.
--
--     [C declaration]: @SDL_MESSAGEBOX_COLOR_COUNT@, defined at @SDL3\/SDL_messagebox.h 110:5@
pattern SDL_MESSAGEBOX_COLOR_COUNT :: SDL_MessageBoxColorType
pattern $mSDL_MESSAGEBOX_COLOR_COUNT :: forall {r}.
SDL_MessageBoxColorType -> ((# #) -> r) -> ((# #) -> r) -> r
$bSDL_MESSAGEBOX_COLOR_COUNT :: SDL_MessageBoxColorType
SDL_MESSAGEBOX_COLOR_COUNT = SDL_MessageBoxColorType 5

-- | A set of colors to use for message box dialogs
--
--     @since 3.2.0
--
--     [C declaration]: @struct SDL_MessageBoxColorScheme@, defined at @SDL3\/SDL_messagebox.h 118:16@
data SDL_MessageBoxColorScheme = SDL_MessageBoxColorScheme
  { SDL_MessageBoxColorScheme -> ConstantArray 5 SDL_MessageBoxColor
colors :: CA.ConstantArray 5 SDL_MessageBoxColor
  -- ^ [C declaration]: @colors@, defined at @SDL3\/SDL_messagebox.h 120:25@
  }
  deriving stock ((forall x.
 SDL_MessageBoxColorScheme -> Rep SDL_MessageBoxColorScheme x)
-> (forall x.
    Rep SDL_MessageBoxColorScheme x -> SDL_MessageBoxColorScheme)
-> Generic SDL_MessageBoxColorScheme
forall x.
Rep SDL_MessageBoxColorScheme x -> SDL_MessageBoxColorScheme
forall x.
SDL_MessageBoxColorScheme -> Rep SDL_MessageBoxColorScheme x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
SDL_MessageBoxColorScheme -> Rep SDL_MessageBoxColorScheme x
from :: forall x.
SDL_MessageBoxColorScheme -> Rep SDL_MessageBoxColorScheme x
$cto :: forall x.
Rep SDL_MessageBoxColorScheme x -> SDL_MessageBoxColorScheme
to :: forall x.
Rep SDL_MessageBoxColorScheme x -> SDL_MessageBoxColorScheme
BG.Generic, SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> Bool
(SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> Bool)
-> (SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> Bool)
-> Eq SDL_MessageBoxColorScheme
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> Bool
== :: SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> Bool
$c/= :: SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> Bool
/= :: SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> Bool
Eq, Int -> SDL_MessageBoxColorScheme -> ShowS
[SDL_MessageBoxColorScheme] -> ShowS
SDL_MessageBoxColorScheme -> String
(Int -> SDL_MessageBoxColorScheme -> ShowS)
-> (SDL_MessageBoxColorScheme -> String)
-> ([SDL_MessageBoxColorScheme] -> ShowS)
-> Show SDL_MessageBoxColorScheme
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_MessageBoxColorScheme -> ShowS
showsPrec :: Int -> SDL_MessageBoxColorScheme -> ShowS
$cshow :: SDL_MessageBoxColorScheme -> String
show :: SDL_MessageBoxColorScheme -> String
$cshowList :: [SDL_MessageBoxColorScheme] -> ShowS
showList :: [SDL_MessageBoxColorScheme] -> ShowS
Show)

instance Marshal.StaticSize SDL_MessageBoxColorScheme where
  staticSizeOf :: Proxy SDL_MessageBoxColorScheme -> Int
staticSizeOf = \Proxy SDL_MessageBoxColorScheme
_ -> (Int
15 :: Int)

  staticAlignment :: Proxy SDL_MessageBoxColorScheme -> Int
staticAlignment = \Proxy SDL_MessageBoxColorScheme
_ -> (Int
1 :: Int)

instance Marshal.ReadRaw SDL_MessageBoxColorScheme where
  readRaw :: Ptr SDL_MessageBoxColorScheme -> IO SDL_MessageBoxColorScheme
readRaw =
    \Ptr SDL_MessageBoxColorScheme
ptr0 ->
      (ConstantArray 5 SDL_MessageBoxColor -> SDL_MessageBoxColorScheme)
-> IO
     (ConstantArray 5 SDL_MessageBoxColor -> SDL_MessageBoxColorScheme)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ConstantArray 5 SDL_MessageBoxColor -> SDL_MessageBoxColorScheme
SDL_MessageBoxColorScheme
        IO
  (ConstantArray 5 SDL_MessageBoxColor -> SDL_MessageBoxColorScheme)
-> IO (ConstantArray 5 SDL_MessageBoxColor)
-> IO SDL_MessageBoxColorScheme
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "colors"
-> Ptr SDL_MessageBoxColorScheme
-> IO (CFieldType SDL_MessageBoxColorScheme "colors")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"colors") Ptr SDL_MessageBoxColorScheme
ptr0

instance Marshal.WriteRaw SDL_MessageBoxColorScheme where
  writeRaw :: Ptr SDL_MessageBoxColorScheme -> SDL_MessageBoxColorScheme -> IO ()
writeRaw =
    \Ptr SDL_MessageBoxColorScheme
ptr0 ->
      \SDL_MessageBoxColorScheme
s1 ->
        case SDL_MessageBoxColorScheme
s1 of
          SDL_MessageBoxColorScheme ConstantArray 5 SDL_MessageBoxColor
colors2 ->
            Proxy "colors"
-> Ptr SDL_MessageBoxColorScheme
-> CFieldType SDL_MessageBoxColorScheme "colors"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"colors") Ptr SDL_MessageBoxColorScheme
ptr0 CFieldType SDL_MessageBoxColorScheme "colors"
ConstantArray 5 SDL_MessageBoxColor
colors2

deriving via
  Marshal.EquivStorable SDL_MessageBoxColorScheme
  instance
    BG.Storable SDL_MessageBoxColorScheme

deriving via
  Struct.IsStructViaReadRaw SDL_MessageBoxColorScheme
  instance
    Struct.IsStruct SDL_MessageBoxColorScheme

-- | [C declaration]: @colors@, defined at @SDL3\/SDL_messagebox.h 120:25@
instance
  (ty ~ CA.ConstantArray 5 SDL_MessageBoxColor)
  => BG.CompatHasField.HasField "colors" SDL_MessageBoxColorScheme ty
  where
  hasField :: SDL_MessageBoxColorScheme -> (ty -> SDL_MessageBoxColorScheme, ty)
hasField =
    \SDL_MessageBoxColorScheme
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxColorScheme{colors :: ConstantArray 5 SDL_MessageBoxColor
colors = ty
ConstantArray 5 SDL_MessageBoxColor
y1}
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colors" SDL_MessageBoxColorScheme
x0
      )

instance
  (ty ~ CA.ConstantArray 5 SDL_MessageBoxColor)
  => BG.HasField "colors" (BG.Ptr SDL_MessageBoxColorScheme) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxColorScheme -> Ptr ty
getField = Proxy "colors"
-> Ptr SDL_MessageBoxColorScheme
-> Ptr (CFieldType SDL_MessageBoxColorScheme "colors")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"colors")

instance HasCField.HasCField SDL_MessageBoxColorScheme "colors" where
  type
    CFieldType SDL_MessageBoxColorScheme "colors" =
      CA.ConstantArray 5 SDL_MessageBoxColor

  offset# :: Proxy# SDL_MessageBoxColorScheme -> Proxy# "colors" -> Int
offset# = \Proxy# SDL_MessageBoxColorScheme
_ -> \Proxy# "colors"
_ -> Int
0

-- | MessageBox structure containing title, text, window, etc.
--
--     @since 3.2.0
--
--     [C declaration]: @struct SDL_MessageBoxData@, defined at @SDL3\/SDL_messagebox.h 128:16@
data SDL_MessageBoxData = SDL_MessageBoxData
  { SDL_MessageBoxData -> SDL_MessageBoxFlags
flags :: SDL_MessageBoxFlags
  -- ^ [C declaration]: @flags@, defined at @SDL3\/SDL_messagebox.h 130:25@
  , SDL_MessageBoxData -> Ptr SDL_Window
window :: BG.Ptr SDL3.Sys.Bindgen.Video.SDL_Window
  -- ^ Parent window, can be NULL
  --
  --          [C declaration]: @window@, defined at @SDL3\/SDL_messagebox.h 131:17@
  , SDL_MessageBoxData -> PtrConst CChar
title :: PtrConst.PtrConst BG.CChar
  -- ^ UTF-8 title
  --
  --          [C declaration]: @title@, defined at @SDL3\/SDL_messagebox.h 132:17@
  , SDL_MessageBoxData -> PtrConst CChar
message :: PtrConst.PtrConst BG.CChar
  -- ^ UTF-8 message text
  --
  --          [C declaration]: @message@, defined at @SDL3\/SDL_messagebox.h 133:17@
  , SDL_MessageBoxData -> CInt
numbuttons :: BG.CInt
  -- ^ [C declaration]: @numbuttons@, defined at @SDL3\/SDL_messagebox.h 135:9@
  , SDL_MessageBoxData -> PtrConst SDL_MessageBoxButtonData
buttons :: PtrConst.PtrConst SDL_MessageBoxButtonData
  -- ^ [C declaration]: @buttons@, defined at @SDL3\/SDL_messagebox.h 136:37@
  , SDL_MessageBoxData -> PtrConst SDL_MessageBoxColorScheme
colorScheme :: PtrConst.PtrConst SDL_MessageBoxColorScheme
  -- ^ 'SDL_MessageBoxColorScheme', can be NULL to use system settings
  --
  --          [C declaration]: @colorScheme@, defined at @SDL3\/SDL_messagebox.h 138:38@
  }
  deriving stock ((forall x. SDL_MessageBoxData -> Rep SDL_MessageBoxData x)
-> (forall x. Rep SDL_MessageBoxData x -> SDL_MessageBoxData)
-> Generic SDL_MessageBoxData
forall x. Rep SDL_MessageBoxData x -> SDL_MessageBoxData
forall x. SDL_MessageBoxData -> Rep SDL_MessageBoxData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SDL_MessageBoxData -> Rep SDL_MessageBoxData x
from :: forall x. SDL_MessageBoxData -> Rep SDL_MessageBoxData x
$cto :: forall x. Rep SDL_MessageBoxData x -> SDL_MessageBoxData
to :: forall x. Rep SDL_MessageBoxData x -> SDL_MessageBoxData
BG.Generic, SDL_MessageBoxData -> SDL_MessageBoxData -> Bool
(SDL_MessageBoxData -> SDL_MessageBoxData -> Bool)
-> (SDL_MessageBoxData -> SDL_MessageBoxData -> Bool)
-> Eq SDL_MessageBoxData
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SDL_MessageBoxData -> SDL_MessageBoxData -> Bool
== :: SDL_MessageBoxData -> SDL_MessageBoxData -> Bool
$c/= :: SDL_MessageBoxData -> SDL_MessageBoxData -> Bool
/= :: SDL_MessageBoxData -> SDL_MessageBoxData -> Bool
Eq, Int -> SDL_MessageBoxData -> ShowS
[SDL_MessageBoxData] -> ShowS
SDL_MessageBoxData -> String
(Int -> SDL_MessageBoxData -> ShowS)
-> (SDL_MessageBoxData -> String)
-> ([SDL_MessageBoxData] -> ShowS)
-> Show SDL_MessageBoxData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SDL_MessageBoxData -> ShowS
showsPrec :: Int -> SDL_MessageBoxData -> ShowS
$cshow :: SDL_MessageBoxData -> String
show :: SDL_MessageBoxData -> String
$cshowList :: [SDL_MessageBoxData] -> ShowS
showList :: [SDL_MessageBoxData] -> ShowS
Show)

instance Marshal.StaticSize SDL_MessageBoxData where
  staticSizeOf :: Proxy SDL_MessageBoxData -> Int
staticSizeOf = \Proxy SDL_MessageBoxData
_ -> (Int
56 :: Int)

  staticAlignment :: Proxy SDL_MessageBoxData -> Int
staticAlignment = \Proxy SDL_MessageBoxData
_ -> (Int
8 :: Int)

instance Marshal.ReadRaw SDL_MessageBoxData where
  readRaw :: Ptr SDL_MessageBoxData -> IO SDL_MessageBoxData
readRaw =
    \Ptr SDL_MessageBoxData
ptr0 ->
      (SDL_MessageBoxFlags
 -> Ptr SDL_Window
 -> PtrConst CChar
 -> PtrConst CChar
 -> CInt
 -> PtrConst SDL_MessageBoxButtonData
 -> PtrConst SDL_MessageBoxColorScheme
 -> SDL_MessageBoxData)
-> IO
     (SDL_MessageBoxFlags
      -> Ptr SDL_Window
      -> PtrConst CChar
      -> PtrConst CChar
      -> CInt
      -> PtrConst SDL_MessageBoxButtonData
      -> PtrConst SDL_MessageBoxColorScheme
      -> SDL_MessageBoxData)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SDL_MessageBoxFlags
-> Ptr SDL_Window
-> PtrConst CChar
-> PtrConst CChar
-> CInt
-> PtrConst SDL_MessageBoxButtonData
-> PtrConst SDL_MessageBoxColorScheme
-> SDL_MessageBoxData
SDL_MessageBoxData
        IO
  (SDL_MessageBoxFlags
   -> Ptr SDL_Window
   -> PtrConst CChar
   -> PtrConst CChar
   -> CInt
   -> PtrConst SDL_MessageBoxButtonData
   -> PtrConst SDL_MessageBoxColorScheme
   -> SDL_MessageBoxData)
-> IO SDL_MessageBoxFlags
-> IO
     (Ptr SDL_Window
      -> PtrConst CChar
      -> PtrConst CChar
      -> CInt
      -> PtrConst SDL_MessageBoxButtonData
      -> PtrConst SDL_MessageBoxColorScheme
      -> SDL_MessageBoxData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "flags"
-> Ptr SDL_MessageBoxData
-> IO (CFieldType SDL_MessageBoxData "flags")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags") Ptr SDL_MessageBoxData
ptr0
        IO
  (Ptr SDL_Window
   -> PtrConst CChar
   -> PtrConst CChar
   -> CInt
   -> PtrConst SDL_MessageBoxButtonData
   -> PtrConst SDL_MessageBoxColorScheme
   -> SDL_MessageBoxData)
-> IO (Ptr SDL_Window)
-> IO
     (PtrConst CChar
      -> PtrConst CChar
      -> CInt
      -> PtrConst SDL_MessageBoxButtonData
      -> PtrConst SDL_MessageBoxColorScheme
      -> SDL_MessageBoxData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "window"
-> Ptr SDL_MessageBoxData
-> IO (CFieldType SDL_MessageBoxData "window")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"window") Ptr SDL_MessageBoxData
ptr0
        IO
  (PtrConst CChar
   -> PtrConst CChar
   -> CInt
   -> PtrConst SDL_MessageBoxButtonData
   -> PtrConst SDL_MessageBoxColorScheme
   -> SDL_MessageBoxData)
-> IO (PtrConst CChar)
-> IO
     (PtrConst CChar
      -> CInt
      -> PtrConst SDL_MessageBoxButtonData
      -> PtrConst SDL_MessageBoxColorScheme
      -> SDL_MessageBoxData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "title"
-> Ptr SDL_MessageBoxData
-> IO (CFieldType SDL_MessageBoxData "title")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"title") Ptr SDL_MessageBoxData
ptr0
        IO
  (PtrConst CChar
   -> CInt
   -> PtrConst SDL_MessageBoxButtonData
   -> PtrConst SDL_MessageBoxColorScheme
   -> SDL_MessageBoxData)
-> IO (PtrConst CChar)
-> IO
     (CInt
      -> PtrConst SDL_MessageBoxButtonData
      -> PtrConst SDL_MessageBoxColorScheme
      -> SDL_MessageBoxData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "message"
-> Ptr SDL_MessageBoxData
-> IO (CFieldType SDL_MessageBoxData "message")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"message") Ptr SDL_MessageBoxData
ptr0
        IO
  (CInt
   -> PtrConst SDL_MessageBoxButtonData
   -> PtrConst SDL_MessageBoxColorScheme
   -> SDL_MessageBoxData)
-> IO CInt
-> IO
     (PtrConst SDL_MessageBoxButtonData
      -> PtrConst SDL_MessageBoxColorScheme -> SDL_MessageBoxData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "numbuttons"
-> Ptr SDL_MessageBoxData
-> IO (CFieldType SDL_MessageBoxData "numbuttons")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"numbuttons") Ptr SDL_MessageBoxData
ptr0
        IO
  (PtrConst SDL_MessageBoxButtonData
   -> PtrConst SDL_MessageBoxColorScheme -> SDL_MessageBoxData)
-> IO (PtrConst SDL_MessageBoxButtonData)
-> IO (PtrConst SDL_MessageBoxColorScheme -> SDL_MessageBoxData)
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "buttons"
-> Ptr SDL_MessageBoxData
-> IO (CFieldType SDL_MessageBoxData "buttons")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"buttons") Ptr SDL_MessageBoxData
ptr0
        IO (PtrConst SDL_MessageBoxColorScheme -> SDL_MessageBoxData)
-> IO (PtrConst SDL_MessageBoxColorScheme) -> IO SDL_MessageBoxData
forall a b. IO (a -> b) -> IO a -> IO b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Proxy "colorScheme"
-> Ptr SDL_MessageBoxData
-> IO (CFieldType SDL_MessageBoxData "colorScheme")
forall a (field :: Symbol).
(HasCField a field, ReadRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> IO (CFieldType a field)
HasCField.readRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"colorScheme") Ptr SDL_MessageBoxData
ptr0

instance Marshal.WriteRaw SDL_MessageBoxData where
  writeRaw :: Ptr SDL_MessageBoxData -> SDL_MessageBoxData -> IO ()
writeRaw =
    \Ptr SDL_MessageBoxData
ptr0 ->
      \SDL_MessageBoxData
s1 ->
        case SDL_MessageBoxData
s1 of
          SDL_MessageBoxData
            SDL_MessageBoxFlags
flags2
            Ptr SDL_Window
window3
            PtrConst CChar
title4
            PtrConst CChar
message5
            CInt
numbuttons6
            PtrConst SDL_MessageBoxButtonData
buttons7
            PtrConst SDL_MessageBoxColorScheme
colorScheme8 ->
              Proxy "flags"
-> Ptr SDL_MessageBoxData
-> CFieldType SDL_MessageBoxData "flags"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags") Ptr SDL_MessageBoxData
ptr0 CFieldType SDL_MessageBoxData "flags"
SDL_MessageBoxFlags
flags2
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "window"
-> Ptr SDL_MessageBoxData
-> CFieldType SDL_MessageBoxData "window"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"window") Ptr SDL_MessageBoxData
ptr0 Ptr SDL_Window
CFieldType SDL_MessageBoxData "window"
window3
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "title"
-> Ptr SDL_MessageBoxData
-> CFieldType SDL_MessageBoxData "title"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"title") Ptr SDL_MessageBoxData
ptr0 PtrConst CChar
CFieldType SDL_MessageBoxData "title"
title4
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "message"
-> Ptr SDL_MessageBoxData
-> CFieldType SDL_MessageBoxData "message"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"message") Ptr SDL_MessageBoxData
ptr0 PtrConst CChar
CFieldType SDL_MessageBoxData "message"
message5
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "numbuttons"
-> Ptr SDL_MessageBoxData
-> CFieldType SDL_MessageBoxData "numbuttons"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"numbuttons") Ptr SDL_MessageBoxData
ptr0 CInt
CFieldType SDL_MessageBoxData "numbuttons"
numbuttons6
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "buttons"
-> Ptr SDL_MessageBoxData
-> CFieldType SDL_MessageBoxData "buttons"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"buttons") Ptr SDL_MessageBoxData
ptr0 PtrConst SDL_MessageBoxButtonData
CFieldType SDL_MessageBoxData "buttons"
buttons7
                IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Proxy "colorScheme"
-> Ptr SDL_MessageBoxData
-> CFieldType SDL_MessageBoxData "colorScheme"
-> IO ()
forall a (field :: Symbol).
(HasCField a field, WriteRaw (CFieldType a field)) =>
Proxy field -> Ptr a -> CFieldType a field -> IO ()
HasCField.writeRaw (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"colorScheme") Ptr SDL_MessageBoxData
ptr0 PtrConst SDL_MessageBoxColorScheme
CFieldType SDL_MessageBoxData "colorScheme"
colorScheme8

deriving via Marshal.EquivStorable SDL_MessageBoxData instance BG.Storable SDL_MessageBoxData

deriving via
  Struct.IsStructViaReadRaw SDL_MessageBoxData
  instance
    Struct.IsStruct SDL_MessageBoxData

-- | [C declaration]: @flags@, defined at @SDL3\/SDL_messagebox.h 130:25@
instance
  (ty ~ SDL_MessageBoxFlags)
  => BG.CompatHasField.HasField "flags" SDL_MessageBoxData ty
  where
  hasField :: SDL_MessageBoxData -> (ty -> SDL_MessageBoxData, ty)
hasField =
    \SDL_MessageBoxData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxData
            { flags :: SDL_MessageBoxFlags
flags = ty
SDL_MessageBoxFlags
y1
            , window :: Ptr SDL_Window
window = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"window" SDL_MessageBoxData
x0
            , title :: PtrConst CChar
title = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"title" SDL_MessageBoxData
x0
            , message :: PtrConst CChar
message = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"message" SDL_MessageBoxData
x0
            , numbuttons :: CInt
numbuttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"numbuttons" SDL_MessageBoxData
x0
            , buttons :: PtrConst SDL_MessageBoxButtonData
buttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttons" SDL_MessageBoxData
x0
            , colorScheme :: PtrConst SDL_MessageBoxColorScheme
colorScheme = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colorScheme" SDL_MessageBoxData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxData
x0
      )

instance
  (ty ~ SDL_MessageBoxFlags)
  => BG.HasField "flags" (BG.Ptr SDL_MessageBoxData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxData -> Ptr ty
getField = Proxy "flags"
-> Ptr SDL_MessageBoxData
-> Ptr (CFieldType SDL_MessageBoxData "flags")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"flags")

instance HasCField.HasCField SDL_MessageBoxData "flags" where
  type
    CFieldType SDL_MessageBoxData "flags" =
      SDL_MessageBoxFlags

  offset# :: Proxy# SDL_MessageBoxData -> Proxy# "flags" -> Int
offset# = \Proxy# SDL_MessageBoxData
_ -> \Proxy# "flags"
_ -> Int
0

-- | Parent window, can be NULL
--
--     [C declaration]: @window@, defined at @SDL3\/SDL_messagebox.h 131:17@
instance
  (ty ~ BG.Ptr SDL3.Sys.Bindgen.Video.SDL_Window)
  => BG.CompatHasField.HasField "window" SDL_MessageBoxData ty
  where
  hasField :: SDL_MessageBoxData -> (ty -> SDL_MessageBoxData, ty)
hasField =
    \SDL_MessageBoxData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxData
            { window :: Ptr SDL_Window
window = ty
Ptr SDL_Window
y1
            , flags :: SDL_MessageBoxFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxData
x0
            , title :: PtrConst CChar
title = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"title" SDL_MessageBoxData
x0
            , message :: PtrConst CChar
message = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"message" SDL_MessageBoxData
x0
            , numbuttons :: CInt
numbuttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"numbuttons" SDL_MessageBoxData
x0
            , buttons :: PtrConst SDL_MessageBoxButtonData
buttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttons" SDL_MessageBoxData
x0
            , colorScheme :: PtrConst SDL_MessageBoxColorScheme
colorScheme = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colorScheme" SDL_MessageBoxData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"window" SDL_MessageBoxData
x0
      )

instance
  (ty ~ BG.Ptr SDL3.Sys.Bindgen.Video.SDL_Window)
  => BG.HasField "window" (BG.Ptr SDL_MessageBoxData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxData -> Ptr ty
getField = Proxy "window"
-> Ptr SDL_MessageBoxData
-> Ptr (CFieldType SDL_MessageBoxData "window")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"window")

instance HasCField.HasCField SDL_MessageBoxData "window" where
  type
    CFieldType SDL_MessageBoxData "window" =
      BG.Ptr SDL3.Sys.Bindgen.Video.SDL_Window

  offset# :: Proxy# SDL_MessageBoxData -> Proxy# "window" -> Int
offset# = \Proxy# SDL_MessageBoxData
_ -> \Proxy# "window"
_ -> Int
8

-- | UTF-8 title
--
--     [C declaration]: @title@, defined at @SDL3\/SDL_messagebox.h 132:17@
instance
  (ty ~ PtrConst.PtrConst BG.CChar)
  => BG.CompatHasField.HasField "title" SDL_MessageBoxData ty
  where
  hasField :: SDL_MessageBoxData -> (ty -> SDL_MessageBoxData, ty)
hasField =
    \SDL_MessageBoxData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxData
            { title :: PtrConst CChar
title = ty
PtrConst CChar
y1
            , flags :: SDL_MessageBoxFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxData
x0
            , window :: Ptr SDL_Window
window = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"window" SDL_MessageBoxData
x0
            , message :: PtrConst CChar
message = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"message" SDL_MessageBoxData
x0
            , numbuttons :: CInt
numbuttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"numbuttons" SDL_MessageBoxData
x0
            , buttons :: PtrConst SDL_MessageBoxButtonData
buttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttons" SDL_MessageBoxData
x0
            , colorScheme :: PtrConst SDL_MessageBoxColorScheme
colorScheme = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colorScheme" SDL_MessageBoxData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"title" SDL_MessageBoxData
x0
      )

instance
  (ty ~ PtrConst.PtrConst BG.CChar)
  => BG.HasField "title" (BG.Ptr SDL_MessageBoxData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxData -> Ptr ty
getField = Proxy "title"
-> Ptr SDL_MessageBoxData
-> Ptr (CFieldType SDL_MessageBoxData "title")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"title")

instance HasCField.HasCField SDL_MessageBoxData "title" where
  type
    CFieldType SDL_MessageBoxData "title" =
      PtrConst.PtrConst BG.CChar

  offset# :: Proxy# SDL_MessageBoxData -> Proxy# "title" -> Int
offset# = \Proxy# SDL_MessageBoxData
_ -> \Proxy# "title"
_ -> Int
16

-- | UTF-8 message text
--
--     [C declaration]: @message@, defined at @SDL3\/SDL_messagebox.h 133:17@
instance
  (ty ~ PtrConst.PtrConst BG.CChar)
  => BG.CompatHasField.HasField "message" SDL_MessageBoxData ty
  where
  hasField :: SDL_MessageBoxData -> (ty -> SDL_MessageBoxData, ty)
hasField =
    \SDL_MessageBoxData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxData
            { message :: PtrConst CChar
message = ty
PtrConst CChar
y1
            , flags :: SDL_MessageBoxFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxData
x0
            , window :: Ptr SDL_Window
window = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"window" SDL_MessageBoxData
x0
            , title :: PtrConst CChar
title = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"title" SDL_MessageBoxData
x0
            , numbuttons :: CInt
numbuttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"numbuttons" SDL_MessageBoxData
x0
            , buttons :: PtrConst SDL_MessageBoxButtonData
buttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttons" SDL_MessageBoxData
x0
            , colorScheme :: PtrConst SDL_MessageBoxColorScheme
colorScheme = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colorScheme" SDL_MessageBoxData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"message" SDL_MessageBoxData
x0
      )

instance
  (ty ~ PtrConst.PtrConst BG.CChar)
  => BG.HasField "message" (BG.Ptr SDL_MessageBoxData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxData -> Ptr ty
getField = Proxy "message"
-> Ptr SDL_MessageBoxData
-> Ptr (CFieldType SDL_MessageBoxData "message")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"message")

instance HasCField.HasCField SDL_MessageBoxData "message" where
  type
    CFieldType SDL_MessageBoxData "message" =
      PtrConst.PtrConst BG.CChar

  offset# :: Proxy# SDL_MessageBoxData -> Proxy# "message" -> Int
offset# = \Proxy# SDL_MessageBoxData
_ -> \Proxy# "message"
_ -> Int
24

-- | [C declaration]: @numbuttons@, defined at @SDL3\/SDL_messagebox.h 135:9@
instance
  (ty ~ BG.CInt)
  => BG.CompatHasField.HasField "numbuttons" SDL_MessageBoxData ty
  where
  hasField :: SDL_MessageBoxData -> (ty -> SDL_MessageBoxData, ty)
hasField =
    \SDL_MessageBoxData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxData
            { numbuttons :: CInt
numbuttons = ty
CInt
y1
            , flags :: SDL_MessageBoxFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxData
x0
            , window :: Ptr SDL_Window
window = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"window" SDL_MessageBoxData
x0
            , title :: PtrConst CChar
title = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"title" SDL_MessageBoxData
x0
            , message :: PtrConst CChar
message = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"message" SDL_MessageBoxData
x0
            , buttons :: PtrConst SDL_MessageBoxButtonData
buttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttons" SDL_MessageBoxData
x0
            , colorScheme :: PtrConst SDL_MessageBoxColorScheme
colorScheme = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colorScheme" SDL_MessageBoxData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"numbuttons" SDL_MessageBoxData
x0
      )

instance
  (ty ~ BG.CInt)
  => BG.HasField "numbuttons" (BG.Ptr SDL_MessageBoxData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxData -> Ptr ty
getField = Proxy "numbuttons"
-> Ptr SDL_MessageBoxData
-> Ptr (CFieldType SDL_MessageBoxData "numbuttons")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"numbuttons")

instance HasCField.HasCField SDL_MessageBoxData "numbuttons" where
  type
    CFieldType SDL_MessageBoxData "numbuttons" =
      BG.CInt

  offset# :: Proxy# SDL_MessageBoxData -> Proxy# "numbuttons" -> Int
offset# = \Proxy# SDL_MessageBoxData
_ -> \Proxy# "numbuttons"
_ -> Int
32

-- | [C declaration]: @buttons@, defined at @SDL3\/SDL_messagebox.h 136:37@
instance
  (ty ~ PtrConst.PtrConst SDL_MessageBoxButtonData)
  => BG.CompatHasField.HasField "buttons" SDL_MessageBoxData ty
  where
  hasField :: SDL_MessageBoxData -> (ty -> SDL_MessageBoxData, ty)
hasField =
    \SDL_MessageBoxData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxData
            { buttons :: PtrConst SDL_MessageBoxButtonData
buttons = ty
PtrConst SDL_MessageBoxButtonData
y1
            , flags :: SDL_MessageBoxFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxData
x0
            , window :: Ptr SDL_Window
window = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"window" SDL_MessageBoxData
x0
            , title :: PtrConst CChar
title = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"title" SDL_MessageBoxData
x0
            , message :: PtrConst CChar
message = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"message" SDL_MessageBoxData
x0
            , numbuttons :: CInt
numbuttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"numbuttons" SDL_MessageBoxData
x0
            , colorScheme :: PtrConst SDL_MessageBoxColorScheme
colorScheme = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colorScheme" SDL_MessageBoxData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttons" SDL_MessageBoxData
x0
      )

instance
  (ty ~ PtrConst.PtrConst SDL_MessageBoxButtonData)
  => BG.HasField "buttons" (BG.Ptr SDL_MessageBoxData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxData -> Ptr ty
getField = Proxy "buttons"
-> Ptr SDL_MessageBoxData
-> Ptr (CFieldType SDL_MessageBoxData "buttons")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"buttons")

instance HasCField.HasCField SDL_MessageBoxData "buttons" where
  type
    CFieldType SDL_MessageBoxData "buttons" =
      PtrConst.PtrConst SDL_MessageBoxButtonData

  offset# :: Proxy# SDL_MessageBoxData -> Proxy# "buttons" -> Int
offset# = \Proxy# SDL_MessageBoxData
_ -> \Proxy# "buttons"
_ -> Int
40

-- | 'SDL_MessageBoxColorScheme', can be NULL to use system settings
--
--     [C declaration]: @colorScheme@, defined at @SDL3\/SDL_messagebox.h 138:38@
instance
  (ty ~ PtrConst.PtrConst SDL_MessageBoxColorScheme)
  => BG.CompatHasField.HasField "colorScheme" SDL_MessageBoxData ty
  where
  hasField :: SDL_MessageBoxData -> (ty -> SDL_MessageBoxData, ty)
hasField =
    \SDL_MessageBoxData
x0 ->
      ( \ty
y1 ->
          SDL_MessageBoxData
            { colorScheme :: PtrConst SDL_MessageBoxColorScheme
colorScheme = ty
PtrConst SDL_MessageBoxColorScheme
y1
            , flags :: SDL_MessageBoxFlags
flags = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"flags" SDL_MessageBoxData
x0
            , window :: Ptr SDL_Window
window = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"window" SDL_MessageBoxData
x0
            , title :: PtrConst CChar
title = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"title" SDL_MessageBoxData
x0
            , message :: PtrConst CChar
message = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"message" SDL_MessageBoxData
x0
            , numbuttons :: CInt
numbuttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"numbuttons" SDL_MessageBoxData
x0
            , buttons :: PtrConst SDL_MessageBoxButtonData
buttons = forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"buttons" SDL_MessageBoxData
x0
            }
      , forall {k} (x :: k) r a. HasField x r a => r -> a
forall (x :: Symbol) r a. HasField x r a => r -> a
BG.getField @"colorScheme" SDL_MessageBoxData
x0
      )

instance
  (ty ~ PtrConst.PtrConst SDL_MessageBoxColorScheme)
  => BG.HasField "colorScheme" (BG.Ptr SDL_MessageBoxData) (BG.Ptr ty)
  where
  getField :: Ptr SDL_MessageBoxData -> Ptr ty
getField =
    Proxy "colorScheme"
-> Ptr SDL_MessageBoxData
-> Ptr (CFieldType SDL_MessageBoxData "colorScheme")
forall a (field :: Symbol).
HasCField a field =>
Proxy field -> Ptr a -> Ptr (CFieldType a field)
HasCField.fromPtr (forall {k} (t :: k). Proxy t
forall (t :: Symbol). Proxy t
BG.Proxy @"colorScheme")

instance HasCField.HasCField SDL_MessageBoxData "colorScheme" where
  type
    CFieldType SDL_MessageBoxData "colorScheme" =
      PtrConst.PtrConst SDL_MessageBoxColorScheme

  offset# :: Proxy# SDL_MessageBoxData -> Proxy# "colorScheme" -> Int
offset# = \Proxy# SDL_MessageBoxData
_ -> \Proxy# "colorScheme"
_ -> Int
48