{-# LINE 1 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}

-- | <http://gts.sourceforge.net/reference/gts-hierarchical-surfaces.html>

module Bindings.Gts.ProgressiveAndHierarchicalSurfaces.HierarchicalSurfaces where
import Bindings.GLib
import Bindings.Gts.Types
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 9 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}

foreign import ccall "inline_GTS_HSURFACE_CLASS" c'GTS_HSURFACE_CLASS
  :: Ptr a -> Ptr C'GtsHSurfaceClass

{-# LINE 11 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}
foreign import ccall "inline_GTS_HSURFACE" c'GTS_HSURFACE
  :: Ptr a -> Ptr C'GtsHSurface

{-# LINE 12 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}
foreign import ccall "inline_GTS_IS_HSURFACE" c'GTS_IS_HSURFACE
  :: Ptr a -> Ptr C'gboolean

{-# LINE 13 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}

foreign import ccall "gts_hsurface_class" c'gts_hsurface_class
  :: IO (Ptr C'GtsHSurfaceClass)
foreign import ccall "&gts_hsurface_class" p'gts_hsurface_class
  :: FunPtr (IO (Ptr C'GtsHSurfaceClass))

{-# LINE 15 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}
foreign import ccall "gts_hsurface_new" c'gts_hsurface_new
  :: Ptr C'GtsHSurfaceClass -> Ptr C'GtsHSplitClass -> Ptr C'GtsPSurface -> C'GtsKeyFunc -> C'gpointer -> C'GtsKeyFunc -> C'gpointer -> IO (Ptr C'GtsHSurface)
foreign import ccall "&gts_hsurface_new" p'gts_hsurface_new
  :: FunPtr (Ptr C'GtsHSurfaceClass -> Ptr C'GtsHSplitClass -> Ptr C'GtsPSurface -> C'GtsKeyFunc -> C'gpointer -> C'GtsKeyFunc -> C'gpointer -> IO (Ptr C'GtsHSurface))

{-# LINE 16 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}
foreign import ccall "gts_hsurface_traverse" c'gts_hsurface_traverse
  :: Ptr C'GtsHSurface -> C'GTraverseType -> C'gint -> C'GtsSplitTraverseFunc -> C'gpointer -> IO ()
foreign import ccall "&gts_hsurface_traverse" p'gts_hsurface_traverse
  :: FunPtr (Ptr C'GtsHSurface -> C'GTraverseType -> C'gint -> C'GtsSplitTraverseFunc -> C'gpointer -> IO ())

{-# LINE 17 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}
foreign import ccall "gts_hsurface_height" c'gts_hsurface_height
  :: Ptr C'GtsHSurface -> IO C'guint
foreign import ccall "&gts_hsurface_height" p'gts_hsurface_height
  :: FunPtr (Ptr C'GtsHSurface -> IO C'guint)

{-# LINE 18 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}
foreign import ccall "gts_hsurface_foreach" c'gts_hsurface_foreach
  :: Ptr C'GtsHSurface -> C'GTraverseType -> C'GtsFunc -> C'gpointer -> IO ()
foreign import ccall "&gts_hsurface_foreach" p'gts_hsurface_foreach
  :: FunPtr (Ptr C'GtsHSurface -> C'GTraverseType -> C'GtsFunc -> C'gpointer -> IO ())

{-# LINE 19 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/HierarchicalSurfaces.hsc" #-}