packages feed

gi-gtksource-0.3.18.14: GI/GtkSource/Objects/LanguageManager.hs


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.GtkSource.Objects.LanguageManager
    ( 

-- * Exported types
    LanguageManager(..)                     ,
    LanguageManagerK                        ,
    toLanguageManager                       ,
    noLanguageManager                       ,


 -- * Methods
-- ** languageManagerGetDefault
    languageManagerGetDefault               ,


-- ** languageManagerGetLanguage
    LanguageManagerGetLanguageMethodInfo    ,
    languageManagerGetLanguage              ,


-- ** languageManagerGetLanguageIds
    LanguageManagerGetLanguageIdsMethodInfo ,
    languageManagerGetLanguageIds           ,


-- ** languageManagerGetSearchPath
    LanguageManagerGetSearchPathMethodInfo  ,
    languageManagerGetSearchPath            ,


-- ** languageManagerGuessLanguage
    LanguageManagerGuessLanguageMethodInfo  ,
    languageManagerGuessLanguage            ,


-- ** languageManagerNew
    languageManagerNew                      ,


-- ** languageManagerSetSearchPath
    LanguageManagerSetSearchPathMethodInfo  ,
    languageManagerSetSearchPath            ,




 -- * Properties
-- ** LanguageIds
    LanguageManagerLanguageIdsPropertyInfo  ,
    getLanguageManagerLanguageIds           ,
    languageManagerLanguageIds              ,


-- ** SearchPath
    LanguageManagerSearchPathPropertyInfo   ,
    clearLanguageManagerSearchPath          ,
    constructLanguageManagerSearchPath      ,
    getLanguageManagerSearchPath            ,
    languageManagerSearchPath               ,
    setLanguageManagerSearchPath            ,




    ) where

import Data.GI.Base.ShortPrelude

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.GtkSource.Types
import GI.GtkSource.Callbacks
import qualified GI.GObject as GObject

newtype LanguageManager = LanguageManager (ForeignPtr LanguageManager)
foreign import ccall "gtk_source_language_manager_get_type"
    c_gtk_source_language_manager_get_type :: IO GType

type instance ParentTypes LanguageManager = LanguageManagerParentTypes
type LanguageManagerParentTypes = '[GObject.Object]

instance GObject LanguageManager where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_source_language_manager_get_type
    

class GObject o => LanguageManagerK o
instance (GObject o, IsDescendantOf LanguageManager o) => LanguageManagerK o

toLanguageManager :: LanguageManagerK o => o -> IO LanguageManager
toLanguageManager = unsafeCastTo LanguageManager

noLanguageManager :: Maybe LanguageManager
noLanguageManager = Nothing

type family ResolveLanguageManagerMethod (t :: Symbol) (o :: *) :: * where
    ResolveLanguageManagerMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveLanguageManagerMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveLanguageManagerMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveLanguageManagerMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveLanguageManagerMethod "guessLanguage" o = LanguageManagerGuessLanguageMethodInfo
    ResolveLanguageManagerMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveLanguageManagerMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveLanguageManagerMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveLanguageManagerMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveLanguageManagerMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveLanguageManagerMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveLanguageManagerMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveLanguageManagerMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveLanguageManagerMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveLanguageManagerMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveLanguageManagerMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveLanguageManagerMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveLanguageManagerMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveLanguageManagerMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveLanguageManagerMethod "getLanguage" o = LanguageManagerGetLanguageMethodInfo
    ResolveLanguageManagerMethod "getLanguageIds" o = LanguageManagerGetLanguageIdsMethodInfo
    ResolveLanguageManagerMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveLanguageManagerMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveLanguageManagerMethod "getSearchPath" o = LanguageManagerGetSearchPathMethodInfo
    ResolveLanguageManagerMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveLanguageManagerMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveLanguageManagerMethod "setSearchPath" o = LanguageManagerSetSearchPathMethodInfo
    ResolveLanguageManagerMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveLanguageManagerMethod t LanguageManager, MethodInfo info LanguageManager p) => IsLabelProxy t (LanguageManager -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveLanguageManagerMethod t LanguageManager, MethodInfo info LanguageManager p) => IsLabel t (LanguageManager -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- VVV Prop "language-ids"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable]
   -- Nullable: (Just True,Nothing)

getLanguageManagerLanguageIds :: (MonadIO m, LanguageManagerK o) => o -> m (Maybe [T.Text])
getLanguageManagerLanguageIds obj = liftIO $ getObjectPropertyStringArray obj "language-ids"

data LanguageManagerLanguageIdsPropertyInfo
instance AttrInfo LanguageManagerLanguageIdsPropertyInfo where
    type AttrAllowedOps LanguageManagerLanguageIdsPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint LanguageManagerLanguageIdsPropertyInfo = (~) ()
    type AttrBaseTypeConstraint LanguageManagerLanguageIdsPropertyInfo = LanguageManagerK
    type AttrGetType LanguageManagerLanguageIdsPropertyInfo = (Maybe [T.Text])
    type AttrLabel LanguageManagerLanguageIdsPropertyInfo = "language-ids"
    attrGet _ = getLanguageManagerLanguageIds
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "search-path"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just True)

getLanguageManagerSearchPath :: (MonadIO m, LanguageManagerK o) => o -> m [T.Text]
getLanguageManagerSearchPath obj = liftIO $ checkUnexpectedNothing "getLanguageManagerSearchPath" $ getObjectPropertyStringArray obj "search-path"

setLanguageManagerSearchPath :: (MonadIO m, LanguageManagerK o) => o -> [T.Text] -> m ()
setLanguageManagerSearchPath obj val = liftIO $ setObjectPropertyStringArray obj "search-path" (Just val)

constructLanguageManagerSearchPath :: [T.Text] -> IO ([Char], GValue)
constructLanguageManagerSearchPath val = constructObjectPropertyStringArray "search-path" (Just val)

clearLanguageManagerSearchPath :: (MonadIO m, LanguageManagerK o) => o -> m ()
clearLanguageManagerSearchPath obj = liftIO $ setObjectPropertyStringArray obj "search-path" (Nothing :: Maybe [T.Text])

data LanguageManagerSearchPathPropertyInfo
instance AttrInfo LanguageManagerSearchPathPropertyInfo where
    type AttrAllowedOps LanguageManagerSearchPathPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint LanguageManagerSearchPathPropertyInfo = (~) [T.Text]
    type AttrBaseTypeConstraint LanguageManagerSearchPathPropertyInfo = LanguageManagerK
    type AttrGetType LanguageManagerSearchPathPropertyInfo = [T.Text]
    type AttrLabel LanguageManagerSearchPathPropertyInfo = "search-path"
    attrGet _ = getLanguageManagerSearchPath
    attrSet _ = setLanguageManagerSearchPath
    attrConstruct _ = constructLanguageManagerSearchPath
    attrClear _ = clearLanguageManagerSearchPath

type instance AttributeList LanguageManager = LanguageManagerAttributeList
type LanguageManagerAttributeList = ('[ '("languageIds", LanguageManagerLanguageIdsPropertyInfo), '("searchPath", LanguageManagerSearchPathPropertyInfo)] :: [(Symbol, *)])

languageManagerLanguageIds :: AttrLabelProxy "languageIds"
languageManagerLanguageIds = AttrLabelProxy

languageManagerSearchPath :: AttrLabelProxy "searchPath"
languageManagerSearchPath = AttrLabelProxy

type instance SignalList LanguageManager = LanguageManagerSignalList
type LanguageManagerSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method LanguageManager::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface "GtkSource" "LanguageManager")
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_language_manager_new" gtk_source_language_manager_new :: 
    IO (Ptr LanguageManager)


languageManagerNew ::
    (MonadIO m) =>
    m LanguageManager                       -- result
languageManagerNew  = liftIO $ do
    result <- gtk_source_language_manager_new
    checkUnexpectedReturnNULL "gtk_source_language_manager_new" result
    result' <- (wrapObject LanguageManager) result
    return result'

-- method LanguageManager::get_language
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "LanguageManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "GtkSource" "Language")
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_language_manager_get_language" gtk_source_language_manager_get_language :: 
    Ptr LanguageManager ->                  -- _obj : TInterface "GtkSource" "LanguageManager"
    CString ->                              -- id : TBasicType TUTF8
    IO (Ptr Language)


languageManagerGetLanguage ::
    (MonadIO m, LanguageManagerK a) =>
    a                                       -- _obj
    -> T.Text                               -- id
    -> m (Maybe Language)                   -- result
languageManagerGetLanguage _obj id = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    id' <- textToCString id
    result <- gtk_source_language_manager_get_language _obj' id'
    maybeResult <- convertIfNonNull result $ \result' -> do
        result'' <- (newObject Language) result'
        return result''
    touchManagedPtr _obj
    freeMem id'
    return maybeResult

data LanguageManagerGetLanguageMethodInfo
instance (signature ~ (T.Text -> m (Maybe Language)), MonadIO m, LanguageManagerK a) => MethodInfo LanguageManagerGetLanguageMethodInfo a signature where
    overloadedMethod _ = languageManagerGetLanguage

-- method LanguageManager::get_language_ids
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "LanguageManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_language_manager_get_language_ids" gtk_source_language_manager_get_language_ids :: 
    Ptr LanguageManager ->                  -- _obj : TInterface "GtkSource" "LanguageManager"
    IO (Ptr CString)


languageManagerGetLanguageIds ::
    (MonadIO m, LanguageManagerK a) =>
    a                                       -- _obj
    -> m (Maybe [T.Text])                   -- result
languageManagerGetLanguageIds _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_source_language_manager_get_language_ids _obj'
    maybeResult <- convertIfNonNull result $ \result' -> do
        result'' <- unpackZeroTerminatedUTF8CArray result'
        return result''
    touchManagedPtr _obj
    return maybeResult

data LanguageManagerGetLanguageIdsMethodInfo
instance (signature ~ (m (Maybe [T.Text])), MonadIO m, LanguageManagerK a) => MethodInfo LanguageManagerGetLanguageIdsMethodInfo a signature where
    overloadedMethod _ = languageManagerGetLanguageIds

-- method LanguageManager::get_search_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "LanguageManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TCArray True (-1) (-1) (TBasicType TUTF8))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_language_manager_get_search_path" gtk_source_language_manager_get_search_path :: 
    Ptr LanguageManager ->                  -- _obj : TInterface "GtkSource" "LanguageManager"
    IO (Ptr CString)


languageManagerGetSearchPath ::
    (MonadIO m, LanguageManagerK a) =>
    a                                       -- _obj
    -> m [T.Text]                           -- result
languageManagerGetSearchPath _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_source_language_manager_get_search_path _obj'
    checkUnexpectedReturnNULL "gtk_source_language_manager_get_search_path" result
    result' <- unpackZeroTerminatedUTF8CArray result
    touchManagedPtr _obj
    return result'

data LanguageManagerGetSearchPathMethodInfo
instance (signature ~ (m [T.Text]), MonadIO m, LanguageManagerK a) => MethodInfo LanguageManagerGetSearchPathMethodInfo a signature where
    overloadedMethod _ = languageManagerGetSearchPath

-- method LanguageManager::guess_language
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "LanguageManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "GtkSource" "Language")
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_language_manager_guess_language" gtk_source_language_manager_guess_language :: 
    Ptr LanguageManager ->                  -- _obj : TInterface "GtkSource" "LanguageManager"
    CString ->                              -- filename : TBasicType TUTF8
    CString ->                              -- content_type : TBasicType TUTF8
    IO (Ptr Language)


languageManagerGuessLanguage ::
    (MonadIO m, LanguageManagerK a) =>
    a                                       -- _obj
    -> Maybe (T.Text)                       -- filename
    -> Maybe (T.Text)                       -- contentType
    -> m (Maybe Language)                   -- result
languageManagerGuessLanguage _obj filename contentType = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeFilename <- case filename of
        Nothing -> return nullPtr
        Just jFilename -> do
            jFilename' <- textToCString jFilename
            return jFilename'
    maybeContentType <- case contentType of
        Nothing -> return nullPtr
        Just jContentType -> do
            jContentType' <- textToCString jContentType
            return jContentType'
    result <- gtk_source_language_manager_guess_language _obj' maybeFilename maybeContentType
    maybeResult <- convertIfNonNull result $ \result' -> do
        result'' <- (newObject Language) result'
        return result''
    touchManagedPtr _obj
    freeMem maybeFilename
    freeMem maybeContentType
    return maybeResult

data LanguageManagerGuessLanguageMethodInfo
instance (signature ~ (Maybe (T.Text) -> Maybe (T.Text) -> m (Maybe Language)), MonadIO m, LanguageManagerK a) => MethodInfo LanguageManagerGuessLanguageMethodInfo a signature where
    overloadedMethod _ = languageManagerGuessLanguage

-- method LanguageManager::set_search_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "GtkSource" "LanguageManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dirs", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_language_manager_set_search_path" gtk_source_language_manager_set_search_path :: 
    Ptr LanguageManager ->                  -- _obj : TInterface "GtkSource" "LanguageManager"
    Ptr CString ->                          -- dirs : TCArray True (-1) (-1) (TBasicType TUTF8)
    IO ()


languageManagerSetSearchPath ::
    (MonadIO m, LanguageManagerK a) =>
    a                                       -- _obj
    -> Maybe ([T.Text])                     -- dirs
    -> m ()                                 -- result
languageManagerSetSearchPath _obj dirs = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeDirs <- case dirs of
        Nothing -> return nullPtr
        Just jDirs -> do
            jDirs' <- packZeroTerminatedUTF8CArray jDirs
            return jDirs'
    gtk_source_language_manager_set_search_path _obj' maybeDirs
    touchManagedPtr _obj
    mapZeroTerminatedCArray freeMem maybeDirs
    freeMem maybeDirs
    return ()

data LanguageManagerSetSearchPathMethodInfo
instance (signature ~ (Maybe ([T.Text]) -> m ()), MonadIO m, LanguageManagerK a) => MethodInfo LanguageManagerSetSearchPathMethodInfo a signature where
    overloadedMethod _ = languageManagerSetSearchPath

-- method LanguageManager::get_default
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface "GtkSource" "LanguageManager")
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_language_manager_get_default" gtk_source_language_manager_get_default :: 
    IO (Ptr LanguageManager)


languageManagerGetDefault ::
    (MonadIO m) =>
    m LanguageManager                       -- result
languageManagerGetDefault  = liftIO $ do
    result <- gtk_source_language_manager_get_default
    checkUnexpectedReturnNULL "gtk_source_language_manager_get_default" result
    result' <- (newObject LanguageManager) result
    return result'