packages feed

gi-cairo-again-1.16.0: src/GI/Cairo/Structs/RectangleInt.hs

{-# LANGUAGE FlexibleInstances #-}
module GI.Cairo.Structs.RectangleInt where

import           Data.GI.Base.BasicTypes
import           Data.GI.Base.ManagedPtr
import           Foreign.ForeignPtr
import           Foreign.Marshal.Alloc
import           Foreign.Ptr
import           Foreign.Storable
import qualified Graphics.Cairo.Types as T
import           Helper

newtype RectangleInt = RectangleInt (ManagedPtr RectangleInt)

instance BoxedObject RectangleInt where
  boxedType _ = rectangle_intGType

foreign import ccall safe "cairo_gobject_rectangle_int_get_type"
  rectangle_intGType :: IO GType

instance Connector RectangleInt (T.Rectangle Int) where
  fromGI (RectangleInt (ManagedPtr fp _ _)) = withForeignPtr (castForeignPtr fp) peek
  toGI ri = do
    p <- malloc
    poke p ri
    RectangleInt <$> newManagedPtr_ (castPtr p)