{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

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

module GI.GtkSource.Objects.StyleSchemeManager
    ( 

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


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [appendSearchPath]("GI.GtkSource.Objects.StyleSchemeManager#g:method:appendSearchPath"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [forceRescan]("GI.GtkSource.Objects.StyleSchemeManager#g:method:forceRescan"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [prependSearchPath]("GI.GtkSource.Objects.StyleSchemeManager#g:method:prependSearchPath"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getScheme]("GI.GtkSource.Objects.StyleSchemeManager#g:method:getScheme"), [getSchemeIds]("GI.GtkSource.Objects.StyleSchemeManager#g:method:getSchemeIds"), [getSearchPath]("GI.GtkSource.Objects.StyleSchemeManager#g:method:getSearchPath").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setSearchPath]("GI.GtkSource.Objects.StyleSchemeManager#g:method:setSearchPath").

#if defined(ENABLE_OVERLOADING)
    ResolveStyleSchemeManagerMethod         ,
#endif

-- ** appendSearchPath #method:appendSearchPath#

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerAppendSearchPathMethodInfo,
#endif
    styleSchemeManagerAppendSearchPath      ,


-- ** forceRescan #method:forceRescan#

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerForceRescanMethodInfo ,
#endif
    styleSchemeManagerForceRescan           ,


-- ** getDefault #method:getDefault#

    styleSchemeManagerGetDefault            ,


-- ** getScheme #method:getScheme#

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerGetSchemeMethodInfo   ,
#endif
    styleSchemeManagerGetScheme             ,


-- ** getSchemeIds #method:getSchemeIds#

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerGetSchemeIdsMethodInfo,
#endif
    styleSchemeManagerGetSchemeIds          ,


-- ** getSearchPath #method:getSearchPath#

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerGetSearchPathMethodInfo,
#endif
    styleSchemeManagerGetSearchPath         ,


-- ** new #method:new#

    styleSchemeManagerNew                   ,


-- ** prependSearchPath #method:prependSearchPath#

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerPrependSearchPathMethodInfo,
#endif
    styleSchemeManagerPrependSearchPath     ,


-- ** setSearchPath #method:setSearchPath#

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerSetSearchPathMethodInfo,
#endif
    styleSchemeManagerSetSearchPath         ,




 -- * Properties


-- ** schemeIds #attr:schemeIds#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerSchemeIdsPropertyInfo ,
#endif
    getStyleSchemeManagerSchemeIds          ,
#if defined(ENABLE_OVERLOADING)
    styleSchemeManagerSchemeIds             ,
#endif


-- ** searchPath #attr:searchPath#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    StyleSchemeManagerSearchPathPropertyInfo,
#endif
    clearStyleSchemeManagerSearchPath       ,
    constructStyleSchemeManagerSearchPath   ,
    getStyleSchemeManagerSearchPath         ,
    setStyleSchemeManagerSearchPath         ,
#if defined(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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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 GHC.Records as R

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 (SP.ManagedPtr StyleSchemeManager)
    deriving (StyleSchemeManager -> StyleSchemeManager -> Bool
(StyleSchemeManager -> StyleSchemeManager -> Bool)
-> (StyleSchemeManager -> StyleSchemeManager -> Bool)
-> Eq StyleSchemeManager
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StyleSchemeManager -> StyleSchemeManager -> Bool
$c/= :: StyleSchemeManager -> StyleSchemeManager -> Bool
== :: StyleSchemeManager -> StyleSchemeManager -> Bool
$c== :: StyleSchemeManager -> StyleSchemeManager -> Bool
Eq)

instance SP.ManagedPtrNewtype StyleSchemeManager where
    toManagedPtr :: StyleSchemeManager -> ManagedPtr StyleSchemeManager
toManagedPtr (StyleSchemeManager ManagedPtr StyleSchemeManager
p) = ManagedPtr StyleSchemeManager
p

foreign import ccall "gtk_source_style_scheme_manager_get_type"
    c_gtk_source_style_scheme_manager_get_type :: IO B.Types.GType

instance B.Types.TypedObject StyleSchemeManager where
    glibType :: IO GType
glibType = IO GType
c_gtk_source_style_scheme_manager_get_type

instance B.Types.GObject StyleSchemeManager

-- | Type class for types which can be safely cast to `StyleSchemeManager`, for instance with `toStyleSchemeManager`.
class (SP.GObject o, O.IsDescendantOf StyleSchemeManager o) => IsStyleSchemeManager o
instance (SP.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 :: (MIO.MonadIO m, IsStyleSchemeManager o) => o -> m StyleSchemeManager
toStyleSchemeManager :: forall (m :: * -> *) o.
(MonadIO m, IsStyleSchemeManager o) =>
o -> m StyleSchemeManager
toStyleSchemeManager = IO StyleSchemeManager -> m StyleSchemeManager
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO StyleSchemeManager -> m StyleSchemeManager)
-> (o -> IO StyleSchemeManager) -> o -> m StyleSchemeManager
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr StyleSchemeManager -> StyleSchemeManager)
-> o -> IO StyleSchemeManager
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr StyleSchemeManager -> StyleSchemeManager
StyleSchemeManager

-- | Convert 'StyleSchemeManager' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe StyleSchemeManager) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_source_style_scheme_manager_get_type
    gvalueSet_ :: Ptr GValue -> Maybe StyleSchemeManager -> IO ()
gvalueSet_ Ptr GValue
gv Maybe StyleSchemeManager
P.Nothing = Ptr GValue -> Ptr StyleSchemeManager -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr StyleSchemeManager
forall a. Ptr a
FP.nullPtr :: FP.Ptr StyleSchemeManager)
    gvalueSet_ Ptr GValue
gv (P.Just StyleSchemeManager
obj) = StyleSchemeManager -> (Ptr StyleSchemeManager -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr StyleSchemeManager
obj (Ptr GValue -> Ptr StyleSchemeManager -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe StyleSchemeManager)
gvalueGet_ Ptr GValue
gv = do
        Ptr StyleSchemeManager
ptr <- Ptr GValue -> IO (Ptr StyleSchemeManager)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr StyleSchemeManager)
        if Ptr StyleSchemeManager
ptr Ptr StyleSchemeManager -> Ptr StyleSchemeManager -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr StyleSchemeManager
forall a. Ptr a
FP.nullPtr
        then StyleSchemeManager -> Maybe StyleSchemeManager
forall a. a -> Maybe a
P.Just (StyleSchemeManager -> Maybe StyleSchemeManager)
-> IO StyleSchemeManager -> IO (Maybe StyleSchemeManager)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr StyleSchemeManager -> StyleSchemeManager)
-> Ptr StyleSchemeManager -> IO StyleSchemeManager
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr StyleSchemeManager -> StyleSchemeManager
StyleSchemeManager Ptr StyleSchemeManager
ptr
        else Maybe StyleSchemeManager -> IO (Maybe StyleSchemeManager)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StyleSchemeManager
forall a. Maybe a
P.Nothing
        
    

#if defined(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 "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveStyleSchemeManagerMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveStyleSchemeManagerMethod "setSearchPath" o = StyleSchemeManagerSetSearchPathMethodInfo
    ResolveStyleSchemeManagerMethod l o = O.MethodResolutionFailed l o

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

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveStyleSchemeManagerMethod t StyleSchemeManager, O.OverloadedMethod info StyleSchemeManager p, R.HasField t StyleSchemeManager p) => R.HasField t StyleSchemeManager p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveStyleSchemeManagerMethod t StyleSchemeManager, O.OverloadedMethodInfo info StyleSchemeManager) => OL.IsLabel t (O.MethodProxy info StyleSchemeManager) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#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 :: forall (m :: * -> *) o.
(MonadIO m, IsStyleSchemeManager o) =>
o -> m (Maybe [Text])
getStyleSchemeManagerSchemeIds o
obj = IO (Maybe [Text]) -> m (Maybe [Text])
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe [Text]) -> m (Maybe [Text]))
-> IO (Maybe [Text]) -> m (Maybe [Text])
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe [Text])
forall a. GObject a => a -> String -> IO (Maybe [Text])
B.Properties.getObjectPropertyStringArray o
obj String
"scheme-ids"

#if defined(ENABLE_OVERLOADING)
data StyleSchemeManagerSchemeIdsPropertyInfo
instance AttrInfo StyleSchemeManagerSchemeIdsPropertyInfo where
    type AttrAllowedOps StyleSchemeManagerSchemeIdsPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint StyleSchemeManagerSchemeIdsPropertyInfo = IsStyleSchemeManager
    type AttrSetTypeConstraint StyleSchemeManagerSchemeIdsPropertyInfo = (~) ()
    type AttrTransferTypeConstraint StyleSchemeManagerSchemeIdsPropertyInfo = (~) ()
    type AttrTransferType StyleSchemeManagerSchemeIdsPropertyInfo = ()
    type AttrGetType StyleSchemeManagerSchemeIdsPropertyInfo = (Maybe [T.Text])
    type AttrLabel StyleSchemeManagerSchemeIdsPropertyInfo = "scheme-ids"
    type AttrOrigin StyleSchemeManagerSchemeIdsPropertyInfo = StyleSchemeManager
    attrGet = getStyleSchemeManagerSchemeIds
    attrSet = undefined
    attrTransfer _ = 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 :: forall (m :: * -> *) o.
(MonadIO m, IsStyleSchemeManager o) =>
o -> m [Text]
getStyleSchemeManagerSearchPath o
obj = IO [Text] -> m [Text]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO [Text] -> m [Text]) -> IO [Text] -> m [Text]
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe [Text]) -> IO [Text]
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getStyleSchemeManagerSearchPath" (IO (Maybe [Text]) -> IO [Text]) -> IO (Maybe [Text]) -> IO [Text]
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe [Text])
forall a. GObject a => a -> String -> IO (Maybe [Text])
B.Properties.getObjectPropertyStringArray o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsStyleSchemeManager o) =>
o -> [Text] -> m ()
setStyleSchemeManagerSearchPath o
obj [Text]
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe [Text] -> IO ()
forall a. GObject a => a -> String -> Maybe [Text] -> IO ()
B.Properties.setObjectPropertyStringArray o
obj String
"search-path" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
Just [Text]
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, MIO.MonadIO m) => [T.Text] -> m (GValueConstruct o)
constructStyleSchemeManagerSearchPath :: forall o (m :: * -> *).
(IsStyleSchemeManager o, MonadIO m) =>
[Text] -> m (GValueConstruct o)
constructStyleSchemeManagerSearchPath [Text]
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe [Text] -> IO (GValueConstruct o)
forall o. String -> Maybe [Text] -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyStringArray String
"search-path" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
P.Just [Text]
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 :: forall (m :: * -> *) o.
(MonadIO m, IsStyleSchemeManager o) =>
o -> m ()
clearStyleSchemeManagerSearchPath o
obj = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe [Text] -> IO ()
forall a. GObject a => a -> String -> Maybe [Text] -> IO ()
B.Properties.setObjectPropertyStringArray o
obj String
"search-path" (Maybe [Text]
forall a. Maybe a
Nothing :: Maybe [T.Text])

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

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

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

styleSchemeManagerSearchPath :: AttrLabelProxy "searchPath"
styleSchemeManagerSearchPath = AttrLabelProxy

#endif

#if defined(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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
styleSchemeManagerNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
m StyleSchemeManager
styleSchemeManagerNew  = IO StyleSchemeManager -> m StyleSchemeManager
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO StyleSchemeManager -> m StyleSchemeManager)
-> IO StyleSchemeManager -> m StyleSchemeManager
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
result <- IO (Ptr StyleSchemeManager)
gtk_source_style_scheme_manager_new
    Text -> Ptr StyleSchemeManager -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"styleSchemeManagerNew" Ptr StyleSchemeManager
result
    StyleSchemeManager
result' <- ((ManagedPtr StyleSchemeManager -> StyleSchemeManager)
-> Ptr StyleSchemeManager -> IO StyleSchemeManager
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr StyleSchemeManager -> StyleSchemeManager
StyleSchemeManager) Ptr StyleSchemeManager
result
    StyleSchemeManager -> IO StyleSchemeManager
forall (m :: * -> *) a. Monad m => a -> m a
return StyleSchemeManager
result'

#if defined(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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
    -> T.Text
    -- ^ /@path@/: a directory or a filename.
    -> m ()
styleSchemeManagerAppendSearchPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
a -> Text -> m ()
styleSchemeManagerAppendSearchPath a
manager Text
path = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
manager' <- a -> IO (Ptr StyleSchemeManager)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
manager
    CString
path' <- Text -> IO CString
textToCString Text
path
    Ptr StyleSchemeManager -> CString -> IO ()
gtk_source_style_scheme_manager_append_search_path Ptr StyleSchemeManager
manager' CString
path'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
manager
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

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

instance O.OverloadedMethodInfo StyleSchemeManagerAppendSearchPathMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerAppendSearchPath",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtksource-3.0.24/docs/GI-GtkSource-Objects-StyleSchemeManager.html#v: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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
    -> m ()
styleSchemeManagerForceRescan :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
a -> m ()
styleSchemeManagerForceRescan a
manager = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
manager' <- a -> IO (Ptr StyleSchemeManager)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
manager
    Ptr StyleSchemeManager -> IO ()
gtk_source_style_scheme_manager_force_rescan Ptr StyleSchemeManager
manager'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
manager
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data StyleSchemeManagerForceRescanMethodInfo
instance (signature ~ (m ()), MonadIO m, IsStyleSchemeManager a) => O.OverloadedMethod StyleSchemeManagerForceRescanMethodInfo a signature where
    overloadedMethod = styleSchemeManagerForceRescan

instance O.OverloadedMethodInfo StyleSchemeManagerForceRescanMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerForceRescan",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtksource-3.0.24/docs/GI-GtkSource-Objects-StyleSchemeManager.html#v: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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
    -> T.Text
    -- ^ /@schemeId@/: style scheme id to find.
    -> m GtkSource.StyleScheme.StyleScheme
    -- ^ __Returns:__ a t'GI.GtkSource.Objects.StyleScheme.StyleScheme' object. Returned value is owned by
    -- /@manager@/ and must not be unref\'ed.
styleSchemeManagerGetScheme :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
a -> Text -> m StyleScheme
styleSchemeManagerGetScheme a
manager Text
schemeId = IO StyleScheme -> m StyleScheme
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO StyleScheme -> m StyleScheme)
-> IO StyleScheme -> m StyleScheme
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
manager' <- a -> IO (Ptr StyleSchemeManager)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
manager
    CString
schemeId' <- Text -> IO CString
textToCString Text
schemeId
    Ptr StyleScheme
result <- Ptr StyleSchemeManager -> CString -> IO (Ptr StyleScheme)
gtk_source_style_scheme_manager_get_scheme Ptr StyleSchemeManager
manager' CString
schemeId'
    Text -> Ptr StyleScheme -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"styleSchemeManagerGetScheme" Ptr StyleScheme
result
    StyleScheme
result' <- ((ManagedPtr StyleScheme -> StyleScheme)
-> Ptr StyleScheme -> IO StyleScheme
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr StyleScheme -> StyleScheme
GtkSource.StyleScheme.StyleScheme) Ptr StyleScheme
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
manager
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
schemeId'
    StyleScheme -> IO StyleScheme
forall (m :: * -> *) a. Monad m => a -> m a
return StyleScheme
result'

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

instance O.OverloadedMethodInfo StyleSchemeManagerGetSchemeMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerGetScheme",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtksource-3.0.24/docs/GI-GtkSource-Objects-StyleSchemeManager.html#v: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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
    -> m (Maybe [T.Text])
    -- ^ __Returns:__ 
    -- a 'P.Nothing'-terminated array of strings containing the ids of the available
    -- style schemes or 'P.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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
a -> m (Maybe [Text])
styleSchemeManagerGetSchemeIds a
manager = IO (Maybe [Text]) -> m (Maybe [Text])
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe [Text]) -> m (Maybe [Text]))
-> IO (Maybe [Text]) -> m (Maybe [Text])
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
manager' <- a -> IO (Ptr StyleSchemeManager)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
manager
    Ptr CString
result <- Ptr StyleSchemeManager -> IO (Ptr CString)
gtk_source_style_scheme_manager_get_scheme_ids Ptr StyleSchemeManager
manager'
    Maybe [Text]
maybeResult <- Ptr CString -> (Ptr CString -> IO [Text]) -> IO (Maybe [Text])
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr CString
result ((Ptr CString -> IO [Text]) -> IO (Maybe [Text]))
-> (Ptr CString -> IO [Text]) -> IO (Maybe [Text])
forall a b. (a -> b) -> a -> b
$ \Ptr CString
result' -> do
        [Text]
result'' <- HasCallStack => Ptr CString -> IO [Text]
Ptr CString -> IO [Text]
unpackZeroTerminatedUTF8CArray Ptr CString
result'
        [Text] -> IO [Text]
forall (m :: * -> *) a. Monad m => a -> m a
return [Text]
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
manager
    Maybe [Text] -> IO (Maybe [Text])
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe [Text]
maybeResult

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

instance O.OverloadedMethodInfo StyleSchemeManagerGetSchemeIdsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerGetSchemeIds",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtksource-3.0.24/docs/GI-GtkSource-Objects-StyleSchemeManager.html#v: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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
    -> m [T.Text]
    -- ^ __Returns:__ a 'P.Nothing'-terminated array
    -- of string containing the search path.
    -- The array is owned by the /@manager@/ and must not be modified.
styleSchemeManagerGetSearchPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
a -> m [Text]
styleSchemeManagerGetSearchPath a
manager = IO [Text] -> m [Text]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [Text] -> m [Text]) -> IO [Text] -> m [Text]
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
manager' <- a -> IO (Ptr StyleSchemeManager)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
manager
    Ptr CString
result <- Ptr StyleSchemeManager -> IO (Ptr CString)
gtk_source_style_scheme_manager_get_search_path Ptr StyleSchemeManager
manager'
    Text -> Ptr CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"styleSchemeManagerGetSearchPath" Ptr CString
result
    [Text]
result' <- HasCallStack => Ptr CString -> IO [Text]
Ptr CString -> IO [Text]
unpackZeroTerminatedUTF8CArray Ptr CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
manager
    [Text] -> IO [Text]
forall (m :: * -> *) a. Monad m => a -> m a
return [Text]
result'

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

instance O.OverloadedMethodInfo StyleSchemeManagerGetSearchPathMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerGetSearchPath",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtksource-3.0.24/docs/GI-GtkSource-Objects-StyleSchemeManager.html#v: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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
    -> T.Text
    -- ^ /@path@/: a directory or a filename.
    -> m ()
styleSchemeManagerPrependSearchPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
a -> Text -> m ()
styleSchemeManagerPrependSearchPath a
manager Text
path = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
manager' <- a -> IO (Ptr StyleSchemeManager)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
manager
    CString
path' <- Text -> IO CString
textToCString Text
path
    Ptr StyleSchemeManager -> CString -> IO ()
gtk_source_style_scheme_manager_prepend_search_path Ptr StyleSchemeManager
manager' CString
path'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
manager
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
path'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

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

instance O.OverloadedMethodInfo StyleSchemeManagerPrependSearchPathMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerPrependSearchPath",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtksource-3.0.24/docs/GI-GtkSource-Objects-StyleSchemeManager.html#v: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 'P.Nothing', the search path is reset to default.
styleSchemeManagerSetSearchPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
    a
    -- ^ /@manager@/: a t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'.
    -> Maybe ([T.Text])
    -- ^ /@path@/: 
    -- a 'P.Nothing'-terminated array of strings or 'P.Nothing'.
    -> m ()
styleSchemeManagerSetSearchPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsStyleSchemeManager a) =>
a -> Maybe [Text] -> m ()
styleSchemeManagerSetSearchPath a
manager Maybe [Text]
path = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
manager' <- a -> IO (Ptr StyleSchemeManager)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
manager
    Ptr CString
maybePath <- case Maybe [Text]
path of
        Maybe [Text]
Nothing -> Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
forall a. Ptr a
nullPtr
        Just [Text]
jPath -> do
            Ptr CString
jPath' <- [Text] -> IO (Ptr CString)
packZeroTerminatedUTF8CArray [Text]
jPath
            Ptr CString -> IO (Ptr CString)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CString
jPath'
    Ptr StyleSchemeManager -> Ptr CString -> IO ()
gtk_source_style_scheme_manager_set_search_path Ptr StyleSchemeManager
manager' Ptr CString
maybePath
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
manager
    (CString -> IO ()) -> Ptr CString -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybePath
    Ptr CString -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CString
maybePath
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

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

instance O.OverloadedMethodInfo StyleSchemeManagerSetSearchPathMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.GtkSource.Objects.StyleSchemeManager.styleSchemeManagerSetSearchPath",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtksource-3.0.24/docs/GI-GtkSource-Objects-StyleSchemeManager.html#v: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 t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager' instance.
styleSchemeManagerGetDefault ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m StyleSchemeManager
    -- ^ __Returns:__ a t'GI.GtkSource.Objects.StyleSchemeManager.StyleSchemeManager'. Return value
    -- is owned by GtkSourceView library and must not be unref\'ed.
styleSchemeManagerGetDefault :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
m StyleSchemeManager
styleSchemeManagerGetDefault  = IO StyleSchemeManager -> m StyleSchemeManager
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO StyleSchemeManager -> m StyleSchemeManager)
-> IO StyleSchemeManager -> m StyleSchemeManager
forall a b. (a -> b) -> a -> b
$ do
    Ptr StyleSchemeManager
result <- IO (Ptr StyleSchemeManager)
gtk_source_style_scheme_manager_get_default
    Text -> Ptr StyleSchemeManager -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"styleSchemeManagerGetDefault" Ptr StyleSchemeManager
result
    StyleSchemeManager
result' <- ((ManagedPtr StyleSchemeManager -> StyleSchemeManager)
-> Ptr StyleSchemeManager -> IO StyleSchemeManager
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr StyleSchemeManager -> StyleSchemeManager
StyleSchemeManager) Ptr StyleSchemeManager
result
    StyleSchemeManager -> IO StyleSchemeManager
forall (m :: * -> *) a. Monad m => a -> m a
return StyleSchemeManager
result'

#if defined(ENABLE_OVERLOADING)
#endif