{- | 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 cssProviderLoadFromData , -- ** cssProviderLoadFromFile cssProviderLoadFromFile , -- ** cssProviderLoadFromPath cssProviderLoadFromPath , -- ** cssProviderLoadFromResource cssProviderLoadFromResource , -- ** cssProviderNew cssProviderNew , -- ** cssProviderToString 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 -- 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), '("parsing-error", CssProviderParsingErrorSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method CssProvider::new -- method type : Constructor -- Args : [] -- Lengths : [] -- hInArgs : [] -- 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 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 {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, 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 () 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_' ) -- method CssProvider::load_from_file -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TInterface "Gio" "File", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TInterface "Gio" "File", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- 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 () 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 () ) -- method CssProvider::load_from_path -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- 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 () 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' ) -- method CssProvider::load_from_resource -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- 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 -> -- resource_path m () cssProviderLoadFromResource _obj resource_path = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj resource_path' <- textToCString resource_path gtk_css_provider_load_from_resource _obj' resource_path' touchManagedPtr _obj freeMem resource_path' return () -- method CssProvider::to_string -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "CssProvider", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- 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 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' -- method CssProvider::get_default -- method type : MemberFunction -- Args : [] -- Lengths : [] -- hInArgs : [] -- 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 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 {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "variant", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "variant", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- 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 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'