packages feed

gi-gtk-0.3.18.13: GI/Gtk/Objects/CssProvider.hs


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

module GI.Gtk.Objects.CssProvider
    ( 

-- * Exported types
    CssProvider(..)                         ,
    CssProviderK                            ,
    toCssProvider                           ,
    noCssProvider                           ,


 -- * Methods
-- ** cssProviderGetDefault
    cssProviderGetDefault                   ,


-- ** cssProviderGetNamed
    cssProviderGetNamed                     ,


-- ** cssProviderLoadFromData
    CssProviderLoadFromDataMethodInfo       ,
    cssProviderLoadFromData                 ,


-- ** cssProviderLoadFromFile
    CssProviderLoadFromFileMethodInfo       ,
    cssProviderLoadFromFile                 ,


-- ** cssProviderLoadFromPath
    CssProviderLoadFromPathMethodInfo       ,
    cssProviderLoadFromPath                 ,


-- ** cssProviderLoadFromResource
    CssProviderLoadFromResourceMethodInfo   ,
    cssProviderLoadFromResource             ,


-- ** cssProviderNew
    cssProviderNew                          ,


-- ** cssProviderToString
    CssProviderToStringMethodInfo           ,
    cssProviderToString                     ,




 -- * Signals
-- ** ParsingError
    CssProviderParsingErrorCallback         ,
    CssProviderParsingErrorCallbackC        ,
    CssProviderParsingErrorSignalInfo       ,
    afterCssProviderParsingError            ,
    cssProviderParsingErrorCallbackWrapper  ,
    cssProviderParsingErrorClosure          ,
    mkCssProviderParsingErrorCallback       ,
    noCssProviderParsingErrorCallback       ,
    onCssProviderParsingError               ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.GObject as GObject
import qualified GI.Gio as Gio

newtype CssProvider = CssProvider (ForeignPtr CssProvider)
foreign import ccall "gtk_css_provider_get_type"
    c_gtk_css_provider_get_type :: IO GType

type instance ParentTypes CssProvider = CssProviderParentTypes
type CssProviderParentTypes = '[GObject.Object, StyleProvider]

instance GObject CssProvider where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_css_provider_get_type
    

class GObject o => CssProviderK o
instance (GObject o, IsDescendantOf CssProvider o) => CssProviderK o

toCssProvider :: CssProviderK o => o -> IO CssProvider
toCssProvider = unsafeCastTo CssProvider

noCssProvider :: Maybe CssProvider
noCssProvider = Nothing

type family ResolveCssProviderMethod (t :: Symbol) (o :: *) :: * where
    ResolveCssProviderMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveCssProviderMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveCssProviderMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveCssProviderMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveCssProviderMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveCssProviderMethod "loadFromData" o = CssProviderLoadFromDataMethodInfo
    ResolveCssProviderMethod "loadFromFile" o = CssProviderLoadFromFileMethodInfo
    ResolveCssProviderMethod "loadFromPath" o = CssProviderLoadFromPathMethodInfo
    ResolveCssProviderMethod "loadFromResource" o = CssProviderLoadFromResourceMethodInfo
    ResolveCssProviderMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveCssProviderMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveCssProviderMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveCssProviderMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveCssProviderMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveCssProviderMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveCssProviderMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveCssProviderMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveCssProviderMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveCssProviderMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveCssProviderMethod "toString" o = CssProviderToStringMethodInfo
    ResolveCssProviderMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveCssProviderMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveCssProviderMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveCssProviderMethod "getIconFactory" o = StyleProviderGetIconFactoryMethodInfo
    ResolveCssProviderMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveCssProviderMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveCssProviderMethod "getStyle" o = StyleProviderGetStyleMethodInfo
    ResolveCssProviderMethod "getStyleProperty" o = StyleProviderGetStylePropertyMethodInfo
    ResolveCssProviderMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveCssProviderMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveCssProviderMethod l o = MethodResolutionFailed l o

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

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

-- signal CssProvider::parsing-error
type CssProviderParsingErrorCallback =
    CssSection ->
    GError ->
    IO ()

noCssProviderParsingErrorCallback :: Maybe CssProviderParsingErrorCallback
noCssProviderParsingErrorCallback = Nothing

type CssProviderParsingErrorCallbackC =
    Ptr () ->                               -- object
    Ptr CssSection ->
    Ptr GError ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkCssProviderParsingErrorCallback :: CssProviderParsingErrorCallbackC -> IO (FunPtr CssProviderParsingErrorCallbackC)

cssProviderParsingErrorClosure :: CssProviderParsingErrorCallback -> IO Closure
cssProviderParsingErrorClosure cb = newCClosure =<< mkCssProviderParsingErrorCallback wrapped
    where wrapped = cssProviderParsingErrorCallbackWrapper cb

cssProviderParsingErrorCallbackWrapper ::
    CssProviderParsingErrorCallback ->
    Ptr () ->
    Ptr CssSection ->
    Ptr GError ->
    Ptr () ->
    IO ()
cssProviderParsingErrorCallbackWrapper _cb _ section error_ _ = do
    section' <- (newBoxed CssSection) section
    error_' <- (newBoxed GError) error_
    _cb  section' error_'

onCssProviderParsingError :: (GObject a, MonadIO m) => a -> CssProviderParsingErrorCallback -> m SignalHandlerId
onCssProviderParsingError obj cb = liftIO $ connectCssProviderParsingError obj cb SignalConnectBefore
afterCssProviderParsingError :: (GObject a, MonadIO m) => a -> CssProviderParsingErrorCallback -> m SignalHandlerId
afterCssProviderParsingError obj cb = connectCssProviderParsingError obj cb SignalConnectAfter

connectCssProviderParsingError :: (GObject a, MonadIO m) =>
                                  a -> CssProviderParsingErrorCallback -> SignalConnectMode -> m SignalHandlerId
connectCssProviderParsingError obj cb after = liftIO $ do
    cb' <- mkCssProviderParsingErrorCallback (cssProviderParsingErrorCallbackWrapper cb)
    connectSignalFunPtr obj "parsing-error" cb' after

type instance AttributeList CssProvider = CssProviderAttributeList
type CssProviderAttributeList = ('[ ] :: [(Symbol, *)])

data CssProviderParsingErrorSignalInfo
instance SignalInfo CssProviderParsingErrorSignalInfo where
    type HaskellCallbackType CssProviderParsingErrorSignalInfo = CssProviderParsingErrorCallback
    connectSignal _ = connectCssProviderParsingError

type instance SignalList CssProvider = CssProviderSignalList
type CssProviderSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("parsingError", CssProviderParsingErrorSignalInfo)] :: [(Symbol, *)])

-- method CssProvider::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : TInterface "Gtk" "CssProvider"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_css_provider_new" gtk_css_provider_new :: 
    IO (Ptr CssProvider)


cssProviderNew ::
    (MonadIO m) =>
    m CssProvider                           -- result
cssProviderNew  = liftIO $ do
    result <- gtk_css_provider_new
    checkUnexpectedReturnNULL "gtk_css_provider_new" result
    result' <- (wrapObject CssProvider) result
    return result'

-- method CssProvider::load_from_data
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gtk_css_provider_load_from_data" gtk_css_provider_load_from_data :: 
    Ptr CssProvider ->                      -- _obj : TInterface "Gtk" "CssProvider"
    Ptr Word8 ->                            -- data : TCArray False (-1) 2 (TBasicType TUInt8)
    Int64 ->                                -- length : TBasicType TInt64
    Ptr (Ptr GError) ->                     -- error
    IO CInt


cssProviderLoadFromData ::
    (MonadIO m, CssProviderK a) =>
    a                                       -- _obj
    -> ByteString                           -- data_
    -> m ()                                 -- result
cssProviderLoadFromData _obj data_ = liftIO $ do
    let length_ = fromIntegral $ B.length data_
    let _obj' = unsafeManagedPtrCastPtr _obj
    data_' <- packByteString data_
    onException (do
        _ <- propagateGError $ gtk_css_provider_load_from_data _obj' data_' length_
        touchManagedPtr _obj
        freeMem data_'
        return ()
     ) (do
        freeMem data_'
     )

data CssProviderLoadFromDataMethodInfo
instance (signature ~ (ByteString -> m ()), MonadIO m, CssProviderK a) => MethodInfo CssProviderLoadFromDataMethodInfo a signature where
    overloadedMethod _ = cssProviderLoadFromData

-- method CssProvider::load_from_file
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TInterface "Gio" "File", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gtk_css_provider_load_from_file" gtk_css_provider_load_from_file :: 
    Ptr CssProvider ->                      -- _obj : TInterface "Gtk" "CssProvider"
    Ptr Gio.File ->                         -- file : TInterface "Gio" "File"
    Ptr (Ptr GError) ->                     -- error
    IO CInt


cssProviderLoadFromFile ::
    (MonadIO m, CssProviderK a, Gio.FileK b) =>
    a                                       -- _obj
    -> b                                    -- file
    -> m ()                                 -- result
cssProviderLoadFromFile _obj file = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let file' = unsafeManagedPtrCastPtr file
    onException (do
        _ <- propagateGError $ gtk_css_provider_load_from_file _obj' file'
        touchManagedPtr _obj
        touchManagedPtr file
        return ()
     ) (do
        return ()
     )

data CssProviderLoadFromFileMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, CssProviderK a, Gio.FileK b) => MethodInfo CssProviderLoadFromFileMethodInfo a signature where
    overloadedMethod _ = cssProviderLoadFromFile

-- method CssProvider::load_from_path
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gtk_css_provider_load_from_path" gtk_css_provider_load_from_path :: 
    Ptr CssProvider ->                      -- _obj : TInterface "Gtk" "CssProvider"
    CString ->                              -- path : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO CInt


cssProviderLoadFromPath ::
    (MonadIO m, CssProviderK a) =>
    a                                       -- _obj
    -> T.Text                               -- path
    -> m ()                                 -- result
cssProviderLoadFromPath _obj path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    path' <- textToCString path
    onException (do
        _ <- propagateGError $ gtk_css_provider_load_from_path _obj' path'
        touchManagedPtr _obj
        freeMem path'
        return ()
     ) (do
        freeMem path'
     )

data CssProviderLoadFromPathMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, CssProviderK a) => MethodInfo CssProviderLoadFromPathMethodInfo a signature where
    overloadedMethod _ = cssProviderLoadFromPath

-- method CssProvider::load_from_resource
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_css_provider_load_from_resource" gtk_css_provider_load_from_resource :: 
    Ptr CssProvider ->                      -- _obj : TInterface "Gtk" "CssProvider"
    CString ->                              -- resource_path : TBasicType TUTF8
    IO ()


cssProviderLoadFromResource ::
    (MonadIO m, CssProviderK a) =>
    a                                       -- _obj
    -> T.Text                               -- resourcePath
    -> m ()                                 -- result
cssProviderLoadFromResource _obj resourcePath = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    resourcePath' <- textToCString resourcePath
    gtk_css_provider_load_from_resource _obj' resourcePath'
    touchManagedPtr _obj
    freeMem resourcePath'
    return ()

data CssProviderLoadFromResourceMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, CssProviderK a) => MethodInfo CssProviderLoadFromResourceMethodInfo a signature where
    overloadedMethod _ = cssProviderLoadFromResource

-- method CssProvider::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gtk_css_provider_to_string" gtk_css_provider_to_string :: 
    Ptr CssProvider ->                      -- _obj : TInterface "Gtk" "CssProvider"
    IO CString


cssProviderToString ::
    (MonadIO m, CssProviderK a) =>
    a                                       -- _obj
    -> m T.Text                             -- result
cssProviderToString _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_css_provider_to_string _obj'
    checkUnexpectedReturnNULL "gtk_css_provider_to_string" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

data CssProviderToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m, CssProviderK a) => MethodInfo CssProviderToStringMethodInfo a signature where
    overloadedMethod _ = cssProviderToString

-- method CssProvider::get_default
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- returnType : TInterface "Gtk" "CssProvider"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_css_provider_get_default" gtk_css_provider_get_default :: 
    IO (Ptr CssProvider)


cssProviderGetDefault ::
    (MonadIO m) =>
    m CssProvider                           -- result
cssProviderGetDefault  = liftIO $ do
    result <- gtk_css_provider_get_default
    checkUnexpectedReturnNULL "gtk_css_provider_get_default" result
    result' <- (newObject CssProvider) result
    return result'

-- method CssProvider::get_named
-- method type : MemberFunction
-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "variant", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gtk" "CssProvider"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_css_provider_get_named" gtk_css_provider_get_named :: 
    CString ->                              -- name : TBasicType TUTF8
    CString ->                              -- variant : TBasicType TUTF8
    IO (Ptr CssProvider)


cssProviderGetNamed ::
    (MonadIO m) =>
    T.Text                                  -- name
    -> Maybe (T.Text)                       -- variant
    -> m CssProvider                        -- result
cssProviderGetNamed name variant = liftIO $ do
    name' <- textToCString name
    maybeVariant <- case variant of
        Nothing -> return nullPtr
        Just jVariant -> do
            jVariant' <- textToCString jVariant
            return jVariant'
    result <- gtk_css_provider_get_named name' maybeVariant
    checkUnexpectedReturnNULL "gtk_css_provider_get_named" result
    result' <- (newObject CssProvider) result
    freeMem name'
    freeMem maybeVariant
    return result'