module Graphics.UI.Gtk.SourceView.SourceLanguageManager (
SourceLanguageManager,
SourceLanguageManagerClass,
castToSourceLanguageManager,
sourceLanguageManagerNew,
sourceLanguageManagerGetDefault,
sourceLanguageManagerSetSearchPath,
sourceLanguageManagerGetSearchPath,
sourceLanguageManagerGetLanguageIds,
sourceLanguageManagerGetLanguage,
sourceLanguageManagerGuessLanguage,
sourceLanguageManagerLanguageIds,
sourceLanguageManagerSearchPath,
) where
import Control.Monad (liftM)
import Data.Maybe (fromMaybe)
import System.Glib.Attributes
import System.Glib.FFI
import System.Glib.GObject (wrapNewGObject, makeNewGObject)
import System.Glib.Properties
import System.Glib.UTFString
import Graphics.UI.Gtk.SourceView.Types
sourceLanguageManagerNew :: IO SourceLanguageManager
sourceLanguageManagerNew = wrapNewGObject mkSourceLanguageManager $ liftM castPtr
gtk_source_language_manager_new
sourceLanguageManagerGetDefault :: IO SourceLanguageManager
sourceLanguageManagerGetDefault = wrapNewGObject mkSourceLanguageManager $ liftM castPtr
gtk_source_language_manager_get_default
sourceLanguageManagerSetSearchPath :: (SourceLanguageManagerClass slm, GlibFilePath fp) => slm -> Maybe [fp] -> IO ()
sourceLanguageManagerSetSearchPath slm dirs =
maybeWith withUTFFilePathArray0 dirs $ \dirsPtr -> do
(\(SourceLanguageManager arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_set_search_path argPtr1 arg2) (toSourceLanguageManager slm) dirsPtr
sourceLanguageManagerGetSearchPath :: (SourceLanguageManagerClass slm, GlibFilePath fp) => slm -> IO [fp]
sourceLanguageManagerGetSearchPath slm = do
dirsPtr <- (\(SourceLanguageManager arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_get_search_path argPtr1) (toSourceLanguageManager slm)
liftM (fromMaybe []) $ maybePeek peekUTFFilePathArray0 dirsPtr
sourceLanguageManagerGetLanguageIds :: (SourceLanguageManagerClass slm, GlibString string) => slm -> IO [string]
sourceLanguageManagerGetLanguageIds slm = do
idsPtr <- (\(SourceLanguageManager arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_get_language_ids argPtr1) (toSourceLanguageManager slm)
liftM (fromMaybe []) $ maybePeek peekUTFStringArray0 idsPtr
sourceLanguageManagerGetLanguage :: (SourceLanguageManagerClass slm, GlibString string) => slm
-> string
-> IO (Maybe SourceLanguage)
sourceLanguageManagerGetLanguage slm id = do
slPtr <- liftM castPtr $
withUTFString id ((\(SourceLanguageManager arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_get_language argPtr1 arg2) (toSourceLanguageManager slm))
if slPtr /= nullPtr
then liftM Just $ makeNewGObject mkSourceLanguage $ return slPtr
else return Nothing
sourceLanguageManagerGuessLanguage :: (SourceLanguageManagerClass slm, GlibFilePath fp, GlibString string) => slm
-> Maybe fp
-> Maybe string
-> IO (Maybe SourceLanguage)
sourceLanguageManagerGuessLanguage slm filename contentType =
maybeWith withUTFFilePath filename $ \cFilename ->
maybeWith withUTFString contentType $ \cContentType -> do
slPtr <- liftM castPtr $
(\(SourceLanguageManager arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_guess_language argPtr1 arg2 arg3) (toSourceLanguageManager slm) cFilename cContentType
if slPtr /= nullPtr
then liftM Just $ makeNewGObject mkSourceLanguage $ return slPtr
else return Nothing
sourceLanguageManagerLanguageIds :: (SourceLanguageManagerClass slm, GlibString string) => ReadAttr slm [string]
sourceLanguageManagerLanguageIds =
readAttrFromBoxedOpaqueProperty (liftM (fromMaybe []) . maybePeek peekUTFStringArray0 . castPtr)
"language-ids" g_strv_get_type
sourceLanguageManagerSearchPath :: (SourceLanguageManagerClass slm, GlibString string) => ReadWriteAttr slm [string] (Maybe [string])
sourceLanguageManagerSearchPath =
newAttr (objectGetPropertyBoxedOpaque (peekUTFStringArray0 . castPtr) gtype "search-path")
(objectSetPropertyBoxedOpaque (\dirs f -> maybeWith withUTFStringArray0 dirs (f . castPtr)) gtype "search-path")
where gtype = g_strv_get_type
foreign import ccall unsafe "gtk_source_language_manager_new"
gtk_source_language_manager_new :: (IO (Ptr SourceLanguageManager))
foreign import ccall unsafe "gtk_source_language_manager_get_default"
gtk_source_language_manager_get_default :: (IO (Ptr SourceLanguageManager))
foreign import ccall unsafe "gtk_source_language_manager_set_search_path"
gtk_source_language_manager_set_search_path :: ((Ptr SourceLanguageManager) -> ((Ptr (Ptr CChar)) -> (IO ())))
foreign import ccall unsafe "gtk_source_language_manager_get_search_path"
gtk_source_language_manager_get_search_path :: ((Ptr SourceLanguageManager) -> (IO (Ptr (Ptr CChar))))
foreign import ccall unsafe "gtk_source_language_manager_get_language_ids"
gtk_source_language_manager_get_language_ids :: ((Ptr SourceLanguageManager) -> (IO (Ptr (Ptr CChar))))
foreign import ccall unsafe "gtk_source_language_manager_get_language"
gtk_source_language_manager_get_language :: ((Ptr SourceLanguageManager) -> ((Ptr CChar) -> (IO (Ptr SourceLanguage))))
foreign import ccall unsafe "gtk_source_language_manager_guess_language"
gtk_source_language_manager_guess_language :: ((Ptr SourceLanguageManager) -> ((Ptr CChar) -> ((Ptr CChar) -> (IO (Ptr SourceLanguage)))))
foreign import ccall safe "g_strv_get_type"
g_strv_get_type :: CULong