{-# LINE 1 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}

-- | <http://gts.sourceforge.net/reference/gts-progressive-graph.html>

module Bindings.Gts.GraphAndOperationsOnGraphs.ProgressiveGraph 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/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}

foreign import ccall "inline_GTS_GNODE_SPLIT_CLASS" c'GTS_GNODE_SPLIT_CLASS
  :: Ptr a -> Ptr C'GtsGNodeSplitClass

{-# LINE 11 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "inline_GTS_GNODE_SPLIT" c'GTS_GNODE_SPLIT
  :: Ptr a -> Ptr C'GtsGNodeSplit

{-# LINE 12 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "inline_GTS_IS_GNODE_SPLIT" c'GTS_IS_GNODE_SPLIT
  :: Ptr a -> Ptr C'gboolean

{-# LINE 13 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}

foreign import ccall "inline_GTS_GNODE_SPLIT_N1" c'GTS_GNODE_SPLIT_N1
  :: Ptr C'GtsGNodeSplit -> C'gpointer

{-# LINE 15 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "inline_GTS_GNODE_SPLIT_N2" c'GTS_GNODE_SPLIT_N2
  :: Ptr C'GtsGNodeSplit -> C'gpointer

{-# LINE 16 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}

foreign import ccall "gts_gnode_split_class" c'gts_gnode_split_class
  :: IO (Ptr C'GtsGNodeSplitClass)
foreign import ccall "&gts_gnode_split_class" p'gts_gnode_split_class
  :: FunPtr (IO (Ptr C'GtsGNodeSplitClass))

{-# LINE 18 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_gnode_split_new" c'gts_gnode_split_new
  :: Ptr C'GtsGNodeSplitClass -> Ptr C'GtsGNode -> Ptr C'GtsObject -> Ptr C'GtsObject -> IO (Ptr C'GtsGNodeSplit)
foreign import ccall "&gts_gnode_split_new" p'gts_gnode_split_new
  :: FunPtr (Ptr C'GtsGNodeSplitClass -> Ptr C'GtsGNode -> Ptr C'GtsObject -> Ptr C'GtsObject -> IO (Ptr C'GtsGNodeSplit))

{-# LINE 19 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_gnode_split_collapse" c'gts_gnode_split_collapse
  :: Ptr C'GtsGNodeSplit -> Ptr C'GtsGraph -> Ptr C'GtsWGEdgeClass -> IO ()
foreign import ccall "&gts_gnode_split_collapse" p'gts_gnode_split_collapse
  :: FunPtr (Ptr C'GtsGNodeSplit -> Ptr C'GtsGraph -> Ptr C'GtsWGEdgeClass -> IO ())

{-# LINE 20 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_gnode_split_expand" c'gts_gnode_split_expand
  :: Ptr C'GtsGNodeSplit -> Ptr C'GtsGraph -> IO ()
foreign import ccall "&gts_gnode_split_expand" p'gts_gnode_split_expand
  :: FunPtr (Ptr C'GtsGNodeSplit -> Ptr C'GtsGraph -> IO ())

{-# LINE 21 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}

foreign import ccall "inline_GTS_PGRAPH_CLASS" c'GTS_PGRAPH_CLASS
  :: Ptr a -> Ptr C'GtsPGraphClass

{-# LINE 23 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "inline_GTS_PGRAPH" c'GTS_PGRAPH
  :: Ptr a -> Ptr C'GtsPGraph

{-# LINE 24 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "inline_GTS_IS_PGRAPH" c'GTS_IS_PGRAPH
  :: Ptr a -> Ptr C'gboolean

{-# LINE 25 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}

foreign import ccall "gts_pgraph_class" c'gts_pgraph_class
  :: IO (Ptr C'GtsPGraphClass)
foreign import ccall "&gts_pgraph_class" p'gts_pgraph_class
  :: FunPtr (IO (Ptr C'GtsPGraphClass))

{-# LINE 27 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_new" c'gts_pgraph_new
  :: Ptr C'GtsPGraphClass -> Ptr C'GtsGraph -> Ptr C'GtsGNodeSplitClass -> Ptr C'GtsWGNodeClass -> Ptr C'GtsWGEdgeClass -> C'guint -> IO (Ptr C'GtsPGraph)
foreign import ccall "&gts_pgraph_new" p'gts_pgraph_new
  :: FunPtr (Ptr C'GtsPGraphClass -> Ptr C'GtsGraph -> Ptr C'GtsGNodeSplitClass -> Ptr C'GtsWGNodeClass -> Ptr C'GtsWGEdgeClass -> C'guint -> IO (Ptr C'GtsPGraph))

{-# LINE 28 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_add_node" c'gts_pgraph_add_node
  :: Ptr C'GtsPGraph -> IO (Ptr C'GtsGNodeSplit)
foreign import ccall "&gts_pgraph_add_node" p'gts_pgraph_add_node
  :: FunPtr (Ptr C'GtsPGraph -> IO (Ptr C'GtsGNodeSplit))

{-# LINE 29 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_remove_node" c'gts_pgraph_remove_node
  :: Ptr C'GtsPGraph -> IO (Ptr C'GtsGNodeSplit)
foreign import ccall "&gts_pgraph_remove_node" p'gts_pgraph_remove_node
  :: FunPtr (Ptr C'GtsPGraph -> IO (Ptr C'GtsGNodeSplit))

{-# LINE 30 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_down" c'gts_pgraph_down
  :: Ptr C'GtsPGraph -> C'GtsFunc -> C'gpointer -> IO C'gboolean
foreign import ccall "&gts_pgraph_down" p'gts_pgraph_down
  :: FunPtr (Ptr C'GtsPGraph -> C'GtsFunc -> C'gpointer -> IO C'gboolean)

{-# LINE 31 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_set_node_number" c'gts_pgraph_set_node_number
  :: Ptr C'GtsPGraph -> C'guint -> IO ()
foreign import ccall "&gts_pgraph_set_node_number" p'gts_pgraph_set_node_number
  :: FunPtr (Ptr C'GtsPGraph -> C'guint -> IO ())

{-# LINE 32 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_get_node_number" c'gts_pgraph_get_node_number
  :: Ptr C'GtsPGraph -> IO C'guint
foreign import ccall "&gts_pgraph_get_node_number" p'gts_pgraph_get_node_number
  :: FunPtr (Ptr C'GtsPGraph -> IO C'guint)

{-# LINE 33 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_max_node_number" c'gts_pgraph_max_node_number
  :: Ptr C'GtsPGraph -> IO C'guint
foreign import ccall "&gts_pgraph_max_node_number" p'gts_pgraph_max_node_number
  :: FunPtr (Ptr C'GtsPGraph -> IO C'guint)

{-# LINE 34 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}
foreign import ccall "gts_pgraph_min_node_number" c'gts_pgraph_min_node_number
  :: Ptr C'GtsPGraph -> IO C'guint
foreign import ccall "&gts_pgraph_min_node_number" p'gts_pgraph_min_node_number
  :: FunPtr (Ptr C'GtsPGraph -> IO C'guint)

{-# LINE 35 "src/Bindings/Gts/GraphAndOperationsOnGraphs/ProgressiveGraph.hsc" #-}