packages feed

dear-imgui-raw-internal-1.0.0: src/DearImGui/Raw/Internal/ImRect.hsc

{-# 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 ()