{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

/No description available in the introspection data./
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.GtkSource.Objects.StyleSchemeManager
    (

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


 -- * Methods
-- ** appendSearchPath #method:appendSearchPath#

#if ENABLE_OVERLOADING
    StyleSchemeManagerAppendSearchPathMethodInfo,
#endif
    styleSchemeManagerAppendSearchPath      ,


-- ** forceRescan #method:forceRescan#

#if ENABLE_OVERLOADING
    StyleSchemeManagerForceRescanMethodInfo ,
#endif
    styleSchemeManagerForceRescan           ,


-- ** getDefault #method:getDefault#

    styleSchemeManagerGetDefault            ,


-- ** getScheme #method:getScheme#

#if ENABLE_OVERLOADING
    StyleSchemeManagerGetSchemeMethodInfo   ,
#endif
    styleSchemeManagerGetScheme             ,


-- ** getSchemeIds #method:getSchemeIds#

#if ENABLE_OVERLOADING
    StyleSchemeManagerGetSchemeIdsMethodInfo,
#endif
    styleSchemeManagerGetSchemeIds          ,


-- ** getSearchPath #method:getSearchPath#

#if ENABLE_OVERLOADING
    StyleSchemeManagerGetSearchPathMethodInfo,
#endif
    styleSchemeManagerGetSearchPath         ,


-- ** new #method:new#

    styleSchemeManagerNew                   ,


-- ** prependSearchPath #method:prependSearchPath#

#if ENABLE_OVERLOADING
    StyleSchemeManagerPrependSearchPathMethodInfo,
#endif
    styleSchemeManagerPrependSearchPath     ,


-- ** setSearchPath #method:setSearchPath#

#if ENABLE_OVERLOADING
    StyleSchemeManagerSetSearchPathMethodInfo,
#endif
    styleSchemeManagerSetSearchPath         ,




 -- * Properties
-- ** schemeIds #attr:schemeIds#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    StyleSchemeManagerSchemeIdsPropertyInfo ,
#endif
    getStyleSchemeManagerSchemeIds          ,
#if ENABLE_OVERLOADING
    styleSchemeManagerSchemeIds             ,
#endif


-- ** searchPath #attr:searchPath#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    StyleSchemeManagerSearchPathPropertyInfo,
#endif
    clearStyleSchemeManagerSearchPath       ,
    constructStyleSchemeManagerSearchPath   ,
    getStyleSchemeManagerSearchPath         ,
    setStyleSchemeManagerSearchPath         ,
#if ENABLE_OVERLOADING
    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.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
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 GHC.OverloadedLabels as OL

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

-- | Memory-managed wrapper type.
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


-- | Type class for types which can be safely cast to `StyleSchemeManager`, for instance with `toStyleSchemeManager`.
class (GObject o, O.IsDescendantOf StyleSchemeManager o) => IsStyleSchemeManager o
instance (GObject o, O.IsDescendantOf StyleSchemeManager o) => IsStyleSchemeManager o

instance O.HasParentTypes StyleSchemeManager
type instance O.ParentTypes StyleSchemeManager = '[GObject.Object.Object]

-- | Cast to `StyleSchemeManager`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toStyleSchemeManager :: (MonadIO m, IsStyleSchemeManager o) => o -> m StyleSchemeManager
toStyleSchemeManager = liftIO . unsafeCastTo StyleSchemeManager

-- | A convenience alias for `Nothing` :: `Maybe` `StyleSchemeManager`.
noStyleSchemeManager :: Maybe StyleSchemeManager
noStyleSchemeManager = Nothing

#if ENABLE_OVERLOADING
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 "getv" o = GObject.Object.ObjectGetvMethodInfo
    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 "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) => OL.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

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

{- |
Get the value of the “@scheme-ids@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' styleSchemeManager #schemeIds
@
-}
getStyleSchemeManagerSchemeIds :: (MonadIO m, IsStyleSchemeManager o) => o -> m (Maybe [T.Text])
getStyleSchemeManagerSchemeIds obj = liftIO $ B.Properties.getObjectPropertyStringArray obj "scheme-ids"

#if ENABLE_OVERLOADING
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)

{- |
Get the value of the “@search-path@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' styleSchemeManager #searchPath
@
-}
getStyleSchemeManagerSearchPath :: (MonadIO m, IsStyleSchemeManager o) => o -> m [T.Text]
getStyleSchemeManagerSearchPath obj = liftIO $ checkUnexpectedNothing "getStyleSchemeManagerSearchPath" $ B.Properties.getObjectPropertyStringArray obj "search-path"

{- |
Set the value of the “@search-path@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' styleSchemeManager [ #searchPath 'Data.GI.Base.Attributes.:=' value ]
@
-}
setStyleSchemeManagerSearchPath :: (MonadIO m, IsStyleSchemeManager o) => o -> [T.Text] -> m ()
setStyleSchemeManagerSearchPath obj val = liftIO $ B.Properties.setObjectPropertyStringArray obj "search-path" (Just val)

{- |
Construct a `GValueConstruct` with valid value for the “@search-path@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructStyleSchemeManagerSearchPath :: (IsStyleSchemeManager o) => [T.Text] -> IO (GValueConstruct o)
constructStyleSchemeManagerSearchPath val = B.Properties.constructObjectPropertyStringArray "search-path" (Just val)

{- |
Set the value of the “@search-path@” property to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.clear' #searchPath
@
-}
clearStyleSchemeManagerSearchPath :: (MonadIO m, IsStyleSchemeManager o) => o -> m ()
clearStyleSchemeManagerSearchPath obj = liftIO $ B.Properties.setObjectPropertyStringArray obj "search-path" (Nothing :: Maybe [T.Text])

#if ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
instance O.HasAttributeList StyleSchemeManager
type instance O.AttributeList StyleSchemeManager = StyleSchemeManagerAttributeList
type StyleSchemeManagerAttributeList = ('[ '("schemeIds", StyleSchemeManagerSchemeIdsPropertyInfo), '("searchPath", StyleSchemeManagerSearchPathPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
styleSchemeManagerSchemeIds :: AttrLabelProxy "schemeIds"
styleSchemeManagerSchemeIds = AttrLabelProxy

styleSchemeManagerSearchPath :: AttrLabelProxy "searchPath"
styleSchemeManagerSearchPath = AttrLabelProxy

#endif

#if ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
#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 ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
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 ENABLE_OVERLOADING
#endif