module Graphics.UI.Gtk.SourceView.SourceLanguageManager (
SourceLanguageManager,
SourceLanguageManagerClass,
castToSourceLanguageManager,
sourceLanguageManagerNew,
sourceLanguageManagerGetDefault,
sourceLanguageManagerSetSearchPath,
sourceLanguageManagerGetSearchPath,
sourceLanguageManagerGetLanguageIds,
sourceLanguageManagerGetLanguage,
sourceLanguageManagerGuessLanguage
) where
import Control.Monad (liftM)
import Data.Maybe (fromMaybe)
import System.Glib.FFI
import System.Glib.GObject (constructNewGObject, makeNewGObject)
import System.Glib.UTFString
import System.Glib.Attributes
import System.Glib.Properties
import Graphics.UI.Gtk.SourceView.Types
data SourceSmartHomeEndType = SourceSmartHomeEndDisabled
| SourceSmartHomeEndBefore
| SourceSmartHomeEndAfter
| SourceSmartHomeEndAlways
deriving (Enum,Eq,Bounded,Show,Read)
sourceLanguageManagerNew :: IO SourceLanguageManager
sourceLanguageManagerNew = constructNewGObject mkSourceLanguageManager $ liftM castPtr
gtk_source_language_manager_new
sourceLanguageManagerGetDefault :: IO SourceLanguageManager
sourceLanguageManagerGetDefault = makeNewGObject mkSourceLanguageManager $ liftM castPtr
gtk_source_language_manager_new
sourceLanguageManagerSetSearchPath :: SourceLanguageManager -> Maybe [String] -> IO ()
sourceLanguageManagerSetSearchPath slm dirs =
maybeWith withUTFStringArray0 dirs $ \dirsPtr -> do
(\(SourceLanguageManager arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_set_search_path argPtr1 arg2) slm dirsPtr
sourceLanguageManagerGetSearchPath :: SourceLanguageManager -> IO [String]
sourceLanguageManagerGetSearchPath slm = do
dirsPtr <- (\(SourceLanguageManager arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_get_search_path argPtr1) slm
liftM (fromMaybe []) $ maybePeek peekUTFStringArray0 dirsPtr
sourceLanguageManagerGetLanguageIds :: SourceLanguageManager -> IO [String]
sourceLanguageManagerGetLanguageIds slm = do
idsPtr <- (\(SourceLanguageManager arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_source_language_manager_get_language_ids argPtr1) slm
liftM (fromMaybe []) $ maybePeek peekUTFStringArray0 idsPtr
sourceLanguageManagerGetLanguage :: SourceLanguageManager -> 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) slm)
if slPtr /= nullPtr
then liftM Just $ makeNewGObject mkSourceLanguage $ return slPtr
else return Nothing
sourceLanguageManagerGuessLanguage :: SourceLanguageManager -> Maybe String -> Maybe String -> IO (Maybe SourceLanguage)
sourceLanguageManagerGuessLanguage slm filename contentType =
maybeWith withUTFString 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) slm cFilename cContentType
if slPtr /= nullPtr
then liftM Just $ makeNewGObject mkSourceLanguage $ return slPtr
else return Nothing
sourceLanguageManagerLanguageIds :: ReadAttr SourceLanguageManager [String]
sourceLanguageManagerLanguageIds =
readAttrFromBoxedOpaqueProperty (liftM (fromMaybe []) . maybePeek peekUTFStringArray0 . castPtr)
"language-ids" g_strv_get_type
sourceLanguageManagerSearchPath :: ReadWriteAttr SourceLanguageManager [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_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 :: CUInt