module Graphics.UI.Gtk.SourceView.SourceMark (
SourceMark,
castToSourceMark,
sourceMarkGetCategory,
sourceMarkNext,
sourceMarkPrev
) where
import Control.Monad (liftM)
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.GObject (makeNewGObject)
import Graphics.UI.Gtk.SourceView.Types
sourceMarkGetCategory :: SourceMark -> IO String
sourceMarkGetCategory mark = do
strPtr <- (\(SourceMark arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_mark_get_category argPtr1) mark
markType <- peekUTFString strPtr
g_free (castPtr strPtr)
return markType
sourceMarkNext :: SourceMark -> String -> IO SourceMark
sourceMarkNext mark category = makeNewGObject mkSourceMark $
withUTFString category $ (\(SourceMark arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_mark_next argPtr1 arg2) mark
sourceMarkPrev :: SourceMark -> String -> IO SourceMark
sourceMarkPrev mark category = makeNewGObject mkSourceMark $
withUTFString category $ (\(SourceMark arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_mark_prev argPtr1 arg2) mark
foreign import ccall unsafe "gtk_source_mark_get_category"
gtk_source_mark_get_category :: ((Ptr SourceMark) -> (IO (Ptr CChar)))
foreign import ccall unsafe "g_free"
g_free :: ((Ptr ()) -> (IO ()))
foreign import ccall unsafe "gtk_source_mark_next"
gtk_source_mark_next :: ((Ptr SourceMark) -> ((Ptr CChar) -> (IO (Ptr SourceMark))))
foreign import ccall unsafe "gtk_source_mark_prev"
gtk_source_mark_prev :: ((Ptr SourceMark) -> ((Ptr CChar) -> (IO (Ptr SourceMark))))