{- | 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 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 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