{- |
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.StyleSchemeManager
    ( 

-- * Exported types
    StyleSchemeManager(..)                  ,
    IsStyleSchemeManager                    ,
    toStyleSchemeManager                    ,
    noStyleSchemeManager                    ,


 -- * Methods
-- ** appendSearchPath #method:appendSearchPath#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerAppendSearchPathMethodInfo,
#endif
    styleSchemeManagerAppendSearchPath      ,


-- ** forceRescan #method:forceRescan#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerForceRescanMethodInfo ,
#endif
    styleSchemeManagerForceRescan           ,


-- ** getDefault #method:getDefault#
    styleSchemeManagerGetDefault            ,


-- ** getScheme #method:getScheme#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerGetSchemeMethodInfo   ,
#endif
    styleSchemeManagerGetScheme             ,


-- ** getSchemeIds #method:getSchemeIds#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerGetSchemeIdsMethodInfo,
#endif
    styleSchemeManagerGetSchemeIds          ,


-- ** getSearchPath #method:getSearchPath#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerGetSearchPathMethodInfo,
#endif
    styleSchemeManagerGetSearchPath         ,


-- ** new #method:new#
    styleSchemeManagerNew                   ,


-- ** prependSearchPath #method:prependSearchPath#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerPrependSearchPathMethodInfo,
#endif
    styleSchemeManagerPrependSearchPath     ,


-- ** setSearchPath #method:setSearchPath#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerSetSearchPathMethodInfo,
#endif
    styleSchemeManagerSetSearchPath         ,




 -- * Properties
-- ** schemeIds #attr:schemeIds#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerSchemeIdsPropertyInfo ,
#endif
    getStyleSchemeManagerSchemeIds          ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleSchemeManagerSchemeIds             ,
#endif


-- ** searchPath #attr:searchPath#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    StyleSchemeManagerSearchPathPropertyInfo,
#endif
    clearStyleSchemeManagerSearchPath       ,
    constructStyleSchemeManagerSearchPath   ,
    getStyleSchemeManagerSearchPath         ,
    setStyleSchemeManagerSearchPath         ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    styleSchemeManagerSearchPath            ,
#endif




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.GtkSource.Objects.StyleScheme as GtkSource.StyleScheme

newtype StyleSchemeManager = StyleSchemeManager (ManagedPtr StyleSchemeManager)
foreign import ccall "gtk_source_style_scheme_manager_get_type"
    c_gtk_source_style_scheme_manager_get_type :: IO GType

instance GObject StyleSchemeManager where
    gobjectType _ = c_gtk_source_style_scheme_manager_get_type
    

class GObject o => IsStyleSchemeManager o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError StyleSchemeManager a) =>
    IsStyleSchemeManager a
#endif
instance IsStyleSchemeManager StyleSchemeManager
instance GObject.Object.IsObject StyleSchemeManager

toStyleSchemeManager :: (MonadIO m, IsStyleSchemeManager o) => o -> m StyleSchemeManager
toStyleSchemeManager = liftIO . unsafeCastTo StyleSchemeManager

noStyleSchemeManager :: Maybe StyleSchemeManager
noStyleSchemeManager = Nothing

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveStyleSchemeManagerMethod (t :: Symbol) (o :: *) :: * where
    ResolveStyleSchemeManagerMethod "appendSearchPath" o = StyleSchemeManagerAppendSearchPathMethodInfo
    ResolveStyleSchemeManagerMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveStyleSchemeManagerMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveStyleSchemeManagerMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveStyleSchemeManagerMethod "forceRescan" o = StyleSchemeManagerForceRescanMethodInfo
    ResolveStyleSchemeManagerMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveStyleSchemeManagerMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveStyleSchemeManagerMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveStyleSchemeManagerMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveStyleSchemeManagerMethod "prependSearchPath" o = StyleSchemeManagerPrependSearchPathMethodInfo
    ResolveStyleSchemeManagerMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveStyleSchemeManagerMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveStyleSchemeManagerMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveStyleSchemeManagerMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveStyleSchemeManagerMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveStyleSchemeManagerMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveStyleSchemeManagerMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveStyleSchemeManagerMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveStyleSchemeManagerMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveStyleSchemeManagerMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveStyleSchemeManagerMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveStyleSchemeManagerMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveStyleSchemeManagerMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveStyleSchemeManagerMethod "getScheme" o = StyleSchemeManagerGetSchemeMethodInfo
    ResolveStyleSchemeManagerMethod "getSchemeIds" o = StyleSchemeManagerGetSchemeIdsMethodInfo
    ResolveStyleSchemeManagerMethod "getSearchPath" o = StyleSchemeManagerGetSearchPathMethodInfo
    ResolveStyleSchemeManagerMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveStyleSchemeManagerMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveStyleSchemeManagerMethod "setSearchPath" o = StyleSchemeManagerSetSearchPathMethodInfo
    ResolveStyleSchemeManagerMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveStyleSchemeManagerMethod t StyleSchemeManager, O.MethodInfo info StyleSchemeManager p) => O.IsLabelProxy t (StyleSchemeManager -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveStyleSchemeManagerMethod t StyleSchemeManager, O.MethodInfo info StyleSchemeManager p) => O.IsLabel t (StyleSchemeManager -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif

#endif

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

getStyleSchemeManagerSchemeIds :: (MonadIO m, IsStyleSchemeManager o) => o -> m (Maybe [T.Text])
getStyleSchemeManagerSchemeIds obj = liftIO $ getObjectPropertyStringArray obj "scheme-ids"

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerSchemeIdsPropertyInfo
instance AttrInfo StyleSchemeManagerSchemeIdsPropertyInfo where
    type AttrAllowedOps StyleSchemeManagerSchemeIdsPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint StyleSchemeManagerSchemeIdsPropertyInfo = (~) ()
    type AttrBaseTypeConstraint StyleSchemeManagerSchemeIdsPropertyInfo = IsStyleSchemeManager
    type AttrGetType StyleSchemeManagerSchemeIdsPropertyInfo = (Maybe [T.Text])
    type AttrLabel StyleSchemeManagerSchemeIdsPropertyInfo = "scheme-ids"
    type AttrOrigin StyleSchemeManagerSchemeIdsPropertyInfo = StyleSchemeManager
    attrGet _ = getStyleSchemeManagerSchemeIds
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

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

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

constructStyleSchemeManagerSearchPath :: (IsStyleSchemeManager o) => [T.Text] -> IO (GValueConstruct o)
constructStyleSchemeManagerSearchPath val = constructObjectPropertyStringArray "search-path" (Just val)

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

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerSearchPathPropertyInfo
instance AttrInfo StyleSchemeManagerSearchPathPropertyInfo where
    type AttrAllowedOps StyleSchemeManagerSearchPathPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint StyleSchemeManagerSearchPathPropertyInfo = (~) [T.Text]
    type AttrBaseTypeConstraint StyleSchemeManagerSearchPathPropertyInfo = IsStyleSchemeManager
    type AttrGetType StyleSchemeManagerSearchPathPropertyInfo = [T.Text]
    type AttrLabel StyleSchemeManagerSearchPathPropertyInfo = "search-path"
    type AttrOrigin StyleSchemeManagerSearchPathPropertyInfo = StyleSchemeManager
    attrGet _ = getStyleSchemeManagerSearchPath
    attrSet _ = setStyleSchemeManagerSearchPath
    attrConstruct _ = constructStyleSchemeManagerSearchPath
    attrClear _ = clearStyleSchemeManagerSearchPath
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList StyleSchemeManager
type instance O.AttributeList StyleSchemeManager = StyleSchemeManagerAttributeList
type StyleSchemeManagerAttributeList = ('[ '("schemeIds", StyleSchemeManagerSchemeIdsPropertyInfo), '("searchPath", StyleSchemeManagerSearchPathPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
styleSchemeManagerSchemeIds :: AttrLabelProxy "schemeIds"
styleSchemeManagerSchemeIds = AttrLabelProxy

styleSchemeManagerSearchPath :: AttrLabelProxy "searchPath"
styleSchemeManagerSearchPath = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type instance O.SignalList StyleSchemeManager = StyleSchemeManagerSignalList
type StyleSchemeManagerSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method StyleSchemeManager::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_style_scheme_manager_new" gtk_source_style_scheme_manager_new :: 
    IO (Ptr StyleSchemeManager)

{- |
Creates a new style manager. If you do not need more than one style
manager then use 'GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerGetDefault' instead.
-}
styleSchemeManagerNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m StyleSchemeManager
    {- ^ __Returns:__ a new 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
styleSchemeManagerNew  = liftIO $ do
    result <- gtk_source_style_scheme_manager_new
    checkUnexpectedReturnNULL "styleSchemeManagerNew" result
    result' <- (wrapObject StyleSchemeManager) result
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif

-- method StyleSchemeManager::append_search_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyleSchemeManager.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a directory or a filename.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_style_scheme_manager_append_search_path" gtk_source_style_scheme_manager_append_search_path :: 
    Ptr StyleSchemeManager ->               -- manager : TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"})
    CString ->                              -- path : TBasicType TUTF8
    IO ()

{- |
Appends /@path@/ to the list of directories where the /@manager@/ looks for
style scheme files.
See 'GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerSetSearchPath' for details.
-}
styleSchemeManagerAppendSearchPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    {- ^ /@manager@/: a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
    -> T.Text
    {- ^ /@path@/: a directory or a filename. -}
    -> m ()
styleSchemeManagerAppendSearchPath manager path = liftIO $ do
    manager' <- unsafeManagedPtrCastPtr manager
    path' <- textToCString path
    gtk_source_style_scheme_manager_append_search_path manager' path'
    touchManagedPtr manager
    freeMem path'
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerAppendSearchPathMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsStyleSchemeManager a) => O.MethodInfo StyleSchemeManagerAppendSearchPathMethodInfo a signature where
    overloadedMethod _ = styleSchemeManagerAppendSearchPath

#endif

-- method StyleSchemeManager::force_rescan
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyleSchemeManager.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_style_scheme_manager_force_rescan" gtk_source_style_scheme_manager_force_rescan :: 
    Ptr StyleSchemeManager ->               -- manager : TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"})
    IO ()

{- |
Mark any currently cached information about the available style scehems
as invalid. All the available style schemes will be reloaded next time
the /@manager@/ is accessed.
-}
styleSchemeManagerForceRescan ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    {- ^ /@manager@/: a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
    -> m ()
styleSchemeManagerForceRescan manager = liftIO $ do
    manager' <- unsafeManagedPtrCastPtr manager
    gtk_source_style_scheme_manager_force_rescan manager'
    touchManagedPtr manager
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerForceRescanMethodInfo
instance (signature ~ (m ()), MonadIO m, IsStyleSchemeManager a) => O.MethodInfo StyleSchemeManagerForceRescanMethodInfo a signature where
    overloadedMethod _ = styleSchemeManagerForceRescan

#endif

-- method StyleSchemeManager::get_scheme
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyleSchemeManager.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scheme_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "style scheme id to find.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "GtkSource", name = "StyleScheme"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_style_scheme_manager_get_scheme" gtk_source_style_scheme_manager_get_scheme :: 
    Ptr StyleSchemeManager ->               -- manager : TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"})
    CString ->                              -- scheme_id : TBasicType TUTF8
    IO (Ptr GtkSource.StyleScheme.StyleScheme)

{- |
Looks up style scheme by id.
-}
styleSchemeManagerGetScheme ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    {- ^ /@manager@/: a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
    -> T.Text
    {- ^ /@schemeId@/: style scheme id to find. -}
    -> m GtkSource.StyleScheme.StyleScheme
    {- ^ __Returns:__ a 'GI.GtkSource.Objects.StyleScheme.StyleScheme' object. Returned value is owned by
/@manager@/ and must not be unref\'ed. -}
styleSchemeManagerGetScheme manager schemeId = liftIO $ do
    manager' <- unsafeManagedPtrCastPtr manager
    schemeId' <- textToCString schemeId
    result <- gtk_source_style_scheme_manager_get_scheme manager' schemeId'
    checkUnexpectedReturnNULL "styleSchemeManagerGetScheme" result
    result' <- (newObject GtkSource.StyleScheme.StyleScheme) result
    touchManagedPtr manager
    freeMem schemeId'
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerGetSchemeMethodInfo
instance (signature ~ (T.Text -> m GtkSource.StyleScheme.StyleScheme), MonadIO m, IsStyleSchemeManager a) => O.MethodInfo StyleSchemeManagerGetSchemeMethodInfo a signature where
    overloadedMethod _ = styleSchemeManagerGetScheme

#endif

-- method StyleSchemeManager::get_scheme_ids
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyleSchemeManager.", sinceVersion = Nothing}, 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_style_scheme_manager_get_scheme_ids" gtk_source_style_scheme_manager_get_scheme_ids :: 
    Ptr StyleSchemeManager ->               -- manager : TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"})
    IO (Ptr CString)

{- |
Returns the ids of the available style schemes.
-}
styleSchemeManagerGetSchemeIds ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    {- ^ /@manager@/: a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
    -> m (Maybe [T.Text])
    {- ^ __Returns:__ 
a 'Nothing'-terminated array of strings containing the ids of the available
style schemes or 'Nothing' if no style scheme is available.
The array is sorted alphabetically according to the scheme name.
The array is owned by the /@manager@/ and must not be modified. -}
styleSchemeManagerGetSchemeIds manager = liftIO $ do
    manager' <- unsafeManagedPtrCastPtr manager
    result <- gtk_source_style_scheme_manager_get_scheme_ids manager'
    maybeResult <- convertIfNonNull result $ \result' -> do
        result'' <- unpackZeroTerminatedUTF8CArray result'
        return result''
    touchManagedPtr manager
    return maybeResult

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerGetSchemeIdsMethodInfo
instance (signature ~ (m (Maybe [T.Text])), MonadIO m, IsStyleSchemeManager a) => O.MethodInfo StyleSchemeManagerGetSchemeIdsMethodInfo a signature where
    overloadedMethod _ = styleSchemeManagerGetSchemeIds

#endif

-- method StyleSchemeManager::get_search_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyleSchemeManager.", sinceVersion = Nothing}, 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_style_scheme_manager_get_search_path" gtk_source_style_scheme_manager_get_search_path :: 
    Ptr StyleSchemeManager ->               -- manager : TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"})
    IO (Ptr CString)

{- |
Returns the current search path for the /@manager@/.
See 'GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerSetSearchPath' for details.
-}
styleSchemeManagerGetSearchPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    {- ^ /@manager@/: a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
    -> m [T.Text]
    {- ^ __Returns:__ a 'Nothing'-terminated array
of string containing the search path.
The array is owned by the /@manager@/ and must not be modified. -}
styleSchemeManagerGetSearchPath manager = liftIO $ do
    manager' <- unsafeManagedPtrCastPtr manager
    result <- gtk_source_style_scheme_manager_get_search_path manager'
    checkUnexpectedReturnNULL "styleSchemeManagerGetSearchPath" result
    result' <- unpackZeroTerminatedUTF8CArray result
    touchManagedPtr manager
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerGetSearchPathMethodInfo
instance (signature ~ (m [T.Text]), MonadIO m, IsStyleSchemeManager a) => O.MethodInfo StyleSchemeManagerGetSearchPathMethodInfo a signature where
    overloadedMethod _ = styleSchemeManagerGetSearchPath

#endif

-- method StyleSchemeManager::prepend_search_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyleSchemeManager.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a directory or a filename.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_style_scheme_manager_prepend_search_path" gtk_source_style_scheme_manager_prepend_search_path :: 
    Ptr StyleSchemeManager ->               -- manager : TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"})
    CString ->                              -- path : TBasicType TUTF8
    IO ()

{- |
Prepends /@path@/ to the list of directories where the /@manager@/ looks
for style scheme files.
See 'GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerSetSearchPath' for details.
-}
styleSchemeManagerPrependSearchPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    {- ^ /@manager@/: a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
    -> T.Text
    {- ^ /@path@/: a directory or a filename. -}
    -> m ()
styleSchemeManagerPrependSearchPath manager path = liftIO $ do
    manager' <- unsafeManagedPtrCastPtr manager
    path' <- textToCString path
    gtk_source_style_scheme_manager_prepend_search_path manager' path'
    touchManagedPtr manager
    freeMem path'
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerPrependSearchPathMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsStyleSchemeManager a) => O.MethodInfo StyleSchemeManagerPrependSearchPathMethodInfo a signature where
    overloadedMethod _ = styleSchemeManagerPrependSearchPath

#endif

-- method StyleSchemeManager::set_search_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "manager", argType = TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkSourceStyleSchemeManager.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "\na %NULL-terminated array of strings or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_style_scheme_manager_set_search_path" gtk_source_style_scheme_manager_set_search_path :: 
    Ptr StyleSchemeManager ->               -- manager : TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"})
    Ptr CString ->                          -- path : TCArray True (-1) (-1) (TBasicType TUTF8)
    IO ()

{- |
Sets the list of directories where the /@manager@/ looks for
style scheme files.
If /@path@/ is 'Nothing', the search path is reset to default.
-}
styleSchemeManagerSetSearchPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    {- ^ /@manager@/: a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. -}
    -> Maybe ([T.Text])
    {- ^ /@path@/: 
a 'Nothing'-terminated array of strings or 'Nothing'. -}
    -> m ()
styleSchemeManagerSetSearchPath manager path = liftIO $ do
    manager' <- unsafeManagedPtrCastPtr manager
    maybePath <- case path of
        Nothing -> return nullPtr
        Just jPath -> do
            jPath' <- packZeroTerminatedUTF8CArray jPath
            return jPath'
    gtk_source_style_scheme_manager_set_search_path manager' maybePath
    touchManagedPtr manager
    mapZeroTerminatedCArray freeMem maybePath
    freeMem maybePath
    return ()

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data StyleSchemeManagerSetSearchPathMethodInfo
instance (signature ~ (Maybe ([T.Text]) -> m ()), MonadIO m, IsStyleSchemeManager a) => O.MethodInfo StyleSchemeManagerSetSearchPathMethodInfo a signature where
    overloadedMethod _ = styleSchemeManagerSetSearchPath

#endif

-- method StyleSchemeManager::get_default
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "GtkSource", name = "StyleSchemeManager"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_style_scheme_manager_get_default" gtk_source_style_scheme_manager_get_default :: 
    IO (Ptr StyleSchemeManager)

{- |
Returns the default 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager' instance.
-}
styleSchemeManagerGetDefault ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m StyleSchemeManager
    {- ^ __Returns:__ a 'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. Return value
is owned by GtkSourceView library and must not be unref\'ed. -}
styleSchemeManagerGetDefault  = liftIO $ do
    result <- gtk_source_style_scheme_manager_get_default
    checkUnexpectedReturnNULL "styleSchemeManagerGetDefault" result
    result' <- (newObject StyleSchemeManager) result
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
#endif