{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.WebKit2WebExtension.Objects.WebPage
    ( 

-- * Exported types
    WebPage(..)                             ,
    IsWebPage                               ,
    toWebPage                               ,
    noWebPage                               ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveWebPageMethod                    ,
#endif


-- ** getDomDocument #method:getDomDocument#

#if defined(ENABLE_OVERLOADING)
    WebPageGetDomDocumentMethodInfo         ,
#endif
    webPageGetDomDocument                   ,


-- ** getEditor #method:getEditor#

#if defined(ENABLE_OVERLOADING)
    WebPageGetEditorMethodInfo              ,
#endif
    webPageGetEditor                        ,


-- ** getId #method:getId#

#if defined(ENABLE_OVERLOADING)
    WebPageGetIdMethodInfo                  ,
#endif
    webPageGetId                            ,


-- ** getMainFrame #method:getMainFrame#

#if defined(ENABLE_OVERLOADING)
    WebPageGetMainFrameMethodInfo           ,
#endif
    webPageGetMainFrame                     ,


-- ** getUri #method:getUri#

#if defined(ENABLE_OVERLOADING)
    WebPageGetUriMethodInfo                 ,
#endif
    webPageGetUri                           ,




 -- * Properties
-- ** uri #attr:uri#
-- | The current active URI of the t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'.

#if defined(ENABLE_OVERLOADING)
    WebPageUriPropertyInfo                  ,
#endif
    getWebPageUri                           ,
#if defined(ENABLE_OVERLOADING)
    webPageUri                              ,
#endif




 -- * Signals
-- ** consoleMessageSent #signal:consoleMessageSent#

    C_WebPageConsoleMessageSentCallback     ,
    WebPageConsoleMessageSentCallback       ,
#if defined(ENABLE_OVERLOADING)
    WebPageConsoleMessageSentSignalInfo     ,
#endif
    afterWebPageConsoleMessageSent          ,
    genClosure_WebPageConsoleMessageSent    ,
    mk_WebPageConsoleMessageSentCallback    ,
    noWebPageConsoleMessageSentCallback     ,
    onWebPageConsoleMessageSent             ,
    wrap_WebPageConsoleMessageSentCallback  ,


-- ** contextMenu #signal:contextMenu#

    C_WebPageContextMenuCallback            ,
    WebPageContextMenuCallback              ,
#if defined(ENABLE_OVERLOADING)
    WebPageContextMenuSignalInfo            ,
#endif
    afterWebPageContextMenu                 ,
    genClosure_WebPageContextMenu           ,
    mk_WebPageContextMenuCallback           ,
    noWebPageContextMenuCallback            ,
    onWebPageContextMenu                    ,
    wrap_WebPageContextMenuCallback         ,


-- ** documentLoaded #signal:documentLoaded#

    C_WebPageDocumentLoadedCallback         ,
    WebPageDocumentLoadedCallback           ,
#if defined(ENABLE_OVERLOADING)
    WebPageDocumentLoadedSignalInfo         ,
#endif
    afterWebPageDocumentLoaded              ,
    genClosure_WebPageDocumentLoaded        ,
    mk_WebPageDocumentLoadedCallback        ,
    noWebPageDocumentLoadedCallback         ,
    onWebPageDocumentLoaded                 ,
    wrap_WebPageDocumentLoadedCallback      ,


-- ** formControlsAssociated #signal:formControlsAssociated#

    C_WebPageFormControlsAssociatedCallback ,
    WebPageFormControlsAssociatedCallback   ,
#if defined(ENABLE_OVERLOADING)
    WebPageFormControlsAssociatedSignalInfo ,
#endif
    afterWebPageFormControlsAssociated      ,
    genClosure_WebPageFormControlsAssociated,
    mk_WebPageFormControlsAssociatedCallback,
    noWebPageFormControlsAssociatedCallback ,
    onWebPageFormControlsAssociated         ,
    wrap_WebPageFormControlsAssociatedCallback,


-- ** sendRequest #signal:sendRequest#

    C_WebPageSendRequestCallback            ,
    WebPageSendRequestCallback              ,
#if defined(ENABLE_OVERLOADING)
    WebPageSendRequestSignalInfo            ,
#endif
    afterWebPageSendRequest                 ,
    genClosure_WebPageSendRequest           ,
    mk_WebPageSendRequestCallback           ,
    noWebPageSendRequestCallback            ,
    onWebPageSendRequest                    ,
    wrap_WebPageSendRequestCallback         ,


-- ** willSubmitForm #signal:willSubmitForm#

    C_WebPageWillSubmitFormCallback         ,
    WebPageWillSubmitFormCallback           ,
#if defined(ENABLE_OVERLOADING)
    WebPageWillSubmitFormSignalInfo         ,
#endif
    afterWebPageWillSubmitForm              ,
    genClosure_WebPageWillSubmitForm        ,
    mk_WebPageWillSubmitFormCallback        ,
    noWebPageWillSubmitFormCallback         ,
    onWebPageWillSubmitForm                 ,
    wrap_WebPageWillSubmitFormCallback      ,




    ) 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.GI.Base.Signals as B.Signals
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.WebKit2WebExtension.Enums as WebKit2WebExtension.Enums
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.ContextMenu as WebKit2WebExtension.ContextMenu
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMDocument as WebKit2WebExtension.DOMDocument
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMElement as WebKit2WebExtension.DOMElement
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.Frame as WebKit2WebExtension.Frame
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.URIRequest as WebKit2WebExtension.URIRequest
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.URIResponse as WebKit2WebExtension.URIResponse
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.WebEditor as WebKit2WebExtension.WebEditor
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.WebHitTestResult as WebKit2WebExtension.WebHitTestResult
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Structs.ConsoleMessage as WebKit2WebExtension.ConsoleMessage

-- | Memory-managed wrapper type.
newtype WebPage = WebPage (ManagedPtr WebPage)
    deriving (WebPage -> WebPage -> Bool
(WebPage -> WebPage -> Bool)
-> (WebPage -> WebPage -> Bool) -> Eq WebPage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WebPage -> WebPage -> Bool
$c/= :: WebPage -> WebPage -> Bool
== :: WebPage -> WebPage -> Bool
$c== :: WebPage -> WebPage -> Bool
Eq)
foreign import ccall "webkit_web_page_get_type"
    c_webkit_web_page_get_type :: IO GType

instance GObject WebPage where
    gobjectType :: IO GType
gobjectType = IO GType
c_webkit_web_page_get_type
    

-- | Convert 'WebPage' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue WebPage where
    toGValue :: WebPage -> IO GValue
toGValue o :: WebPage
o = do
        GType
gtype <- IO GType
c_webkit_web_page_get_type
        WebPage -> (Ptr WebPage -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr WebPage
o (GType
-> (GValue -> Ptr WebPage -> IO ()) -> Ptr WebPage -> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr WebPage -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
        
    fromGValue :: GValue -> IO WebPage
fromGValue gv :: GValue
gv = do
        Ptr WebPage
ptr <- GValue -> IO (Ptr WebPage)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr WebPage)
        (ManagedPtr WebPage -> WebPage) -> Ptr WebPage -> IO WebPage
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr WebPage -> WebPage
WebPage Ptr WebPage
ptr
        
    

-- | Type class for types which can be safely cast to `WebPage`, for instance with `toWebPage`.
class (GObject o, O.IsDescendantOf WebPage o) => IsWebPage o
instance (GObject o, O.IsDescendantOf WebPage o) => IsWebPage o

instance O.HasParentTypes WebPage
type instance O.ParentTypes WebPage = '[GObject.Object.Object]

-- | Cast to `WebPage`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toWebPage :: (MonadIO m, IsWebPage o) => o -> m WebPage
toWebPage :: o -> m WebPage
toWebPage = IO WebPage -> m WebPage
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO WebPage -> m WebPage) -> (o -> IO WebPage) -> o -> m WebPage
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr WebPage -> WebPage) -> o -> IO WebPage
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr WebPage -> WebPage
WebPage

-- | A convenience alias for `Nothing` :: `Maybe` `WebPage`.
noWebPage :: Maybe WebPage
noWebPage :: Maybe WebPage
noWebPage = Maybe WebPage
forall a. Maybe a
Nothing

#if defined(ENABLE_OVERLOADING)
type family ResolveWebPageMethod (t :: Symbol) (o :: *) :: * where
    ResolveWebPageMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveWebPageMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveWebPageMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveWebPageMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveWebPageMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveWebPageMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveWebPageMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveWebPageMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveWebPageMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveWebPageMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveWebPageMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveWebPageMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveWebPageMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveWebPageMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveWebPageMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveWebPageMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveWebPageMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveWebPageMethod "getDomDocument" o = WebPageGetDomDocumentMethodInfo
    ResolveWebPageMethod "getEditor" o = WebPageGetEditorMethodInfo
    ResolveWebPageMethod "getId" o = WebPageGetIdMethodInfo
    ResolveWebPageMethod "getMainFrame" o = WebPageGetMainFrameMethodInfo
    ResolveWebPageMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveWebPageMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveWebPageMethod "getUri" o = WebPageGetUriMethodInfo
    ResolveWebPageMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveWebPageMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveWebPageMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveWebPageMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveWebPageMethod t WebPage, O.MethodInfo info WebPage p) => OL.IsLabel t (WebPage -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif

-- signal WebPage::console-message-sent
-- | Emitted when a message is sent to the console. This can be a message
-- produced by the use of JavaScript console API, a JavaScript exception,
-- a security error or other errors, warnings, debug or log messages.
-- The /@consoleMessage@/ contains information of the message.
-- 
-- /Since: 2.12/
type WebPageConsoleMessageSentCallback =
    WebKit2WebExtension.ConsoleMessage.ConsoleMessage
    -- ^ /@consoleMessage@/: the t'GI.WebKit2WebExtension.Structs.ConsoleMessage.ConsoleMessage'
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WebPageConsoleMessageSentCallback`@.
noWebPageConsoleMessageSentCallback :: Maybe WebPageConsoleMessageSentCallback
noWebPageConsoleMessageSentCallback :: Maybe WebPageConsoleMessageSentCallback
noWebPageConsoleMessageSentCallback = Maybe WebPageConsoleMessageSentCallback
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_WebPageConsoleMessageSentCallback =
    Ptr () ->                               -- object
    Ptr WebKit2WebExtension.ConsoleMessage.ConsoleMessage ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_WebPageConsoleMessageSentCallback`.
foreign import ccall "wrapper"
    mk_WebPageConsoleMessageSentCallback :: C_WebPageConsoleMessageSentCallback -> IO (FunPtr C_WebPageConsoleMessageSentCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_WebPageConsoleMessageSent :: MonadIO m => WebPageConsoleMessageSentCallback -> m (GClosure C_WebPageConsoleMessageSentCallback)
genClosure_WebPageConsoleMessageSent :: WebPageConsoleMessageSentCallback
-> m (GClosure C_WebPageConsoleMessageSentCallback)
genClosure_WebPageConsoleMessageSent cb :: WebPageConsoleMessageSentCallback
cb = IO (GClosure C_WebPageConsoleMessageSentCallback)
-> m (GClosure C_WebPageConsoleMessageSentCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WebPageConsoleMessageSentCallback)
 -> m (GClosure C_WebPageConsoleMessageSentCallback))
-> IO (GClosure C_WebPageConsoleMessageSentCallback)
-> m (GClosure C_WebPageConsoleMessageSentCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WebPageConsoleMessageSentCallback
cb' = WebPageConsoleMessageSentCallback
-> C_WebPageConsoleMessageSentCallback
wrap_WebPageConsoleMessageSentCallback WebPageConsoleMessageSentCallback
cb
    C_WebPageConsoleMessageSentCallback
-> IO (FunPtr C_WebPageConsoleMessageSentCallback)
mk_WebPageConsoleMessageSentCallback C_WebPageConsoleMessageSentCallback
cb' IO (FunPtr C_WebPageConsoleMessageSentCallback)
-> (FunPtr C_WebPageConsoleMessageSentCallback
    -> IO (GClosure C_WebPageConsoleMessageSentCallback))
-> IO (GClosure C_WebPageConsoleMessageSentCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WebPageConsoleMessageSentCallback
-> IO (GClosure C_WebPageConsoleMessageSentCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WebPageConsoleMessageSentCallback` into a `C_WebPageConsoleMessageSentCallback`.
wrap_WebPageConsoleMessageSentCallback ::
    WebPageConsoleMessageSentCallback ->
    C_WebPageConsoleMessageSentCallback
wrap_WebPageConsoleMessageSentCallback :: WebPageConsoleMessageSentCallback
-> C_WebPageConsoleMessageSentCallback
wrap_WebPageConsoleMessageSentCallback _cb :: WebPageConsoleMessageSentCallback
_cb _ consoleMessage :: Ptr ConsoleMessage
consoleMessage _ = do
    (ManagedPtr ConsoleMessage -> ConsoleMessage)
-> Ptr ConsoleMessage -> WebPageConsoleMessageSentCallback -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr ConsoleMessage -> ConsoleMessage
WebKit2WebExtension.ConsoleMessage.ConsoleMessage Ptr ConsoleMessage
consoleMessage (WebPageConsoleMessageSentCallback -> IO ())
-> WebPageConsoleMessageSentCallback -> IO ()
forall a b. (a -> b) -> a -> b
$ \consoleMessage' :: ConsoleMessage
consoleMessage' -> do
        WebPageConsoleMessageSentCallback
_cb  ConsoleMessage
consoleMessage'


-- | Connect a signal handler for the [consoleMessageSent](#signal:consoleMessageSent) 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' webPage #consoleMessageSent callback
-- @
-- 
-- 
onWebPageConsoleMessageSent :: (IsWebPage a, MonadIO m) => a -> WebPageConsoleMessageSentCallback -> m SignalHandlerId
onWebPageConsoleMessageSent :: a -> WebPageConsoleMessageSentCallback -> m SignalHandlerId
onWebPageConsoleMessageSent obj :: a
obj cb :: WebPageConsoleMessageSentCallback
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 cb' :: C_WebPageConsoleMessageSentCallback
cb' = WebPageConsoleMessageSentCallback
-> C_WebPageConsoleMessageSentCallback
wrap_WebPageConsoleMessageSentCallback WebPageConsoleMessageSentCallback
cb
    FunPtr C_WebPageConsoleMessageSentCallback
cb'' <- C_WebPageConsoleMessageSentCallback
-> IO (FunPtr C_WebPageConsoleMessageSentCallback)
mk_WebPageConsoleMessageSentCallback C_WebPageConsoleMessageSentCallback
cb'
    a
-> Text
-> FunPtr C_WebPageConsoleMessageSentCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "console-message-sent" FunPtr C_WebPageConsoleMessageSentCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [consoleMessageSent](#signal:consoleMessageSent) 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' webPage #consoleMessageSent callback
-- @
-- 
-- 
afterWebPageConsoleMessageSent :: (IsWebPage a, MonadIO m) => a -> WebPageConsoleMessageSentCallback -> m SignalHandlerId
afterWebPageConsoleMessageSent :: a -> WebPageConsoleMessageSentCallback -> m SignalHandlerId
afterWebPageConsoleMessageSent obj :: a
obj cb :: WebPageConsoleMessageSentCallback
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 cb' :: C_WebPageConsoleMessageSentCallback
cb' = WebPageConsoleMessageSentCallback
-> C_WebPageConsoleMessageSentCallback
wrap_WebPageConsoleMessageSentCallback WebPageConsoleMessageSentCallback
cb
    FunPtr C_WebPageConsoleMessageSentCallback
cb'' <- C_WebPageConsoleMessageSentCallback
-> IO (FunPtr C_WebPageConsoleMessageSentCallback)
mk_WebPageConsoleMessageSentCallback C_WebPageConsoleMessageSentCallback
cb'
    a
-> Text
-> FunPtr C_WebPageConsoleMessageSentCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "console-message-sent" FunPtr C_WebPageConsoleMessageSentCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data WebPageConsoleMessageSentSignalInfo
instance SignalInfo WebPageConsoleMessageSentSignalInfo where
    type HaskellCallbackType WebPageConsoleMessageSentSignalInfo = WebPageConsoleMessageSentCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_WebPageConsoleMessageSentCallback cb
        cb'' <- mk_WebPageConsoleMessageSentCallback cb'
        connectSignalFunPtr obj "console-message-sent" cb'' connectMode detail

#endif

-- signal WebPage::context-menu
-- | Emitted before a context menu is displayed in the UI Process to
-- give the application a chance to customize the proposed menu,
-- build its own context menu or pass user data to the UI Process.
-- This signal is useful when the information available in the UI Process
-- is not enough to build or customize the context menu, for example, to
-- add menu entries depending on the t'GI.WebKit2WebExtension.Objects.DOMNode.DOMNode' at the coordinates of the
-- /@hitTestResult@/. Otherwise, it\'s recommended to use @/WebKitWebView::context-menu/@
-- signal instead.
-- 
-- /Since: 2.8/
type WebPageContextMenuCallback =
    WebKit2WebExtension.ContextMenu.ContextMenu
    -- ^ /@contextMenu@/: the proposed @/WebKitContextMenu/@
    -> WebKit2WebExtension.WebHitTestResult.WebHitTestResult
    -- ^ /@hitTestResult@/: a t'GI.WebKit2WebExtension.Objects.WebHitTestResult.WebHitTestResult'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if the proposed /@contextMenu@/ has been modified, or 'P.False' otherwise.

-- | A convenience synonym for @`Nothing` :: `Maybe` `WebPageContextMenuCallback`@.
noWebPageContextMenuCallback :: Maybe WebPageContextMenuCallback
noWebPageContextMenuCallback :: Maybe WebPageContextMenuCallback
noWebPageContextMenuCallback = Maybe WebPageContextMenuCallback
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_WebPageContextMenuCallback =
    Ptr () ->                               -- object
    Ptr WebKit2WebExtension.ContextMenu.ContextMenu ->
    Ptr WebKit2WebExtension.WebHitTestResult.WebHitTestResult ->
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_WebPageContextMenuCallback`.
foreign import ccall "wrapper"
    mk_WebPageContextMenuCallback :: C_WebPageContextMenuCallback -> IO (FunPtr C_WebPageContextMenuCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_WebPageContextMenu :: MonadIO m => WebPageContextMenuCallback -> m (GClosure C_WebPageContextMenuCallback)
genClosure_WebPageContextMenu :: WebPageContextMenuCallback
-> m (GClosure C_WebPageContextMenuCallback)
genClosure_WebPageContextMenu cb :: WebPageContextMenuCallback
cb = IO (GClosure C_WebPageContextMenuCallback)
-> m (GClosure C_WebPageContextMenuCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WebPageContextMenuCallback)
 -> m (GClosure C_WebPageContextMenuCallback))
-> IO (GClosure C_WebPageContextMenuCallback)
-> m (GClosure C_WebPageContextMenuCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WebPageContextMenuCallback
cb' = WebPageContextMenuCallback -> C_WebPageContextMenuCallback
wrap_WebPageContextMenuCallback WebPageContextMenuCallback
cb
    C_WebPageContextMenuCallback
-> IO (FunPtr C_WebPageContextMenuCallback)
mk_WebPageContextMenuCallback C_WebPageContextMenuCallback
cb' IO (FunPtr C_WebPageContextMenuCallback)
-> (FunPtr C_WebPageContextMenuCallback
    -> IO (GClosure C_WebPageContextMenuCallback))
-> IO (GClosure C_WebPageContextMenuCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WebPageContextMenuCallback
-> IO (GClosure C_WebPageContextMenuCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WebPageContextMenuCallback` into a `C_WebPageContextMenuCallback`.
wrap_WebPageContextMenuCallback ::
    WebPageContextMenuCallback ->
    C_WebPageContextMenuCallback
wrap_WebPageContextMenuCallback :: WebPageContextMenuCallback -> C_WebPageContextMenuCallback
wrap_WebPageContextMenuCallback _cb :: WebPageContextMenuCallback
_cb _ contextMenu :: Ptr ContextMenu
contextMenu hitTestResult :: Ptr WebHitTestResult
hitTestResult _ = do
    ContextMenu
contextMenu' <- ((ManagedPtr ContextMenu -> ContextMenu)
-> Ptr ContextMenu -> IO ContextMenu
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr ContextMenu -> ContextMenu
WebKit2WebExtension.ContextMenu.ContextMenu) Ptr ContextMenu
contextMenu
    WebHitTestResult
hitTestResult' <- ((ManagedPtr WebHitTestResult -> WebHitTestResult)
-> Ptr WebHitTestResult -> IO WebHitTestResult
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr WebHitTestResult -> WebHitTestResult
WebKit2WebExtension.WebHitTestResult.WebHitTestResult) Ptr WebHitTestResult
hitTestResult
    Bool
result <- WebPageContextMenuCallback
_cb  ContextMenu
contextMenu' WebHitTestResult
hitTestResult'
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [contextMenu](#signal:contextMenu) 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' webPage #contextMenu callback
-- @
-- 
-- 
onWebPageContextMenu :: (IsWebPage a, MonadIO m) => a -> WebPageContextMenuCallback -> m SignalHandlerId
onWebPageContextMenu :: a -> WebPageContextMenuCallback -> m SignalHandlerId
onWebPageContextMenu obj :: a
obj cb :: WebPageContextMenuCallback
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 cb' :: C_WebPageContextMenuCallback
cb' = WebPageContextMenuCallback -> C_WebPageContextMenuCallback
wrap_WebPageContextMenuCallback WebPageContextMenuCallback
cb
    FunPtr C_WebPageContextMenuCallback
cb'' <- C_WebPageContextMenuCallback
-> IO (FunPtr C_WebPageContextMenuCallback)
mk_WebPageContextMenuCallback C_WebPageContextMenuCallback
cb'
    a
-> Text
-> FunPtr C_WebPageContextMenuCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "context-menu" FunPtr C_WebPageContextMenuCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [contextMenu](#signal:contextMenu) 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' webPage #contextMenu callback
-- @
-- 
-- 
afterWebPageContextMenu :: (IsWebPage a, MonadIO m) => a -> WebPageContextMenuCallback -> m SignalHandlerId
afterWebPageContextMenu :: a -> WebPageContextMenuCallback -> m SignalHandlerId
afterWebPageContextMenu obj :: a
obj cb :: WebPageContextMenuCallback
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 cb' :: C_WebPageContextMenuCallback
cb' = WebPageContextMenuCallback -> C_WebPageContextMenuCallback
wrap_WebPageContextMenuCallback WebPageContextMenuCallback
cb
    FunPtr C_WebPageContextMenuCallback
cb'' <- C_WebPageContextMenuCallback
-> IO (FunPtr C_WebPageContextMenuCallback)
mk_WebPageContextMenuCallback C_WebPageContextMenuCallback
cb'
    a
-> Text
-> FunPtr C_WebPageContextMenuCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "context-menu" FunPtr C_WebPageContextMenuCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data WebPageContextMenuSignalInfo
instance SignalInfo WebPageContextMenuSignalInfo where
    type HaskellCallbackType WebPageContextMenuSignalInfo = WebPageContextMenuCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_WebPageContextMenuCallback cb
        cb'' <- mk_WebPageContextMenuCallback cb'
        connectSignalFunPtr obj "context-menu" cb'' connectMode detail

#endif

-- signal WebPage::document-loaded
-- | This signal is emitted when the DOM document of a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage' has been
-- loaded.
-- 
-- You can wait for this signal to get the DOM document with
-- 'GI.WebKit2WebExtension.Objects.WebPage.webPageGetDomDocument'.
type WebPageDocumentLoadedCallback =
    IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WebPageDocumentLoadedCallback`@.
noWebPageDocumentLoadedCallback :: Maybe WebPageDocumentLoadedCallback
noWebPageDocumentLoadedCallback :: Maybe (IO ())
noWebPageDocumentLoadedCallback = Maybe (IO ())
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_WebPageDocumentLoadedCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_WebPageDocumentLoadedCallback`.
foreign import ccall "wrapper"
    mk_WebPageDocumentLoadedCallback :: C_WebPageDocumentLoadedCallback -> IO (FunPtr C_WebPageDocumentLoadedCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_WebPageDocumentLoaded :: MonadIO m => WebPageDocumentLoadedCallback -> m (GClosure C_WebPageDocumentLoadedCallback)
genClosure_WebPageDocumentLoaded :: IO () -> m (GClosure C_WebPageDocumentLoadedCallback)
genClosure_WebPageDocumentLoaded cb :: IO ()
cb = IO (GClosure C_WebPageDocumentLoadedCallback)
-> m (GClosure C_WebPageDocumentLoadedCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WebPageDocumentLoadedCallback)
 -> m (GClosure C_WebPageDocumentLoadedCallback))
-> IO (GClosure C_WebPageDocumentLoadedCallback)
-> m (GClosure C_WebPageDocumentLoadedCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WebPageDocumentLoadedCallback
cb' = IO () -> C_WebPageDocumentLoadedCallback
wrap_WebPageDocumentLoadedCallback IO ()
cb
    C_WebPageDocumentLoadedCallback
-> IO (FunPtr C_WebPageDocumentLoadedCallback)
mk_WebPageDocumentLoadedCallback C_WebPageDocumentLoadedCallback
cb' IO (FunPtr C_WebPageDocumentLoadedCallback)
-> (FunPtr C_WebPageDocumentLoadedCallback
    -> IO (GClosure C_WebPageDocumentLoadedCallback))
-> IO (GClosure C_WebPageDocumentLoadedCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WebPageDocumentLoadedCallback
-> IO (GClosure C_WebPageDocumentLoadedCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WebPageDocumentLoadedCallback` into a `C_WebPageDocumentLoadedCallback`.
wrap_WebPageDocumentLoadedCallback ::
    WebPageDocumentLoadedCallback ->
    C_WebPageDocumentLoadedCallback
wrap_WebPageDocumentLoadedCallback :: IO () -> C_WebPageDocumentLoadedCallback
wrap_WebPageDocumentLoadedCallback _cb :: IO ()
_cb _ _ = do
    IO ()
_cb 


-- | Connect a signal handler for the [documentLoaded](#signal:documentLoaded) 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' webPage #documentLoaded callback
-- @
-- 
-- 
onWebPageDocumentLoaded :: (IsWebPage a, MonadIO m) => a -> WebPageDocumentLoadedCallback -> m SignalHandlerId
onWebPageDocumentLoaded :: a -> IO () -> m SignalHandlerId
onWebPageDocumentLoaded obj :: a
obj cb :: IO ()
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 cb' :: C_WebPageDocumentLoadedCallback
cb' = IO () -> C_WebPageDocumentLoadedCallback
wrap_WebPageDocumentLoadedCallback IO ()
cb
    FunPtr C_WebPageDocumentLoadedCallback
cb'' <- C_WebPageDocumentLoadedCallback
-> IO (FunPtr C_WebPageDocumentLoadedCallback)
mk_WebPageDocumentLoadedCallback C_WebPageDocumentLoadedCallback
cb'
    a
-> Text
-> FunPtr C_WebPageDocumentLoadedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "document-loaded" FunPtr C_WebPageDocumentLoadedCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [documentLoaded](#signal:documentLoaded) 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' webPage #documentLoaded callback
-- @
-- 
-- 
afterWebPageDocumentLoaded :: (IsWebPage a, MonadIO m) => a -> WebPageDocumentLoadedCallback -> m SignalHandlerId
afterWebPageDocumentLoaded :: a -> IO () -> m SignalHandlerId
afterWebPageDocumentLoaded obj :: a
obj cb :: IO ()
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 cb' :: C_WebPageDocumentLoadedCallback
cb' = IO () -> C_WebPageDocumentLoadedCallback
wrap_WebPageDocumentLoadedCallback IO ()
cb
    FunPtr C_WebPageDocumentLoadedCallback
cb'' <- C_WebPageDocumentLoadedCallback
-> IO (FunPtr C_WebPageDocumentLoadedCallback)
mk_WebPageDocumentLoadedCallback C_WebPageDocumentLoadedCallback
cb'
    a
-> Text
-> FunPtr C_WebPageDocumentLoadedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "document-loaded" FunPtr C_WebPageDocumentLoadedCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data WebPageDocumentLoadedSignalInfo
instance SignalInfo WebPageDocumentLoadedSignalInfo where
    type HaskellCallbackType WebPageDocumentLoadedSignalInfo = WebPageDocumentLoadedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_WebPageDocumentLoadedCallback cb
        cb'' <- mk_WebPageDocumentLoadedCallback cb'
        connectSignalFunPtr obj "document-loaded" cb'' connectMode detail

#endif

-- signal WebPage::form-controls-associated
-- | Emitted after form elements (or form associated elements) are associated to a particular web
-- page. This is useful to implement form auto filling for web pages where form fields are added
-- dynamically. This signal might be emitted multiple times for the same web page.
-- 
-- Note that this signal could be also emitted when form controls are moved between forms. In
-- that case, the /@elements@/ array carries the list of those elements which have moved.
-- 
-- Clients should take a reference to the members of the /@elements@/ array if it is desired to
-- keep them alive after the signal handler returns.
-- 
-- /Since: 2.16/
type WebPageFormControlsAssociatedCallback =
    [WebKit2WebExtension.DOMElement.DOMElement]
    -- ^ /@elements@/: a t'GI.GLib.Structs.PtrArray.PtrArray' of
    --     t'GI.WebKit2WebExtension.Objects.DOMElement.DOMElement' with the list of forms in the page
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WebPageFormControlsAssociatedCallback`@.
noWebPageFormControlsAssociatedCallback :: Maybe WebPageFormControlsAssociatedCallback
noWebPageFormControlsAssociatedCallback :: Maybe WebPageFormControlsAssociatedCallback
noWebPageFormControlsAssociatedCallback = Maybe WebPageFormControlsAssociatedCallback
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_WebPageFormControlsAssociatedCallback =
    Ptr () ->                               -- object
    Ptr (GPtrArray (Ptr WebKit2WebExtension.DOMElement.DOMElement)) ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_WebPageFormControlsAssociatedCallback`.
foreign import ccall "wrapper"
    mk_WebPageFormControlsAssociatedCallback :: C_WebPageFormControlsAssociatedCallback -> IO (FunPtr C_WebPageFormControlsAssociatedCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_WebPageFormControlsAssociated :: MonadIO m => WebPageFormControlsAssociatedCallback -> m (GClosure C_WebPageFormControlsAssociatedCallback)
genClosure_WebPageFormControlsAssociated :: WebPageFormControlsAssociatedCallback
-> m (GClosure C_WebPageFormControlsAssociatedCallback)
genClosure_WebPageFormControlsAssociated cb :: WebPageFormControlsAssociatedCallback
cb = IO (GClosure C_WebPageFormControlsAssociatedCallback)
-> m (GClosure C_WebPageFormControlsAssociatedCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WebPageFormControlsAssociatedCallback)
 -> m (GClosure C_WebPageFormControlsAssociatedCallback))
-> IO (GClosure C_WebPageFormControlsAssociatedCallback)
-> m (GClosure C_WebPageFormControlsAssociatedCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WebPageFormControlsAssociatedCallback
cb' = WebPageFormControlsAssociatedCallback
-> C_WebPageFormControlsAssociatedCallback
wrap_WebPageFormControlsAssociatedCallback WebPageFormControlsAssociatedCallback
cb
    C_WebPageFormControlsAssociatedCallback
-> IO (FunPtr C_WebPageFormControlsAssociatedCallback)
mk_WebPageFormControlsAssociatedCallback C_WebPageFormControlsAssociatedCallback
cb' IO (FunPtr C_WebPageFormControlsAssociatedCallback)
-> (FunPtr C_WebPageFormControlsAssociatedCallback
    -> IO (GClosure C_WebPageFormControlsAssociatedCallback))
-> IO (GClosure C_WebPageFormControlsAssociatedCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WebPageFormControlsAssociatedCallback
-> IO (GClosure C_WebPageFormControlsAssociatedCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WebPageFormControlsAssociatedCallback` into a `C_WebPageFormControlsAssociatedCallback`.
wrap_WebPageFormControlsAssociatedCallback ::
    WebPageFormControlsAssociatedCallback ->
    C_WebPageFormControlsAssociatedCallback
wrap_WebPageFormControlsAssociatedCallback :: WebPageFormControlsAssociatedCallback
-> C_WebPageFormControlsAssociatedCallback
wrap_WebPageFormControlsAssociatedCallback _cb :: WebPageFormControlsAssociatedCallback
_cb _ elements :: Ptr (GPtrArray (Ptr DOMElement))
elements _ = do
    [Ptr DOMElement]
elements' <- Ptr (GPtrArray (Ptr DOMElement)) -> IO [Ptr DOMElement]
forall a. Ptr (GPtrArray (Ptr a)) -> IO [Ptr a]
unpackGPtrArray Ptr (GPtrArray (Ptr DOMElement))
elements
    [DOMElement]
elements'' <- (Ptr DOMElement -> IO DOMElement)
-> [Ptr DOMElement] -> IO [DOMElement]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr DOMElement -> DOMElement)
-> Ptr DOMElement -> IO DOMElement
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DOMElement -> DOMElement
WebKit2WebExtension.DOMElement.DOMElement) [Ptr DOMElement]
elements'
    WebPageFormControlsAssociatedCallback
_cb  [DOMElement]
elements''


-- | Connect a signal handler for the [formControlsAssociated](#signal:formControlsAssociated) 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' webPage #formControlsAssociated callback
-- @
-- 
-- 
onWebPageFormControlsAssociated :: (IsWebPage a, MonadIO m) => a -> WebPageFormControlsAssociatedCallback -> m SignalHandlerId
onWebPageFormControlsAssociated :: a -> WebPageFormControlsAssociatedCallback -> m SignalHandlerId
onWebPageFormControlsAssociated obj :: a
obj cb :: WebPageFormControlsAssociatedCallback
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 cb' :: C_WebPageFormControlsAssociatedCallback
cb' = WebPageFormControlsAssociatedCallback
-> C_WebPageFormControlsAssociatedCallback
wrap_WebPageFormControlsAssociatedCallback WebPageFormControlsAssociatedCallback
cb
    FunPtr C_WebPageFormControlsAssociatedCallback
cb'' <- C_WebPageFormControlsAssociatedCallback
-> IO (FunPtr C_WebPageFormControlsAssociatedCallback)
mk_WebPageFormControlsAssociatedCallback C_WebPageFormControlsAssociatedCallback
cb'
    a
-> Text
-> FunPtr C_WebPageFormControlsAssociatedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "form-controls-associated" FunPtr C_WebPageFormControlsAssociatedCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [formControlsAssociated](#signal:formControlsAssociated) 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' webPage #formControlsAssociated callback
-- @
-- 
-- 
afterWebPageFormControlsAssociated :: (IsWebPage a, MonadIO m) => a -> WebPageFormControlsAssociatedCallback -> m SignalHandlerId
afterWebPageFormControlsAssociated :: a -> WebPageFormControlsAssociatedCallback -> m SignalHandlerId
afterWebPageFormControlsAssociated obj :: a
obj cb :: WebPageFormControlsAssociatedCallback
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 cb' :: C_WebPageFormControlsAssociatedCallback
cb' = WebPageFormControlsAssociatedCallback
-> C_WebPageFormControlsAssociatedCallback
wrap_WebPageFormControlsAssociatedCallback WebPageFormControlsAssociatedCallback
cb
    FunPtr C_WebPageFormControlsAssociatedCallback
cb'' <- C_WebPageFormControlsAssociatedCallback
-> IO (FunPtr C_WebPageFormControlsAssociatedCallback)
mk_WebPageFormControlsAssociatedCallback C_WebPageFormControlsAssociatedCallback
cb'
    a
-> Text
-> FunPtr C_WebPageFormControlsAssociatedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "form-controls-associated" FunPtr C_WebPageFormControlsAssociatedCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data WebPageFormControlsAssociatedSignalInfo
instance SignalInfo WebPageFormControlsAssociatedSignalInfo where
    type HaskellCallbackType WebPageFormControlsAssociatedSignalInfo = WebPageFormControlsAssociatedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_WebPageFormControlsAssociatedCallback cb
        cb'' <- mk_WebPageFormControlsAssociatedCallback cb'
        connectSignalFunPtr obj "form-controls-associated" cb'' connectMode detail

#endif

-- signal WebPage::send-request
-- | This signal is emitted when /@request@/ is about to be sent to
-- the server. This signal can be used to modify the t'GI.WebKit2WebExtension.Objects.URIRequest.URIRequest'
-- that will be sent to the server. You can also cancel the resource load
-- operation by connecting to this signal and returning 'P.True'.
-- 
-- In case of a server redirection this signal is
-- emitted again with the /@request@/ argument containing the new
-- request to be sent to the server due to the redirection and the
-- /@redirectedResponse@/ parameter containing the response
-- received by the server for the initial request.
-- 
-- Modifications to the t'GI.WebKit2WebExtension.Objects.URIRequest.URIRequest' and its associated
-- t'GI.Soup.Structs.MessageHeaders.MessageHeaders' will be taken into account when the request
-- is sent over the network.
type WebPageSendRequestCallback =
    WebKit2WebExtension.URIRequest.URIRequest
    -- ^ /@request@/: a t'GI.WebKit2WebExtension.Objects.URIRequest.URIRequest'
    -> WebKit2WebExtension.URIResponse.URIResponse
    -- ^ /@redirectedResponse@/: a t'GI.WebKit2WebExtension.Objects.URIResponse.URIResponse', or 'P.Nothing'
    -> IO Bool
    -- ^ __Returns:__ 'P.True' to stop other handlers from being invoked for the event.
    --    'P.False' to continue emission of the event.

-- | A convenience synonym for @`Nothing` :: `Maybe` `WebPageSendRequestCallback`@.
noWebPageSendRequestCallback :: Maybe WebPageSendRequestCallback
noWebPageSendRequestCallback :: Maybe WebPageSendRequestCallback
noWebPageSendRequestCallback = Maybe WebPageSendRequestCallback
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_WebPageSendRequestCallback =
    Ptr () ->                               -- object
    Ptr WebKit2WebExtension.URIRequest.URIRequest ->
    Ptr WebKit2WebExtension.URIResponse.URIResponse ->
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_WebPageSendRequestCallback`.
foreign import ccall "wrapper"
    mk_WebPageSendRequestCallback :: C_WebPageSendRequestCallback -> IO (FunPtr C_WebPageSendRequestCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_WebPageSendRequest :: MonadIO m => WebPageSendRequestCallback -> m (GClosure C_WebPageSendRequestCallback)
genClosure_WebPageSendRequest :: WebPageSendRequestCallback
-> m (GClosure C_WebPageSendRequestCallback)
genClosure_WebPageSendRequest cb :: WebPageSendRequestCallback
cb = IO (GClosure C_WebPageSendRequestCallback)
-> m (GClosure C_WebPageSendRequestCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WebPageSendRequestCallback)
 -> m (GClosure C_WebPageSendRequestCallback))
-> IO (GClosure C_WebPageSendRequestCallback)
-> m (GClosure C_WebPageSendRequestCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WebPageSendRequestCallback
cb' = WebPageSendRequestCallback -> C_WebPageSendRequestCallback
wrap_WebPageSendRequestCallback WebPageSendRequestCallback
cb
    C_WebPageSendRequestCallback
-> IO (FunPtr C_WebPageSendRequestCallback)
mk_WebPageSendRequestCallback C_WebPageSendRequestCallback
cb' IO (FunPtr C_WebPageSendRequestCallback)
-> (FunPtr C_WebPageSendRequestCallback
    -> IO (GClosure C_WebPageSendRequestCallback))
-> IO (GClosure C_WebPageSendRequestCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WebPageSendRequestCallback
-> IO (GClosure C_WebPageSendRequestCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WebPageSendRequestCallback` into a `C_WebPageSendRequestCallback`.
wrap_WebPageSendRequestCallback ::
    WebPageSendRequestCallback ->
    C_WebPageSendRequestCallback
wrap_WebPageSendRequestCallback :: WebPageSendRequestCallback -> C_WebPageSendRequestCallback
wrap_WebPageSendRequestCallback _cb :: WebPageSendRequestCallback
_cb _ request :: Ptr URIRequest
request redirectedResponse :: Ptr URIResponse
redirectedResponse _ = do
    URIRequest
request' <- ((ManagedPtr URIRequest -> URIRequest)
-> Ptr URIRequest -> IO URIRequest
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr URIRequest -> URIRequest
WebKit2WebExtension.URIRequest.URIRequest) Ptr URIRequest
request
    URIResponse
redirectedResponse' <- ((ManagedPtr URIResponse -> URIResponse)
-> Ptr URIResponse -> IO URIResponse
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr URIResponse -> URIResponse
WebKit2WebExtension.URIResponse.URIResponse) Ptr URIResponse
redirectedResponse
    Bool
result <- WebPageSendRequestCallback
_cb  URIRequest
request' URIResponse
redirectedResponse'
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [sendRequest](#signal:sendRequest) 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' webPage #sendRequest callback
-- @
-- 
-- 
onWebPageSendRequest :: (IsWebPage a, MonadIO m) => a -> WebPageSendRequestCallback -> m SignalHandlerId
onWebPageSendRequest :: a -> WebPageSendRequestCallback -> m SignalHandlerId
onWebPageSendRequest obj :: a
obj cb :: WebPageSendRequestCallback
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 cb' :: C_WebPageSendRequestCallback
cb' = WebPageSendRequestCallback -> C_WebPageSendRequestCallback
wrap_WebPageSendRequestCallback WebPageSendRequestCallback
cb
    FunPtr C_WebPageSendRequestCallback
cb'' <- C_WebPageSendRequestCallback
-> IO (FunPtr C_WebPageSendRequestCallback)
mk_WebPageSendRequestCallback C_WebPageSendRequestCallback
cb'
    a
-> Text
-> FunPtr C_WebPageSendRequestCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "send-request" FunPtr C_WebPageSendRequestCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [sendRequest](#signal:sendRequest) 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' webPage #sendRequest callback
-- @
-- 
-- 
afterWebPageSendRequest :: (IsWebPage a, MonadIO m) => a -> WebPageSendRequestCallback -> m SignalHandlerId
afterWebPageSendRequest :: a -> WebPageSendRequestCallback -> m SignalHandlerId
afterWebPageSendRequest obj :: a
obj cb :: WebPageSendRequestCallback
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 cb' :: C_WebPageSendRequestCallback
cb' = WebPageSendRequestCallback -> C_WebPageSendRequestCallback
wrap_WebPageSendRequestCallback WebPageSendRequestCallback
cb
    FunPtr C_WebPageSendRequestCallback
cb'' <- C_WebPageSendRequestCallback
-> IO (FunPtr C_WebPageSendRequestCallback)
mk_WebPageSendRequestCallback C_WebPageSendRequestCallback
cb'
    a
-> Text
-> FunPtr C_WebPageSendRequestCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "send-request" FunPtr C_WebPageSendRequestCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data WebPageSendRequestSignalInfo
instance SignalInfo WebPageSendRequestSignalInfo where
    type HaskellCallbackType WebPageSendRequestSignalInfo = WebPageSendRequestCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_WebPageSendRequestCallback cb
        cb'' <- mk_WebPageSendRequestCallback cb'
        connectSignalFunPtr obj "send-request" cb'' connectMode detail

#endif

-- signal WebPage::will-submit-form
-- | This signal is emitted to indicate various points during form
-- submission. /@step@/ indicates the current stage of form submission.
-- 
-- If this signal is emitted with 'GI.WebKit2WebExtension.Enums.FormSubmissionStepSendDomEvent',
-- then the DOM submit event is about to be emitted. JavaScript code
-- may rely on the submit event to detect that the user has clicked
-- on a submit button, and to possibly cancel the form submission
-- before 'GI.WebKit2WebExtension.Enums.FormSubmissionStepComplete'. However, beware
-- that, for historical reasons, the submit event is not emitted at
-- all if the form submission is triggered by JavaScript. For these
-- reasons, 'GI.WebKit2WebExtension.Enums.FormSubmissionStepSendDomEvent' may not
-- be used to reliably detect whether a form will be submitted.
-- Instead, use it to detect if a user has clicked on a form\'s
-- submit button even if JavaScript later cancels the form
-- submission, or to read the values of the form\'s fields even if
-- JavaScript later clears certain fields before submitting. This
-- may be needed, for example, to implement a robust browser
-- password manager, as some misguided websites may use such
-- techniques to attempt to thwart password managers.
-- 
-- If this signal is emitted with 'GI.WebKit2WebExtension.Enums.FormSubmissionStepComplete',
-- the form will imminently be submitted. It can no longer be
-- cancelled. This event always occurs immediately before a form is
-- submitted to its target, so use this event to reliably detect
-- when a form is submitted. This event occurs after
-- 'GI.WebKit2WebExtension.Enums.FormSubmissionStepSendDomEvent' if that event is
-- emitted.
-- 
-- /Since: 2.20/
type WebPageWillSubmitFormCallback =
    WebKit2WebExtension.DOMElement.DOMElement
    -- ^ /@form@/: the t'GI.WebKit2WebExtension.Objects.DOMElement.DOMElement' to be submitted, which will always correspond to an HTMLFormElement
    -> WebKit2WebExtension.Enums.FormSubmissionStep
    -- ^ /@step@/: a @/WebKitFormSubmissionEventType/@ indicating the current
    -- stage of form submission
    -> WebKit2WebExtension.Frame.Frame
    -- ^ /@sourceFrame@/: the t'GI.WebKit2WebExtension.Objects.Frame.Frame' containing the form to be
    -- submitted
    -> WebKit2WebExtension.Frame.Frame
    -- ^ /@targetFrame@/: the t'GI.WebKit2WebExtension.Objects.Frame.Frame' containing the form\'s target,
    -- which may be the same as /@sourceFrame@/ if no target was specified
    -> [T.Text]
    -- ^ /@textFieldNames@/: names of
    -- the form\'s text fields
    -> [T.Text]
    -- ^ /@textFieldValues@/: values
    -- of the form\'s text fields
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `WebPageWillSubmitFormCallback`@.
noWebPageWillSubmitFormCallback :: Maybe WebPageWillSubmitFormCallback
noWebPageWillSubmitFormCallback :: Maybe WebPageWillSubmitFormCallback
noWebPageWillSubmitFormCallback = Maybe WebPageWillSubmitFormCallback
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_WebPageWillSubmitFormCallback =
    Ptr () ->                               -- object
    Ptr WebKit2WebExtension.DOMElement.DOMElement ->
    CUInt ->
    Ptr WebKit2WebExtension.Frame.Frame ->
    Ptr WebKit2WebExtension.Frame.Frame ->
    Ptr (GPtrArray CString) ->
    Ptr (GPtrArray CString) ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_WebPageWillSubmitFormCallback`.
foreign import ccall "wrapper"
    mk_WebPageWillSubmitFormCallback :: C_WebPageWillSubmitFormCallback -> IO (FunPtr C_WebPageWillSubmitFormCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_WebPageWillSubmitForm :: MonadIO m => WebPageWillSubmitFormCallback -> m (GClosure C_WebPageWillSubmitFormCallback)
genClosure_WebPageWillSubmitForm :: WebPageWillSubmitFormCallback
-> m (GClosure C_WebPageWillSubmitFormCallback)
genClosure_WebPageWillSubmitForm cb :: WebPageWillSubmitFormCallback
cb = IO (GClosure C_WebPageWillSubmitFormCallback)
-> m (GClosure C_WebPageWillSubmitFormCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_WebPageWillSubmitFormCallback)
 -> m (GClosure C_WebPageWillSubmitFormCallback))
-> IO (GClosure C_WebPageWillSubmitFormCallback)
-> m (GClosure C_WebPageWillSubmitFormCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_WebPageWillSubmitFormCallback
cb' = WebPageWillSubmitFormCallback -> C_WebPageWillSubmitFormCallback
wrap_WebPageWillSubmitFormCallback WebPageWillSubmitFormCallback
cb
    C_WebPageWillSubmitFormCallback
-> IO (FunPtr C_WebPageWillSubmitFormCallback)
mk_WebPageWillSubmitFormCallback C_WebPageWillSubmitFormCallback
cb' IO (FunPtr C_WebPageWillSubmitFormCallback)
-> (FunPtr C_WebPageWillSubmitFormCallback
    -> IO (GClosure C_WebPageWillSubmitFormCallback))
-> IO (GClosure C_WebPageWillSubmitFormCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_WebPageWillSubmitFormCallback
-> IO (GClosure C_WebPageWillSubmitFormCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `WebPageWillSubmitFormCallback` into a `C_WebPageWillSubmitFormCallback`.
wrap_WebPageWillSubmitFormCallback ::
    WebPageWillSubmitFormCallback ->
    C_WebPageWillSubmitFormCallback
wrap_WebPageWillSubmitFormCallback :: WebPageWillSubmitFormCallback -> C_WebPageWillSubmitFormCallback
wrap_WebPageWillSubmitFormCallback _cb :: WebPageWillSubmitFormCallback
_cb _ form :: Ptr DOMElement
form step :: CUInt
step sourceFrame :: Ptr Frame
sourceFrame targetFrame :: Ptr Frame
targetFrame textFieldNames :: Ptr (GPtrArray CString)
textFieldNames textFieldValues :: Ptr (GPtrArray CString)
textFieldValues _ = do
    DOMElement
form' <- ((ManagedPtr DOMElement -> DOMElement)
-> Ptr DOMElement -> IO DOMElement
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DOMElement -> DOMElement
WebKit2WebExtension.DOMElement.DOMElement) Ptr DOMElement
form
    let step' :: FormSubmissionStep
step' = (Int -> FormSubmissionStep
forall a. Enum a => Int -> a
toEnum (Int -> FormSubmissionStep)
-> (CUInt -> Int) -> CUInt -> FormSubmissionStep
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
step
    Frame
sourceFrame' <- ((ManagedPtr Frame -> Frame) -> Ptr Frame -> IO Frame
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Frame -> Frame
WebKit2WebExtension.Frame.Frame) Ptr Frame
sourceFrame
    Frame
targetFrame' <- ((ManagedPtr Frame -> Frame) -> Ptr Frame -> IO Frame
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Frame -> Frame
WebKit2WebExtension.Frame.Frame) Ptr Frame
targetFrame
    [CString]
textFieldNames' <- Ptr (GPtrArray CString) -> IO [CString]
forall a. Ptr (GPtrArray (Ptr a)) -> IO [Ptr a]
unpackGPtrArray Ptr (GPtrArray CString)
textFieldNames
    [Text]
textFieldNames'' <- (CString -> IO Text) -> [CString] -> IO [Text]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText [CString]
textFieldNames'
    [CString]
textFieldValues' <- Ptr (GPtrArray CString) -> IO [CString]
forall a. Ptr (GPtrArray (Ptr a)) -> IO [Ptr a]
unpackGPtrArray Ptr (GPtrArray CString)
textFieldValues
    [Text]
textFieldValues'' <- (CString -> IO Text) -> [CString] -> IO [Text]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText [CString]
textFieldValues'
    WebPageWillSubmitFormCallback
_cb  DOMElement
form' FormSubmissionStep
step' Frame
sourceFrame' Frame
targetFrame' [Text]
textFieldNames'' [Text]
textFieldValues''


-- | Connect a signal handler for the [willSubmitForm](#signal:willSubmitForm) 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' webPage #willSubmitForm callback
-- @
-- 
-- 
onWebPageWillSubmitForm :: (IsWebPage a, MonadIO m) => a -> WebPageWillSubmitFormCallback -> m SignalHandlerId
onWebPageWillSubmitForm :: a -> WebPageWillSubmitFormCallback -> m SignalHandlerId
onWebPageWillSubmitForm obj :: a
obj cb :: WebPageWillSubmitFormCallback
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 cb' :: C_WebPageWillSubmitFormCallback
cb' = WebPageWillSubmitFormCallback -> C_WebPageWillSubmitFormCallback
wrap_WebPageWillSubmitFormCallback WebPageWillSubmitFormCallback
cb
    FunPtr C_WebPageWillSubmitFormCallback
cb'' <- C_WebPageWillSubmitFormCallback
-> IO (FunPtr C_WebPageWillSubmitFormCallback)
mk_WebPageWillSubmitFormCallback C_WebPageWillSubmitFormCallback
cb'
    a
-> Text
-> FunPtr C_WebPageWillSubmitFormCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "will-submit-form" FunPtr C_WebPageWillSubmitFormCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [willSubmitForm](#signal:willSubmitForm) 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' webPage #willSubmitForm callback
-- @
-- 
-- 
afterWebPageWillSubmitForm :: (IsWebPage a, MonadIO m) => a -> WebPageWillSubmitFormCallback -> m SignalHandlerId
afterWebPageWillSubmitForm :: a -> WebPageWillSubmitFormCallback -> m SignalHandlerId
afterWebPageWillSubmitForm obj :: a
obj cb :: WebPageWillSubmitFormCallback
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 cb' :: C_WebPageWillSubmitFormCallback
cb' = WebPageWillSubmitFormCallback -> C_WebPageWillSubmitFormCallback
wrap_WebPageWillSubmitFormCallback WebPageWillSubmitFormCallback
cb
    FunPtr C_WebPageWillSubmitFormCallback
cb'' <- C_WebPageWillSubmitFormCallback
-> IO (FunPtr C_WebPageWillSubmitFormCallback)
mk_WebPageWillSubmitFormCallback C_WebPageWillSubmitFormCallback
cb'
    a
-> Text
-> FunPtr C_WebPageWillSubmitFormCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "will-submit-form" FunPtr C_WebPageWillSubmitFormCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data WebPageWillSubmitFormSignalInfo
instance SignalInfo WebPageWillSubmitFormSignalInfo where
    type HaskellCallbackType WebPageWillSubmitFormSignalInfo = WebPageWillSubmitFormCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_WebPageWillSubmitFormCallback cb
        cb'' <- mk_WebPageWillSubmitFormCallback cb'
        connectSignalFunPtr obj "will-submit-form" cb'' connectMode detail

#endif

-- VVV Prop "uri"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]
   -- Nullable: (Just True,Nothing)

-- | Get the value of the “@uri@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' webPage #uri
-- @
getWebPageUri :: (MonadIO m, IsWebPage o) => o -> m (Maybe T.Text)
getWebPageUri :: o -> m (Maybe Text)
getWebPageUri obj :: o
obj = 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
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj "uri"

#if defined(ENABLE_OVERLOADING)
data WebPageUriPropertyInfo
instance AttrInfo WebPageUriPropertyInfo where
    type AttrAllowedOps WebPageUriPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint WebPageUriPropertyInfo = IsWebPage
    type AttrSetTypeConstraint WebPageUriPropertyInfo = (~) ()
    type AttrTransferTypeConstraint WebPageUriPropertyInfo = (~) ()
    type AttrTransferType WebPageUriPropertyInfo = ()
    type AttrGetType WebPageUriPropertyInfo = (Maybe T.Text)
    type AttrLabel WebPageUriPropertyInfo = "uri"
    type AttrOrigin WebPageUriPropertyInfo = WebPage
    attrGet = getWebPageUri
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList WebPage
type instance O.AttributeList WebPage = WebPageAttributeList
type WebPageAttributeList = ('[ '("uri", WebPageUriPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
webPageUri :: AttrLabelProxy "uri"
webPageUri = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList WebPage = WebPageSignalList
type WebPageSignalList = ('[ '("consoleMessageSent", WebPageConsoleMessageSentSignalInfo), '("contextMenu", WebPageContextMenuSignalInfo), '("documentLoaded", WebPageDocumentLoadedSignalInfo), '("formControlsAssociated", WebPageFormControlsAssociatedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("sendRequest", WebPageSendRequestSignalInfo), '("willSubmitForm", WebPageWillSubmitFormSignalInfo)] :: [(Symbol, *)])

#endif

-- method WebPage::get_dom_document
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "web_page"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2WebExtension" , name = "WebPage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitWebPage" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "WebKit2WebExtension" , name = "DOMDocument" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_page_get_dom_document" webkit_web_page_get_dom_document :: 
    Ptr WebPage ->                          -- web_page : TInterface (Name {namespace = "WebKit2WebExtension", name = "WebPage"})
    IO (Ptr WebKit2WebExtension.DOMDocument.DOMDocument)

-- | Get the t'GI.WebKit2WebExtension.Objects.DOMDocument.DOMDocument' currently loaded in /@webPage@/
webPageGetDomDocument ::
    (B.CallStack.HasCallStack, MonadIO m, IsWebPage a) =>
    a
    -- ^ /@webPage@/: a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'
    -> m (Maybe WebKit2WebExtension.DOMDocument.DOMDocument)
    -- ^ __Returns:__ the t'GI.WebKit2WebExtension.Objects.DOMDocument.DOMDocument' currently loaded, or 'P.Nothing'
    --    if no document is currently loaded.
webPageGetDomDocument :: a -> m (Maybe DOMDocument)
webPageGetDomDocument webPage :: a
webPage = IO (Maybe DOMDocument) -> m (Maybe DOMDocument)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe DOMDocument) -> m (Maybe DOMDocument))
-> IO (Maybe DOMDocument) -> m (Maybe DOMDocument)
forall a b. (a -> b) -> a -> b
$ do
    Ptr WebPage
webPage' <- a -> IO (Ptr WebPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
webPage
    Ptr DOMDocument
result <- Ptr WebPage -> IO (Ptr DOMDocument)
webkit_web_page_get_dom_document Ptr WebPage
webPage'
    Maybe DOMDocument
maybeResult <- Ptr DOMDocument
-> (Ptr DOMDocument -> IO DOMDocument) -> IO (Maybe DOMDocument)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr DOMDocument
result ((Ptr DOMDocument -> IO DOMDocument) -> IO (Maybe DOMDocument))
-> (Ptr DOMDocument -> IO DOMDocument) -> IO (Maybe DOMDocument)
forall a b. (a -> b) -> a -> b
$ \result' :: Ptr DOMDocument
result' -> do
        DOMDocument
result'' <- ((ManagedPtr DOMDocument -> DOMDocument)
-> Ptr DOMDocument -> IO DOMDocument
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr DOMDocument -> DOMDocument
WebKit2WebExtension.DOMDocument.DOMDocument) Ptr DOMDocument
result'
        DOMDocument -> IO DOMDocument
forall (m :: * -> *) a. Monad m => a -> m a
return DOMDocument
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
webPage
    Maybe DOMDocument -> IO (Maybe DOMDocument)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DOMDocument
maybeResult

#if defined(ENABLE_OVERLOADING)
data WebPageGetDomDocumentMethodInfo
instance (signature ~ (m (Maybe WebKit2WebExtension.DOMDocument.DOMDocument)), MonadIO m, IsWebPage a) => O.MethodInfo WebPageGetDomDocumentMethodInfo a signature where
    overloadedMethod = webPageGetDomDocument

#endif

-- method WebPage::get_editor
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "web_page"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2WebExtension" , name = "WebPage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitWebPage" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "WebKit2WebExtension" , name = "WebEditor" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_page_get_editor" webkit_web_page_get_editor :: 
    Ptr WebPage ->                          -- web_page : TInterface (Name {namespace = "WebKit2WebExtension", name = "WebPage"})
    IO (Ptr WebKit2WebExtension.WebEditor.WebEditor)

-- | Gets the t'GI.WebKit2WebExtension.Objects.WebEditor.WebEditor' of a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'.
-- 
-- /Since: 2.10/
webPageGetEditor ::
    (B.CallStack.HasCallStack, MonadIO m, IsWebPage a) =>
    a
    -- ^ /@webPage@/: a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'
    -> m WebKit2WebExtension.WebEditor.WebEditor
    -- ^ __Returns:__ the t'GI.WebKit2WebExtension.Objects.WebEditor.WebEditor'
webPageGetEditor :: a -> m WebEditor
webPageGetEditor webPage :: a
webPage = IO WebEditor -> m WebEditor
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO WebEditor -> m WebEditor) -> IO WebEditor -> m WebEditor
forall a b. (a -> b) -> a -> b
$ do
    Ptr WebPage
webPage' <- a -> IO (Ptr WebPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
webPage
    Ptr WebEditor
result <- Ptr WebPage -> IO (Ptr WebEditor)
webkit_web_page_get_editor Ptr WebPage
webPage'
    Text -> Ptr WebEditor -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "webPageGetEditor" Ptr WebEditor
result
    WebEditor
result' <- ((ManagedPtr WebEditor -> WebEditor)
-> Ptr WebEditor -> IO WebEditor
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr WebEditor -> WebEditor
WebKit2WebExtension.WebEditor.WebEditor) Ptr WebEditor
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
webPage
    WebEditor -> IO WebEditor
forall (m :: * -> *) a. Monad m => a -> m a
return WebEditor
result'

#if defined(ENABLE_OVERLOADING)
data WebPageGetEditorMethodInfo
instance (signature ~ (m WebKit2WebExtension.WebEditor.WebEditor), MonadIO m, IsWebPage a) => O.MethodInfo WebPageGetEditorMethodInfo a signature where
    overloadedMethod = webPageGetEditor

#endif

-- method WebPage::get_id
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "web_page"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2WebExtension" , name = "WebPage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitWebPage" , 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_web_page_get_id" webkit_web_page_get_id :: 
    Ptr WebPage ->                          -- web_page : TInterface (Name {namespace = "WebKit2WebExtension", name = "WebPage"})
    IO Word64

-- | Get the identifier of the t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'
webPageGetId ::
    (B.CallStack.HasCallStack, MonadIO m, IsWebPage a) =>
    a
    -- ^ /@webPage@/: a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'
    -> m Word64
    -- ^ __Returns:__ the identifier of /@webPage@/
webPageGetId :: a -> m Word64
webPageGetId webPage :: a
webPage = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
    Ptr WebPage
webPage' <- a -> IO (Ptr WebPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
webPage
    Word64
result <- Ptr WebPage -> IO Word64
webkit_web_page_get_id Ptr WebPage
webPage'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
webPage
    Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result

#if defined(ENABLE_OVERLOADING)
data WebPageGetIdMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsWebPage a) => O.MethodInfo WebPageGetIdMethodInfo a signature where
    overloadedMethod = webPageGetId

#endif

-- method WebPage::get_main_frame
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "web_page"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2WebExtension" , name = "WebPage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitWebPage" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "WebKit2WebExtension" , name = "Frame" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_page_get_main_frame" webkit_web_page_get_main_frame :: 
    Ptr WebPage ->                          -- web_page : TInterface (Name {namespace = "WebKit2WebExtension", name = "WebPage"})
    IO (Ptr WebKit2WebExtension.Frame.Frame)

-- | Returns the main frame of a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'.
-- 
-- /Since: 2.2/
webPageGetMainFrame ::
    (B.CallStack.HasCallStack, MonadIO m, IsWebPage a) =>
    a
    -- ^ /@webPage@/: a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'
    -> m WebKit2WebExtension.Frame.Frame
    -- ^ __Returns:__ the t'GI.WebKit2WebExtension.Objects.Frame.Frame' that is the main frame of /@webPage@/
webPageGetMainFrame :: a -> m Frame
webPageGetMainFrame webPage :: a
webPage = IO Frame -> m Frame
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Frame -> m Frame) -> IO Frame -> m Frame
forall a b. (a -> b) -> a -> b
$ do
    Ptr WebPage
webPage' <- a -> IO (Ptr WebPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
webPage
    Ptr Frame
result <- Ptr WebPage -> IO (Ptr Frame)
webkit_web_page_get_main_frame Ptr WebPage
webPage'
    Text -> Ptr Frame -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "webPageGetMainFrame" Ptr Frame
result
    Frame
result' <- ((ManagedPtr Frame -> Frame) -> Ptr Frame -> IO Frame
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Frame -> Frame
WebKit2WebExtension.Frame.Frame) Ptr Frame
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
webPage
    Frame -> IO Frame
forall (m :: * -> *) a. Monad m => a -> m a
return Frame
result'

#if defined(ENABLE_OVERLOADING)
data WebPageGetMainFrameMethodInfo
instance (signature ~ (m WebKit2WebExtension.Frame.Frame), MonadIO m, IsWebPage a) => O.MethodInfo WebPageGetMainFrameMethodInfo a signature where
    overloadedMethod = webPageGetMainFrame

#endif

-- method WebPage::get_uri
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "web_page"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2WebExtension" , name = "WebPage" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitWebPage" , 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_web_page_get_uri" webkit_web_page_get_uri :: 
    Ptr WebPage ->                          -- web_page : TInterface (Name {namespace = "WebKit2WebExtension", name = "WebPage"})
    IO CString

-- | Returns the current active URI of /@webPage@/.
-- 
-- You can monitor the active URI by connecting to the notify[uri](#signal:uri)
-- signal of /@webPage@/.
webPageGetUri ::
    (B.CallStack.HasCallStack, MonadIO m, IsWebPage a) =>
    a
    -- ^ /@webPage@/: a t'GI.WebKit2WebExtension.Objects.WebPage.WebPage'
    -> m (Maybe T.Text)
    -- ^ __Returns:__ the current active URI of /@webView@/ or 'P.Nothing' if nothing has been
    --    loaded yet.
webPageGetUri :: a -> m (Maybe Text)
webPageGetUri webPage :: a
webPage = 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 WebPage
webPage' <- a -> IO (Ptr WebPage)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
webPage
    CString
result <- Ptr WebPage -> IO CString
webkit_web_page_get_uri Ptr WebPage
webPage'
    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
$ \result' :: CString
result' -> do
        Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText 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
webPage
    Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult

#if defined(ENABLE_OVERLOADING)
data WebPageGetUriMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsWebPage a) => O.MethodInfo WebPageGetUriMethodInfo a signature where
    overloadedMethod = webPageGetUri

#endif