gi-webkit2-4.0.21: GI/WebKit2/Objects/FaviconDatabase.hs
{- |
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.WebKit2.Objects.FaviconDatabase
(
-- * Exported types
FaviconDatabase(..) ,
IsFaviconDatabase ,
toFaviconDatabase ,
noFaviconDatabase ,
-- * Methods
-- ** clear #method:clear#
#if ENABLE_OVERLOADING
FaviconDatabaseClearMethodInfo ,
#endif
faviconDatabaseClear ,
-- ** getFavicon #method:getFavicon#
#if ENABLE_OVERLOADING
FaviconDatabaseGetFaviconMethodInfo ,
#endif
faviconDatabaseGetFavicon ,
-- ** getFaviconFinish #method:getFaviconFinish#
#if ENABLE_OVERLOADING
FaviconDatabaseGetFaviconFinishMethodInfo,
#endif
faviconDatabaseGetFaviconFinish ,
-- ** getFaviconUri #method:getFaviconUri#
#if ENABLE_OVERLOADING
FaviconDatabaseGetFaviconUriMethodInfo ,
#endif
faviconDatabaseGetFaviconUri ,
-- * Signals
-- ** faviconChanged #signal:faviconChanged#
C_FaviconDatabaseFaviconChangedCallback ,
FaviconDatabaseFaviconChangedCallback ,
#if ENABLE_OVERLOADING
FaviconDatabaseFaviconChangedSignalInfo ,
#endif
afterFaviconDatabaseFaviconChanged ,
genClosure_FaviconDatabaseFaviconChanged,
mk_FaviconDatabaseFaviconChangedCallback,
noFaviconDatabaseFaviconChangedCallback ,
onFaviconDatabaseFaviconChanged ,
wrap_FaviconDatabaseFaviconChangedCallback,
) 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.Cairo.Structs.Surface as Cairo.Surface
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Callbacks as Gio.Callbacks
import qualified GI.Gio.Interfaces.AsyncResult as Gio.AsyncResult
import qualified GI.Gio.Objects.Cancellable as Gio.Cancellable
-- | Memory-managed wrapper type.
newtype FaviconDatabase = FaviconDatabase (ManagedPtr FaviconDatabase)
foreign import ccall "webkit_favicon_database_get_type"
c_webkit_favicon_database_get_type :: IO GType
instance GObject FaviconDatabase where
gobjectType = c_webkit_favicon_database_get_type
-- | Type class for types which can be safely cast to `FaviconDatabase`, for instance with `toFaviconDatabase`.
class (GObject o, O.IsDescendantOf FaviconDatabase o) => IsFaviconDatabase o
instance (GObject o, O.IsDescendantOf FaviconDatabase o) => IsFaviconDatabase o
instance O.HasParentTypes FaviconDatabase
type instance O.ParentTypes FaviconDatabase = '[GObject.Object.Object]
-- | Cast to `FaviconDatabase`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toFaviconDatabase :: (MonadIO m, IsFaviconDatabase o) => o -> m FaviconDatabase
toFaviconDatabase = liftIO . unsafeCastTo FaviconDatabase
-- | A convenience alias for `Nothing` :: `Maybe` `FaviconDatabase`.
noFaviconDatabase :: Maybe FaviconDatabase
noFaviconDatabase = Nothing
#if ENABLE_OVERLOADING
type family ResolveFaviconDatabaseMethod (t :: Symbol) (o :: *) :: * where
ResolveFaviconDatabaseMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveFaviconDatabaseMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveFaviconDatabaseMethod "clear" o = FaviconDatabaseClearMethodInfo
ResolveFaviconDatabaseMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveFaviconDatabaseMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveFaviconDatabaseMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveFaviconDatabaseMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveFaviconDatabaseMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveFaviconDatabaseMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveFaviconDatabaseMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveFaviconDatabaseMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveFaviconDatabaseMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveFaviconDatabaseMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveFaviconDatabaseMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveFaviconDatabaseMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveFaviconDatabaseMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveFaviconDatabaseMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveFaviconDatabaseMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveFaviconDatabaseMethod "getFavicon" o = FaviconDatabaseGetFaviconMethodInfo
ResolveFaviconDatabaseMethod "getFaviconFinish" o = FaviconDatabaseGetFaviconFinishMethodInfo
ResolveFaviconDatabaseMethod "getFaviconUri" o = FaviconDatabaseGetFaviconUriMethodInfo
ResolveFaviconDatabaseMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveFaviconDatabaseMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveFaviconDatabaseMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveFaviconDatabaseMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveFaviconDatabaseMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFaviconDatabaseMethod t FaviconDatabase, O.MethodInfo info FaviconDatabase p) => OL.IsLabel t (FaviconDatabase -> 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
-- signal FaviconDatabase::favicon-changed
{- |
This signal is emitted when the favicon URI of /@pageUri@/ has
been changed to /@faviconUri@/ in the database. You can connect
to this signal and call 'GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFavicon'
to get the favicon. If you are interested in the favicon of a
'GI.WebKit2.Objects.WebView.WebView' it\'s easier to use the 'GI.WebKit2.Objects.WebView.WebView':@/favicon/@
property. See 'GI.WebKit2.Objects.WebView.webViewGetFavicon' for more details.
-}
type FaviconDatabaseFaviconChangedCallback =
T.Text
{- ^ /@pageUri@/: the URI of the Web page containing the icon -}
-> T.Text
{- ^ /@faviconUri@/: the URI of the favicon -}
-> IO ()
-- | A convenience synonym for @`Nothing` :: `Maybe` `FaviconDatabaseFaviconChangedCallback`@.
noFaviconDatabaseFaviconChangedCallback :: Maybe FaviconDatabaseFaviconChangedCallback
noFaviconDatabaseFaviconChangedCallback = Nothing
-- | Type for the callback on the (unwrapped) C side.
type C_FaviconDatabaseFaviconChangedCallback =
Ptr () -> -- object
CString ->
CString ->
Ptr () -> -- user_data
IO ()
-- | Generate a function pointer callable from C code, from a `C_FaviconDatabaseFaviconChangedCallback`.
foreign import ccall "wrapper"
mk_FaviconDatabaseFaviconChangedCallback :: C_FaviconDatabaseFaviconChangedCallback -> IO (FunPtr C_FaviconDatabaseFaviconChangedCallback)
-- | Wrap the callback into a `GClosure`.
genClosure_FaviconDatabaseFaviconChanged :: MonadIO m => FaviconDatabaseFaviconChangedCallback -> m (GClosure C_FaviconDatabaseFaviconChangedCallback)
genClosure_FaviconDatabaseFaviconChanged cb = liftIO $ do
let cb' = wrap_FaviconDatabaseFaviconChangedCallback cb
mk_FaviconDatabaseFaviconChangedCallback cb' >>= B.GClosure.newGClosure
-- | Wrap a `FaviconDatabaseFaviconChangedCallback` into a `C_FaviconDatabaseFaviconChangedCallback`.
wrap_FaviconDatabaseFaviconChangedCallback ::
FaviconDatabaseFaviconChangedCallback ->
C_FaviconDatabaseFaviconChangedCallback
wrap_FaviconDatabaseFaviconChangedCallback _cb _ pageUri faviconUri _ = do
pageUri' <- cstringToText pageUri
faviconUri' <- cstringToText faviconUri
_cb pageUri' faviconUri'
{- |
Connect a signal handler for the “@favicon-changed@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Signals.on' faviconDatabase #faviconChanged callback
@
-}
onFaviconDatabaseFaviconChanged :: (IsFaviconDatabase a, MonadIO m) => a -> FaviconDatabaseFaviconChangedCallback -> m SignalHandlerId
onFaviconDatabaseFaviconChanged obj cb = liftIO $ do
let cb' = wrap_FaviconDatabaseFaviconChangedCallback cb
cb'' <- mk_FaviconDatabaseFaviconChangedCallback cb'
connectSignalFunPtr obj "favicon-changed" cb'' SignalConnectBefore
{- |
Connect a signal handler for the “@favicon-changed@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Signals.after' faviconDatabase #faviconChanged callback
@
-}
afterFaviconDatabaseFaviconChanged :: (IsFaviconDatabase a, MonadIO m) => a -> FaviconDatabaseFaviconChangedCallback -> m SignalHandlerId
afterFaviconDatabaseFaviconChanged obj cb = liftIO $ do
let cb' = wrap_FaviconDatabaseFaviconChangedCallback cb
cb'' <- mk_FaviconDatabaseFaviconChangedCallback cb'
connectSignalFunPtr obj "favicon-changed" cb'' SignalConnectAfter
#if ENABLE_OVERLOADING
instance O.HasAttributeList FaviconDatabase
type instance O.AttributeList FaviconDatabase = FaviconDatabaseAttributeList
type FaviconDatabaseAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
data FaviconDatabaseFaviconChangedSignalInfo
instance SignalInfo FaviconDatabaseFaviconChangedSignalInfo where
type HaskellCallbackType FaviconDatabaseFaviconChangedSignalInfo = FaviconDatabaseFaviconChangedCallback
connectSignal _ obj cb connectMode = do
let cb' = wrap_FaviconDatabaseFaviconChangedCallback cb
cb'' <- mk_FaviconDatabaseFaviconChangedCallback cb'
connectSignalFunPtr obj "favicon-changed" cb'' connectMode
type instance O.SignalList FaviconDatabase = FaviconDatabaseSignalList
type FaviconDatabaseSignalList = ('[ '("faviconChanged", FaviconDatabaseFaviconChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
-- method FaviconDatabase::clear
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "database", argType = TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitFaviconDatabase", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "webkit_favicon_database_clear" webkit_favicon_database_clear ::
Ptr FaviconDatabase -> -- database : TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"})
IO ()
{- |
Clears all icons from the database.
-}
faviconDatabaseClear ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a) =>
a
{- ^ /@database@/: a 'GI.WebKit2.Objects.FaviconDatabase.FaviconDatabase' -}
-> m ()
faviconDatabaseClear database = liftIO $ do
database' <- unsafeManagedPtrCastPtr database
webkit_favicon_database_clear database'
touchManagedPtr database
return ()
#if ENABLE_OVERLOADING
data FaviconDatabaseClearMethodInfo
instance (signature ~ (m ()), MonadIO m, IsFaviconDatabase a) => O.MethodInfo FaviconDatabaseClearMethodInfo a signature where
overloadedMethod _ = faviconDatabaseClear
#endif
-- method FaviconDatabase::get_favicon
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "database", argType = TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitFaviconDatabase", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "page_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "URI of the page for which we want to retrieve the favicon", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GCancellable or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GAsyncReadyCallback to call when the request is\n satisfied or %NULL if you don't care about the result.", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "The data to pass to @callback.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "webkit_favicon_database_get_favicon" webkit_favicon_database_get_favicon ::
Ptr FaviconDatabase -> -- database : TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"})
CString -> -- page_uri : TBasicType TUTF8
Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"})
FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"})
Ptr () -> -- user_data : TBasicType TPtr
IO ()
{- |
Asynchronously obtains a 'GI.Cairo.Structs.Surface.Surface' of the favicon for the
given page URI. It returns the cached icon if it\'s in the database
asynchronously waiting for the icon to be read from the database.
This is an asynchronous method. When the operation is finished, callback will
be invoked. You can then call 'GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFaviconFinish'
to get the result of the operation.
You must call 'GI.WebKit2.Objects.WebContext.webContextSetFaviconDatabaseDirectory' for
the 'GI.WebKit2.Objects.WebContext.WebContext' associated with this 'GI.WebKit2.Objects.FaviconDatabase.FaviconDatabase'
before attempting to use this function; otherwise,
'GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFaviconFinish' will return
'GI.WebKit2.Enums.FaviconDatabaseErrorNotInitialized'.
-}
faviconDatabaseGetFavicon ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a, Gio.Cancellable.IsCancellable b) =>
a
{- ^ /@database@/: a 'GI.WebKit2.Objects.FaviconDatabase.FaviconDatabase' -}
-> T.Text
{- ^ /@pageUri@/: URI of the page for which we want to retrieve the favicon -}
-> Maybe (b)
{- ^ /@cancellable@/: A 'GI.Gio.Objects.Cancellable.Cancellable' or 'Nothing'. -}
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
{- ^ /@callback@/: A 'GI.Gio.Callbacks.AsyncReadyCallback' to call when the request is
satisfied or 'Nothing' if you don\'t care about the result. -}
-> m ()
faviconDatabaseGetFavicon database pageUri cancellable callback = liftIO $ do
database' <- unsafeManagedPtrCastPtr database
pageUri' <- textToCString pageUri
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
jCancellable' <- unsafeManagedPtrCastPtr jCancellable
return jCancellable'
maybeCallback <- case callback of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jCallback -> do
ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback))
poke ptrcallback jCallback'
return jCallback'
let userData = nullPtr
webkit_favicon_database_get_favicon database' pageUri' maybeCancellable maybeCallback userData
touchManagedPtr database
whenJust cancellable touchManagedPtr
freeMem pageUri'
return ()
#if ENABLE_OVERLOADING
data FaviconDatabaseGetFaviconMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsFaviconDatabase a, Gio.Cancellable.IsCancellable b) => O.MethodInfo FaviconDatabaseGetFaviconMethodInfo a signature where
overloadedMethod _ = faviconDatabaseGetFavicon
#endif
-- method FaviconDatabase::get_favicon_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "database", argType = TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitFaviconDatabase", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GAsyncResult obtained from the #GAsyncReadyCallback passed to webkit_favicon_database_get_favicon()", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "cairo", name = "Surface"}))
-- throws : True
-- Skip return : False
foreign import ccall "webkit_favicon_database_get_favicon_finish" webkit_favicon_database_get_favicon_finish ::
Ptr FaviconDatabase -> -- database : TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"})
Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"})
Ptr (Ptr GError) -> -- error
IO (Ptr Cairo.Surface.Surface)
{- |
Finishes an operation started with 'GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFavicon'.
-}
faviconDatabaseGetFaviconFinish ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a, Gio.AsyncResult.IsAsyncResult b) =>
a
{- ^ /@database@/: a 'GI.WebKit2.Objects.FaviconDatabase.FaviconDatabase' -}
-> b
{- ^ /@result@/: A 'GI.Gio.Interfaces.AsyncResult.AsyncResult' obtained from the 'GI.Gio.Callbacks.AsyncReadyCallback' passed to 'GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFavicon' -}
-> m Cairo.Surface.Surface
{- ^ __Returns:__ a new reference to a 'GI.Cairo.Structs.Surface.Surface', or
'Nothing' in case of error. /(Can throw 'Data.GI.Base.GError.GError')/ -}
faviconDatabaseGetFaviconFinish database result_ = liftIO $ do
database' <- unsafeManagedPtrCastPtr database
result_' <- unsafeManagedPtrCastPtr result_
onException (do
result <- propagateGError $ webkit_favicon_database_get_favicon_finish database' result_'
checkUnexpectedReturnNULL "faviconDatabaseGetFaviconFinish" result
result' <- (wrapBoxed Cairo.Surface.Surface) result
touchManagedPtr database
touchManagedPtr result_
return result'
) (do
return ()
)
#if ENABLE_OVERLOADING
data FaviconDatabaseGetFaviconFinishMethodInfo
instance (signature ~ (b -> m Cairo.Surface.Surface), MonadIO m, IsFaviconDatabase a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo FaviconDatabaseGetFaviconFinishMethodInfo a signature where
overloadedMethod _ = faviconDatabaseGetFaviconFinish
#endif
-- method FaviconDatabase::get_favicon_uri
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "database", argType = TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitFaviconDatabase", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "page_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "URI of the page containing the icon", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False
foreign import ccall "webkit_favicon_database_get_favicon_uri" webkit_favicon_database_get_favicon_uri ::
Ptr FaviconDatabase -> -- database : TInterface (Name {namespace = "WebKit2", name = "FaviconDatabase"})
CString -> -- page_uri : TBasicType TUTF8
IO CString
{- |
Obtains the URI of the favicon for the given /@pageUri@/.
-}
faviconDatabaseGetFaviconUri ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a) =>
a
{- ^ /@database@/: a 'GI.WebKit2.Objects.FaviconDatabase.FaviconDatabase' -}
-> T.Text
{- ^ /@pageUri@/: URI of the page containing the icon -}
-> m (Maybe T.Text)
{- ^ __Returns:__ a newly allocated URI for the favicon, or 'Nothing' if the
database doesn\'t have a favicon for /@pageUri@/. -}
faviconDatabaseGetFaviconUri database pageUri = liftIO $ do
database' <- unsafeManagedPtrCastPtr database
pageUri' <- textToCString pageUri
result <- webkit_favicon_database_get_favicon_uri database' pageUri'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
freeMem result'
return result''
touchManagedPtr database
freeMem pageUri'
return maybeResult
#if ENABLE_OVERLOADING
data FaviconDatabaseGetFaviconUriMethodInfo
instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m, IsFaviconDatabase a) => O.MethodInfo FaviconDatabaseGetFaviconUriMethodInfo a signature where
overloadedMethod _ = faviconDatabaseGetFaviconUri
#endif