{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE PatternSynonyms #-}
-- This file was generated by dear-bindings-ffi. Do not edit by hand.
module DearImGui.Raw.Internal.ImRect
( ImRect (..)
, add
, addImRect
, addX
, addY
, c_add
, c_addImRect
, c_clipWith
, c_clipWithFull
, c_contains
, c_containsImRect
, c_containsWithPad
, c_expandImVec2
, c_getBL
, c_getBR
, c_getCenter
, c_getSize
, c_getTL
, c_getTR
, c_overlaps
, c_toVec4
, c_translate
, clipWith
, clipWithFull
, contains
, containsImRect
, containsWithPad
, destroy
, expand
, expandImVec2
, getArea
, getBL
, getBR
, getCenter
, getHeight
, getSize
, getTL
, getTR
, getWidth
, init
, isInverted
, overlaps
, toVec4
, translate
, translateX
, translateY
, withDefault
) where
import Control.Exception (bracket_)
import DearImGui.Raw.ImVec2 (ImVec2)
import DearImGui.Raw.ImVec4 (ImVec4)
import Foreign.C.Types
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Utils (with)
import Foreign.Ptr (Ptr, plusPtr)
import Foreign.Storable (Storable (..))
import GHC.Records (HasField (..))
import Prelude hiding (init)
#include "dcimgui_nodefaultargfunctions_internal.h"
-- structs (opaque)
-- by-value
data {-# CTYPE "dcimgui_nodefaultargfunctions_internal.h" "ImRect" #-} ImRect = ImRect
{ min :: ImVec2
, max :: ImVec2
}
deriving (Eq, Show)
instance Storable ImRect where
sizeOf _ = #{size ImRect}
alignment _ = #{alignment ImRect}
peek p = ImRect <$> #{peek ImRect, Min} p <*> #{peek ImRect, Max} p
poke p v = do
#{poke ImRect, Min} p v.min
#{poke ImRect, Max} p v.max
instance HasField "min" (Ptr ImRect) (Ptr ImVec2) where
getField = #{ptr ImRect, Min}
instance HasField "max" (Ptr ImRect) (Ptr ImVec2) where
getField = #{ptr ImRect, Max}
foreign import capi unsafe "DearImGuiWrappers.h ImRect_Init_wrap"
init
:: Ptr ImRect
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImRect_Destroy_wrap"
destroy
:: Ptr ImRect
-> IO ()
withDefault :: (Ptr ImRect -> IO a) -> IO a
withDefault k = alloca $ \p -> bracket_ (init p) (destroy p) (k p)
-- functions
foreign import capi unsafe "DearImGuiWrappers.h ImRect_Add_wrap"
c_add
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ p
-> IO ()
add
:: (Ptr ImRect) -- ^ self
-> ImVec2 -- ^ p
-> IO ()
add self p =
with p $ \pPtr -> c_add self pPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_AddImRect_wrap"
c_addImRect
:: (Ptr ImRect) -- ^ self
-> (Ptr ImRect) -- ^ r
-> IO ()
addImRect
:: (Ptr ImRect) -- ^ self
-> ImRect -- ^ r
-> IO ()
addImRect self r =
with r $ \rPtr -> c_addImRect self rPtr
-- C: void AddX(ImRect* self, float x)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_AddX"
addX
:: (Ptr ImRect) -- ^ self
-> Float -- ^ x
-> IO ()
-- C: void AddY(ImRect* self, float y)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_AddY"
addY
:: (Ptr ImRect) -- ^ self
-> Float -- ^ y
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImRect_ClipWith_wrap"
c_clipWith
:: (Ptr ImRect) -- ^ self
-> (Ptr ImRect) -- ^ r
-> IO ()
clipWith
:: (Ptr ImRect) -- ^ self
-> ImRect -- ^ r
-> IO ()
clipWith self r =
with r $ \rPtr -> c_clipWith self rPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_ClipWithFull_wrap"
c_clipWithFull
:: (Ptr ImRect) -- ^ self
-> (Ptr ImRect) -- ^ r
-> IO ()
clipWithFull
:: (Ptr ImRect) -- ^ self
-> ImRect -- ^ r
-> IO ()
clipWithFull self r =
with r $ \rPtr -> c_clipWithFull self rPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_Contains_wrap"
c_contains
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ p
-> IO CBool
contains
:: (Ptr ImRect) -- ^ self
-> ImVec2 -- ^ p
-> IO CBool
contains self p =
with p $ \pPtr -> c_contains self pPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_ContainsImRect_wrap"
c_containsImRect
:: (Ptr ImRect) -- ^ self
-> (Ptr ImRect) -- ^ r
-> IO CBool
containsImRect
:: (Ptr ImRect) -- ^ self
-> ImRect -- ^ r
-> IO CBool
containsImRect self r =
with r $ \rPtr -> c_containsImRect self rPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_ContainsWithPad_wrap"
c_containsWithPad
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ p
-> (Ptr ImVec2) -- ^ pad
-> IO CBool
containsWithPad
:: (Ptr ImRect) -- ^ self
-> ImVec2 -- ^ p
-> ImVec2 -- ^ pad
-> IO CBool
containsWithPad self p pad =
with p $ \pPtr -> with pad $ \padPtr -> c_containsWithPad self pPtr padPtr
-- C: void Expand(ImRect* self, const float amount)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_Expand"
expand
:: (Ptr ImRect) -- ^ self
-> Float -- ^ amount
-> IO ()
foreign import capi unsafe "DearImGuiWrappers.h ImRect_ExpandImVec2_wrap"
c_expandImVec2
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ amount
-> IO ()
expandImVec2
:: (Ptr ImRect) -- ^ self
-> ImVec2 -- ^ amount
-> IO ()
expandImVec2 self amount =
with amount $ \amountPtr -> c_expandImVec2 self amountPtr
-- C: float GetArea(const ImRect* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_GetArea"
getArea
:: (Ptr ImRect) -- ^ self
-> IO Float
foreign import capi unsafe "DearImGuiWrappers.h ImRect_GetBL_wrap"
c_getBL
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ out
-> IO ()
getBL
:: (Ptr ImRect) -- ^ self
-> IO ImVec2
getBL self =
alloca $ \outPtr -> c_getBL self outPtr >> peek outPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_GetBR_wrap"
c_getBR
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ out
-> IO ()
getBR
:: (Ptr ImRect) -- ^ self
-> IO ImVec2
getBR self =
alloca $ \outPtr -> c_getBR self outPtr >> peek outPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_GetCenter_wrap"
c_getCenter
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ out
-> IO ()
getCenter
:: (Ptr ImRect) -- ^ self
-> IO ImVec2
getCenter self =
alloca $ \outPtr -> c_getCenter self outPtr >> peek outPtr
-- C: float GetHeight(const ImRect* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_GetHeight"
getHeight
:: (Ptr ImRect) -- ^ self
-> IO Float
foreign import capi unsafe "DearImGuiWrappers.h ImRect_GetSize_wrap"
c_getSize
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ out
-> IO ()
getSize
:: (Ptr ImRect) -- ^ self
-> IO ImVec2
getSize self =
alloca $ \outPtr -> c_getSize self outPtr >> peek outPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_GetTL_wrap"
c_getTL
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ out
-> IO ()
getTL
:: (Ptr ImRect) -- ^ self
-> IO ImVec2
getTL self =
alloca $ \outPtr -> c_getTL self outPtr >> peek outPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_GetTR_wrap"
c_getTR
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ out
-> IO ()
getTR
:: (Ptr ImRect) -- ^ self
-> IO ImVec2
getTR self =
alloca $ \outPtr -> c_getTR self outPtr >> peek outPtr
-- C: float GetWidth(const ImRect* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_GetWidth"
getWidth
:: (Ptr ImRect) -- ^ self
-> IO Float
-- C: bool IsInverted(const ImRect* self)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_IsInverted"
isInverted
:: (Ptr ImRect) -- ^ self
-> IO CBool
foreign import capi unsafe "DearImGuiWrappers.h ImRect_Overlaps_wrap"
c_overlaps
:: (Ptr ImRect) -- ^ self
-> (Ptr ImRect) -- ^ r
-> IO CBool
overlaps
:: (Ptr ImRect) -- ^ self
-> ImRect -- ^ r
-> IO CBool
overlaps self r =
with r $ \rPtr -> c_overlaps self rPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_ToVec4_wrap"
c_toVec4
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec4) -- ^ out
-> IO ()
toVec4
:: (Ptr ImRect) -- ^ self
-> IO ImVec4
toVec4 self =
alloca $ \outPtr -> c_toVec4 self outPtr >> peek outPtr
foreign import capi unsafe "DearImGuiWrappers.h ImRect_Translate_wrap"
c_translate
:: (Ptr ImRect) -- ^ self
-> (Ptr ImVec2) -- ^ d
-> IO ()
translate
:: (Ptr ImRect) -- ^ self
-> ImVec2 -- ^ d
-> IO ()
translate self d =
with d $ \dPtr -> c_translate self dPtr
-- C: void TranslateX(ImRect* self, float dx)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_TranslateX"
translateX
:: (Ptr ImRect) -- ^ self
-> Float -- ^ dx
-> IO ()
-- C: void TranslateY(ImRect* self, float dy)
foreign import capi unsafe "dcimgui_nodefaultargfunctions_internal.h ImRect_TranslateY"
translateY
:: (Ptr ImRect) -- ^ self
-> Float -- ^ dy
-> IO ()