{-# LINE 2 "./Graphics/UI/Gtk/ModelView/TreeRowReference.chs" #-}
module Graphics.UI.Gtk.ModelView.TreeRowReference (
TreeRowReference,
treeRowReferenceNew,
treeRowReferenceGetPath,
treeRowReferenceValid,
) where
import Control.Monad (liftM)
import System.Glib.FFI
import Graphics.UI.Gtk.Types
{-# LINE 51 "./Graphics/UI/Gtk/ModelView/TreeRowReference.chs" #-}
import Graphics.UI.Gtk.ModelView.Types
{-# LINE 52 "./Graphics/UI/Gtk/ModelView/TreeRowReference.chs" #-}
{-# LINE 54 "./Graphics/UI/Gtk/ModelView/TreeRowReference.chs" #-}
newtype TreeRowReference = TreeRowReference (ForeignPtr (TreeRowReference))
{-# LINE 60 "./Graphics/UI/Gtk/ModelView/TreeRowReference.chs" #-}
treeRowReferenceNew :: TreeModelClass self => self
-> TreePath
-> IO (Maybe TreeRowReference)
treeRowReferenceNew self path = withTreePath path $ \path -> do
rowRefPtr <-
(\(TreeModel arg1) (NativeTreePath arg2) -> withForeignPtr arg1 $ \argPtr1 ->gtk_tree_row_reference_new argPtr1 arg2) (toTreeModel self) path
if rowRefPtr==nullPtr then return Nothing else
liftM (Just . TreeRowReference) $
newForeignPtr rowRefPtr tree_row_reference_free
treeRowReferenceGetPath :: TreeRowReference -> IO TreePath
treeRowReferenceGetPath ref =
(\(TreeRowReference arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_tree_row_reference_get_path argPtr1) ref
>>= fromTreePath
treeRowReferenceValid :: TreeRowReference -> IO Bool
treeRowReferenceValid self =
liftM toBool $
(\(TreeRowReference arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_tree_row_reference_valid argPtr1)
{-# LINE 95 "./Graphics/UI/Gtk/ModelView/TreeRowReference.chs" #-}
self
foreign import ccall unsafe ">k_tree_row_reference_free"
tree_row_reference_free :: FinalizerPtr TreeRowReference
foreign import ccall safe "gtk_tree_row_reference_new"
gtk_tree_row_reference_new :: ((Ptr TreeModel) -> ((Ptr NativeTreePath) -> (IO (Ptr TreeRowReference))))
foreign import ccall unsafe "gtk_tree_row_reference_get_path"
gtk_tree_row_reference_get_path :: ((Ptr TreeRowReference) -> (IO (Ptr NativeTreePath)))
foreign import ccall unsafe "gtk_tree_row_reference_valid"
gtk_tree_row_reference_valid :: ((Ptr TreeRowReference) -> (IO CInt))