gi-webkit2-4.0.21: GI/WebKit2/Objects/Download.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.Download
(
-- * Exported types
Download(..) ,
IsDownload ,
toDownload ,
noDownload ,
-- * Methods
-- ** cancel #method:cancel#
#if ENABLE_OVERLOADING
DownloadCancelMethodInfo ,
#endif
downloadCancel ,
-- ** getAllowOverwrite #method:getAllowOverwrite#
#if ENABLE_OVERLOADING
DownloadGetAllowOverwriteMethodInfo ,
#endif
downloadGetAllowOverwrite ,
-- ** getDestination #method:getDestination#
#if ENABLE_OVERLOADING
DownloadGetDestinationMethodInfo ,
#endif
downloadGetDestination ,
-- ** getElapsedTime #method:getElapsedTime#
#if ENABLE_OVERLOADING
DownloadGetElapsedTimeMethodInfo ,
#endif
downloadGetElapsedTime ,
-- ** getEstimatedProgress #method:getEstimatedProgress#
#if ENABLE_OVERLOADING
DownloadGetEstimatedProgressMethodInfo ,
#endif
downloadGetEstimatedProgress ,
-- ** getReceivedDataLength #method:getReceivedDataLength#
#if ENABLE_OVERLOADING
DownloadGetReceivedDataLengthMethodInfo ,
#endif
downloadGetReceivedDataLength ,
-- ** getRequest #method:getRequest#
#if ENABLE_OVERLOADING
DownloadGetRequestMethodInfo ,
#endif
downloadGetRequest ,
-- ** getResponse #method:getResponse#
#if ENABLE_OVERLOADING
DownloadGetResponseMethodInfo ,
#endif
downloadGetResponse ,
-- ** getWebView #method:getWebView#
#if ENABLE_OVERLOADING
DownloadGetWebViewMethodInfo ,
#endif
downloadGetWebView ,
-- ** setAllowOverwrite #method:setAllowOverwrite#
#if ENABLE_OVERLOADING
DownloadSetAllowOverwriteMethodInfo ,
#endif
downloadSetAllowOverwrite ,
-- ** setDestination #method:setDestination#
#if ENABLE_OVERLOADING
DownloadSetDestinationMethodInfo ,
#endif
downloadSetDestination ,
-- * Properties
-- ** allowOverwrite #attr:allowOverwrite#
{- | Whether or not the download is allowed to overwrite an existing file on
disk. If this property is 'False' and the destination already exists,
the download will fail.
/Since: 2.6/
-}
#if ENABLE_OVERLOADING
DownloadAllowOverwritePropertyInfo ,
#endif
constructDownloadAllowOverwrite ,
#if ENABLE_OVERLOADING
downloadAllowOverwrite ,
#endif
getDownloadAllowOverwrite ,
setDownloadAllowOverwrite ,
-- ** destination #attr:destination#
{- | The local URI to where the download will be saved.
-}
#if ENABLE_OVERLOADING
DownloadDestinationPropertyInfo ,
#endif
#if ENABLE_OVERLOADING
downloadDestination ,
#endif
getDownloadDestination ,
-- ** estimatedProgress #attr:estimatedProgress#
{- | An estimate of the percent completion for the download operation.
This value will range from 0.0 to 1.0. The value is an estimate
based on the total number of bytes expected to be received for
a download.
If you need a more accurate progress information you can connect to
'GI.WebKit2.Objects.Download.Download'::@/received-data/@ signal to track the progress.
-}
#if ENABLE_OVERLOADING
DownloadEstimatedProgressPropertyInfo ,
#endif
#if ENABLE_OVERLOADING
downloadEstimatedProgress ,
#endif
getDownloadEstimatedProgress ,
-- ** response #attr:response#
{- | The 'GI.WebKit2.Objects.URIResponse.URIResponse' associated with this download.
-}
#if ENABLE_OVERLOADING
DownloadResponsePropertyInfo ,
#endif
#if ENABLE_OVERLOADING
downloadResponse ,
#endif
getDownloadResponse ,
-- * Signals
-- ** createdDestination #signal:createdDestination#
C_DownloadCreatedDestinationCallback ,
DownloadCreatedDestinationCallback ,
#if ENABLE_OVERLOADING
DownloadCreatedDestinationSignalInfo ,
#endif
afterDownloadCreatedDestination ,
genClosure_DownloadCreatedDestination ,
mk_DownloadCreatedDestinationCallback ,
noDownloadCreatedDestinationCallback ,
onDownloadCreatedDestination ,
wrap_DownloadCreatedDestinationCallback ,
-- ** decideDestination #signal:decideDestination#
C_DownloadDecideDestinationCallback ,
DownloadDecideDestinationCallback ,
#if ENABLE_OVERLOADING
DownloadDecideDestinationSignalInfo ,
#endif
afterDownloadDecideDestination ,
genClosure_DownloadDecideDestination ,
mk_DownloadDecideDestinationCallback ,
noDownloadDecideDestinationCallback ,
onDownloadDecideDestination ,
wrap_DownloadDecideDestinationCallback ,
-- ** failed #signal:failed#
C_DownloadFailedCallback ,
DownloadFailedCallback ,
#if ENABLE_OVERLOADING
DownloadFailedSignalInfo ,
#endif
afterDownloadFailed ,
genClosure_DownloadFailed ,
mk_DownloadFailedCallback ,
noDownloadFailedCallback ,
onDownloadFailed ,
wrap_DownloadFailedCallback ,
-- ** finished #signal:finished#
C_DownloadFinishedCallback ,
DownloadFinishedCallback ,
#if ENABLE_OVERLOADING
DownloadFinishedSignalInfo ,
#endif
afterDownloadFinished ,
genClosure_DownloadFinished ,
mk_DownloadFinishedCallback ,
noDownloadFinishedCallback ,
onDownloadFinished ,
wrap_DownloadFinishedCallback ,
-- ** receivedData #signal:receivedData#
C_DownloadReceivedDataCallback ,
DownloadReceivedDataCallback ,
#if ENABLE_OVERLOADING
DownloadReceivedDataSignalInfo ,
#endif
afterDownloadReceivedData ,
genClosure_DownloadReceivedData ,
mk_DownloadReceivedDataCallback ,
noDownloadReceivedDataCallback ,
onDownloadReceivedData ,
wrap_DownloadReceivedDataCallback ,
) 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.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2.Objects.URIRequest as WebKit2.URIRequest
import {-# SOURCE #-} qualified GI.WebKit2.Objects.URIResponse as WebKit2.URIResponse
import {-# SOURCE #-} qualified GI.WebKit2.Objects.WebView as WebKit2.WebView
-- | Memory-managed wrapper type.
newtype Download = Download (ManagedPtr Download)
foreign import ccall "webkit_download_get_type"
c_webkit_download_get_type :: IO GType
instance GObject Download where
gobjectType = c_webkit_download_get_type
-- | Type class for types which can be safely cast to `Download`, for instance with `toDownload`.
class (GObject o, O.IsDescendantOf Download o) => IsDownload o
instance (GObject o, O.IsDescendantOf Download o) => IsDownload o
instance O.HasParentTypes Download
type instance O.ParentTypes Download = '[GObject.Object.Object]
-- | Cast to `Download`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDownload :: (MonadIO m, IsDownload o) => o -> m Download
toDownload = liftIO . unsafeCastTo Download
-- | A convenience alias for `Nothing` :: `Maybe` `Download`.
noDownload :: Maybe Download
noDownload = Nothing
#if ENABLE_OVERLOADING
type family ResolveDownloadMethod (t :: Symbol) (o :: *) :: * where
ResolveDownloadMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveDownloadMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveDownloadMethod "cancel" o = DownloadCancelMethodInfo
ResolveDownloadMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveDownloadMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveDownloadMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveDownloadMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveDownloadMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveDownloadMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveDownloadMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveDownloadMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveDownloadMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveDownloadMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveDownloadMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveDownloadMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveDownloadMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveDownloadMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveDownloadMethod "getAllowOverwrite" o = DownloadGetAllowOverwriteMethodInfo
ResolveDownloadMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveDownloadMethod "getDestination" o = DownloadGetDestinationMethodInfo
ResolveDownloadMethod "getElapsedTime" o = DownloadGetElapsedTimeMethodInfo
ResolveDownloadMethod "getEstimatedProgress" o = DownloadGetEstimatedProgressMethodInfo
ResolveDownloadMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveDownloadMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveDownloadMethod "getReceivedDataLength" o = DownloadGetReceivedDataLengthMethodInfo
ResolveDownloadMethod "getRequest" o = DownloadGetRequestMethodInfo
ResolveDownloadMethod "getResponse" o = DownloadGetResponseMethodInfo
ResolveDownloadMethod "getWebView" o = DownloadGetWebViewMethodInfo
ResolveDownloadMethod "setAllowOverwrite" o = DownloadSetAllowOverwriteMethodInfo
ResolveDownloadMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveDownloadMethod "setDestination" o = DownloadSetDestinationMethodInfo
ResolveDownloadMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveDownloadMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDownloadMethod t Download, O.MethodInfo info Download p) => OL.IsLabel t (Download -> 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 Download::created-destination
{- |
This signal is emitted after 'GI.WebKit2.Objects.Download.Download'::@/decide-destination/@ and before
'GI.WebKit2.Objects.Download.Download'::@/received-data/@ to notify that destination file has been
created successfully at /@destination@/.
-}
type DownloadCreatedDestinationCallback =
T.Text
{- ^ /@destination@/: the destination URI -}
-> IO ()
-- | A convenience synonym for @`Nothing` :: `Maybe` `DownloadCreatedDestinationCallback`@.
noDownloadCreatedDestinationCallback :: Maybe DownloadCreatedDestinationCallback
noDownloadCreatedDestinationCallback = Nothing
-- | Type for the callback on the (unwrapped) C side.
type C_DownloadCreatedDestinationCallback =
Ptr () -> -- object
CString ->
Ptr () -> -- user_data
IO ()
-- | Generate a function pointer callable from C code, from a `C_DownloadCreatedDestinationCallback`.
foreign import ccall "wrapper"
mk_DownloadCreatedDestinationCallback :: C_DownloadCreatedDestinationCallback -> IO (FunPtr C_DownloadCreatedDestinationCallback)
-- | Wrap the callback into a `GClosure`.
genClosure_DownloadCreatedDestination :: MonadIO m => DownloadCreatedDestinationCallback -> m (GClosure C_DownloadCreatedDestinationCallback)
genClosure_DownloadCreatedDestination cb = liftIO $ do
let cb' = wrap_DownloadCreatedDestinationCallback cb
mk_DownloadCreatedDestinationCallback cb' >>= B.GClosure.newGClosure
-- | Wrap a `DownloadCreatedDestinationCallback` into a `C_DownloadCreatedDestinationCallback`.
wrap_DownloadCreatedDestinationCallback ::
DownloadCreatedDestinationCallback ->
C_DownloadCreatedDestinationCallback
wrap_DownloadCreatedDestinationCallback _cb _ destination _ = do
destination' <- cstringToText destination
_cb destination'
{- |
Connect a signal handler for the “@created-destination@” 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' download #createdDestination callback
@
-}
onDownloadCreatedDestination :: (IsDownload a, MonadIO m) => a -> DownloadCreatedDestinationCallback -> m SignalHandlerId
onDownloadCreatedDestination obj cb = liftIO $ do
let cb' = wrap_DownloadCreatedDestinationCallback cb
cb'' <- mk_DownloadCreatedDestinationCallback cb'
connectSignalFunPtr obj "created-destination" cb'' SignalConnectBefore
{- |
Connect a signal handler for the “@created-destination@” 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' download #createdDestination callback
@
-}
afterDownloadCreatedDestination :: (IsDownload a, MonadIO m) => a -> DownloadCreatedDestinationCallback -> m SignalHandlerId
afterDownloadCreatedDestination obj cb = liftIO $ do
let cb' = wrap_DownloadCreatedDestinationCallback cb
cb'' <- mk_DownloadCreatedDestinationCallback cb'
connectSignalFunPtr obj "created-destination" cb'' SignalConnectAfter
-- signal Download::decide-destination
{- |
This signal is emitted after response is received to
decide a destination URI for the download. If this signal is not
handled the file will be downloaded to 'GI.GLib.Enums.UserDirectoryDirectoryDownload'
directory using /@suggestedFilename@/.
-}
type DownloadDecideDestinationCallback =
T.Text
{- ^ /@suggestedFilename@/: the filename suggested for the download -}
-> IO Bool
{- ^ __Returns:__ 'True' to stop other handlers from being invoked for the event.
'False' to propagate the event further. -}
-- | A convenience synonym for @`Nothing` :: `Maybe` `DownloadDecideDestinationCallback`@.
noDownloadDecideDestinationCallback :: Maybe DownloadDecideDestinationCallback
noDownloadDecideDestinationCallback = Nothing
-- | Type for the callback on the (unwrapped) C side.
type C_DownloadDecideDestinationCallback =
Ptr () -> -- object
CString ->
Ptr () -> -- user_data
IO CInt
-- | Generate a function pointer callable from C code, from a `C_DownloadDecideDestinationCallback`.
foreign import ccall "wrapper"
mk_DownloadDecideDestinationCallback :: C_DownloadDecideDestinationCallback -> IO (FunPtr C_DownloadDecideDestinationCallback)
-- | Wrap the callback into a `GClosure`.
genClosure_DownloadDecideDestination :: MonadIO m => DownloadDecideDestinationCallback -> m (GClosure C_DownloadDecideDestinationCallback)
genClosure_DownloadDecideDestination cb = liftIO $ do
let cb' = wrap_DownloadDecideDestinationCallback cb
mk_DownloadDecideDestinationCallback cb' >>= B.GClosure.newGClosure
-- | Wrap a `DownloadDecideDestinationCallback` into a `C_DownloadDecideDestinationCallback`.
wrap_DownloadDecideDestinationCallback ::
DownloadDecideDestinationCallback ->
C_DownloadDecideDestinationCallback
wrap_DownloadDecideDestinationCallback _cb _ suggestedFilename _ = do
suggestedFilename' <- cstringToText suggestedFilename
result <- _cb suggestedFilename'
let result' = (fromIntegral . fromEnum) result
return result'
{- |
Connect a signal handler for the “@decide-destination@” 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' download #decideDestination callback
@
-}
onDownloadDecideDestination :: (IsDownload a, MonadIO m) => a -> DownloadDecideDestinationCallback -> m SignalHandlerId
onDownloadDecideDestination obj cb = liftIO $ do
let cb' = wrap_DownloadDecideDestinationCallback cb
cb'' <- mk_DownloadDecideDestinationCallback cb'
connectSignalFunPtr obj "decide-destination" cb'' SignalConnectBefore
{- |
Connect a signal handler for the “@decide-destination@” 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' download #decideDestination callback
@
-}
afterDownloadDecideDestination :: (IsDownload a, MonadIO m) => a -> DownloadDecideDestinationCallback -> m SignalHandlerId
afterDownloadDecideDestination obj cb = liftIO $ do
let cb' = wrap_DownloadDecideDestinationCallback cb
cb'' <- mk_DownloadDecideDestinationCallback cb'
connectSignalFunPtr obj "decide-destination" cb'' SignalConnectAfter
-- signal Download::failed
{- |
This signal is emitted when an error occurs during the download
operation. The given /@error@/, of the domain @/WEBKIT_DOWNLOAD_ERROR/@,
contains further details of the failure. If the download is cancelled
with 'GI.WebKit2.Objects.Download.downloadCancel', this signal is emitted with error
'GI.WebKit2.Enums.DownloadErrorCancelledByUser'. The download operation finishes
after an error and 'GI.WebKit2.Objects.Download.Download'::@/finished/@ signal is emitted after this one.
-}
type DownloadFailedCallback =
GError
{- ^ /@error@/: the 'GError' that was triggered -}
-> IO ()
-- | A convenience synonym for @`Nothing` :: `Maybe` `DownloadFailedCallback`@.
noDownloadFailedCallback :: Maybe DownloadFailedCallback
noDownloadFailedCallback = Nothing
-- | Type for the callback on the (unwrapped) C side.
type C_DownloadFailedCallback =
Ptr () -> -- object
Ptr GError ->
Ptr () -> -- user_data
IO ()
-- | Generate a function pointer callable from C code, from a `C_DownloadFailedCallback`.
foreign import ccall "wrapper"
mk_DownloadFailedCallback :: C_DownloadFailedCallback -> IO (FunPtr C_DownloadFailedCallback)
-- | Wrap the callback into a `GClosure`.
genClosure_DownloadFailed :: MonadIO m => DownloadFailedCallback -> m (GClosure C_DownloadFailedCallback)
genClosure_DownloadFailed cb = liftIO $ do
let cb' = wrap_DownloadFailedCallback cb
mk_DownloadFailedCallback cb' >>= B.GClosure.newGClosure
-- | Wrap a `DownloadFailedCallback` into a `C_DownloadFailedCallback`.
wrap_DownloadFailedCallback ::
DownloadFailedCallback ->
C_DownloadFailedCallback
wrap_DownloadFailedCallback _cb _ error_ _ = do
error_' <- (newBoxed GError) error_
_cb error_'
{- |
Connect a signal handler for the “@failed@” 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' download #failed callback
@
-}
onDownloadFailed :: (IsDownload a, MonadIO m) => a -> DownloadFailedCallback -> m SignalHandlerId
onDownloadFailed obj cb = liftIO $ do
let cb' = wrap_DownloadFailedCallback cb
cb'' <- mk_DownloadFailedCallback cb'
connectSignalFunPtr obj "failed" cb'' SignalConnectBefore
{- |
Connect a signal handler for the “@failed@” 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' download #failed callback
@
-}
afterDownloadFailed :: (IsDownload a, MonadIO m) => a -> DownloadFailedCallback -> m SignalHandlerId
afterDownloadFailed obj cb = liftIO $ do
let cb' = wrap_DownloadFailedCallback cb
cb'' <- mk_DownloadFailedCallback cb'
connectSignalFunPtr obj "failed" cb'' SignalConnectAfter
-- signal Download::finished
{- |
This signal is emitted when download finishes successfully or due to an error.
In case of errors 'GI.WebKit2.Objects.Download.Download'::@/failed/@ signal is emitted before this one.
-}
type DownloadFinishedCallback =
IO ()
-- | A convenience synonym for @`Nothing` :: `Maybe` `DownloadFinishedCallback`@.
noDownloadFinishedCallback :: Maybe DownloadFinishedCallback
noDownloadFinishedCallback = Nothing
-- | Type for the callback on the (unwrapped) C side.
type C_DownloadFinishedCallback =
Ptr () -> -- object
Ptr () -> -- user_data
IO ()
-- | Generate a function pointer callable from C code, from a `C_DownloadFinishedCallback`.
foreign import ccall "wrapper"
mk_DownloadFinishedCallback :: C_DownloadFinishedCallback -> IO (FunPtr C_DownloadFinishedCallback)
-- | Wrap the callback into a `GClosure`.
genClosure_DownloadFinished :: MonadIO m => DownloadFinishedCallback -> m (GClosure C_DownloadFinishedCallback)
genClosure_DownloadFinished cb = liftIO $ do
let cb' = wrap_DownloadFinishedCallback cb
mk_DownloadFinishedCallback cb' >>= B.GClosure.newGClosure
-- | Wrap a `DownloadFinishedCallback` into a `C_DownloadFinishedCallback`.
wrap_DownloadFinishedCallback ::
DownloadFinishedCallback ->
C_DownloadFinishedCallback
wrap_DownloadFinishedCallback _cb _ _ = do
_cb
{- |
Connect a signal handler for the “@finished@” 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' download #finished callback
@
-}
onDownloadFinished :: (IsDownload a, MonadIO m) => a -> DownloadFinishedCallback -> m SignalHandlerId
onDownloadFinished obj cb = liftIO $ do
let cb' = wrap_DownloadFinishedCallback cb
cb'' <- mk_DownloadFinishedCallback cb'
connectSignalFunPtr obj "finished" cb'' SignalConnectBefore
{- |
Connect a signal handler for the “@finished@” 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' download #finished callback
@
-}
afterDownloadFinished :: (IsDownload a, MonadIO m) => a -> DownloadFinishedCallback -> m SignalHandlerId
afterDownloadFinished obj cb = liftIO $ do
let cb' = wrap_DownloadFinishedCallback cb
cb'' <- mk_DownloadFinishedCallback cb'
connectSignalFunPtr obj "finished" cb'' SignalConnectAfter
-- signal Download::received-data
{- |
This signal is emitted after response is received,
every time new data has been written to the destination. It\'s
useful to know the progress of the download operation.
-}
type DownloadReceivedDataCallback =
Word64
{- ^ /@dataLength@/: the length of data received in bytes -}
-> IO ()
-- | A convenience synonym for @`Nothing` :: `Maybe` `DownloadReceivedDataCallback`@.
noDownloadReceivedDataCallback :: Maybe DownloadReceivedDataCallback
noDownloadReceivedDataCallback = Nothing
-- | Type for the callback on the (unwrapped) C side.
type C_DownloadReceivedDataCallback =
Ptr () -> -- object
Word64 ->
Ptr () -> -- user_data
IO ()
-- | Generate a function pointer callable from C code, from a `C_DownloadReceivedDataCallback`.
foreign import ccall "wrapper"
mk_DownloadReceivedDataCallback :: C_DownloadReceivedDataCallback -> IO (FunPtr C_DownloadReceivedDataCallback)
-- | Wrap the callback into a `GClosure`.
genClosure_DownloadReceivedData :: MonadIO m => DownloadReceivedDataCallback -> m (GClosure C_DownloadReceivedDataCallback)
genClosure_DownloadReceivedData cb = liftIO $ do
let cb' = wrap_DownloadReceivedDataCallback cb
mk_DownloadReceivedDataCallback cb' >>= B.GClosure.newGClosure
-- | Wrap a `DownloadReceivedDataCallback` into a `C_DownloadReceivedDataCallback`.
wrap_DownloadReceivedDataCallback ::
DownloadReceivedDataCallback ->
C_DownloadReceivedDataCallback
wrap_DownloadReceivedDataCallback _cb _ dataLength _ = do
_cb dataLength
{- |
Connect a signal handler for the “@received-data@” 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' download #receivedData callback
@
-}
onDownloadReceivedData :: (IsDownload a, MonadIO m) => a -> DownloadReceivedDataCallback -> m SignalHandlerId
onDownloadReceivedData obj cb = liftIO $ do
let cb' = wrap_DownloadReceivedDataCallback cb
cb'' <- mk_DownloadReceivedDataCallback cb'
connectSignalFunPtr obj "received-data" cb'' SignalConnectBefore
{- |
Connect a signal handler for the “@received-data@” 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' download #receivedData callback
@
-}
afterDownloadReceivedData :: (IsDownload a, MonadIO m) => a -> DownloadReceivedDataCallback -> m SignalHandlerId
afterDownloadReceivedData obj cb = liftIO $ do
let cb' = wrap_DownloadReceivedDataCallback cb
cb'' <- mk_DownloadReceivedDataCallback cb'
connectSignalFunPtr obj "received-data" cb'' SignalConnectAfter
-- VVV Prop "allow-overwrite"
-- Type: TBasicType TBoolean
-- Flags: [PropertyReadable,PropertyWritable]
-- Nullable: (Just False,Just False)
{- |
Get the value of the “@allow-overwrite@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' download #allowOverwrite
@
-}
getDownloadAllowOverwrite :: (MonadIO m, IsDownload o) => o -> m Bool
getDownloadAllowOverwrite obj = liftIO $ B.Properties.getObjectPropertyBool obj "allow-overwrite"
{- |
Set the value of the “@allow-overwrite@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' download [ #allowOverwrite 'Data.GI.Base.Attributes.:=' value ]
@
-}
setDownloadAllowOverwrite :: (MonadIO m, IsDownload o) => o -> Bool -> m ()
setDownloadAllowOverwrite obj val = liftIO $ B.Properties.setObjectPropertyBool obj "allow-overwrite" val
{- |
Construct a `GValueConstruct` with valid value for the “@allow-overwrite@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructDownloadAllowOverwrite :: (IsDownload o) => Bool -> IO (GValueConstruct o)
constructDownloadAllowOverwrite val = B.Properties.constructObjectPropertyBool "allow-overwrite" val
#if ENABLE_OVERLOADING
data DownloadAllowOverwritePropertyInfo
instance AttrInfo DownloadAllowOverwritePropertyInfo where
type AttrAllowedOps DownloadAllowOverwritePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint DownloadAllowOverwritePropertyInfo = (~) Bool
type AttrBaseTypeConstraint DownloadAllowOverwritePropertyInfo = IsDownload
type AttrGetType DownloadAllowOverwritePropertyInfo = Bool
type AttrLabel DownloadAllowOverwritePropertyInfo = "allow-overwrite"
type AttrOrigin DownloadAllowOverwritePropertyInfo = Download
attrGet _ = getDownloadAllowOverwrite
attrSet _ = setDownloadAllowOverwrite
attrConstruct _ = constructDownloadAllowOverwrite
attrClear _ = undefined
#endif
-- VVV Prop "destination"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable]
-- Nullable: (Just True,Just False)
{- |
Get the value of the “@destination@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' download #destination
@
-}
getDownloadDestination :: (MonadIO m, IsDownload o) => o -> m (Maybe T.Text)
getDownloadDestination obj = liftIO $ B.Properties.getObjectPropertyString obj "destination"
#if ENABLE_OVERLOADING
data DownloadDestinationPropertyInfo
instance AttrInfo DownloadDestinationPropertyInfo where
type AttrAllowedOps DownloadDestinationPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DownloadDestinationPropertyInfo = (~) ()
type AttrBaseTypeConstraint DownloadDestinationPropertyInfo = IsDownload
type AttrGetType DownloadDestinationPropertyInfo = (Maybe T.Text)
type AttrLabel DownloadDestinationPropertyInfo = "destination"
type AttrOrigin DownloadDestinationPropertyInfo = Download
attrGet _ = getDownloadDestination
attrSet _ = undefined
attrConstruct _ = undefined
attrClear _ = undefined
#endif
-- VVV Prop "estimated-progress"
-- Type: TBasicType TDouble
-- Flags: [PropertyReadable]
-- Nullable: (Just False,Nothing)
{- |
Get the value of the “@estimated-progress@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' download #estimatedProgress
@
-}
getDownloadEstimatedProgress :: (MonadIO m, IsDownload o) => o -> m Double
getDownloadEstimatedProgress obj = liftIO $ B.Properties.getObjectPropertyDouble obj "estimated-progress"
#if ENABLE_OVERLOADING
data DownloadEstimatedProgressPropertyInfo
instance AttrInfo DownloadEstimatedProgressPropertyInfo where
type AttrAllowedOps DownloadEstimatedProgressPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DownloadEstimatedProgressPropertyInfo = (~) ()
type AttrBaseTypeConstraint DownloadEstimatedProgressPropertyInfo = IsDownload
type AttrGetType DownloadEstimatedProgressPropertyInfo = Double
type AttrLabel DownloadEstimatedProgressPropertyInfo = "estimated-progress"
type AttrOrigin DownloadEstimatedProgressPropertyInfo = Download
attrGet _ = getDownloadEstimatedProgress
attrSet _ = undefined
attrConstruct _ = undefined
attrClear _ = undefined
#endif
-- VVV Prop "response"
-- Type: TInterface (Name {namespace = "WebKit2", name = "URIResponse"})
-- Flags: [PropertyReadable]
-- Nullable: (Just True,Nothing)
{- |
Get the value of the “@response@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' download #response
@
-}
getDownloadResponse :: (MonadIO m, IsDownload o) => o -> m (Maybe WebKit2.URIResponse.URIResponse)
getDownloadResponse obj = liftIO $ B.Properties.getObjectPropertyObject obj "response" WebKit2.URIResponse.URIResponse
#if ENABLE_OVERLOADING
data DownloadResponsePropertyInfo
instance AttrInfo DownloadResponsePropertyInfo where
type AttrAllowedOps DownloadResponsePropertyInfo = '[ 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint DownloadResponsePropertyInfo = (~) ()
type AttrBaseTypeConstraint DownloadResponsePropertyInfo = IsDownload
type AttrGetType DownloadResponsePropertyInfo = (Maybe WebKit2.URIResponse.URIResponse)
type AttrLabel DownloadResponsePropertyInfo = "response"
type AttrOrigin DownloadResponsePropertyInfo = Download
attrGet _ = getDownloadResponse
attrSet _ = undefined
attrConstruct _ = undefined
attrClear _ = undefined
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList Download
type instance O.AttributeList Download = DownloadAttributeList
type DownloadAttributeList = ('[ '("allowOverwrite", DownloadAllowOverwritePropertyInfo), '("destination", DownloadDestinationPropertyInfo), '("estimatedProgress", DownloadEstimatedProgressPropertyInfo), '("response", DownloadResponsePropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
downloadAllowOverwrite :: AttrLabelProxy "allowOverwrite"
downloadAllowOverwrite = AttrLabelProxy
downloadDestination :: AttrLabelProxy "destination"
downloadDestination = AttrLabelProxy
downloadEstimatedProgress :: AttrLabelProxy "estimatedProgress"
downloadEstimatedProgress = AttrLabelProxy
downloadResponse :: AttrLabelProxy "response"
downloadResponse = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
data DownloadCreatedDestinationSignalInfo
instance SignalInfo DownloadCreatedDestinationSignalInfo where
type HaskellCallbackType DownloadCreatedDestinationSignalInfo = DownloadCreatedDestinationCallback
connectSignal _ obj cb connectMode = do
let cb' = wrap_DownloadCreatedDestinationCallback cb
cb'' <- mk_DownloadCreatedDestinationCallback cb'
connectSignalFunPtr obj "created-destination" cb'' connectMode
data DownloadDecideDestinationSignalInfo
instance SignalInfo DownloadDecideDestinationSignalInfo where
type HaskellCallbackType DownloadDecideDestinationSignalInfo = DownloadDecideDestinationCallback
connectSignal _ obj cb connectMode = do
let cb' = wrap_DownloadDecideDestinationCallback cb
cb'' <- mk_DownloadDecideDestinationCallback cb'
connectSignalFunPtr obj "decide-destination" cb'' connectMode
data DownloadFailedSignalInfo
instance SignalInfo DownloadFailedSignalInfo where
type HaskellCallbackType DownloadFailedSignalInfo = DownloadFailedCallback
connectSignal _ obj cb connectMode = do
let cb' = wrap_DownloadFailedCallback cb
cb'' <- mk_DownloadFailedCallback cb'
connectSignalFunPtr obj "failed" cb'' connectMode
data DownloadFinishedSignalInfo
instance SignalInfo DownloadFinishedSignalInfo where
type HaskellCallbackType DownloadFinishedSignalInfo = DownloadFinishedCallback
connectSignal _ obj cb connectMode = do
let cb' = wrap_DownloadFinishedCallback cb
cb'' <- mk_DownloadFinishedCallback cb'
connectSignalFunPtr obj "finished" cb'' connectMode
data DownloadReceivedDataSignalInfo
instance SignalInfo DownloadReceivedDataSignalInfo where
type HaskellCallbackType DownloadReceivedDataSignalInfo = DownloadReceivedDataCallback
connectSignal _ obj cb connectMode = do
let cb' = wrap_DownloadReceivedDataCallback cb
cb'' <- mk_DownloadReceivedDataCallback cb'
connectSignalFunPtr obj "received-data" cb'' connectMode
type instance O.SignalList Download = DownloadSignalList
type DownloadSignalList = ('[ '("createdDestination", DownloadCreatedDestinationSignalInfo), '("decideDestination", DownloadDecideDestinationSignalInfo), '("failed", DownloadFailedSignalInfo), '("finished", DownloadFinishedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("receivedData", DownloadReceivedDataSignalInfo)] :: [(Symbol, *)])
#endif
-- method Download::cancel
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_cancel" webkit_download_cancel ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO ()
{- |
Cancels the download. When the ongoing download
operation is effectively cancelled the signal
'GI.WebKit2.Objects.Download.Download'::@/failed/@ is emitted with
'GI.WebKit2.Enums.DownloadErrorCancelledByUser' error.
-}
downloadCancel ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m ()
downloadCancel download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
webkit_download_cancel download'
touchManagedPtr download
return ()
#if ENABLE_OVERLOADING
data DownloadCancelMethodInfo
instance (signature ~ (m ()), MonadIO m, IsDownload a) => O.MethodInfo DownloadCancelMethodInfo a signature where
overloadedMethod _ = downloadCancel
#endif
-- method Download::get_allow_overwrite
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_get_allow_overwrite" webkit_download_get_allow_overwrite ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO CInt
{- |
Returns the current value of the 'GI.WebKit2.Objects.Download.Download':@/allow-overwrite/@ property,
which determines whether the download will overwrite an existing file on
disk, or if it will fail if the destination already exists.
/Since: 2.6/
-}
downloadGetAllowOverwrite ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m Bool
{- ^ __Returns:__ the current value of the 'GI.WebKit2.Objects.Download.Download':@/allow-overwrite/@ property -}
downloadGetAllowOverwrite download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_allow_overwrite download'
let result' = (/= 0) result
touchManagedPtr download
return result'
#if ENABLE_OVERLOADING
data DownloadGetAllowOverwriteMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetAllowOverwriteMethodInfo a signature where
overloadedMethod _ = downloadGetAllowOverwrite
#endif
-- method Download::get_destination
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", 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_download_get_destination" webkit_download_get_destination ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO CString
{- |
Obtains the URI to which the downloaded file will be written. You
can connect to 'GI.WebKit2.Objects.Download.Download'::@/created-destination/@ to make
sure this method returns a valid destination.
-}
downloadGetDestination ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m (Maybe T.Text)
{- ^ __Returns:__ the destination URI or 'Nothing' -}
downloadGetDestination download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_destination download'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- cstringToText result'
return result''
touchManagedPtr download
return maybeResult
#if ENABLE_OVERLOADING
data DownloadGetDestinationMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetDestinationMethodInfo a signature where
overloadedMethod _ = downloadGetDestination
#endif
-- method Download::get_elapsed_time
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_get_elapsed_time" webkit_download_get_elapsed_time ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO CDouble
{- |
Gets the elapsed time in seconds, including any fractional part.
If the download finished, had an error or was cancelled this is
the time between its start and the event.
-}
downloadGetElapsedTime ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m Double
{- ^ __Returns:__ seconds since the download was started -}
downloadGetElapsedTime download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_elapsed_time download'
let result' = realToFrac result
touchManagedPtr download
return result'
#if ENABLE_OVERLOADING
data DownloadGetElapsedTimeMethodInfo
instance (signature ~ (m Double), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetElapsedTimeMethodInfo a signature where
overloadedMethod _ = downloadGetElapsedTime
#endif
-- method Download::get_estimated_progress
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_get_estimated_progress" webkit_download_get_estimated_progress ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO CDouble
{- |
Gets the value of the 'GI.WebKit2.Objects.Download.Download':@/estimated-progress/@ property.
You can monitor the estimated progress of the download operation by
connecting to the notify::estimated-progress signal of /@download@/.
-}
downloadGetEstimatedProgress ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m Double
{- ^ __Returns:__ an estimate of the of the percent complete for a download
as a range from 0.0 to 1.0. -}
downloadGetEstimatedProgress download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_estimated_progress download'
let result' = realToFrac result
touchManagedPtr download
return result'
#if ENABLE_OVERLOADING
data DownloadGetEstimatedProgressMethodInfo
instance (signature ~ (m Double), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetEstimatedProgressMethodInfo a signature where
overloadedMethod _ = downloadGetEstimatedProgress
#endif
-- method Download::get_received_data_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt64)
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_get_received_data_length" webkit_download_get_received_data_length ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO Word64
{- |
Gets the length of the data already downloaded for /@download@/
in bytes.
-}
downloadGetReceivedDataLength ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m Word64
{- ^ __Returns:__ the amount of bytes already downloaded. -}
downloadGetReceivedDataLength download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_received_data_length download'
touchManagedPtr download
return result
#if ENABLE_OVERLOADING
data DownloadGetReceivedDataLengthMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetReceivedDataLengthMethodInfo a signature where
overloadedMethod _ = downloadGetReceivedDataLength
#endif
-- method Download::get_request
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2", name = "URIRequest"}))
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_get_request" webkit_download_get_request ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO (Ptr WebKit2.URIRequest.URIRequest)
{- |
Retrieves the 'GI.WebKit2.Objects.URIRequest.URIRequest' object that backs the download
process.
-}
downloadGetRequest ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m WebKit2.URIRequest.URIRequest
{- ^ __Returns:__ the 'GI.WebKit2.Objects.URIRequest.URIRequest' of /@download@/ -}
downloadGetRequest download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_request download'
checkUnexpectedReturnNULL "downloadGetRequest" result
result' <- (newObject WebKit2.URIRequest.URIRequest) result
touchManagedPtr download
return result'
#if ENABLE_OVERLOADING
data DownloadGetRequestMethodInfo
instance (signature ~ (m WebKit2.URIRequest.URIRequest), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetRequestMethodInfo a signature where
overloadedMethod _ = downloadGetRequest
#endif
-- method Download::get_response
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2", name = "URIResponse"}))
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_get_response" webkit_download_get_response ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO (Ptr WebKit2.URIResponse.URIResponse)
{- |
Retrieves the 'GI.WebKit2.Objects.URIResponse.URIResponse' object that backs the download
process. This method returns 'Nothing' if called before the response
is received from the server. You can connect to notify::response
signal to be notified when the response is received.
-}
downloadGetResponse ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m (Maybe WebKit2.URIResponse.URIResponse)
{- ^ __Returns:__ the 'GI.WebKit2.Objects.URIResponse.URIResponse', or 'Nothing' if
the response hasn\'t been received yet. -}
downloadGetResponse download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_response download'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newObject WebKit2.URIResponse.URIResponse) result'
return result''
touchManagedPtr download
return maybeResult
#if ENABLE_OVERLOADING
data DownloadGetResponseMethodInfo
instance (signature ~ (m (Maybe WebKit2.URIResponse.URIResponse)), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetResponseMethodInfo a signature where
overloadedMethod _ = downloadGetResponse
#endif
-- method Download::get_web_view
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2", name = "WebView"}))
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_get_web_view" webkit_download_get_web_view ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
IO (Ptr WebKit2.WebView.WebView)
{- |
Get the 'GI.WebKit2.Objects.WebView.WebView' that initiated the download.
-}
downloadGetWebView ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> m (Maybe WebKit2.WebView.WebView)
{- ^ __Returns:__ the 'GI.WebKit2.Objects.WebView.WebView' that initiated /@download@/,
or 'Nothing' if /@download@/ was not initiated by a 'GI.WebKit2.Objects.WebView.WebView'. -}
downloadGetWebView download = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
result <- webkit_download_get_web_view download'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (newObject WebKit2.WebView.WebView) result'
return result''
touchManagedPtr download
return maybeResult
#if ENABLE_OVERLOADING
data DownloadGetWebViewMethodInfo
instance (signature ~ (m (Maybe WebKit2.WebView.WebView)), MonadIO m, IsDownload a) => O.MethodInfo DownloadGetWebViewMethodInfo a signature where
overloadedMethod _ = downloadGetWebView
#endif
-- method Download::set_allow_overwrite
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allowed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the new value for the #WebKitDownload:allow-overwrite property", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_set_allow_overwrite" webkit_download_set_allow_overwrite ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
CInt -> -- allowed : TBasicType TBoolean
IO ()
{- |
Sets the 'GI.WebKit2.Objects.Download.Download':@/allow-overwrite/@ property, which determines whether
the download may overwrite an existing file on disk, or if it will fail if
the destination already exists.
/Since: 2.6/
-}
downloadSetAllowOverwrite ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> Bool
{- ^ /@allowed@/: the new value for the 'GI.WebKit2.Objects.Download.Download':@/allow-overwrite/@ property -}
-> m ()
downloadSetAllowOverwrite download allowed = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
let allowed' = (fromIntegral . fromEnum) allowed
webkit_download_set_allow_overwrite download' allowed'
touchManagedPtr download
return ()
#if ENABLE_OVERLOADING
data DownloadSetAllowOverwriteMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsDownload a) => O.MethodInfo DownloadSetAllowOverwriteMethodInfo a signature where
overloadedMethod _ = downloadSetAllowOverwrite
#endif
-- method Download::set_destination
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "download", argType = TInterface (Name {namespace = "WebKit2", name = "Download"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitDownload", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the destination URI", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "webkit_download_set_destination" webkit_download_set_destination ::
Ptr Download -> -- download : TInterface (Name {namespace = "WebKit2", name = "Download"})
CString -> -- uri : TBasicType TUTF8
IO ()
{- |
Sets the URI to which the downloaded file will be written.
This method should be called before the download transfer
starts or it will not have any effect on the ongoing download
operation. To set the destination using the filename suggested
by the server connect to 'GI.WebKit2.Objects.Download.Download'::@/decide-destination/@
signal and call 'GI.WebKit2.Objects.Download.downloadSetDestination'. If you want to
set a fixed destination URI that doesn\'t depend on the suggested
filename you can connect to notify::response signal and call
'GI.WebKit2.Objects.Download.downloadSetDestination'.
If 'GI.WebKit2.Objects.Download.Download'::@/decide-destination/@ signal is not handled
and destination URI is not set when the download transfer starts,
the file will be saved with the filename suggested by the server in
'GI.GLib.Enums.UserDirectoryDirectoryDownload' directory.
-}
downloadSetDestination ::
(B.CallStack.HasCallStack, MonadIO m, IsDownload a) =>
a
{- ^ /@download@/: a 'GI.WebKit2.Objects.Download.Download' -}
-> T.Text
{- ^ /@uri@/: the destination URI -}
-> m ()
downloadSetDestination download uri = liftIO $ do
download' <- unsafeManagedPtrCastPtr download
uri' <- textToCString uri
webkit_download_set_destination download' uri'
touchManagedPtr download
freeMem uri'
return ()
#if ENABLE_OVERLOADING
data DownloadSetDestinationMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDownload a) => O.MethodInfo DownloadSetDestinationMethodInfo a signature where
overloadedMethod _ = downloadSetDestination
#endif