{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2.Objects.FaviconDatabase
(
FaviconDatabase(..) ,
IsFaviconDatabase ,
toFaviconDatabase ,
#if defined(ENABLE_OVERLOADING)
ResolveFaviconDatabaseMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
FaviconDatabaseClearMethodInfo ,
#endif
faviconDatabaseClear ,
#if defined(ENABLE_OVERLOADING)
FaviconDatabaseGetFaviconMethodInfo ,
#endif
faviconDatabaseGetFavicon ,
#if defined(ENABLE_OVERLOADING)
FaviconDatabaseGetFaviconFinishMethodInfo,
#endif
faviconDatabaseGetFaviconFinish ,
#if defined(ENABLE_OVERLOADING)
FaviconDatabaseGetFaviconUriMethodInfo ,
#endif
faviconDatabaseGetFaviconUri ,
FaviconDatabaseFaviconChangedCallback ,
#if defined(ENABLE_OVERLOADING)
FaviconDatabaseFaviconChangedSignalInfo ,
#endif
afterFaviconDatabaseFaviconChanged ,
onFaviconDatabaseFaviconChanged ,
) 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.Coerce as Coerce
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.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
newtype FaviconDatabase = FaviconDatabase (SP.ManagedPtr FaviconDatabase)
deriving (FaviconDatabase -> FaviconDatabase -> Bool
(FaviconDatabase -> FaviconDatabase -> Bool)
-> (FaviconDatabase -> FaviconDatabase -> Bool)
-> Eq FaviconDatabase
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FaviconDatabase -> FaviconDatabase -> Bool
$c/= :: FaviconDatabase -> FaviconDatabase -> Bool
== :: FaviconDatabase -> FaviconDatabase -> Bool
$c== :: FaviconDatabase -> FaviconDatabase -> Bool
Eq)
instance SP.ManagedPtrNewtype FaviconDatabase where
toManagedPtr :: FaviconDatabase -> ManagedPtr FaviconDatabase
toManagedPtr (FaviconDatabase ManagedPtr FaviconDatabase
p) = ManagedPtr FaviconDatabase
p
foreign import ccall "webkit_favicon_database_get_type"
c_webkit_favicon_database_get_type :: IO B.Types.GType
instance B.Types.TypedObject FaviconDatabase where
glibType :: IO GType
glibType = IO GType
c_webkit_favicon_database_get_type
instance B.Types.GObject FaviconDatabase
class (SP.GObject o, O.IsDescendantOf FaviconDatabase o) => IsFaviconDatabase o
instance (SP.GObject o, O.IsDescendantOf FaviconDatabase o) => IsFaviconDatabase o
instance O.HasParentTypes FaviconDatabase
type instance O.ParentTypes FaviconDatabase = '[GObject.Object.Object]
toFaviconDatabase :: (MIO.MonadIO m, IsFaviconDatabase o) => o -> m FaviconDatabase
toFaviconDatabase :: forall (m :: * -> *) o.
(MonadIO m, IsFaviconDatabase o) =>
o -> m FaviconDatabase
toFaviconDatabase = IO FaviconDatabase -> m FaviconDatabase
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO FaviconDatabase -> m FaviconDatabase)
-> (o -> IO FaviconDatabase) -> o -> m FaviconDatabase
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr FaviconDatabase -> FaviconDatabase)
-> o -> IO FaviconDatabase
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr FaviconDatabase -> FaviconDatabase
FaviconDatabase
instance B.GValue.IsGValue (Maybe FaviconDatabase) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_favicon_database_get_type
gvalueSet_ :: Ptr GValue -> Maybe FaviconDatabase -> IO ()
gvalueSet_ Ptr GValue
gv Maybe FaviconDatabase
P.Nothing = Ptr GValue -> Ptr FaviconDatabase -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr FaviconDatabase
forall a. Ptr a
FP.nullPtr :: FP.Ptr FaviconDatabase)
gvalueSet_ Ptr GValue
gv (P.Just FaviconDatabase
obj) = FaviconDatabase -> (Ptr FaviconDatabase -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr FaviconDatabase
obj (Ptr GValue -> Ptr FaviconDatabase -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe FaviconDatabase)
gvalueGet_ Ptr GValue
gv = do
Ptr FaviconDatabase
ptr <- Ptr GValue -> IO (Ptr FaviconDatabase)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr FaviconDatabase)
if Ptr FaviconDatabase
ptr Ptr FaviconDatabase -> Ptr FaviconDatabase -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr FaviconDatabase
forall a. Ptr a
FP.nullPtr
then FaviconDatabase -> Maybe FaviconDatabase
forall a. a -> Maybe a
P.Just (FaviconDatabase -> Maybe FaviconDatabase)
-> IO FaviconDatabase -> IO (Maybe FaviconDatabase)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr FaviconDatabase -> FaviconDatabase)
-> Ptr FaviconDatabase -> IO FaviconDatabase
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr FaviconDatabase -> FaviconDatabase
FaviconDatabase Ptr FaviconDatabase
ptr
else Maybe FaviconDatabase -> IO (Maybe FaviconDatabase)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe FaviconDatabase
forall a. Maybe a
P.Nothing
#if defined(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 "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveFaviconDatabaseMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveFaviconDatabaseMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveFaviconDatabaseMethod t FaviconDatabase, O.OverloadedMethod info FaviconDatabase p) => OL.IsLabel t (FaviconDatabase -> 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 ~ ResolveFaviconDatabaseMethod t FaviconDatabase, O.OverloadedMethod info FaviconDatabase p, R.HasField t FaviconDatabase p) => R.HasField t FaviconDatabase p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveFaviconDatabaseMethod t FaviconDatabase, O.OverloadedMethodInfo info FaviconDatabase) => OL.IsLabel t (O.MethodProxy info FaviconDatabase) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
type FaviconDatabaseFaviconChangedCallback =
T.Text
-> T.Text
-> IO ()
type C_FaviconDatabaseFaviconChangedCallback =
Ptr FaviconDatabase ->
CString ->
CString ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_FaviconDatabaseFaviconChangedCallback :: C_FaviconDatabaseFaviconChangedCallback -> IO (FunPtr C_FaviconDatabaseFaviconChangedCallback)
wrap_FaviconDatabaseFaviconChangedCallback ::
GObject a => (a -> FaviconDatabaseFaviconChangedCallback) ->
C_FaviconDatabaseFaviconChangedCallback
wrap_FaviconDatabaseFaviconChangedCallback :: forall a.
GObject a =>
(a -> FaviconDatabaseFaviconChangedCallback)
-> C_FaviconDatabaseFaviconChangedCallback
wrap_FaviconDatabaseFaviconChangedCallback a -> FaviconDatabaseFaviconChangedCallback
gi'cb Ptr FaviconDatabase
gi'selfPtr CString
pageUri CString
faviconUri Ptr ()
_ = do
Text
pageUri' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
pageUri
Text
faviconUri' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
faviconUri
Ptr FaviconDatabase -> (FaviconDatabase -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr FaviconDatabase
gi'selfPtr ((FaviconDatabase -> IO ()) -> IO ())
-> (FaviconDatabase -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \FaviconDatabase
gi'self -> a -> FaviconDatabaseFaviconChangedCallback
gi'cb (FaviconDatabase -> a
Coerce.coerce FaviconDatabase
gi'self) Text
pageUri' Text
faviconUri'
onFaviconDatabaseFaviconChanged :: (IsFaviconDatabase a, MonadIO m) => a -> ((?self :: a) => FaviconDatabaseFaviconChangedCallback) -> m SignalHandlerId
onFaviconDatabaseFaviconChanged :: forall a (m :: * -> *).
(IsFaviconDatabase a, MonadIO m) =>
a
-> ((?self::a) => FaviconDatabaseFaviconChangedCallback)
-> m SignalHandlerId
onFaviconDatabaseFaviconChanged a
obj (?self::a) => FaviconDatabaseFaviconChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> FaviconDatabaseFaviconChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => FaviconDatabaseFaviconChangedCallback
FaviconDatabaseFaviconChangedCallback
cb
let wrapped' :: C_FaviconDatabaseFaviconChangedCallback
wrapped' = (a -> FaviconDatabaseFaviconChangedCallback)
-> C_FaviconDatabaseFaviconChangedCallback
forall a.
GObject a =>
(a -> FaviconDatabaseFaviconChangedCallback)
-> C_FaviconDatabaseFaviconChangedCallback
wrap_FaviconDatabaseFaviconChangedCallback a -> FaviconDatabaseFaviconChangedCallback
wrapped
FunPtr C_FaviconDatabaseFaviconChangedCallback
wrapped'' <- C_FaviconDatabaseFaviconChangedCallback
-> IO (FunPtr C_FaviconDatabaseFaviconChangedCallback)
mk_FaviconDatabaseFaviconChangedCallback C_FaviconDatabaseFaviconChangedCallback
wrapped'
a
-> Text
-> FunPtr C_FaviconDatabaseFaviconChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"favicon-changed" FunPtr C_FaviconDatabaseFaviconChangedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterFaviconDatabaseFaviconChanged :: (IsFaviconDatabase a, MonadIO m) => a -> ((?self :: a) => FaviconDatabaseFaviconChangedCallback) -> m SignalHandlerId
afterFaviconDatabaseFaviconChanged :: forall a (m :: * -> *).
(IsFaviconDatabase a, MonadIO m) =>
a
-> ((?self::a) => FaviconDatabaseFaviconChangedCallback)
-> m SignalHandlerId
afterFaviconDatabaseFaviconChanged a
obj (?self::a) => FaviconDatabaseFaviconChangedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> FaviconDatabaseFaviconChangedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => FaviconDatabaseFaviconChangedCallback
FaviconDatabaseFaviconChangedCallback
cb
let wrapped' :: C_FaviconDatabaseFaviconChangedCallback
wrapped' = (a -> FaviconDatabaseFaviconChangedCallback)
-> C_FaviconDatabaseFaviconChangedCallback
forall a.
GObject a =>
(a -> FaviconDatabaseFaviconChangedCallback)
-> C_FaviconDatabaseFaviconChangedCallback
wrap_FaviconDatabaseFaviconChangedCallback a -> FaviconDatabaseFaviconChangedCallback
wrapped
FunPtr C_FaviconDatabaseFaviconChangedCallback
wrapped'' <- C_FaviconDatabaseFaviconChangedCallback
-> IO (FunPtr C_FaviconDatabaseFaviconChangedCallback)
mk_FaviconDatabaseFaviconChangedCallback C_FaviconDatabaseFaviconChangedCallback
wrapped'
a
-> Text
-> FunPtr C_FaviconDatabaseFaviconChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"favicon-changed" FunPtr C_FaviconDatabaseFaviconChangedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data FaviconDatabaseFaviconChangedSignalInfo
instance SignalInfo FaviconDatabaseFaviconChangedSignalInfo where
type HaskellCallbackType FaviconDatabaseFaviconChangedSignalInfo = FaviconDatabaseFaviconChangedCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_FaviconDatabaseFaviconChangedCallback cb
cb'' <- mk_FaviconDatabaseFaviconChangedCallback cb'
connectSignalFunPtr obj "favicon-changed" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.FaviconDatabase::favicon-changed"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-FaviconDatabase.html#g:signal:faviconChanged"})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList FaviconDatabase
type instance O.AttributeList FaviconDatabase = FaviconDatabaseAttributeList
type FaviconDatabaseAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList FaviconDatabase = FaviconDatabaseSignalList
type FaviconDatabaseSignalList = ('[ '("faviconChanged", FaviconDatabaseFaviconChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "webkit_favicon_database_clear" webkit_favicon_database_clear ::
Ptr FaviconDatabase ->
IO ()
faviconDatabaseClear ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a) =>
a
-> m ()
faviconDatabaseClear :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFaviconDatabase a) =>
a -> m ()
faviconDatabaseClear a
database = 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 FaviconDatabase
database' <- a -> IO (Ptr FaviconDatabase)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
database
Ptr FaviconDatabase -> IO ()
webkit_favicon_database_clear Ptr FaviconDatabase
database'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
database
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data FaviconDatabaseClearMethodInfo
instance (signature ~ (m ()), MonadIO m, IsFaviconDatabase a) => O.OverloadedMethod FaviconDatabaseClearMethodInfo a signature where
overloadedMethod = faviconDatabaseClear
instance O.OverloadedMethodInfo FaviconDatabaseClearMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseClear",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-FaviconDatabase.html#v:faviconDatabaseClear"
})
#endif
foreign import ccall "webkit_favicon_database_get_favicon" webkit_favicon_database_get_favicon ::
Ptr FaviconDatabase ->
CString ->
Ptr Gio.Cancellable.Cancellable ->
FunPtr Gio.Callbacks.C_AsyncReadyCallback ->
Ptr () ->
IO ()
faviconDatabaseGetFavicon ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a, Gio.Cancellable.IsCancellable b) =>
a
-> T.Text
-> Maybe (b)
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
-> m ()
faviconDatabaseGetFavicon :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsFaviconDatabase a, IsCancellable b) =>
a -> Text -> Maybe b -> Maybe AsyncReadyCallback -> m ()
faviconDatabaseGetFavicon a
database Text
pageUri Maybe b
cancellable Maybe AsyncReadyCallback
callback = 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 FaviconDatabase
database' <- a -> IO (Ptr FaviconDatabase)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
database
CString
pageUri' <- Text -> IO CString
textToCString Text
pageUri
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
FunPtr C_AsyncReadyCallback
maybeCallback <- case Maybe AsyncReadyCallback
callback of
Maybe AsyncReadyCallback
Nothing -> FunPtr C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr Any -> FunPtr C_AsyncReadyCallback
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr)
Just AsyncReadyCallback
jCallback -> do
Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback <- IO (Ptr (FunPtr C_AsyncReadyCallback))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
FunPtr C_AsyncReadyCallback
jCallback' <- C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
Gio.Callbacks.mk_AsyncReadyCallback (Maybe (Ptr (FunPtr C_AsyncReadyCallback))
-> AsyncReadyCallback_WithClosures -> C_AsyncReadyCallback
Gio.Callbacks.wrap_AsyncReadyCallback (Ptr (FunPtr C_AsyncReadyCallback)
-> Maybe (Ptr (FunPtr C_AsyncReadyCallback))
forall a. a -> Maybe a
Just Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback) (AsyncReadyCallback -> AsyncReadyCallback_WithClosures
Gio.Callbacks.drop_closures_AsyncReadyCallback AsyncReadyCallback
jCallback))
Ptr (FunPtr C_AsyncReadyCallback)
-> FunPtr C_AsyncReadyCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback FunPtr C_AsyncReadyCallback
jCallback'
FunPtr C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return FunPtr C_AsyncReadyCallback
jCallback'
let userData :: Ptr a
userData = Ptr a
forall a. Ptr a
nullPtr
Ptr FaviconDatabase
-> CString
-> Ptr Cancellable
-> FunPtr C_AsyncReadyCallback
-> Ptr ()
-> IO ()
webkit_favicon_database_get_favicon Ptr FaviconDatabase
database' CString
pageUri' Ptr Cancellable
maybeCancellable FunPtr C_AsyncReadyCallback
maybeCallback Ptr ()
forall a. Ptr a
userData
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
database
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
pageUri'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data FaviconDatabaseGetFaviconMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsFaviconDatabase a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod FaviconDatabaseGetFaviconMethodInfo a signature where
overloadedMethod = faviconDatabaseGetFavicon
instance O.OverloadedMethodInfo FaviconDatabaseGetFaviconMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFavicon",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-FaviconDatabase.html#v:faviconDatabaseGetFavicon"
})
#endif
foreign import ccall "webkit_favicon_database_get_favicon_finish" webkit_favicon_database_get_favicon_finish ::
Ptr FaviconDatabase ->
Ptr Gio.AsyncResult.AsyncResult ->
Ptr (Ptr GError) ->
IO (Ptr Cairo.Surface.Surface)
faviconDatabaseGetFaviconFinish ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a, Gio.AsyncResult.IsAsyncResult b) =>
a
-> b
-> m Cairo.Surface.Surface
faviconDatabaseGetFaviconFinish :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsFaviconDatabase a, IsAsyncResult b) =>
a -> b -> m Surface
faviconDatabaseGetFaviconFinish a
database b
result_ = IO Surface -> m Surface
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Surface -> m Surface) -> IO Surface -> m Surface
forall a b. (a -> b) -> a -> b
$ do
Ptr FaviconDatabase
database' <- a -> IO (Ptr FaviconDatabase)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
database
Ptr AsyncResult
result_' <- b -> IO (Ptr AsyncResult)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
result_
IO Surface -> IO () -> IO Surface
forall a b. IO a -> IO b -> IO a
onException (do
Ptr Surface
result <- (Ptr (Ptr GError) -> IO (Ptr Surface)) -> IO (Ptr Surface)
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO (Ptr Surface)) -> IO (Ptr Surface))
-> (Ptr (Ptr GError) -> IO (Ptr Surface)) -> IO (Ptr Surface)
forall a b. (a -> b) -> a -> b
$ Ptr FaviconDatabase
-> Ptr AsyncResult -> Ptr (Ptr GError) -> IO (Ptr Surface)
webkit_favicon_database_get_favicon_finish Ptr FaviconDatabase
database' Ptr AsyncResult
result_'
Text -> Ptr Surface -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"faviconDatabaseGetFaviconFinish" Ptr Surface
result
Surface
result' <- ((ManagedPtr Surface -> Surface) -> Ptr Surface -> IO Surface
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Surface -> Surface
Cairo.Surface.Surface) Ptr Surface
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
database
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
result_
Surface -> IO Surface
forall (m :: * -> *) a. Monad m => a -> m a
return Surface
result'
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if defined(ENABLE_OVERLOADING)
data FaviconDatabaseGetFaviconFinishMethodInfo
instance (signature ~ (b -> m Cairo.Surface.Surface), MonadIO m, IsFaviconDatabase a, Gio.AsyncResult.IsAsyncResult b) => O.OverloadedMethod FaviconDatabaseGetFaviconFinishMethodInfo a signature where
overloadedMethod = faviconDatabaseGetFaviconFinish
instance O.OverloadedMethodInfo FaviconDatabaseGetFaviconFinishMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFaviconFinish",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-FaviconDatabase.html#v:faviconDatabaseGetFaviconFinish"
})
#endif
foreign import ccall "webkit_favicon_database_get_favicon_uri" webkit_favicon_database_get_favicon_uri ::
Ptr FaviconDatabase ->
CString ->
IO CString
faviconDatabaseGetFaviconUri ::
(B.CallStack.HasCallStack, MonadIO m, IsFaviconDatabase a) =>
a
-> T.Text
-> m (Maybe T.Text)
faviconDatabaseGetFaviconUri :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsFaviconDatabase a) =>
a -> Text -> m (Maybe Text)
faviconDatabaseGetFaviconUri a
database Text
pageUri = 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 FaviconDatabase
database' <- a -> IO (Ptr FaviconDatabase)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
database
CString
pageUri' <- Text -> IO CString
textToCString Text
pageUri
CString
result <- Ptr FaviconDatabase -> CString -> IO CString
webkit_favicon_database_get_favicon_uri Ptr FaviconDatabase
database' CString
pageUri'
Maybe Text
maybeResult <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
result ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \CString
result' -> do
Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem 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
database
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
pageUri'
Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult
#if defined(ENABLE_OVERLOADING)
data FaviconDatabaseGetFaviconUriMethodInfo
instance (signature ~ (T.Text -> m (Maybe T.Text)), MonadIO m, IsFaviconDatabase a) => O.OverloadedMethod FaviconDatabaseGetFaviconUriMethodInfo a signature where
overloadedMethod = faviconDatabaseGetFaviconUri
instance O.OverloadedMethodInfo FaviconDatabaseGetFaviconUriMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Objects.FaviconDatabase.faviconDatabaseGetFaviconUri",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Objects-FaviconDatabase.html#v:faviconDatabaseGetFaviconUri"
})
#endif