{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit2.Objects.WebView
    ( 

-- * Exported types
    WebView(..)                             ,
    WebViewK                                ,
    toWebView                               ,
    noWebView                               ,


 -- * Methods
-- ** webViewCanExecuteEditingCommand
    webViewCanExecuteEditingCommand         ,


-- ** webViewCanExecuteEditingCommandFinish
    webViewCanExecuteEditingCommandFinish   ,


-- ** webViewCanGoBack
    webViewCanGoBack                        ,


-- ** webViewCanGoForward
    webViewCanGoForward                     ,


-- ** webViewCanShowMimeType
    webViewCanShowMimeType                  ,


-- ** webViewDownloadUri
    webViewDownloadUri                      ,


-- ** webViewExecuteEditingCommand
    webViewExecuteEditingCommand            ,


-- ** webViewExecuteEditingCommandWithArgument
    webViewExecuteEditingCommandWithArgument,


-- ** webViewGetBackForwardList
    webViewGetBackForwardList               ,


-- ** webViewGetBackgroundColor
    webViewGetBackgroundColor               ,


-- ** webViewGetContext
    webViewGetContext                       ,


-- ** webViewGetCustomCharset
    webViewGetCustomCharset                 ,


-- ** webViewGetEditorState
    webViewGetEditorState                   ,


-- ** webViewGetEstimatedLoadProgress
    webViewGetEstimatedLoadProgress         ,


-- ** webViewGetFavicon
    webViewGetFavicon                       ,


-- ** webViewGetFindController
    webViewGetFindController                ,


-- ** webViewGetInspector
    webViewGetInspector                     ,


-- ** webViewGetJavascriptGlobalContext
    webViewGetJavascriptGlobalContext       ,


-- ** webViewGetMainResource
    webViewGetMainResource                  ,


-- ** webViewGetPageId
    webViewGetPageId                        ,


-- ** webViewGetSettings
    webViewGetSettings                      ,


-- ** webViewGetSnapshot
    webViewGetSnapshot                      ,


-- ** webViewGetSnapshotFinish
    webViewGetSnapshotFinish                ,


-- ** webViewGetTitle
    webViewGetTitle                         ,


-- ** webViewGetTlsInfo
    webViewGetTlsInfo                       ,


-- ** webViewGetUri
    webViewGetUri                           ,


-- ** webViewGetUserContentManager
    webViewGetUserContentManager            ,


-- ** webViewGetWindowProperties
    webViewGetWindowProperties              ,


-- ** webViewGetZoomLevel
    webViewGetZoomLevel                     ,


-- ** webViewGoBack
    webViewGoBack                           ,


-- ** webViewGoForward
    webViewGoForward                        ,


-- ** webViewGoToBackForwardListItem
    webViewGoToBackForwardListItem          ,


-- ** webViewIsEditable
    webViewIsEditable                       ,


-- ** webViewIsLoading
    webViewIsLoading                        ,


-- ** webViewIsPlayingAudio
    webViewIsPlayingAudio                   ,


-- ** webViewLoadAlternateHtml
    webViewLoadAlternateHtml                ,


-- ** webViewLoadBytes
    webViewLoadBytes                        ,


-- ** webViewLoadHtml
    webViewLoadHtml                         ,


-- ** webViewLoadPlainText
    webViewLoadPlainText                    ,


-- ** webViewLoadRequest
    webViewLoadRequest                      ,


-- ** webViewLoadUri
    webViewLoadUri                          ,


-- ** webViewNew
    webViewNew                              ,


-- ** webViewNewWithContext
    webViewNewWithContext                   ,


-- ** webViewNewWithRelatedView
    webViewNewWithRelatedView               ,


-- ** webViewNewWithSettings
    webViewNewWithSettings                  ,


-- ** webViewNewWithUserContentManager
    webViewNewWithUserContentManager        ,


-- ** webViewReload
    webViewReload                           ,


-- ** webViewReloadBypassCache
    webViewReloadBypassCache                ,


-- ** webViewRunJavascript
    webViewRunJavascript                    ,


-- ** webViewRunJavascriptFinish
    webViewRunJavascriptFinish              ,


-- ** webViewRunJavascriptFromGresource
    webViewRunJavascriptFromGresource       ,


-- ** webViewRunJavascriptFromGresourceFinish
    webViewRunJavascriptFromGresourceFinish ,


-- ** webViewSave
    webViewSave                             ,


-- ** webViewSaveFinish
    webViewSaveFinish                       ,


-- ** webViewSaveToFile
    webViewSaveToFile                       ,


-- ** webViewSaveToFileFinish
    webViewSaveToFileFinish                 ,


-- ** webViewSetBackgroundColor
    webViewSetBackgroundColor               ,


-- ** webViewSetCustomCharset
    webViewSetCustomCharset                 ,


-- ** webViewSetEditable
    webViewSetEditable                      ,


-- ** webViewSetSettings
    webViewSetSettings                      ,


-- ** webViewSetZoomLevel
    webViewSetZoomLevel                     ,


-- ** webViewStopLoading
    webViewStopLoading                      ,




 -- * Properties
-- ** Editable
    WebViewEditablePropertyInfo             ,
    constructWebViewEditable                ,
    getWebViewEditable                      ,
    setWebViewEditable                      ,


-- ** EstimatedLoadProgress
    WebViewEstimatedLoadProgressPropertyInfo,
    getWebViewEstimatedLoadProgress         ,


-- ** Favicon
    WebViewFaviconPropertyInfo              ,
    getWebViewFavicon                       ,


-- ** IsLoading
    WebViewIsLoadingPropertyInfo            ,
    getWebViewIsLoading                     ,


-- ** IsPlayingAudio
    WebViewIsPlayingAudioPropertyInfo       ,
    getWebViewIsPlayingAudio                ,


-- ** RelatedView
    WebViewRelatedViewPropertyInfo          ,
    constructWebViewRelatedView             ,


-- ** Settings
    WebViewSettingsPropertyInfo             ,
    constructWebViewSettings                ,
    setWebViewSettings                      ,


-- ** Title
    WebViewTitlePropertyInfo                ,
    getWebViewTitle                         ,


-- ** Uri
    WebViewUriPropertyInfo                  ,
    getWebViewUri                           ,


-- ** UserContentManager
    WebViewUserContentManagerPropertyInfo   ,
    constructWebViewUserContentManager      ,
    getWebViewUserContentManager            ,


-- ** WebContext
    WebViewWebContextPropertyInfo           ,
    constructWebViewWebContext              ,
    getWebViewWebContext                    ,


-- ** ZoomLevel
    WebViewZoomLevelPropertyInfo            ,
    constructWebViewZoomLevel               ,
    getWebViewZoomLevel                     ,
    setWebViewZoomLevel                     ,




 -- * Signals
-- ** Authenticate
    WebViewAuthenticateCallback             ,
    WebViewAuthenticateCallbackC            ,
    WebViewAuthenticateSignalInfo           ,
    afterWebViewAuthenticate                ,
    mkWebViewAuthenticateCallback           ,
    noWebViewAuthenticateCallback           ,
    onWebViewAuthenticate                   ,
    webViewAuthenticateCallbackWrapper      ,
    webViewAuthenticateClosure              ,


-- ** Close
    WebViewCloseCallback                    ,
    WebViewCloseCallbackC                   ,
    WebViewCloseSignalInfo                  ,
    afterWebViewClose                       ,
    mkWebViewCloseCallback                  ,
    noWebViewCloseCallback                  ,
    onWebViewClose                          ,
    webViewCloseCallbackWrapper             ,
    webViewCloseClosure                     ,


-- ** ContextMenu
    WebViewContextMenuCallback              ,
    WebViewContextMenuCallbackC             ,
    WebViewContextMenuSignalInfo            ,
    afterWebViewContextMenu                 ,
    mkWebViewContextMenuCallback            ,
    noWebViewContextMenuCallback            ,
    onWebViewContextMenu                    ,
    webViewContextMenuCallbackWrapper       ,
    webViewContextMenuClosure               ,


-- ** ContextMenuDismissed
    WebViewContextMenuDismissedCallback     ,
    WebViewContextMenuDismissedCallbackC    ,
    WebViewContextMenuDismissedSignalInfo   ,
    afterWebViewContextMenuDismissed        ,
    mkWebViewContextMenuDismissedCallback   ,
    noWebViewContextMenuDismissedCallback   ,
    onWebViewContextMenuDismissed           ,
    webViewContextMenuDismissedCallbackWrapper,
    webViewContextMenuDismissedClosure      ,


-- ** Create
    WebViewCreateCallback                   ,
    WebViewCreateCallbackC                  ,
    WebViewCreateSignalInfo                 ,
    afterWebViewCreate                      ,
    mkWebViewCreateCallback                 ,
    noWebViewCreateCallback                 ,
    onWebViewCreate                         ,
    webViewCreateCallbackWrapper            ,
    webViewCreateClosure                    ,


-- ** DecidePolicy
    WebViewDecidePolicyCallback             ,
    WebViewDecidePolicyCallbackC            ,
    WebViewDecidePolicySignalInfo           ,
    afterWebViewDecidePolicy                ,
    mkWebViewDecidePolicyCallback           ,
    noWebViewDecidePolicyCallback           ,
    onWebViewDecidePolicy                   ,
    webViewDecidePolicyCallbackWrapper      ,
    webViewDecidePolicyClosure              ,


-- ** EnterFullscreen
    WebViewEnterFullscreenCallback          ,
    WebViewEnterFullscreenCallbackC         ,
    WebViewEnterFullscreenSignalInfo        ,
    afterWebViewEnterFullscreen             ,
    mkWebViewEnterFullscreenCallback        ,
    noWebViewEnterFullscreenCallback        ,
    onWebViewEnterFullscreen                ,
    webViewEnterFullscreenCallbackWrapper   ,
    webViewEnterFullscreenClosure           ,


-- ** InsecureContentDetected
    WebViewInsecureContentDetectedCallback  ,
    WebViewInsecureContentDetectedCallbackC ,
    WebViewInsecureContentDetectedSignalInfo,
    afterWebViewInsecureContentDetected     ,
    mkWebViewInsecureContentDetectedCallback,
    noWebViewInsecureContentDetectedCallback,
    onWebViewInsecureContentDetected        ,
    webViewInsecureContentDetectedCallbackWrapper,
    webViewInsecureContentDetectedClosure   ,


-- ** LeaveFullscreen
    WebViewLeaveFullscreenCallback          ,
    WebViewLeaveFullscreenCallbackC         ,
    WebViewLeaveFullscreenSignalInfo        ,
    afterWebViewLeaveFullscreen             ,
    mkWebViewLeaveFullscreenCallback        ,
    noWebViewLeaveFullscreenCallback        ,
    onWebViewLeaveFullscreen                ,
    webViewLeaveFullscreenCallbackWrapper   ,
    webViewLeaveFullscreenClosure           ,


-- ** LoadChanged
    WebViewLoadChangedCallback              ,
    WebViewLoadChangedCallbackC             ,
    WebViewLoadChangedSignalInfo            ,
    afterWebViewLoadChanged                 ,
    mkWebViewLoadChangedCallback            ,
    noWebViewLoadChangedCallback            ,
    onWebViewLoadChanged                    ,
    webViewLoadChangedCallbackWrapper       ,
    webViewLoadChangedClosure               ,


-- ** LoadFailed
    WebViewLoadFailedCallback               ,
    WebViewLoadFailedCallbackC              ,
    WebViewLoadFailedSignalInfo             ,
    afterWebViewLoadFailed                  ,
    mkWebViewLoadFailedCallback             ,
    noWebViewLoadFailedCallback             ,
    onWebViewLoadFailed                     ,
    webViewLoadFailedCallbackWrapper        ,
    webViewLoadFailedClosure                ,


-- ** LoadFailedWithTlsErrors
    WebViewLoadFailedWithTlsErrorsCallback  ,
    WebViewLoadFailedWithTlsErrorsCallbackC ,
    WebViewLoadFailedWithTlsErrorsSignalInfo,
    afterWebViewLoadFailedWithTlsErrors     ,
    mkWebViewLoadFailedWithTlsErrorsCallback,
    noWebViewLoadFailedWithTlsErrorsCallback,
    onWebViewLoadFailedWithTlsErrors        ,
    webViewLoadFailedWithTlsErrorsCallbackWrapper,
    webViewLoadFailedWithTlsErrorsClosure   ,


-- ** MouseTargetChanged
    WebViewMouseTargetChangedCallback       ,
    WebViewMouseTargetChangedCallbackC      ,
    WebViewMouseTargetChangedSignalInfo     ,
    afterWebViewMouseTargetChanged          ,
    mkWebViewMouseTargetChangedCallback     ,
    noWebViewMouseTargetChangedCallback     ,
    onWebViewMouseTargetChanged             ,
    webViewMouseTargetChangedCallbackWrapper,
    webViewMouseTargetChangedClosure        ,


-- ** PermissionRequest
    WebViewPermissionRequestCallback        ,
    WebViewPermissionRequestCallbackC       ,
    WebViewPermissionRequestSignalInfo      ,
    afterWebViewPermissionRequest           ,
    mkWebViewPermissionRequestCallback      ,
    noWebViewPermissionRequestCallback      ,
    onWebViewPermissionRequest              ,
    webViewPermissionRequestCallbackWrapper ,
    webViewPermissionRequestClosure         ,


-- ** Print
    WebViewPrintCallback                    ,
    WebViewPrintCallbackC                   ,
    WebViewPrintSignalInfo                  ,
    afterWebViewPrint                       ,
    mkWebViewPrintCallback                  ,
    noWebViewPrintCallback                  ,
    onWebViewPrint                          ,
    webViewPrintCallbackWrapper             ,
    webViewPrintClosure                     ,


-- ** ReadyToShow
    WebViewReadyToShowCallback              ,
    WebViewReadyToShowCallbackC             ,
    WebViewReadyToShowSignalInfo            ,
    afterWebViewReadyToShow                 ,
    mkWebViewReadyToShowCallback            ,
    noWebViewReadyToShowCallback            ,
    onWebViewReadyToShow                    ,
    webViewReadyToShowCallbackWrapper       ,
    webViewReadyToShowClosure               ,


-- ** ResourceLoadStarted
    WebViewResourceLoadStartedCallback      ,
    WebViewResourceLoadStartedCallbackC     ,
    WebViewResourceLoadStartedSignalInfo    ,
    afterWebViewResourceLoadStarted         ,
    mkWebViewResourceLoadStartedCallback    ,
    noWebViewResourceLoadStartedCallback    ,
    onWebViewResourceLoadStarted            ,
    webViewResourceLoadStartedCallbackWrapper,
    webViewResourceLoadStartedClosure       ,


-- ** RunAsModal
    WebViewRunAsModalCallback               ,
    WebViewRunAsModalCallbackC              ,
    WebViewRunAsModalSignalInfo             ,
    afterWebViewRunAsModal                  ,
    mkWebViewRunAsModalCallback             ,
    noWebViewRunAsModalCallback             ,
    onWebViewRunAsModal                     ,
    webViewRunAsModalCallbackWrapper        ,
    webViewRunAsModalClosure                ,


-- ** RunColorChooser
    WebViewRunColorChooserCallback          ,
    WebViewRunColorChooserCallbackC         ,
    WebViewRunColorChooserSignalInfo        ,
    afterWebViewRunColorChooser             ,
    mkWebViewRunColorChooserCallback        ,
    noWebViewRunColorChooserCallback        ,
    onWebViewRunColorChooser                ,
    webViewRunColorChooserCallbackWrapper   ,
    webViewRunColorChooserClosure           ,


-- ** RunFileChooser
    WebViewRunFileChooserCallback           ,
    WebViewRunFileChooserCallbackC          ,
    WebViewRunFileChooserSignalInfo         ,
    afterWebViewRunFileChooser              ,
    mkWebViewRunFileChooserCallback         ,
    noWebViewRunFileChooserCallback         ,
    onWebViewRunFileChooser                 ,
    webViewRunFileChooserCallbackWrapper    ,
    webViewRunFileChooserClosure            ,


-- ** ScriptDialog
    WebViewScriptDialogCallback             ,
    WebViewScriptDialogCallbackC            ,
    WebViewScriptDialogSignalInfo           ,
    afterWebViewScriptDialog                ,
    mkWebViewScriptDialogCallback           ,
    noWebViewScriptDialogCallback           ,
    onWebViewScriptDialog                   ,
    webViewScriptDialogCallbackWrapper      ,
    webViewScriptDialogClosure              ,


-- ** ShowNotification
    WebViewShowNotificationCallback         ,
    WebViewShowNotificationCallbackC        ,
    WebViewShowNotificationSignalInfo       ,
    afterWebViewShowNotification            ,
    mkWebViewShowNotificationCallback       ,
    noWebViewShowNotificationCallback       ,
    onWebViewShowNotification               ,
    webViewShowNotificationCallbackWrapper  ,
    webViewShowNotificationClosure          ,


-- ** SubmitForm
    WebViewSubmitFormCallback               ,
    WebViewSubmitFormCallbackC              ,
    WebViewSubmitFormSignalInfo             ,
    afterWebViewSubmitForm                  ,
    mkWebViewSubmitFormCallback             ,
    noWebViewSubmitFormCallback             ,
    onWebViewSubmitForm                     ,
    webViewSubmitFormCallbackWrapper        ,
    webViewSubmitFormClosure                ,


-- ** WebProcessCrashed
    WebViewWebProcessCrashedCallback        ,
    WebViewWebProcessCrashedCallbackC       ,
    WebViewWebProcessCrashedSignalInfo      ,
    afterWebViewWebProcessCrashed           ,
    mkWebViewWebProcessCrashedCallback      ,
    noWebViewWebProcessCrashedCallback      ,
    onWebViewWebProcessCrashed              ,
    webViewWebProcessCrashedCallbackWrapper ,
    webViewWebProcessCrashedClosure         ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.WebKit2.Types
import GI.WebKit2.Callbacks
import qualified GI.Atk as Atk
import qualified GI.GLib as GLib
import qualified GI.GObject as GObject
import qualified GI.Gdk as Gdk
import qualified GI.Gio as Gio
import qualified GI.Gtk as Gtk
import qualified GI.JavaScriptCore as JavaScriptCore
import qualified GI.Cairo as Cairo

newtype WebView = WebView (ForeignPtr WebView)
foreign import ccall "webkit_web_view_get_type"
    c_webkit_web_view_get_type :: IO GType

type instance ParentTypes WebView = WebViewParentTypes
type WebViewParentTypes = '[WebViewBase, Gtk.Container, Gtk.Widget, GObject.Object, Atk.ImplementorIface, Gtk.Buildable]

instance GObject WebView where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_webkit_web_view_get_type
    

class GObject o => WebViewK o
instance (GObject o, IsDescendantOf WebView o) => WebViewK o

toWebView :: WebViewK o => o -> IO WebView
toWebView = unsafeCastTo WebView

noWebView :: Maybe WebView
noWebView = Nothing

-- signal WebView::authenticate
type WebViewAuthenticateCallback =
    AuthenticationRequest ->
    IO Bool

noWebViewAuthenticateCallback :: Maybe WebViewAuthenticateCallback
noWebViewAuthenticateCallback = Nothing

type WebViewAuthenticateCallbackC =
    Ptr () ->                               -- object
    Ptr AuthenticationRequest ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewAuthenticateCallback :: WebViewAuthenticateCallbackC -> IO (FunPtr WebViewAuthenticateCallbackC)

webViewAuthenticateClosure :: WebViewAuthenticateCallback -> IO Closure
webViewAuthenticateClosure cb = newCClosure =<< mkWebViewAuthenticateCallback wrapped
    where wrapped = webViewAuthenticateCallbackWrapper cb

webViewAuthenticateCallbackWrapper ::
    WebViewAuthenticateCallback ->
    Ptr () ->
    Ptr AuthenticationRequest ->
    Ptr () ->
    IO CInt
webViewAuthenticateCallbackWrapper _cb _ request _ = do
    request' <- (newObject AuthenticationRequest) request
    result <- _cb  request'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewAuthenticate :: (GObject a, MonadIO m) => a -> WebViewAuthenticateCallback -> m SignalHandlerId
onWebViewAuthenticate obj cb = liftIO $ connectWebViewAuthenticate obj cb SignalConnectBefore
afterWebViewAuthenticate :: (GObject a, MonadIO m) => a -> WebViewAuthenticateCallback -> m SignalHandlerId
afterWebViewAuthenticate obj cb = connectWebViewAuthenticate obj cb SignalConnectAfter

connectWebViewAuthenticate :: (GObject a, MonadIO m) =>
                              a -> WebViewAuthenticateCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewAuthenticate obj cb after = liftIO $ do
    cb' <- mkWebViewAuthenticateCallback (webViewAuthenticateCallbackWrapper cb)
    connectSignalFunPtr obj "authenticate" cb' after

-- signal WebView::close
type WebViewCloseCallback =
    IO ()

noWebViewCloseCallback :: Maybe WebViewCloseCallback
noWebViewCloseCallback = Nothing

type WebViewCloseCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewCloseCallback :: WebViewCloseCallbackC -> IO (FunPtr WebViewCloseCallbackC)

webViewCloseClosure :: WebViewCloseCallback -> IO Closure
webViewCloseClosure cb = newCClosure =<< mkWebViewCloseCallback wrapped
    where wrapped = webViewCloseCallbackWrapper cb

webViewCloseCallbackWrapper ::
    WebViewCloseCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
webViewCloseCallbackWrapper _cb _ _ = do
    _cb 

onWebViewClose :: (GObject a, MonadIO m) => a -> WebViewCloseCallback -> m SignalHandlerId
onWebViewClose obj cb = liftIO $ connectWebViewClose obj cb SignalConnectBefore
afterWebViewClose :: (GObject a, MonadIO m) => a -> WebViewCloseCallback -> m SignalHandlerId
afterWebViewClose obj cb = connectWebViewClose obj cb SignalConnectAfter

connectWebViewClose :: (GObject a, MonadIO m) =>
                       a -> WebViewCloseCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewClose obj cb after = liftIO $ do
    cb' <- mkWebViewCloseCallback (webViewCloseCallbackWrapper cb)
    connectSignalFunPtr obj "close" cb' after

-- signal WebView::context-menu
type WebViewContextMenuCallback =
    ContextMenu ->
    Gdk.Event ->
    HitTestResult ->
    IO Bool

noWebViewContextMenuCallback :: Maybe WebViewContextMenuCallback
noWebViewContextMenuCallback = Nothing

type WebViewContextMenuCallbackC =
    Ptr () ->                               -- object
    Ptr ContextMenu ->
    Ptr Gdk.Event ->
    Ptr HitTestResult ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewContextMenuCallback :: WebViewContextMenuCallbackC -> IO (FunPtr WebViewContextMenuCallbackC)

webViewContextMenuClosure :: WebViewContextMenuCallback -> IO Closure
webViewContextMenuClosure cb = newCClosure =<< mkWebViewContextMenuCallback wrapped
    where wrapped = webViewContextMenuCallbackWrapper cb

webViewContextMenuCallbackWrapper ::
    WebViewContextMenuCallback ->
    Ptr () ->
    Ptr ContextMenu ->
    Ptr Gdk.Event ->
    Ptr HitTestResult ->
    Ptr () ->
    IO CInt
webViewContextMenuCallbackWrapper _cb _ context_menu event hit_test_result _ = do
    context_menu' <- (newObject ContextMenu) context_menu
    event' <- (newBoxed Gdk.Event) event
    hit_test_result' <- (newObject HitTestResult) hit_test_result
    result <- _cb  context_menu' event' hit_test_result'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewContextMenu :: (GObject a, MonadIO m) => a -> WebViewContextMenuCallback -> m SignalHandlerId
onWebViewContextMenu obj cb = liftIO $ connectWebViewContextMenu obj cb SignalConnectBefore
afterWebViewContextMenu :: (GObject a, MonadIO m) => a -> WebViewContextMenuCallback -> m SignalHandlerId
afterWebViewContextMenu obj cb = connectWebViewContextMenu obj cb SignalConnectAfter

connectWebViewContextMenu :: (GObject a, MonadIO m) =>
                             a -> WebViewContextMenuCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewContextMenu obj cb after = liftIO $ do
    cb' <- mkWebViewContextMenuCallback (webViewContextMenuCallbackWrapper cb)
    connectSignalFunPtr obj "context-menu" cb' after

-- signal WebView::context-menu-dismissed
type WebViewContextMenuDismissedCallback =
    IO ()

noWebViewContextMenuDismissedCallback :: Maybe WebViewContextMenuDismissedCallback
noWebViewContextMenuDismissedCallback = Nothing

type WebViewContextMenuDismissedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewContextMenuDismissedCallback :: WebViewContextMenuDismissedCallbackC -> IO (FunPtr WebViewContextMenuDismissedCallbackC)

webViewContextMenuDismissedClosure :: WebViewContextMenuDismissedCallback -> IO Closure
webViewContextMenuDismissedClosure cb = newCClosure =<< mkWebViewContextMenuDismissedCallback wrapped
    where wrapped = webViewContextMenuDismissedCallbackWrapper cb

webViewContextMenuDismissedCallbackWrapper ::
    WebViewContextMenuDismissedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
webViewContextMenuDismissedCallbackWrapper _cb _ _ = do
    _cb 

onWebViewContextMenuDismissed :: (GObject a, MonadIO m) => a -> WebViewContextMenuDismissedCallback -> m SignalHandlerId
onWebViewContextMenuDismissed obj cb = liftIO $ connectWebViewContextMenuDismissed obj cb SignalConnectBefore
afterWebViewContextMenuDismissed :: (GObject a, MonadIO m) => a -> WebViewContextMenuDismissedCallback -> m SignalHandlerId
afterWebViewContextMenuDismissed obj cb = connectWebViewContextMenuDismissed obj cb SignalConnectAfter

connectWebViewContextMenuDismissed :: (GObject a, MonadIO m) =>
                                      a -> WebViewContextMenuDismissedCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewContextMenuDismissed obj cb after = liftIO $ do
    cb' <- mkWebViewContextMenuDismissedCallback (webViewContextMenuDismissedCallbackWrapper cb)
    connectSignalFunPtr obj "context-menu-dismissed" cb' after

-- signal WebView::create
type WebViewCreateCallback =
    NavigationAction ->
    IO Gtk.Widget

noWebViewCreateCallback :: Maybe WebViewCreateCallback
noWebViewCreateCallback = Nothing

type WebViewCreateCallbackC =
    Ptr () ->                               -- object
    Ptr NavigationAction ->
    Ptr () ->                               -- user_data
    IO (Ptr Gtk.Widget)

foreign import ccall "wrapper"
    mkWebViewCreateCallback :: WebViewCreateCallbackC -> IO (FunPtr WebViewCreateCallbackC)

webViewCreateClosure :: WebViewCreateCallback -> IO Closure
webViewCreateClosure cb = newCClosure =<< mkWebViewCreateCallback wrapped
    where wrapped = webViewCreateCallbackWrapper cb

webViewCreateCallbackWrapper ::
    WebViewCreateCallback ->
    Ptr () ->
    Ptr NavigationAction ->
    Ptr () ->
    IO (Ptr Gtk.Widget)
webViewCreateCallbackWrapper _cb _ navigation_action _ = do
    navigation_action' <- (newBoxed NavigationAction) navigation_action
    result <- _cb  navigation_action'
    result' <- refObject result
    return result'

onWebViewCreate :: (GObject a, MonadIO m) => a -> WebViewCreateCallback -> m SignalHandlerId
onWebViewCreate obj cb = liftIO $ connectWebViewCreate obj cb SignalConnectBefore
afterWebViewCreate :: (GObject a, MonadIO m) => a -> WebViewCreateCallback -> m SignalHandlerId
afterWebViewCreate obj cb = connectWebViewCreate obj cb SignalConnectAfter

connectWebViewCreate :: (GObject a, MonadIO m) =>
                        a -> WebViewCreateCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewCreate obj cb after = liftIO $ do
    cb' <- mkWebViewCreateCallback (webViewCreateCallbackWrapper cb)
    connectSignalFunPtr obj "create" cb' after

-- signal WebView::decide-policy
type WebViewDecidePolicyCallback =
    PolicyDecision ->
    PolicyDecisionType ->
    IO Bool

noWebViewDecidePolicyCallback :: Maybe WebViewDecidePolicyCallback
noWebViewDecidePolicyCallback = Nothing

type WebViewDecidePolicyCallbackC =
    Ptr () ->                               -- object
    Ptr PolicyDecision ->
    CUInt ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewDecidePolicyCallback :: WebViewDecidePolicyCallbackC -> IO (FunPtr WebViewDecidePolicyCallbackC)

webViewDecidePolicyClosure :: WebViewDecidePolicyCallback -> IO Closure
webViewDecidePolicyClosure cb = newCClosure =<< mkWebViewDecidePolicyCallback wrapped
    where wrapped = webViewDecidePolicyCallbackWrapper cb

webViewDecidePolicyCallbackWrapper ::
    WebViewDecidePolicyCallback ->
    Ptr () ->
    Ptr PolicyDecision ->
    CUInt ->
    Ptr () ->
    IO CInt
webViewDecidePolicyCallbackWrapper _cb _ decision decision_type _ = do
    decision' <- (newObject PolicyDecision) decision
    let decision_type' = (toEnum . fromIntegral) decision_type
    result <- _cb  decision' decision_type'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewDecidePolicy :: (GObject a, MonadIO m) => a -> WebViewDecidePolicyCallback -> m SignalHandlerId
onWebViewDecidePolicy obj cb = liftIO $ connectWebViewDecidePolicy obj cb SignalConnectBefore
afterWebViewDecidePolicy :: (GObject a, MonadIO m) => a -> WebViewDecidePolicyCallback -> m SignalHandlerId
afterWebViewDecidePolicy obj cb = connectWebViewDecidePolicy obj cb SignalConnectAfter

connectWebViewDecidePolicy :: (GObject a, MonadIO m) =>
                              a -> WebViewDecidePolicyCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewDecidePolicy obj cb after = liftIO $ do
    cb' <- mkWebViewDecidePolicyCallback (webViewDecidePolicyCallbackWrapper cb)
    connectSignalFunPtr obj "decide-policy" cb' after

-- signal WebView::enter-fullscreen
type WebViewEnterFullscreenCallback =
    IO Bool

noWebViewEnterFullscreenCallback :: Maybe WebViewEnterFullscreenCallback
noWebViewEnterFullscreenCallback = Nothing

type WebViewEnterFullscreenCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewEnterFullscreenCallback :: WebViewEnterFullscreenCallbackC -> IO (FunPtr WebViewEnterFullscreenCallbackC)

webViewEnterFullscreenClosure :: WebViewEnterFullscreenCallback -> IO Closure
webViewEnterFullscreenClosure cb = newCClosure =<< mkWebViewEnterFullscreenCallback wrapped
    where wrapped = webViewEnterFullscreenCallbackWrapper cb

webViewEnterFullscreenCallbackWrapper ::
    WebViewEnterFullscreenCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
webViewEnterFullscreenCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewEnterFullscreen :: (GObject a, MonadIO m) => a -> WebViewEnterFullscreenCallback -> m SignalHandlerId
onWebViewEnterFullscreen obj cb = liftIO $ connectWebViewEnterFullscreen obj cb SignalConnectBefore
afterWebViewEnterFullscreen :: (GObject a, MonadIO m) => a -> WebViewEnterFullscreenCallback -> m SignalHandlerId
afterWebViewEnterFullscreen obj cb = connectWebViewEnterFullscreen obj cb SignalConnectAfter

connectWebViewEnterFullscreen :: (GObject a, MonadIO m) =>
                                 a -> WebViewEnterFullscreenCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewEnterFullscreen obj cb after = liftIO $ do
    cb' <- mkWebViewEnterFullscreenCallback (webViewEnterFullscreenCallbackWrapper cb)
    connectSignalFunPtr obj "enter-fullscreen" cb' after

-- signal WebView::insecure-content-detected
type WebViewInsecureContentDetectedCallback =
    InsecureContentEvent ->
    IO ()

noWebViewInsecureContentDetectedCallback :: Maybe WebViewInsecureContentDetectedCallback
noWebViewInsecureContentDetectedCallback = Nothing

type WebViewInsecureContentDetectedCallbackC =
    Ptr () ->                               -- object
    CUInt ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewInsecureContentDetectedCallback :: WebViewInsecureContentDetectedCallbackC -> IO (FunPtr WebViewInsecureContentDetectedCallbackC)

webViewInsecureContentDetectedClosure :: WebViewInsecureContentDetectedCallback -> IO Closure
webViewInsecureContentDetectedClosure cb = newCClosure =<< mkWebViewInsecureContentDetectedCallback wrapped
    where wrapped = webViewInsecureContentDetectedCallbackWrapper cb

webViewInsecureContentDetectedCallbackWrapper ::
    WebViewInsecureContentDetectedCallback ->
    Ptr () ->
    CUInt ->
    Ptr () ->
    IO ()
webViewInsecureContentDetectedCallbackWrapper _cb _ event _ = do
    let event' = (toEnum . fromIntegral) event
    _cb  event'

onWebViewInsecureContentDetected :: (GObject a, MonadIO m) => a -> WebViewInsecureContentDetectedCallback -> m SignalHandlerId
onWebViewInsecureContentDetected obj cb = liftIO $ connectWebViewInsecureContentDetected obj cb SignalConnectBefore
afterWebViewInsecureContentDetected :: (GObject a, MonadIO m) => a -> WebViewInsecureContentDetectedCallback -> m SignalHandlerId
afterWebViewInsecureContentDetected obj cb = connectWebViewInsecureContentDetected obj cb SignalConnectAfter

connectWebViewInsecureContentDetected :: (GObject a, MonadIO m) =>
                                         a -> WebViewInsecureContentDetectedCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewInsecureContentDetected obj cb after = liftIO $ do
    cb' <- mkWebViewInsecureContentDetectedCallback (webViewInsecureContentDetectedCallbackWrapper cb)
    connectSignalFunPtr obj "insecure-content-detected" cb' after

-- signal WebView::leave-fullscreen
type WebViewLeaveFullscreenCallback =
    IO Bool

noWebViewLeaveFullscreenCallback :: Maybe WebViewLeaveFullscreenCallback
noWebViewLeaveFullscreenCallback = Nothing

type WebViewLeaveFullscreenCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewLeaveFullscreenCallback :: WebViewLeaveFullscreenCallbackC -> IO (FunPtr WebViewLeaveFullscreenCallbackC)

webViewLeaveFullscreenClosure :: WebViewLeaveFullscreenCallback -> IO Closure
webViewLeaveFullscreenClosure cb = newCClosure =<< mkWebViewLeaveFullscreenCallback wrapped
    where wrapped = webViewLeaveFullscreenCallbackWrapper cb

webViewLeaveFullscreenCallbackWrapper ::
    WebViewLeaveFullscreenCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
webViewLeaveFullscreenCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewLeaveFullscreen :: (GObject a, MonadIO m) => a -> WebViewLeaveFullscreenCallback -> m SignalHandlerId
onWebViewLeaveFullscreen obj cb = liftIO $ connectWebViewLeaveFullscreen obj cb SignalConnectBefore
afterWebViewLeaveFullscreen :: (GObject a, MonadIO m) => a -> WebViewLeaveFullscreenCallback -> m SignalHandlerId
afterWebViewLeaveFullscreen obj cb = connectWebViewLeaveFullscreen obj cb SignalConnectAfter

connectWebViewLeaveFullscreen :: (GObject a, MonadIO m) =>
                                 a -> WebViewLeaveFullscreenCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewLeaveFullscreen obj cb after = liftIO $ do
    cb' <- mkWebViewLeaveFullscreenCallback (webViewLeaveFullscreenCallbackWrapper cb)
    connectSignalFunPtr obj "leave-fullscreen" cb' after

-- signal WebView::load-changed
type WebViewLoadChangedCallback =
    LoadEvent ->
    IO ()

noWebViewLoadChangedCallback :: Maybe WebViewLoadChangedCallback
noWebViewLoadChangedCallback = Nothing

type WebViewLoadChangedCallbackC =
    Ptr () ->                               -- object
    CUInt ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewLoadChangedCallback :: WebViewLoadChangedCallbackC -> IO (FunPtr WebViewLoadChangedCallbackC)

webViewLoadChangedClosure :: WebViewLoadChangedCallback -> IO Closure
webViewLoadChangedClosure cb = newCClosure =<< mkWebViewLoadChangedCallback wrapped
    where wrapped = webViewLoadChangedCallbackWrapper cb

webViewLoadChangedCallbackWrapper ::
    WebViewLoadChangedCallback ->
    Ptr () ->
    CUInt ->
    Ptr () ->
    IO ()
webViewLoadChangedCallbackWrapper _cb _ load_event _ = do
    let load_event' = (toEnum . fromIntegral) load_event
    _cb  load_event'

onWebViewLoadChanged :: (GObject a, MonadIO m) => a -> WebViewLoadChangedCallback -> m SignalHandlerId
onWebViewLoadChanged obj cb = liftIO $ connectWebViewLoadChanged obj cb SignalConnectBefore
afterWebViewLoadChanged :: (GObject a, MonadIO m) => a -> WebViewLoadChangedCallback -> m SignalHandlerId
afterWebViewLoadChanged obj cb = connectWebViewLoadChanged obj cb SignalConnectAfter

connectWebViewLoadChanged :: (GObject a, MonadIO m) =>
                             a -> WebViewLoadChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewLoadChanged obj cb after = liftIO $ do
    cb' <- mkWebViewLoadChangedCallback (webViewLoadChangedCallbackWrapper cb)
    connectSignalFunPtr obj "load-changed" cb' after

-- signal WebView::load-failed
type WebViewLoadFailedCallback =
    LoadEvent ->
    T.Text ->
    Ptr () ->
    IO Bool

noWebViewLoadFailedCallback :: Maybe WebViewLoadFailedCallback
noWebViewLoadFailedCallback = Nothing

type WebViewLoadFailedCallbackC =
    Ptr () ->                               -- object
    CUInt ->
    CString ->
    Ptr () ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewLoadFailedCallback :: WebViewLoadFailedCallbackC -> IO (FunPtr WebViewLoadFailedCallbackC)

webViewLoadFailedClosure :: WebViewLoadFailedCallback -> IO Closure
webViewLoadFailedClosure cb = newCClosure =<< mkWebViewLoadFailedCallback wrapped
    where wrapped = webViewLoadFailedCallbackWrapper cb

webViewLoadFailedCallbackWrapper ::
    WebViewLoadFailedCallback ->
    Ptr () ->
    CUInt ->
    CString ->
    Ptr () ->
    Ptr () ->
    IO CInt
webViewLoadFailedCallbackWrapper _cb _ load_event failing_uri error_ _ = do
    let load_event' = (toEnum . fromIntegral) load_event
    failing_uri' <- cstringToText failing_uri
    result <- _cb  load_event' failing_uri' error_
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewLoadFailed :: (GObject a, MonadIO m) => a -> WebViewLoadFailedCallback -> m SignalHandlerId
onWebViewLoadFailed obj cb = liftIO $ connectWebViewLoadFailed obj cb SignalConnectBefore
afterWebViewLoadFailed :: (GObject a, MonadIO m) => a -> WebViewLoadFailedCallback -> m SignalHandlerId
afterWebViewLoadFailed obj cb = connectWebViewLoadFailed obj cb SignalConnectAfter

connectWebViewLoadFailed :: (GObject a, MonadIO m) =>
                            a -> WebViewLoadFailedCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewLoadFailed obj cb after = liftIO $ do
    cb' <- mkWebViewLoadFailedCallback (webViewLoadFailedCallbackWrapper cb)
    connectSignalFunPtr obj "load-failed" cb' after

-- signal WebView::load-failed-with-tls-errors
type WebViewLoadFailedWithTlsErrorsCallback =
    T.Text ->
    Gio.TlsCertificate ->
    [Gio.TlsCertificateFlags] ->
    IO Bool

noWebViewLoadFailedWithTlsErrorsCallback :: Maybe WebViewLoadFailedWithTlsErrorsCallback
noWebViewLoadFailedWithTlsErrorsCallback = Nothing

type WebViewLoadFailedWithTlsErrorsCallbackC =
    Ptr () ->                               -- object
    CString ->
    Ptr Gio.TlsCertificate ->
    CUInt ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewLoadFailedWithTlsErrorsCallback :: WebViewLoadFailedWithTlsErrorsCallbackC -> IO (FunPtr WebViewLoadFailedWithTlsErrorsCallbackC)

webViewLoadFailedWithTlsErrorsClosure :: WebViewLoadFailedWithTlsErrorsCallback -> IO Closure
webViewLoadFailedWithTlsErrorsClosure cb = newCClosure =<< mkWebViewLoadFailedWithTlsErrorsCallback wrapped
    where wrapped = webViewLoadFailedWithTlsErrorsCallbackWrapper cb

webViewLoadFailedWithTlsErrorsCallbackWrapper ::
    WebViewLoadFailedWithTlsErrorsCallback ->
    Ptr () ->
    CString ->
    Ptr Gio.TlsCertificate ->
    CUInt ->
    Ptr () ->
    IO CInt
webViewLoadFailedWithTlsErrorsCallbackWrapper _cb _ failing_uri certificate errors _ = do
    failing_uri' <- cstringToText failing_uri
    certificate' <- (newObject Gio.TlsCertificate) certificate
    let errors' = wordToGFlags errors
    result <- _cb  failing_uri' certificate' errors'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewLoadFailedWithTlsErrors :: (GObject a, MonadIO m) => a -> WebViewLoadFailedWithTlsErrorsCallback -> m SignalHandlerId
onWebViewLoadFailedWithTlsErrors obj cb = liftIO $ connectWebViewLoadFailedWithTlsErrors obj cb SignalConnectBefore
afterWebViewLoadFailedWithTlsErrors :: (GObject a, MonadIO m) => a -> WebViewLoadFailedWithTlsErrorsCallback -> m SignalHandlerId
afterWebViewLoadFailedWithTlsErrors obj cb = connectWebViewLoadFailedWithTlsErrors obj cb SignalConnectAfter

connectWebViewLoadFailedWithTlsErrors :: (GObject a, MonadIO m) =>
                                         a -> WebViewLoadFailedWithTlsErrorsCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewLoadFailedWithTlsErrors obj cb after = liftIO $ do
    cb' <- mkWebViewLoadFailedWithTlsErrorsCallback (webViewLoadFailedWithTlsErrorsCallbackWrapper cb)
    connectSignalFunPtr obj "load-failed-with-tls-errors" cb' after

-- signal WebView::mouse-target-changed
type WebViewMouseTargetChangedCallback =
    HitTestResult ->
    Word32 ->
    IO ()

noWebViewMouseTargetChangedCallback :: Maybe WebViewMouseTargetChangedCallback
noWebViewMouseTargetChangedCallback = Nothing

type WebViewMouseTargetChangedCallbackC =
    Ptr () ->                               -- object
    Ptr HitTestResult ->
    Word32 ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewMouseTargetChangedCallback :: WebViewMouseTargetChangedCallbackC -> IO (FunPtr WebViewMouseTargetChangedCallbackC)

webViewMouseTargetChangedClosure :: WebViewMouseTargetChangedCallback -> IO Closure
webViewMouseTargetChangedClosure cb = newCClosure =<< mkWebViewMouseTargetChangedCallback wrapped
    where wrapped = webViewMouseTargetChangedCallbackWrapper cb

webViewMouseTargetChangedCallbackWrapper ::
    WebViewMouseTargetChangedCallback ->
    Ptr () ->
    Ptr HitTestResult ->
    Word32 ->
    Ptr () ->
    IO ()
webViewMouseTargetChangedCallbackWrapper _cb _ hit_test_result modifiers _ = do
    hit_test_result' <- (newObject HitTestResult) hit_test_result
    _cb  hit_test_result' modifiers

onWebViewMouseTargetChanged :: (GObject a, MonadIO m) => a -> WebViewMouseTargetChangedCallback -> m SignalHandlerId
onWebViewMouseTargetChanged obj cb = liftIO $ connectWebViewMouseTargetChanged obj cb SignalConnectBefore
afterWebViewMouseTargetChanged :: (GObject a, MonadIO m) => a -> WebViewMouseTargetChangedCallback -> m SignalHandlerId
afterWebViewMouseTargetChanged obj cb = connectWebViewMouseTargetChanged obj cb SignalConnectAfter

connectWebViewMouseTargetChanged :: (GObject a, MonadIO m) =>
                                    a -> WebViewMouseTargetChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewMouseTargetChanged obj cb after = liftIO $ do
    cb' <- mkWebViewMouseTargetChangedCallback (webViewMouseTargetChangedCallbackWrapper cb)
    connectSignalFunPtr obj "mouse-target-changed" cb' after

-- signal WebView::permission-request
type WebViewPermissionRequestCallback =
    PermissionRequest ->
    IO Bool

noWebViewPermissionRequestCallback :: Maybe WebViewPermissionRequestCallback
noWebViewPermissionRequestCallback = Nothing

type WebViewPermissionRequestCallbackC =
    Ptr () ->                               -- object
    Ptr PermissionRequest ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewPermissionRequestCallback :: WebViewPermissionRequestCallbackC -> IO (FunPtr WebViewPermissionRequestCallbackC)

webViewPermissionRequestClosure :: WebViewPermissionRequestCallback -> IO Closure
webViewPermissionRequestClosure cb = newCClosure =<< mkWebViewPermissionRequestCallback wrapped
    where wrapped = webViewPermissionRequestCallbackWrapper cb

webViewPermissionRequestCallbackWrapper ::
    WebViewPermissionRequestCallback ->
    Ptr () ->
    Ptr PermissionRequest ->
    Ptr () ->
    IO CInt
webViewPermissionRequestCallbackWrapper _cb _ request _ = do
    request' <- (newObject PermissionRequest) request
    result <- _cb  request'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewPermissionRequest :: (GObject a, MonadIO m) => a -> WebViewPermissionRequestCallback -> m SignalHandlerId
onWebViewPermissionRequest obj cb = liftIO $ connectWebViewPermissionRequest obj cb SignalConnectBefore
afterWebViewPermissionRequest :: (GObject a, MonadIO m) => a -> WebViewPermissionRequestCallback -> m SignalHandlerId
afterWebViewPermissionRequest obj cb = connectWebViewPermissionRequest obj cb SignalConnectAfter

connectWebViewPermissionRequest :: (GObject a, MonadIO m) =>
                                   a -> WebViewPermissionRequestCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewPermissionRequest obj cb after = liftIO $ do
    cb' <- mkWebViewPermissionRequestCallback (webViewPermissionRequestCallbackWrapper cb)
    connectSignalFunPtr obj "permission-request" cb' after

-- signal WebView::print
type WebViewPrintCallback =
    PrintOperation ->
    IO Bool

noWebViewPrintCallback :: Maybe WebViewPrintCallback
noWebViewPrintCallback = Nothing

type WebViewPrintCallbackC =
    Ptr () ->                               -- object
    Ptr PrintOperation ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewPrintCallback :: WebViewPrintCallbackC -> IO (FunPtr WebViewPrintCallbackC)

webViewPrintClosure :: WebViewPrintCallback -> IO Closure
webViewPrintClosure cb = newCClosure =<< mkWebViewPrintCallback wrapped
    where wrapped = webViewPrintCallbackWrapper cb

webViewPrintCallbackWrapper ::
    WebViewPrintCallback ->
    Ptr () ->
    Ptr PrintOperation ->
    Ptr () ->
    IO CInt
webViewPrintCallbackWrapper _cb _ print_operation _ = do
    print_operation' <- (newObject PrintOperation) print_operation
    result <- _cb  print_operation'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewPrint :: (GObject a, MonadIO m) => a -> WebViewPrintCallback -> m SignalHandlerId
onWebViewPrint obj cb = liftIO $ connectWebViewPrint obj cb SignalConnectBefore
afterWebViewPrint :: (GObject a, MonadIO m) => a -> WebViewPrintCallback -> m SignalHandlerId
afterWebViewPrint obj cb = connectWebViewPrint obj cb SignalConnectAfter

connectWebViewPrint :: (GObject a, MonadIO m) =>
                       a -> WebViewPrintCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewPrint obj cb after = liftIO $ do
    cb' <- mkWebViewPrintCallback (webViewPrintCallbackWrapper cb)
    connectSignalFunPtr obj "print" cb' after

-- signal WebView::ready-to-show
type WebViewReadyToShowCallback =
    IO ()

noWebViewReadyToShowCallback :: Maybe WebViewReadyToShowCallback
noWebViewReadyToShowCallback = Nothing

type WebViewReadyToShowCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewReadyToShowCallback :: WebViewReadyToShowCallbackC -> IO (FunPtr WebViewReadyToShowCallbackC)

webViewReadyToShowClosure :: WebViewReadyToShowCallback -> IO Closure
webViewReadyToShowClosure cb = newCClosure =<< mkWebViewReadyToShowCallback wrapped
    where wrapped = webViewReadyToShowCallbackWrapper cb

webViewReadyToShowCallbackWrapper ::
    WebViewReadyToShowCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
webViewReadyToShowCallbackWrapper _cb _ _ = do
    _cb 

onWebViewReadyToShow :: (GObject a, MonadIO m) => a -> WebViewReadyToShowCallback -> m SignalHandlerId
onWebViewReadyToShow obj cb = liftIO $ connectWebViewReadyToShow obj cb SignalConnectBefore
afterWebViewReadyToShow :: (GObject a, MonadIO m) => a -> WebViewReadyToShowCallback -> m SignalHandlerId
afterWebViewReadyToShow obj cb = connectWebViewReadyToShow obj cb SignalConnectAfter

connectWebViewReadyToShow :: (GObject a, MonadIO m) =>
                             a -> WebViewReadyToShowCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewReadyToShow obj cb after = liftIO $ do
    cb' <- mkWebViewReadyToShowCallback (webViewReadyToShowCallbackWrapper cb)
    connectSignalFunPtr obj "ready-to-show" cb' after

-- signal WebView::resource-load-started
type WebViewResourceLoadStartedCallback =
    WebResource ->
    URIRequest ->
    IO ()

noWebViewResourceLoadStartedCallback :: Maybe WebViewResourceLoadStartedCallback
noWebViewResourceLoadStartedCallback = Nothing

type WebViewResourceLoadStartedCallbackC =
    Ptr () ->                               -- object
    Ptr WebResource ->
    Ptr URIRequest ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewResourceLoadStartedCallback :: WebViewResourceLoadStartedCallbackC -> IO (FunPtr WebViewResourceLoadStartedCallbackC)

webViewResourceLoadStartedClosure :: WebViewResourceLoadStartedCallback -> IO Closure
webViewResourceLoadStartedClosure cb = newCClosure =<< mkWebViewResourceLoadStartedCallback wrapped
    where wrapped = webViewResourceLoadStartedCallbackWrapper cb

webViewResourceLoadStartedCallbackWrapper ::
    WebViewResourceLoadStartedCallback ->
    Ptr () ->
    Ptr WebResource ->
    Ptr URIRequest ->
    Ptr () ->
    IO ()
webViewResourceLoadStartedCallbackWrapper _cb _ resource request _ = do
    resource' <- (newObject WebResource) resource
    request' <- (newObject URIRequest) request
    _cb  resource' request'

onWebViewResourceLoadStarted :: (GObject a, MonadIO m) => a -> WebViewResourceLoadStartedCallback -> m SignalHandlerId
onWebViewResourceLoadStarted obj cb = liftIO $ connectWebViewResourceLoadStarted obj cb SignalConnectBefore
afterWebViewResourceLoadStarted :: (GObject a, MonadIO m) => a -> WebViewResourceLoadStartedCallback -> m SignalHandlerId
afterWebViewResourceLoadStarted obj cb = connectWebViewResourceLoadStarted obj cb SignalConnectAfter

connectWebViewResourceLoadStarted :: (GObject a, MonadIO m) =>
                                     a -> WebViewResourceLoadStartedCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewResourceLoadStarted obj cb after = liftIO $ do
    cb' <- mkWebViewResourceLoadStartedCallback (webViewResourceLoadStartedCallbackWrapper cb)
    connectSignalFunPtr obj "resource-load-started" cb' after

-- signal WebView::run-as-modal
type WebViewRunAsModalCallback =
    IO ()

noWebViewRunAsModalCallback :: Maybe WebViewRunAsModalCallback
noWebViewRunAsModalCallback = Nothing

type WebViewRunAsModalCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewRunAsModalCallback :: WebViewRunAsModalCallbackC -> IO (FunPtr WebViewRunAsModalCallbackC)

webViewRunAsModalClosure :: WebViewRunAsModalCallback -> IO Closure
webViewRunAsModalClosure cb = newCClosure =<< mkWebViewRunAsModalCallback wrapped
    where wrapped = webViewRunAsModalCallbackWrapper cb

webViewRunAsModalCallbackWrapper ::
    WebViewRunAsModalCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
webViewRunAsModalCallbackWrapper _cb _ _ = do
    _cb 

onWebViewRunAsModal :: (GObject a, MonadIO m) => a -> WebViewRunAsModalCallback -> m SignalHandlerId
onWebViewRunAsModal obj cb = liftIO $ connectWebViewRunAsModal obj cb SignalConnectBefore
afterWebViewRunAsModal :: (GObject a, MonadIO m) => a -> WebViewRunAsModalCallback -> m SignalHandlerId
afterWebViewRunAsModal obj cb = connectWebViewRunAsModal obj cb SignalConnectAfter

connectWebViewRunAsModal :: (GObject a, MonadIO m) =>
                            a -> WebViewRunAsModalCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewRunAsModal obj cb after = liftIO $ do
    cb' <- mkWebViewRunAsModalCallback (webViewRunAsModalCallbackWrapper cb)
    connectSignalFunPtr obj "run-as-modal" cb' after

-- signal WebView::run-color-chooser
type WebViewRunColorChooserCallback =
    ColorChooserRequest ->
    IO Bool

noWebViewRunColorChooserCallback :: Maybe WebViewRunColorChooserCallback
noWebViewRunColorChooserCallback = Nothing

type WebViewRunColorChooserCallbackC =
    Ptr () ->                               -- object
    Ptr ColorChooserRequest ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewRunColorChooserCallback :: WebViewRunColorChooserCallbackC -> IO (FunPtr WebViewRunColorChooserCallbackC)

webViewRunColorChooserClosure :: WebViewRunColorChooserCallback -> IO Closure
webViewRunColorChooserClosure cb = newCClosure =<< mkWebViewRunColorChooserCallback wrapped
    where wrapped = webViewRunColorChooserCallbackWrapper cb

webViewRunColorChooserCallbackWrapper ::
    WebViewRunColorChooserCallback ->
    Ptr () ->
    Ptr ColorChooserRequest ->
    Ptr () ->
    IO CInt
webViewRunColorChooserCallbackWrapper _cb _ request _ = do
    request' <- (newObject ColorChooserRequest) request
    result <- _cb  request'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewRunColorChooser :: (GObject a, MonadIO m) => a -> WebViewRunColorChooserCallback -> m SignalHandlerId
onWebViewRunColorChooser obj cb = liftIO $ connectWebViewRunColorChooser obj cb SignalConnectBefore
afterWebViewRunColorChooser :: (GObject a, MonadIO m) => a -> WebViewRunColorChooserCallback -> m SignalHandlerId
afterWebViewRunColorChooser obj cb = connectWebViewRunColorChooser obj cb SignalConnectAfter

connectWebViewRunColorChooser :: (GObject a, MonadIO m) =>
                                 a -> WebViewRunColorChooserCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewRunColorChooser obj cb after = liftIO $ do
    cb' <- mkWebViewRunColorChooserCallback (webViewRunColorChooserCallbackWrapper cb)
    connectSignalFunPtr obj "run-color-chooser" cb' after

-- signal WebView::run-file-chooser
type WebViewRunFileChooserCallback =
    FileChooserRequest ->
    IO Bool

noWebViewRunFileChooserCallback :: Maybe WebViewRunFileChooserCallback
noWebViewRunFileChooserCallback = Nothing

type WebViewRunFileChooserCallbackC =
    Ptr () ->                               -- object
    Ptr FileChooserRequest ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewRunFileChooserCallback :: WebViewRunFileChooserCallbackC -> IO (FunPtr WebViewRunFileChooserCallbackC)

webViewRunFileChooserClosure :: WebViewRunFileChooserCallback -> IO Closure
webViewRunFileChooserClosure cb = newCClosure =<< mkWebViewRunFileChooserCallback wrapped
    where wrapped = webViewRunFileChooserCallbackWrapper cb

webViewRunFileChooserCallbackWrapper ::
    WebViewRunFileChooserCallback ->
    Ptr () ->
    Ptr FileChooserRequest ->
    Ptr () ->
    IO CInt
webViewRunFileChooserCallbackWrapper _cb _ request _ = do
    request' <- (newObject FileChooserRequest) request
    result <- _cb  request'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewRunFileChooser :: (GObject a, MonadIO m) => a -> WebViewRunFileChooserCallback -> m SignalHandlerId
onWebViewRunFileChooser obj cb = liftIO $ connectWebViewRunFileChooser obj cb SignalConnectBefore
afterWebViewRunFileChooser :: (GObject a, MonadIO m) => a -> WebViewRunFileChooserCallback -> m SignalHandlerId
afterWebViewRunFileChooser obj cb = connectWebViewRunFileChooser obj cb SignalConnectAfter

connectWebViewRunFileChooser :: (GObject a, MonadIO m) =>
                                a -> WebViewRunFileChooserCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewRunFileChooser obj cb after = liftIO $ do
    cb' <- mkWebViewRunFileChooserCallback (webViewRunFileChooserCallbackWrapper cb)
    connectSignalFunPtr obj "run-file-chooser" cb' after

-- signal WebView::script-dialog
type WebViewScriptDialogCallback =
    ScriptDialog ->
    IO Bool

noWebViewScriptDialogCallback :: Maybe WebViewScriptDialogCallback
noWebViewScriptDialogCallback = Nothing

type WebViewScriptDialogCallbackC =
    Ptr () ->                               -- object
    Ptr ScriptDialog ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewScriptDialogCallback :: WebViewScriptDialogCallbackC -> IO (FunPtr WebViewScriptDialogCallbackC)

webViewScriptDialogClosure :: WebViewScriptDialogCallback -> IO Closure
webViewScriptDialogClosure cb = newCClosure =<< mkWebViewScriptDialogCallback wrapped
    where wrapped = webViewScriptDialogCallbackWrapper cb

webViewScriptDialogCallbackWrapper ::
    WebViewScriptDialogCallback ->
    Ptr () ->
    Ptr ScriptDialog ->
    Ptr () ->
    IO CInt
webViewScriptDialogCallbackWrapper _cb _ dialog _ = do
    dialog' <- (newBoxed ScriptDialog) dialog
    result <- _cb  dialog'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewScriptDialog :: (GObject a, MonadIO m) => a -> WebViewScriptDialogCallback -> m SignalHandlerId
onWebViewScriptDialog obj cb = liftIO $ connectWebViewScriptDialog obj cb SignalConnectBefore
afterWebViewScriptDialog :: (GObject a, MonadIO m) => a -> WebViewScriptDialogCallback -> m SignalHandlerId
afterWebViewScriptDialog obj cb = connectWebViewScriptDialog obj cb SignalConnectAfter

connectWebViewScriptDialog :: (GObject a, MonadIO m) =>
                              a -> WebViewScriptDialogCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewScriptDialog obj cb after = liftIO $ do
    cb' <- mkWebViewScriptDialogCallback (webViewScriptDialogCallbackWrapper cb)
    connectSignalFunPtr obj "script-dialog" cb' after

-- signal WebView::show-notification
type WebViewShowNotificationCallback =
    Notification ->
    IO Bool

noWebViewShowNotificationCallback :: Maybe WebViewShowNotificationCallback
noWebViewShowNotificationCallback = Nothing

type WebViewShowNotificationCallbackC =
    Ptr () ->                               -- object
    Ptr Notification ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewShowNotificationCallback :: WebViewShowNotificationCallbackC -> IO (FunPtr WebViewShowNotificationCallbackC)

webViewShowNotificationClosure :: WebViewShowNotificationCallback -> IO Closure
webViewShowNotificationClosure cb = newCClosure =<< mkWebViewShowNotificationCallback wrapped
    where wrapped = webViewShowNotificationCallbackWrapper cb

webViewShowNotificationCallbackWrapper ::
    WebViewShowNotificationCallback ->
    Ptr () ->
    Ptr Notification ->
    Ptr () ->
    IO CInt
webViewShowNotificationCallbackWrapper _cb _ notification _ = do
    notification' <- (newObject Notification) notification
    result <- _cb  notification'
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewShowNotification :: (GObject a, MonadIO m) => a -> WebViewShowNotificationCallback -> m SignalHandlerId
onWebViewShowNotification obj cb = liftIO $ connectWebViewShowNotification obj cb SignalConnectBefore
afterWebViewShowNotification :: (GObject a, MonadIO m) => a -> WebViewShowNotificationCallback -> m SignalHandlerId
afterWebViewShowNotification obj cb = connectWebViewShowNotification obj cb SignalConnectAfter

connectWebViewShowNotification :: (GObject a, MonadIO m) =>
                                  a -> WebViewShowNotificationCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewShowNotification obj cb after = liftIO $ do
    cb' <- mkWebViewShowNotificationCallback (webViewShowNotificationCallbackWrapper cb)
    connectSignalFunPtr obj "show-notification" cb' after

-- signal WebView::submit-form
type WebViewSubmitFormCallback =
    FormSubmissionRequest ->
    IO ()

noWebViewSubmitFormCallback :: Maybe WebViewSubmitFormCallback
noWebViewSubmitFormCallback = Nothing

type WebViewSubmitFormCallbackC =
    Ptr () ->                               -- object
    Ptr FormSubmissionRequest ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkWebViewSubmitFormCallback :: WebViewSubmitFormCallbackC -> IO (FunPtr WebViewSubmitFormCallbackC)

webViewSubmitFormClosure :: WebViewSubmitFormCallback -> IO Closure
webViewSubmitFormClosure cb = newCClosure =<< mkWebViewSubmitFormCallback wrapped
    where wrapped = webViewSubmitFormCallbackWrapper cb

webViewSubmitFormCallbackWrapper ::
    WebViewSubmitFormCallback ->
    Ptr () ->
    Ptr FormSubmissionRequest ->
    Ptr () ->
    IO ()
webViewSubmitFormCallbackWrapper _cb _ request _ = do
    request' <- (newObject FormSubmissionRequest) request
    _cb  request'

onWebViewSubmitForm :: (GObject a, MonadIO m) => a -> WebViewSubmitFormCallback -> m SignalHandlerId
onWebViewSubmitForm obj cb = liftIO $ connectWebViewSubmitForm obj cb SignalConnectBefore
afterWebViewSubmitForm :: (GObject a, MonadIO m) => a -> WebViewSubmitFormCallback -> m SignalHandlerId
afterWebViewSubmitForm obj cb = connectWebViewSubmitForm obj cb SignalConnectAfter

connectWebViewSubmitForm :: (GObject a, MonadIO m) =>
                            a -> WebViewSubmitFormCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewSubmitForm obj cb after = liftIO $ do
    cb' <- mkWebViewSubmitFormCallback (webViewSubmitFormCallbackWrapper cb)
    connectSignalFunPtr obj "submit-form" cb' after

-- signal WebView::web-process-crashed
type WebViewWebProcessCrashedCallback =
    IO Bool

noWebViewWebProcessCrashedCallback :: Maybe WebViewWebProcessCrashedCallback
noWebViewWebProcessCrashedCallback = Nothing

type WebViewWebProcessCrashedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkWebViewWebProcessCrashedCallback :: WebViewWebProcessCrashedCallbackC -> IO (FunPtr WebViewWebProcessCrashedCallbackC)

webViewWebProcessCrashedClosure :: WebViewWebProcessCrashedCallback -> IO Closure
webViewWebProcessCrashedClosure cb = newCClosure =<< mkWebViewWebProcessCrashedCallback wrapped
    where wrapped = webViewWebProcessCrashedCallbackWrapper cb

webViewWebProcessCrashedCallbackWrapper ::
    WebViewWebProcessCrashedCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
webViewWebProcessCrashedCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onWebViewWebProcessCrashed :: (GObject a, MonadIO m) => a -> WebViewWebProcessCrashedCallback -> m SignalHandlerId
onWebViewWebProcessCrashed obj cb = liftIO $ connectWebViewWebProcessCrashed obj cb SignalConnectBefore
afterWebViewWebProcessCrashed :: (GObject a, MonadIO m) => a -> WebViewWebProcessCrashedCallback -> m SignalHandlerId
afterWebViewWebProcessCrashed obj cb = connectWebViewWebProcessCrashed obj cb SignalConnectAfter

connectWebViewWebProcessCrashed :: (GObject a, MonadIO m) =>
                                   a -> WebViewWebProcessCrashedCallback -> SignalConnectMode -> m SignalHandlerId
connectWebViewWebProcessCrashed obj cb after = liftIO $ do
    cb' <- mkWebViewWebProcessCrashedCallback (webViewWebProcessCrashedCallbackWrapper cb)
    connectSignalFunPtr obj "web-process-crashed" cb' after

-- VVV Prop "editable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getWebViewEditable :: (MonadIO m, WebViewK o) => o -> m Bool
getWebViewEditable obj = liftIO $ getObjectPropertyBool obj "editable"

setWebViewEditable :: (MonadIO m, WebViewK o) => o -> Bool -> m ()
setWebViewEditable obj val = liftIO $ setObjectPropertyBool obj "editable" val

constructWebViewEditable :: Bool -> IO ([Char], GValue)
constructWebViewEditable val = constructObjectPropertyBool "editable" val

data WebViewEditablePropertyInfo
instance AttrInfo WebViewEditablePropertyInfo where
    type AttrAllowedOps WebViewEditablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WebViewEditablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WebViewEditablePropertyInfo = WebViewK
    type AttrGetType WebViewEditablePropertyInfo = Bool
    type AttrLabel WebViewEditablePropertyInfo = "WebView::editable"
    attrGet _ = getWebViewEditable
    attrSet _ = setWebViewEditable
    attrConstruct _ = constructWebViewEditable

-- VVV Prop "estimated-load-progress"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getWebViewEstimatedLoadProgress :: (MonadIO m, WebViewK o) => o -> m Double
getWebViewEstimatedLoadProgress obj = liftIO $ getObjectPropertyDouble obj "estimated-load-progress"

data WebViewEstimatedLoadProgressPropertyInfo
instance AttrInfo WebViewEstimatedLoadProgressPropertyInfo where
    type AttrAllowedOps WebViewEstimatedLoadProgressPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint WebViewEstimatedLoadProgressPropertyInfo = (~) ()
    type AttrBaseTypeConstraint WebViewEstimatedLoadProgressPropertyInfo = WebViewK
    type AttrGetType WebViewEstimatedLoadProgressPropertyInfo = Double
    type AttrLabel WebViewEstimatedLoadProgressPropertyInfo = "WebView::estimated-load-progress"
    attrGet _ = getWebViewEstimatedLoadProgress
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "favicon"
   -- Type: TBasicType TVoid
   -- Flags: [PropertyReadable]

getWebViewFavicon :: (MonadIO m, WebViewK o) => o -> m (Ptr ())
getWebViewFavicon obj = liftIO $ getObjectPropertyPtr obj "favicon"

data WebViewFaviconPropertyInfo
instance AttrInfo WebViewFaviconPropertyInfo where
    type AttrAllowedOps WebViewFaviconPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint WebViewFaviconPropertyInfo = (~) ()
    type AttrBaseTypeConstraint WebViewFaviconPropertyInfo = WebViewK
    type AttrGetType WebViewFaviconPropertyInfo = (Ptr ())
    type AttrLabel WebViewFaviconPropertyInfo = "WebView::favicon"
    attrGet _ = getWebViewFavicon
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "is-loading"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getWebViewIsLoading :: (MonadIO m, WebViewK o) => o -> m Bool
getWebViewIsLoading obj = liftIO $ getObjectPropertyBool obj "is-loading"

data WebViewIsLoadingPropertyInfo
instance AttrInfo WebViewIsLoadingPropertyInfo where
    type AttrAllowedOps WebViewIsLoadingPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint WebViewIsLoadingPropertyInfo = (~) ()
    type AttrBaseTypeConstraint WebViewIsLoadingPropertyInfo = WebViewK
    type AttrGetType WebViewIsLoadingPropertyInfo = Bool
    type AttrLabel WebViewIsLoadingPropertyInfo = "WebView::is-loading"
    attrGet _ = getWebViewIsLoading
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "is-playing-audio"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getWebViewIsPlayingAudio :: (MonadIO m, WebViewK o) => o -> m Bool
getWebViewIsPlayingAudio obj = liftIO $ getObjectPropertyBool obj "is-playing-audio"

data WebViewIsPlayingAudioPropertyInfo
instance AttrInfo WebViewIsPlayingAudioPropertyInfo where
    type AttrAllowedOps WebViewIsPlayingAudioPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint WebViewIsPlayingAudioPropertyInfo = (~) ()
    type AttrBaseTypeConstraint WebViewIsPlayingAudioPropertyInfo = WebViewK
    type AttrGetType WebViewIsPlayingAudioPropertyInfo = Bool
    type AttrLabel WebViewIsPlayingAudioPropertyInfo = "WebView::is-playing-audio"
    attrGet _ = getWebViewIsPlayingAudio
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "related-view"
   -- Type: TInterface "WebKit2" "WebView"
   -- Flags: [PropertyWritable,PropertyConstructOnly]

constructWebViewRelatedView :: (WebViewK a) => a -> IO ([Char], GValue)
constructWebViewRelatedView val = constructObjectPropertyObject "related-view" val

data WebViewRelatedViewPropertyInfo
instance AttrInfo WebViewRelatedViewPropertyInfo where
    type AttrAllowedOps WebViewRelatedViewPropertyInfo = '[ 'AttrConstruct]
    type AttrSetTypeConstraint WebViewRelatedViewPropertyInfo = WebViewK
    type AttrBaseTypeConstraint WebViewRelatedViewPropertyInfo = WebViewK
    type AttrGetType WebViewRelatedViewPropertyInfo = ()
    type AttrLabel WebViewRelatedViewPropertyInfo = "WebView::related-view"
    attrGet _ = undefined
    attrSet _ = undefined
    attrConstruct _ = constructWebViewRelatedView

-- VVV Prop "settings"
   -- Type: TInterface "WebKit2" "Settings"
   -- Flags: [PropertyWritable,PropertyConstruct]

setWebViewSettings :: (MonadIO m, WebViewK o, SettingsK a) => o -> a -> m ()
setWebViewSettings obj val = liftIO $ setObjectPropertyObject obj "settings" val

constructWebViewSettings :: (SettingsK a) => a -> IO ([Char], GValue)
constructWebViewSettings val = constructObjectPropertyObject "settings" val

data WebViewSettingsPropertyInfo
instance AttrInfo WebViewSettingsPropertyInfo where
    type AttrAllowedOps WebViewSettingsPropertyInfo = '[ 'AttrSet, 'AttrConstruct]
    type AttrSetTypeConstraint WebViewSettingsPropertyInfo = SettingsK
    type AttrBaseTypeConstraint WebViewSettingsPropertyInfo = WebViewK
    type AttrGetType WebViewSettingsPropertyInfo = ()
    type AttrLabel WebViewSettingsPropertyInfo = "WebView::settings"
    attrGet _ = undefined
    attrSet _ = setWebViewSettings
    attrConstruct _ = constructWebViewSettings

-- VVV Prop "title"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]

getWebViewTitle :: (MonadIO m, WebViewK o) => o -> m T.Text
getWebViewTitle obj = liftIO $ getObjectPropertyString obj "title"

data WebViewTitlePropertyInfo
instance AttrInfo WebViewTitlePropertyInfo where
    type AttrAllowedOps WebViewTitlePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint WebViewTitlePropertyInfo = (~) ()
    type AttrBaseTypeConstraint WebViewTitlePropertyInfo = WebViewK
    type AttrGetType WebViewTitlePropertyInfo = T.Text
    type AttrLabel WebViewTitlePropertyInfo = "WebView::title"
    attrGet _ = getWebViewTitle
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "uri"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable]

getWebViewUri :: (MonadIO m, WebViewK o) => o -> m T.Text
getWebViewUri obj = liftIO $ getObjectPropertyString obj "uri"

data WebViewUriPropertyInfo
instance AttrInfo WebViewUriPropertyInfo where
    type AttrAllowedOps WebViewUriPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint WebViewUriPropertyInfo = (~) ()
    type AttrBaseTypeConstraint WebViewUriPropertyInfo = WebViewK
    type AttrGetType WebViewUriPropertyInfo = T.Text
    type AttrLabel WebViewUriPropertyInfo = "WebView::uri"
    attrGet _ = getWebViewUri
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "user-content-manager"
   -- Type: TInterface "WebKit2" "UserContentManager"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getWebViewUserContentManager :: (MonadIO m, WebViewK o) => o -> m UserContentManager
getWebViewUserContentManager obj = liftIO $ getObjectPropertyObject obj "user-content-manager" UserContentManager

constructWebViewUserContentManager :: (UserContentManagerK a) => a -> IO ([Char], GValue)
constructWebViewUserContentManager val = constructObjectPropertyObject "user-content-manager" val

data WebViewUserContentManagerPropertyInfo
instance AttrInfo WebViewUserContentManagerPropertyInfo where
    type AttrAllowedOps WebViewUserContentManagerPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WebViewUserContentManagerPropertyInfo = UserContentManagerK
    type AttrBaseTypeConstraint WebViewUserContentManagerPropertyInfo = WebViewK
    type AttrGetType WebViewUserContentManagerPropertyInfo = UserContentManager
    type AttrLabel WebViewUserContentManagerPropertyInfo = "WebView::user-content-manager"
    attrGet _ = getWebViewUserContentManager
    attrSet _ = undefined
    attrConstruct _ = constructWebViewUserContentManager

-- VVV Prop "web-context"
   -- Type: TInterface "WebKit2" "WebContext"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getWebViewWebContext :: (MonadIO m, WebViewK o) => o -> m WebContext
getWebViewWebContext obj = liftIO $ getObjectPropertyObject obj "web-context" WebContext

constructWebViewWebContext :: (WebContextK a) => a -> IO ([Char], GValue)
constructWebViewWebContext val = constructObjectPropertyObject "web-context" val

data WebViewWebContextPropertyInfo
instance AttrInfo WebViewWebContextPropertyInfo where
    type AttrAllowedOps WebViewWebContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WebViewWebContextPropertyInfo = WebContextK
    type AttrBaseTypeConstraint WebViewWebContextPropertyInfo = WebViewK
    type AttrGetType WebViewWebContextPropertyInfo = WebContext
    type AttrLabel WebViewWebContextPropertyInfo = "WebView::web-context"
    attrGet _ = getWebViewWebContext
    attrSet _ = undefined
    attrConstruct _ = constructWebViewWebContext

-- VVV Prop "zoom-level"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable,PropertyWritable]

getWebViewZoomLevel :: (MonadIO m, WebViewK o) => o -> m Double
getWebViewZoomLevel obj = liftIO $ getObjectPropertyDouble obj "zoom-level"

setWebViewZoomLevel :: (MonadIO m, WebViewK o) => o -> Double -> m ()
setWebViewZoomLevel obj val = liftIO $ setObjectPropertyDouble obj "zoom-level" val

constructWebViewZoomLevel :: Double -> IO ([Char], GValue)
constructWebViewZoomLevel val = constructObjectPropertyDouble "zoom-level" val

data WebViewZoomLevelPropertyInfo
instance AttrInfo WebViewZoomLevelPropertyInfo where
    type AttrAllowedOps WebViewZoomLevelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WebViewZoomLevelPropertyInfo = (~) Double
    type AttrBaseTypeConstraint WebViewZoomLevelPropertyInfo = WebViewK
    type AttrGetType WebViewZoomLevelPropertyInfo = Double
    type AttrLabel WebViewZoomLevelPropertyInfo = "WebView::zoom-level"
    attrGet _ = getWebViewZoomLevel
    attrSet _ = setWebViewZoomLevel
    attrConstruct _ = constructWebViewZoomLevel

type instance AttributeList WebView = WebViewAttributeList
type WebViewAttributeList = ('[ '("app-paintable", Gtk.WidgetAppPaintablePropertyInfo), '("border-width", Gtk.ContainerBorderWidthPropertyInfo), '("can-default", Gtk.WidgetCanDefaultPropertyInfo), '("can-focus", Gtk.WidgetCanFocusPropertyInfo), '("child", Gtk.ContainerChildPropertyInfo), '("composite-child", Gtk.WidgetCompositeChildPropertyInfo), '("double-buffered", Gtk.WidgetDoubleBufferedPropertyInfo), '("editable", WebViewEditablePropertyInfo), '("estimated-load-progress", WebViewEstimatedLoadProgressPropertyInfo), '("events", Gtk.WidgetEventsPropertyInfo), '("expand", Gtk.WidgetExpandPropertyInfo), '("favicon", WebViewFaviconPropertyInfo), '("halign", Gtk.WidgetHalignPropertyInfo), '("has-default", Gtk.WidgetHasDefaultPropertyInfo), '("has-focus", Gtk.WidgetHasFocusPropertyInfo), '("has-tooltip", Gtk.WidgetHasTooltipPropertyInfo), '("height-request", Gtk.WidgetHeightRequestPropertyInfo), '("hexpand", Gtk.WidgetHexpandPropertyInfo), '("hexpand-set", Gtk.WidgetHexpandSetPropertyInfo), '("is-focus", Gtk.WidgetIsFocusPropertyInfo), '("is-loading", WebViewIsLoadingPropertyInfo), '("is-playing-audio", WebViewIsPlayingAudioPropertyInfo), '("margin", Gtk.WidgetMarginPropertyInfo), '("margin-bottom", Gtk.WidgetMarginBottomPropertyInfo), '("margin-end", Gtk.WidgetMarginEndPropertyInfo), '("margin-left", Gtk.WidgetMarginLeftPropertyInfo), '("margin-right", Gtk.WidgetMarginRightPropertyInfo), '("margin-start", Gtk.WidgetMarginStartPropertyInfo), '("margin-top", Gtk.WidgetMarginTopPropertyInfo), '("name", Gtk.WidgetNamePropertyInfo), '("no-show-all", Gtk.WidgetNoShowAllPropertyInfo), '("opacity", Gtk.WidgetOpacityPropertyInfo), '("parent", Gtk.WidgetParentPropertyInfo), '("receives-default", Gtk.WidgetReceivesDefaultPropertyInfo), '("related-view", WebViewRelatedViewPropertyInfo), '("resize-mode", Gtk.ContainerResizeModePropertyInfo), '("scale-factor", Gtk.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.WidgetSensitivePropertyInfo), '("settings", WebViewSettingsPropertyInfo), '("style", Gtk.WidgetStylePropertyInfo), '("title", WebViewTitlePropertyInfo), '("tooltip-markup", Gtk.WidgetTooltipMarkupPropertyInfo), '("tooltip-text", Gtk.WidgetTooltipTextPropertyInfo), '("uri", WebViewUriPropertyInfo), '("user-content-manager", WebViewUserContentManagerPropertyInfo), '("valign", Gtk.WidgetValignPropertyInfo), '("vexpand", Gtk.WidgetVexpandPropertyInfo), '("vexpand-set", Gtk.WidgetVexpandSetPropertyInfo), '("visible", Gtk.WidgetVisiblePropertyInfo), '("web-context", WebViewWebContextPropertyInfo), '("width-request", Gtk.WidgetWidthRequestPropertyInfo), '("window", Gtk.WidgetWindowPropertyInfo), '("zoom-level", WebViewZoomLevelPropertyInfo)] :: [(Symbol, *)])

data WebViewAuthenticateSignalInfo
instance SignalInfo WebViewAuthenticateSignalInfo where
    type HaskellCallbackType WebViewAuthenticateSignalInfo = WebViewAuthenticateCallback
    connectSignal _ = connectWebViewAuthenticate

data WebViewCloseSignalInfo
instance SignalInfo WebViewCloseSignalInfo where
    type HaskellCallbackType WebViewCloseSignalInfo = WebViewCloseCallback
    connectSignal _ = connectWebViewClose

data WebViewContextMenuSignalInfo
instance SignalInfo WebViewContextMenuSignalInfo where
    type HaskellCallbackType WebViewContextMenuSignalInfo = WebViewContextMenuCallback
    connectSignal _ = connectWebViewContextMenu

data WebViewContextMenuDismissedSignalInfo
instance SignalInfo WebViewContextMenuDismissedSignalInfo where
    type HaskellCallbackType WebViewContextMenuDismissedSignalInfo = WebViewContextMenuDismissedCallback
    connectSignal _ = connectWebViewContextMenuDismissed

data WebViewCreateSignalInfo
instance SignalInfo WebViewCreateSignalInfo where
    type HaskellCallbackType WebViewCreateSignalInfo = WebViewCreateCallback
    connectSignal _ = connectWebViewCreate

data WebViewDecidePolicySignalInfo
instance SignalInfo WebViewDecidePolicySignalInfo where
    type HaskellCallbackType WebViewDecidePolicySignalInfo = WebViewDecidePolicyCallback
    connectSignal _ = connectWebViewDecidePolicy

data WebViewEnterFullscreenSignalInfo
instance SignalInfo WebViewEnterFullscreenSignalInfo where
    type HaskellCallbackType WebViewEnterFullscreenSignalInfo = WebViewEnterFullscreenCallback
    connectSignal _ = connectWebViewEnterFullscreen

data WebViewInsecureContentDetectedSignalInfo
instance SignalInfo WebViewInsecureContentDetectedSignalInfo where
    type HaskellCallbackType WebViewInsecureContentDetectedSignalInfo = WebViewInsecureContentDetectedCallback
    connectSignal _ = connectWebViewInsecureContentDetected

data WebViewLeaveFullscreenSignalInfo
instance SignalInfo WebViewLeaveFullscreenSignalInfo where
    type HaskellCallbackType WebViewLeaveFullscreenSignalInfo = WebViewLeaveFullscreenCallback
    connectSignal _ = connectWebViewLeaveFullscreen

data WebViewLoadChangedSignalInfo
instance SignalInfo WebViewLoadChangedSignalInfo where
    type HaskellCallbackType WebViewLoadChangedSignalInfo = WebViewLoadChangedCallback
    connectSignal _ = connectWebViewLoadChanged

data WebViewLoadFailedSignalInfo
instance SignalInfo WebViewLoadFailedSignalInfo where
    type HaskellCallbackType WebViewLoadFailedSignalInfo = WebViewLoadFailedCallback
    connectSignal _ = connectWebViewLoadFailed

data WebViewLoadFailedWithTlsErrorsSignalInfo
instance SignalInfo WebViewLoadFailedWithTlsErrorsSignalInfo where
    type HaskellCallbackType WebViewLoadFailedWithTlsErrorsSignalInfo = WebViewLoadFailedWithTlsErrorsCallback
    connectSignal _ = connectWebViewLoadFailedWithTlsErrors

data WebViewMouseTargetChangedSignalInfo
instance SignalInfo WebViewMouseTargetChangedSignalInfo where
    type HaskellCallbackType WebViewMouseTargetChangedSignalInfo = WebViewMouseTargetChangedCallback
    connectSignal _ = connectWebViewMouseTargetChanged

data WebViewPermissionRequestSignalInfo
instance SignalInfo WebViewPermissionRequestSignalInfo where
    type HaskellCallbackType WebViewPermissionRequestSignalInfo = WebViewPermissionRequestCallback
    connectSignal _ = connectWebViewPermissionRequest

data WebViewPrintSignalInfo
instance SignalInfo WebViewPrintSignalInfo where
    type HaskellCallbackType WebViewPrintSignalInfo = WebViewPrintCallback
    connectSignal _ = connectWebViewPrint

data WebViewReadyToShowSignalInfo
instance SignalInfo WebViewReadyToShowSignalInfo where
    type HaskellCallbackType WebViewReadyToShowSignalInfo = WebViewReadyToShowCallback
    connectSignal _ = connectWebViewReadyToShow

data WebViewResourceLoadStartedSignalInfo
instance SignalInfo WebViewResourceLoadStartedSignalInfo where
    type HaskellCallbackType WebViewResourceLoadStartedSignalInfo = WebViewResourceLoadStartedCallback
    connectSignal _ = connectWebViewResourceLoadStarted

data WebViewRunAsModalSignalInfo
instance SignalInfo WebViewRunAsModalSignalInfo where
    type HaskellCallbackType WebViewRunAsModalSignalInfo = WebViewRunAsModalCallback
    connectSignal _ = connectWebViewRunAsModal

data WebViewRunColorChooserSignalInfo
instance SignalInfo WebViewRunColorChooserSignalInfo where
    type HaskellCallbackType WebViewRunColorChooserSignalInfo = WebViewRunColorChooserCallback
    connectSignal _ = connectWebViewRunColorChooser

data WebViewRunFileChooserSignalInfo
instance SignalInfo WebViewRunFileChooserSignalInfo where
    type HaskellCallbackType WebViewRunFileChooserSignalInfo = WebViewRunFileChooserCallback
    connectSignal _ = connectWebViewRunFileChooser

data WebViewScriptDialogSignalInfo
instance SignalInfo WebViewScriptDialogSignalInfo where
    type HaskellCallbackType WebViewScriptDialogSignalInfo = WebViewScriptDialogCallback
    connectSignal _ = connectWebViewScriptDialog

data WebViewShowNotificationSignalInfo
instance SignalInfo WebViewShowNotificationSignalInfo where
    type HaskellCallbackType WebViewShowNotificationSignalInfo = WebViewShowNotificationCallback
    connectSignal _ = connectWebViewShowNotification

data WebViewSubmitFormSignalInfo
instance SignalInfo WebViewSubmitFormSignalInfo where
    type HaskellCallbackType WebViewSubmitFormSignalInfo = WebViewSubmitFormCallback
    connectSignal _ = connectWebViewSubmitForm

data WebViewWebProcessCrashedSignalInfo
instance SignalInfo WebViewWebProcessCrashedSignalInfo where
    type HaskellCallbackType WebViewWebProcessCrashedSignalInfo = WebViewWebProcessCrashedCallback
    connectSignal _ = connectWebViewWebProcessCrashed

type instance SignalList WebView = WebViewSignalList
type WebViewSignalList = ('[ '("accel-closures-changed", Gtk.WidgetAccelClosuresChangedSignalInfo), '("add", Gtk.ContainerAddSignalInfo), '("authenticate", WebViewAuthenticateSignalInfo), '("button-press-event", Gtk.WidgetButtonPressEventSignalInfo), '("button-release-event", Gtk.WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", Gtk.WidgetCanActivateAccelSignalInfo), '("check-resize", Gtk.ContainerCheckResizeSignalInfo), '("child-notify", Gtk.WidgetChildNotifySignalInfo), '("close", WebViewCloseSignalInfo), '("composited-changed", Gtk.WidgetCompositedChangedSignalInfo), '("configure-event", Gtk.WidgetConfigureEventSignalInfo), '("context-menu", WebViewContextMenuSignalInfo), '("context-menu-dismissed", WebViewContextMenuDismissedSignalInfo), '("create", WebViewCreateSignalInfo), '("damage-event", Gtk.WidgetDamageEventSignalInfo), '("decide-policy", WebViewDecidePolicySignalInfo), '("delete-event", Gtk.WidgetDeleteEventSignalInfo), '("destroy", Gtk.WidgetDestroySignalInfo), '("destroy-event", Gtk.WidgetDestroyEventSignalInfo), '("direction-changed", Gtk.WidgetDirectionChangedSignalInfo), '("drag-begin", Gtk.WidgetDragBeginSignalInfo), '("drag-data-delete", Gtk.WidgetDragDataDeleteSignalInfo), '("drag-data-get", Gtk.WidgetDragDataGetSignalInfo), '("drag-data-received", Gtk.WidgetDragDataReceivedSignalInfo), '("drag-drop", Gtk.WidgetDragDropSignalInfo), '("drag-end", Gtk.WidgetDragEndSignalInfo), '("drag-failed", Gtk.WidgetDragFailedSignalInfo), '("drag-leave", Gtk.WidgetDragLeaveSignalInfo), '("drag-motion", Gtk.WidgetDragMotionSignalInfo), '("draw", Gtk.WidgetDrawSignalInfo), '("enter-fullscreen", WebViewEnterFullscreenSignalInfo), '("enter-notify-event", Gtk.WidgetEnterNotifyEventSignalInfo), '("event", Gtk.WidgetEventSignalInfo), '("event-after", Gtk.WidgetEventAfterSignalInfo), '("focus", Gtk.WidgetFocusSignalInfo), '("focus-in-event", Gtk.WidgetFocusInEventSignalInfo), '("focus-out-event", Gtk.WidgetFocusOutEventSignalInfo), '("grab-broken-event", Gtk.WidgetGrabBrokenEventSignalInfo), '("grab-focus", Gtk.WidgetGrabFocusSignalInfo), '("grab-notify", Gtk.WidgetGrabNotifySignalInfo), '("hide", Gtk.WidgetHideSignalInfo), '("hierarchy-changed", Gtk.WidgetHierarchyChangedSignalInfo), '("insecure-content-detected", WebViewInsecureContentDetectedSignalInfo), '("key-press-event", Gtk.WidgetKeyPressEventSignalInfo), '("key-release-event", Gtk.WidgetKeyReleaseEventSignalInfo), '("keynav-failed", Gtk.WidgetKeynavFailedSignalInfo), '("leave-fullscreen", WebViewLeaveFullscreenSignalInfo), '("leave-notify-event", Gtk.WidgetLeaveNotifyEventSignalInfo), '("load-changed", WebViewLoadChangedSignalInfo), '("load-failed", WebViewLoadFailedSignalInfo), '("load-failed-with-tls-errors", WebViewLoadFailedWithTlsErrorsSignalInfo), '("map", Gtk.WidgetMapSignalInfo), '("map-event", Gtk.WidgetMapEventSignalInfo), '("mnemonic-activate", Gtk.WidgetMnemonicActivateSignalInfo), '("motion-notify-event", Gtk.WidgetMotionNotifyEventSignalInfo), '("mouse-target-changed", WebViewMouseTargetChangedSignalInfo), '("move-focus", Gtk.WidgetMoveFocusSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", Gtk.WidgetParentSetSignalInfo), '("permission-request", WebViewPermissionRequestSignalInfo), '("popup-menu", Gtk.WidgetPopupMenuSignalInfo), '("print", WebViewPrintSignalInfo), '("property-notify-event", Gtk.WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", Gtk.WidgetProximityInEventSignalInfo), '("proximity-out-event", Gtk.WidgetProximityOutEventSignalInfo), '("query-tooltip", Gtk.WidgetQueryTooltipSignalInfo), '("ready-to-show", WebViewReadyToShowSignalInfo), '("realize", Gtk.WidgetRealizeSignalInfo), '("remove", Gtk.ContainerRemoveSignalInfo), '("resource-load-started", WebViewResourceLoadStartedSignalInfo), '("run-as-modal", WebViewRunAsModalSignalInfo), '("run-color-chooser", WebViewRunColorChooserSignalInfo), '("run-file-chooser", WebViewRunFileChooserSignalInfo), '("screen-changed", Gtk.WidgetScreenChangedSignalInfo), '("script-dialog", WebViewScriptDialogSignalInfo), '("scroll-event", Gtk.WidgetScrollEventSignalInfo), '("selection-clear-event", Gtk.WidgetSelectionClearEventSignalInfo), '("selection-get", Gtk.WidgetSelectionGetSignalInfo), '("selection-notify-event", Gtk.WidgetSelectionNotifyEventSignalInfo), '("selection-received", Gtk.WidgetSelectionReceivedSignalInfo), '("selection-request-event", Gtk.WidgetSelectionRequestEventSignalInfo), '("set-focus-child", Gtk.ContainerSetFocusChildSignalInfo), '("show", Gtk.WidgetShowSignalInfo), '("show-help", Gtk.WidgetShowHelpSignalInfo), '("show-notification", WebViewShowNotificationSignalInfo), '("size-allocate", Gtk.WidgetSizeAllocateSignalInfo), '("state-changed", Gtk.WidgetStateChangedSignalInfo), '("state-flags-changed", Gtk.WidgetStateFlagsChangedSignalInfo), '("style-set", Gtk.WidgetStyleSetSignalInfo), '("style-updated", Gtk.WidgetStyleUpdatedSignalInfo), '("submit-form", WebViewSubmitFormSignalInfo), '("touch-event", Gtk.WidgetTouchEventSignalInfo), '("unmap", Gtk.WidgetUnmapSignalInfo), '("unmap-event", Gtk.WidgetUnmapEventSignalInfo), '("unrealize", Gtk.WidgetUnrealizeSignalInfo), '("visibility-notify-event", Gtk.WidgetVisibilityNotifyEventSignalInfo), '("web-process-crashed", WebViewWebProcessCrashedSignalInfo), '("window-state-event", Gtk.WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method WebView::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "WebKit2" "WebView"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_new" webkit_web_view_new :: 
    IO (Ptr WebView)


webViewNew ::
    (MonadIO m) =>
    m WebView
webViewNew  = liftIO $ do
    result <- webkit_web_view_new
    checkUnexpectedReturnNULL "webkit_web_view_new" result
    result' <- (newObject WebView) result
    return result'

-- method WebView::new_with_context
-- method type : Constructor
-- Args : [Arg {argName = "context", argType = TInterface "WebKit2" "WebContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "context", argType = TInterface "WebKit2" "WebContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "WebView"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_new_with_context" webkit_web_view_new_with_context :: 
    Ptr WebContext ->                       -- context : TInterface "WebKit2" "WebContext"
    IO (Ptr WebView)


webViewNewWithContext ::
    (MonadIO m, WebContextK a) =>
    a ->                                    -- context
    m WebView
webViewNewWithContext context = liftIO $ do
    let context' = unsafeManagedPtrCastPtr context
    result <- webkit_web_view_new_with_context context'
    checkUnexpectedReturnNULL "webkit_web_view_new_with_context" result
    result' <- (newObject WebView) result
    touchManagedPtr context
    return result'

-- method WebView::new_with_settings
-- method type : Constructor
-- Args : [Arg {argName = "settings", argType = TInterface "WebKit2" "Settings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "settings", argType = TInterface "WebKit2" "Settings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "WebView"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_new_with_settings" webkit_web_view_new_with_settings :: 
    Ptr Settings ->                         -- settings : TInterface "WebKit2" "Settings"
    IO (Ptr WebView)


webViewNewWithSettings ::
    (MonadIO m, SettingsK a) =>
    a ->                                    -- settings
    m WebView
webViewNewWithSettings settings = liftIO $ do
    let settings' = unsafeManagedPtrCastPtr settings
    result <- webkit_web_view_new_with_settings settings'
    checkUnexpectedReturnNULL "webkit_web_view_new_with_settings" result
    result' <- (newObject WebView) result
    touchManagedPtr settings
    return result'

-- method WebView::new_with_user_content_manager
-- method type : Constructor
-- Args : [Arg {argName = "user_content_manager", argType = TInterface "WebKit2" "UserContentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "user_content_manager", argType = TInterface "WebKit2" "UserContentManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "WebView"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_new_with_user_content_manager" webkit_web_view_new_with_user_content_manager :: 
    Ptr UserContentManager ->               -- user_content_manager : TInterface "WebKit2" "UserContentManager"
    IO (Ptr WebView)


webViewNewWithUserContentManager ::
    (MonadIO m, UserContentManagerK a) =>
    a ->                                    -- user_content_manager
    m WebView
webViewNewWithUserContentManager user_content_manager = liftIO $ do
    let user_content_manager' = unsafeManagedPtrCastPtr user_content_manager
    result <- webkit_web_view_new_with_user_content_manager user_content_manager'
    checkUnexpectedReturnNULL "webkit_web_view_new_with_user_content_manager" result
    result' <- (newObject WebView) result
    touchManagedPtr user_content_manager
    return result'

-- method WebView::can_execute_editing_command
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "command", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "command", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_can_execute_editing_command" webkit_web_view_can_execute_editing_command :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- command : TBasicType TUTF8
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


webViewCanExecuteEditingCommand ::
    (MonadIO m, WebViewK a, Gio.CancellableK b) =>
    a ->                                    -- _obj
    T.Text ->                               -- command
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
webViewCanExecuteEditingCommand _obj command cancellable callback = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    command' <- textToCString command
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    webkit_web_view_can_execute_editing_command _obj' command' maybeCancellable maybeCallback user_data
    touchManagedPtr _obj
    whenJust cancellable touchManagedPtr
    freeMem command'
    return ()

-- method WebView::can_execute_editing_command_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "webkit_web_view_can_execute_editing_command_finish" webkit_web_view_can_execute_editing_command_finish :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gio.AsyncResult ->                  -- result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO CInt


webViewCanExecuteEditingCommandFinish ::
    (MonadIO m, WebViewK a, Gio.AsyncResultK b) =>
    a ->                                    -- _obj
    b ->                                    -- result
    m ()
webViewCanExecuteEditingCommandFinish _obj result_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let result_' = unsafeManagedPtrCastPtr result_
    onException (do
        _ <- propagateGError $ webkit_web_view_can_execute_editing_command_finish _obj' result_'
        touchManagedPtr _obj
        touchManagedPtr result_
        return ()
     ) (do
        return ()
     )

-- method WebView::can_go_back
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_can_go_back" webkit_web_view_can_go_back :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CInt


webViewCanGoBack ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Bool
webViewCanGoBack _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_can_go_back _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method WebView::can_go_forward
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_can_go_forward" webkit_web_view_can_go_forward :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CInt


webViewCanGoForward ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Bool
webViewCanGoForward _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_can_go_forward _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method WebView::can_show_mime_type
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_can_show_mime_type" webkit_web_view_can_show_mime_type :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- mime_type : TBasicType TUTF8
    IO CInt


webViewCanShowMimeType ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- mime_type
    m Bool
webViewCanShowMimeType _obj mime_type = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    mime_type' <- textToCString mime_type
    result <- webkit_web_view_can_show_mime_type _obj' mime_type'
    let result' = (/= 0) result
    touchManagedPtr _obj
    freeMem mime_type'
    return result'

-- method WebView::download_uri
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "Download"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_download_uri" webkit_web_view_download_uri :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- uri : TBasicType TUTF8
    IO (Ptr Download)


webViewDownloadUri ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- uri
    m Download
webViewDownloadUri _obj uri = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    uri' <- textToCString uri
    result <- webkit_web_view_download_uri _obj' uri'
    checkUnexpectedReturnNULL "webkit_web_view_download_uri" result
    result' <- (wrapObject Download) result
    touchManagedPtr _obj
    freeMem uri'
    return result'

-- method WebView::execute_editing_command
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "command", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "command", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_execute_editing_command" webkit_web_view_execute_editing_command :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- command : TBasicType TUTF8
    IO ()


webViewExecuteEditingCommand ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- command
    m ()
webViewExecuteEditingCommand _obj command = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    command' <- textToCString command
    webkit_web_view_execute_editing_command _obj' command'
    touchManagedPtr _obj
    freeMem command'
    return ()

-- method WebView::execute_editing_command_with_argument
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "command", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argument", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "command", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argument", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_execute_editing_command_with_argument" webkit_web_view_execute_editing_command_with_argument :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- command : TBasicType TUTF8
    CString ->                              -- argument : TBasicType TUTF8
    IO ()


webViewExecuteEditingCommandWithArgument ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- command
    T.Text ->                               -- argument
    m ()
webViewExecuteEditingCommandWithArgument _obj command argument = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    command' <- textToCString command
    argument' <- textToCString argument
    webkit_web_view_execute_editing_command_with_argument _obj' command' argument'
    touchManagedPtr _obj
    freeMem command'
    freeMem argument'
    return ()

-- method WebView::get_back_forward_list
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "BackForwardList"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_back_forward_list" webkit_web_view_get_back_forward_list :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr BackForwardList)


webViewGetBackForwardList ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m BackForwardList
webViewGetBackForwardList _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_back_forward_list _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_back_forward_list" result
    result' <- (newObject BackForwardList) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_background_color
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_background_color" webkit_web_view_get_background_color :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gdk.RGBA ->                         -- rgba : TInterface "Gdk" "RGBA"
    IO ()


webViewGetBackgroundColor ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m (Gdk.RGBA)
webViewGetBackgroundColor _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    rgba <- callocBoxedBytes 32 :: IO (Ptr Gdk.RGBA)
    webkit_web_view_get_background_color _obj' rgba
    rgba' <- (wrapBoxed Gdk.RGBA) rgba
    touchManagedPtr _obj
    return rgba'

-- method WebView::get_context
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "WebContext"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_context" webkit_web_view_get_context :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr WebContext)


webViewGetContext ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m WebContext
webViewGetContext _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_context _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_context" result
    result' <- (newObject WebContext) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_custom_charset
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_custom_charset" webkit_web_view_get_custom_charset :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CString


webViewGetCustomCharset ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m T.Text
webViewGetCustomCharset _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_custom_charset _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_custom_charset" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method WebView::get_editor_state
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "EditorState"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_editor_state" webkit_web_view_get_editor_state :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr EditorState)


webViewGetEditorState ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m EditorState
webViewGetEditorState _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_editor_state _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_editor_state" result
    result' <- (newObject EditorState) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_estimated_load_progress
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_estimated_load_progress" webkit_web_view_get_estimated_load_progress :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CDouble


webViewGetEstimatedLoadProgress ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Double
webViewGetEstimatedLoadProgress _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_estimated_load_progress _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method WebView::get_favicon
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "cairo" "Surface"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_favicon" webkit_web_view_get_favicon :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr Cairo.Surface)


webViewGetFavicon ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Cairo.Surface
webViewGetFavicon _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_favicon _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_favicon" result
    result' <- (newBoxed Cairo.Surface) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_find_controller
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "FindController"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_find_controller" webkit_web_view_get_find_controller :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr FindController)


webViewGetFindController ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m FindController
webViewGetFindController _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_find_controller _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_find_controller" result
    result' <- (newObject FindController) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_inspector
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "WebInspector"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_inspector" webkit_web_view_get_inspector :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr WebInspector)


webViewGetInspector ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m WebInspector
webViewGetInspector _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_inspector _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_inspector" result
    result' <- (newObject WebInspector) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_javascript_global_context
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "JavaScriptCore" "GlobalContext"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_javascript_global_context" webkit_web_view_get_javascript_global_context :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr JavaScriptCore.GlobalContext)


webViewGetJavascriptGlobalContext ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m JavaScriptCore.GlobalContext
webViewGetJavascriptGlobalContext _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_javascript_global_context _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_javascript_global_context" result
    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
    result' <- (\x -> JavaScriptCore.GlobalContext <$> newForeignPtr_ x) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_main_resource
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "WebResource"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_main_resource" webkit_web_view_get_main_resource :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr WebResource)


webViewGetMainResource ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m WebResource
webViewGetMainResource _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_main_resource _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_main_resource" result
    result' <- (newObject WebResource) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_page_id
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt64
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_page_id" webkit_web_view_get_page_id :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO Word64


webViewGetPageId ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Word64
webViewGetPageId _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_page_id _obj'
    touchManagedPtr _obj
    return result

-- method WebView::get_settings
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "Settings"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_settings" webkit_web_view_get_settings :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr Settings)


webViewGetSettings ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Settings
webViewGetSettings _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_settings _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_settings" result
    result' <- (newObject Settings) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_snapshot
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "WebKit2" "SnapshotRegion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "WebKit2" "SnapshotOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "WebKit2" "SnapshotRegion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "WebKit2" "SnapshotOptions", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_snapshot" webkit_web_view_get_snapshot :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CUInt ->                                -- region : TInterface "WebKit2" "SnapshotRegion"
    CUInt ->                                -- options : TInterface "WebKit2" "SnapshotOptions"
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


webViewGetSnapshot ::
    (MonadIO m, WebViewK a, Gio.CancellableK b) =>
    a ->                                    -- _obj
    SnapshotRegion ->                       -- region
    [SnapshotOptions] ->                    -- options
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
webViewGetSnapshot _obj region options cancellable callback = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let region' = (fromIntegral . fromEnum) region
    let options' = gflagsToWord options
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    webkit_web_view_get_snapshot _obj' region' options' maybeCancellable maybeCallback user_data
    touchManagedPtr _obj
    whenJust cancellable touchManagedPtr
    return ()

-- method WebView::get_snapshot_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "cairo" "Surface"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_web_view_get_snapshot_finish" webkit_web_view_get_snapshot_finish :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gio.AsyncResult ->                  -- result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Cairo.Surface)


webViewGetSnapshotFinish ::
    (MonadIO m, WebViewK a, Gio.AsyncResultK b) =>
    a ->                                    -- _obj
    b ->                                    -- result
    m Cairo.Surface
webViewGetSnapshotFinish _obj result_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let result_' = unsafeManagedPtrCastPtr result_
    onException (do
        result <- propagateGError $ webkit_web_view_get_snapshot_finish _obj' result_'
        checkUnexpectedReturnNULL "webkit_web_view_get_snapshot_finish" result
        result' <- (wrapBoxed Cairo.Surface) result
        touchManagedPtr _obj
        touchManagedPtr result_
        return result'
     ) (do
        return ()
     )

-- method WebView::get_title
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_title" webkit_web_view_get_title :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CString


webViewGetTitle ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m T.Text
webViewGetTitle _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_title _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_title" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method WebView::get_tls_info
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "certificate", argType = TInterface "Gio" "TlsCertificate", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "errors", argType = TInterface "Gio" "TlsCertificateFlags", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_tls_info" webkit_web_view_get_tls_info :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr (Ptr Gio.TlsCertificate) ->         -- certificate : TInterface "Gio" "TlsCertificate"
    Ptr CUInt ->                            -- errors : TInterface "Gio" "TlsCertificateFlags"
    IO CInt


webViewGetTlsInfo ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m (Bool,Gio.TlsCertificate,[Gio.TlsCertificateFlags])
webViewGetTlsInfo _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    certificate <- allocMem :: IO (Ptr (Ptr Gio.TlsCertificate))
    errors <- allocMem :: IO (Ptr CUInt)
    result <- webkit_web_view_get_tls_info _obj' certificate errors
    let result' = (/= 0) result
    certificate' <- peek certificate
    certificate'' <- (newObject Gio.TlsCertificate) certificate'
    errors' <- peek errors
    let errors'' = wordToGFlags errors'
    touchManagedPtr _obj
    freeMem certificate
    freeMem errors
    return (result', certificate'', errors'')

-- method WebView::get_uri
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_uri" webkit_web_view_get_uri :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CString


webViewGetUri ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m T.Text
webViewGetUri _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_uri _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_uri" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

-- method WebView::get_user_content_manager
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "UserContentManager"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_user_content_manager" webkit_web_view_get_user_content_manager :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr UserContentManager)


webViewGetUserContentManager ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m UserContentManager
webViewGetUserContentManager _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_user_content_manager _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_user_content_manager" result
    result' <- (newObject UserContentManager) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_window_properties
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "WindowProperties"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_window_properties" webkit_web_view_get_window_properties :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr WindowProperties)


webViewGetWindowProperties ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m WindowProperties
webViewGetWindowProperties _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_window_properties _obj'
    checkUnexpectedReturnNULL "webkit_web_view_get_window_properties" result
    result' <- (newObject WindowProperties) result
    touchManagedPtr _obj
    return result'

-- method WebView::get_zoom_level
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TDouble
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_get_zoom_level" webkit_web_view_get_zoom_level :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CDouble


webViewGetZoomLevel ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Double
webViewGetZoomLevel _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_get_zoom_level _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

-- method WebView::go_back
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_go_back" webkit_web_view_go_back :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO ()


webViewGoBack ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m ()
webViewGoBack _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_view_go_back _obj'
    touchManagedPtr _obj
    return ()

-- method WebView::go_forward
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_go_forward" webkit_web_view_go_forward :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO ()


webViewGoForward ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m ()
webViewGoForward _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_view_go_forward _obj'
    touchManagedPtr _obj
    return ()

-- method WebView::go_to_back_forward_list_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list_item", argType = TInterface "WebKit2" "BackForwardListItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list_item", argType = TInterface "WebKit2" "BackForwardListItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_go_to_back_forward_list_item" webkit_web_view_go_to_back_forward_list_item :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr BackForwardListItem ->              -- list_item : TInterface "WebKit2" "BackForwardListItem"
    IO ()


webViewGoToBackForwardListItem ::
    (MonadIO m, WebViewK a, BackForwardListItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- list_item
    m ()
webViewGoToBackForwardListItem _obj list_item = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let list_item' = unsafeManagedPtrCastPtr list_item
    webkit_web_view_go_to_back_forward_list_item _obj' list_item'
    touchManagedPtr _obj
    touchManagedPtr list_item
    return ()

-- method WebView::is_editable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_is_editable" webkit_web_view_is_editable :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CInt


webViewIsEditable ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Bool
webViewIsEditable _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_is_editable _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method WebView::is_loading
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_is_loading" webkit_web_view_is_loading :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CInt


webViewIsLoading ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Bool
webViewIsLoading _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_is_loading _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method WebView::is_playing_audio
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_is_playing_audio" webkit_web_view_is_playing_audio :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO CInt


webViewIsPlayingAudio ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Bool
webViewIsPlayingAudio _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_is_playing_audio _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method WebView::load_alternate_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_load_alternate_html" webkit_web_view_load_alternate_html :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- content : TBasicType TUTF8
    CString ->                              -- content_uri : TBasicType TUTF8
    CString ->                              -- base_uri : TBasicType TUTF8
    IO ()


webViewLoadAlternateHtml ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- content
    T.Text ->                               -- content_uri
    Maybe (T.Text) ->                       -- base_uri
    m ()
webViewLoadAlternateHtml _obj content content_uri base_uri = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    content' <- textToCString content
    content_uri' <- textToCString content_uri
    maybeBase_uri <- case base_uri of
        Nothing -> return nullPtr
        Just jBase_uri -> do
            jBase_uri' <- textToCString jBase_uri
            return jBase_uri'
    webkit_web_view_load_alternate_html _obj' content' content_uri' maybeBase_uri
    touchManagedPtr _obj
    freeMem content'
    freeMem content_uri'
    freeMem maybeBase_uri
    return ()

-- method WebView::load_bytes
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_load_bytes" webkit_web_view_load_bytes :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr GLib.Bytes ->                       -- bytes : TInterface "GLib" "Bytes"
    CString ->                              -- mime_type : TBasicType TUTF8
    CString ->                              -- encoding : TBasicType TUTF8
    CString ->                              -- base_uri : TBasicType TUTF8
    IO ()


webViewLoadBytes ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    GLib.Bytes ->                           -- bytes
    Maybe (T.Text) ->                       -- mime_type
    Maybe (T.Text) ->                       -- encoding
    Maybe (T.Text) ->                       -- base_uri
    m ()
webViewLoadBytes _obj bytes mime_type encoding base_uri = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let bytes' = unsafeManagedPtrGetPtr bytes
    maybeMime_type <- case mime_type of
        Nothing -> return nullPtr
        Just jMime_type -> do
            jMime_type' <- textToCString jMime_type
            return jMime_type'
    maybeEncoding <- case encoding of
        Nothing -> return nullPtr
        Just jEncoding -> do
            jEncoding' <- textToCString jEncoding
            return jEncoding'
    maybeBase_uri <- case base_uri of
        Nothing -> return nullPtr
        Just jBase_uri -> do
            jBase_uri' <- textToCString jBase_uri
            return jBase_uri'
    webkit_web_view_load_bytes _obj' bytes' maybeMime_type maybeEncoding maybeBase_uri
    touchManagedPtr _obj
    touchManagedPtr bytes
    freeMem maybeMime_type
    freeMem maybeEncoding
    freeMem maybeBase_uri
    return ()

-- method WebView::load_html
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_load_html" webkit_web_view_load_html :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- content : TBasicType TUTF8
    CString ->                              -- base_uri : TBasicType TUTF8
    IO ()


webViewLoadHtml ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- content
    Maybe (T.Text) ->                       -- base_uri
    m ()
webViewLoadHtml _obj content base_uri = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    content' <- textToCString content
    maybeBase_uri <- case base_uri of
        Nothing -> return nullPtr
        Just jBase_uri -> do
            jBase_uri' <- textToCString jBase_uri
            return jBase_uri'
    webkit_web_view_load_html _obj' content' maybeBase_uri
    touchManagedPtr _obj
    freeMem content'
    freeMem maybeBase_uri
    return ()

-- method WebView::load_plain_text
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "plain_text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "plain_text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_load_plain_text" webkit_web_view_load_plain_text :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- plain_text : TBasicType TUTF8
    IO ()


webViewLoadPlainText ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- plain_text
    m ()
webViewLoadPlainText _obj plain_text = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    plain_text' <- textToCString plain_text
    webkit_web_view_load_plain_text _obj' plain_text'
    touchManagedPtr _obj
    freeMem plain_text'
    return ()

-- method WebView::load_request
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "request", argType = TInterface "WebKit2" "URIRequest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "request", argType = TInterface "WebKit2" "URIRequest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_load_request" webkit_web_view_load_request :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr URIRequest ->                       -- request : TInterface "WebKit2" "URIRequest"
    IO ()


webViewLoadRequest ::
    (MonadIO m, WebViewK a, URIRequestK b) =>
    a ->                                    -- _obj
    b ->                                    -- request
    m ()
webViewLoadRequest _obj request = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let request' = unsafeManagedPtrCastPtr request
    webkit_web_view_load_request _obj' request'
    touchManagedPtr _obj
    touchManagedPtr request
    return ()

-- method WebView::load_uri
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_load_uri" webkit_web_view_load_uri :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- uri : TBasicType TUTF8
    IO ()


webViewLoadUri ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- uri
    m ()
webViewLoadUri _obj uri = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    uri' <- textToCString uri
    webkit_web_view_load_uri _obj' uri'
    touchManagedPtr _obj
    freeMem uri'
    return ()

-- method WebView::new_with_related_view
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Widget"
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_new_with_related_view" webkit_web_view_new_with_related_view :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO (Ptr Gtk.Widget)


webViewNewWithRelatedView ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m Gtk.Widget
webViewNewWithRelatedView _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- webkit_web_view_new_with_related_view _obj'
    checkUnexpectedReturnNULL "webkit_web_view_new_with_related_view" result
    result' <- (wrapObject Gtk.Widget) result
    touchManagedPtr _obj
    return result'

-- method WebView::reload
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_reload" webkit_web_view_reload :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO ()


webViewReload ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m ()
webViewReload _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_view_reload _obj'
    touchManagedPtr _obj
    return ()

-- method WebView::reload_bypass_cache
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_reload_bypass_cache" webkit_web_view_reload_bypass_cache :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO ()


webViewReloadBypassCache ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m ()
webViewReloadBypassCache _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_view_reload_bypass_cache _obj'
    touchManagedPtr _obj
    return ()

-- method WebView::run_javascript
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "script", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "script", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_run_javascript" webkit_web_view_run_javascript :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- script : TBasicType TUTF8
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


webViewRunJavascript ::
    (MonadIO m, WebViewK a, Gio.CancellableK b) =>
    a ->                                    -- _obj
    T.Text ->                               -- script
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
webViewRunJavascript _obj script cancellable callback = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    script' <- textToCString script
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    webkit_web_view_run_javascript _obj' script' maybeCancellable maybeCallback user_data
    touchManagedPtr _obj
    whenJust cancellable touchManagedPtr
    freeMem script'
    return ()

-- method WebView::run_javascript_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "JavascriptResult"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_web_view_run_javascript_finish" webkit_web_view_run_javascript_finish :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gio.AsyncResult ->                  -- result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr JavascriptResult)


webViewRunJavascriptFinish ::
    (MonadIO m, WebViewK a, Gio.AsyncResultK b) =>
    a ->                                    -- _obj
    b ->                                    -- result
    m JavascriptResult
webViewRunJavascriptFinish _obj result_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let result_' = unsafeManagedPtrCastPtr result_
    onException (do
        result <- propagateGError $ webkit_web_view_run_javascript_finish _obj' result_'
        checkUnexpectedReturnNULL "webkit_web_view_run_javascript_finish" result
        result' <- (wrapBoxed JavascriptResult) result
        touchManagedPtr _obj
        touchManagedPtr result_
        return result'
     ) (do
        return ()
     )

-- method WebView::run_javascript_from_gresource
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resource", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_run_javascript_from_gresource" webkit_web_view_run_javascript_from_gresource :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- resource : TBasicType TUTF8
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


webViewRunJavascriptFromGresource ::
    (MonadIO m, WebViewK a, Gio.CancellableK b) =>
    a ->                                    -- _obj
    T.Text ->                               -- resource
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
webViewRunJavascriptFromGresource _obj resource cancellable callback = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    resource' <- textToCString resource
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    webkit_web_view_run_javascript_from_gresource _obj' resource' maybeCancellable maybeCallback user_data
    touchManagedPtr _obj
    whenJust cancellable touchManagedPtr
    freeMem resource'
    return ()

-- method WebView::run_javascript_from_gresource_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "WebKit2" "JavascriptResult"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_web_view_run_javascript_from_gresource_finish" webkit_web_view_run_javascript_from_gresource_finish :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gio.AsyncResult ->                  -- result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr JavascriptResult)


webViewRunJavascriptFromGresourceFinish ::
    (MonadIO m, WebViewK a, Gio.AsyncResultK b) =>
    a ->                                    -- _obj
    b ->                                    -- result
    m JavascriptResult
webViewRunJavascriptFromGresourceFinish _obj result_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let result_' = unsafeManagedPtrCastPtr result_
    onException (do
        result <- propagateGError $ webkit_web_view_run_javascript_from_gresource_finish _obj' result_'
        checkUnexpectedReturnNULL "webkit_web_view_run_javascript_from_gresource_finish" result
        result' <- (wrapBoxed JavascriptResult) result
        touchManagedPtr _obj
        touchManagedPtr result_
        return result'
     ) (do
        return ()
     )

-- method WebView::save
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "save_mode", argType = TInterface "WebKit2" "SaveMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "save_mode", argType = TInterface "WebKit2" "SaveMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_save" webkit_web_view_save :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CUInt ->                                -- save_mode : TInterface "WebKit2" "SaveMode"
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


webViewSave ::
    (MonadIO m, WebViewK a, Gio.CancellableK b) =>
    a ->                                    -- _obj
    SaveMode ->                             -- save_mode
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
webViewSave _obj save_mode cancellable callback = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let save_mode' = (fromIntegral . fromEnum) save_mode
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    webkit_web_view_save _obj' save_mode' maybeCancellable maybeCallback user_data
    touchManagedPtr _obj
    whenJust cancellable touchManagedPtr
    return ()

-- method WebView::save_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gio" "InputStream"
-- throws : True
-- Skip return : False

foreign import ccall "webkit_web_view_save_finish" webkit_web_view_save_finish :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gio.AsyncResult ->                  -- result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Gio.InputStream)


webViewSaveFinish ::
    (MonadIO m, WebViewK a, Gio.AsyncResultK b) =>
    a ->                                    -- _obj
    b ->                                    -- result
    m Gio.InputStream
webViewSaveFinish _obj result_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let result_' = unsafeManagedPtrCastPtr result_
    onException (do
        result <- propagateGError $ webkit_web_view_save_finish _obj' result_'
        checkUnexpectedReturnNULL "webkit_web_view_save_finish" result
        result' <- (wrapObject Gio.InputStream) result
        touchManagedPtr _obj
        touchManagedPtr result_
        return result'
     ) (do
        return ()
     )

-- method WebView::save_to_file
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TInterface "Gio" "File", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "save_mode", argType = TInterface "WebKit2" "SaveMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TInterface "Gio" "File", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "save_mode", argType = TInterface "WebKit2" "SaveMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_save_to_file" webkit_web_view_save_to_file :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gio.File ->                         -- file : TInterface "Gio" "File"
    CUInt ->                                -- save_mode : TInterface "WebKit2" "SaveMode"
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


webViewSaveToFile ::
    (MonadIO m, WebViewK a, Gio.FileK b, Gio.CancellableK c) =>
    a ->                                    -- _obj
    b ->                                    -- file
    SaveMode ->                             -- save_mode
    Maybe (c) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
webViewSaveToFile _obj file save_mode cancellable callback = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let file' = unsafeManagedPtrCastPtr file
    let save_mode' = (fromIntegral . fromEnum) save_mode
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    webkit_web_view_save_to_file _obj' file' save_mode' maybeCancellable maybeCallback user_data
    touchManagedPtr _obj
    touchManagedPtr file
    whenJust cancellable touchManagedPtr
    return ()

-- method WebView::save_to_file_finish
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "webkit_web_view_save_to_file_finish" webkit_web_view_save_to_file_finish :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gio.AsyncResult ->                  -- result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO CInt


webViewSaveToFileFinish ::
    (MonadIO m, WebViewK a, Gio.AsyncResultK b) =>
    a ->                                    -- _obj
    b ->                                    -- result
    m ()
webViewSaveToFileFinish _obj result_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let result_' = unsafeManagedPtrCastPtr result_
    onException (do
        _ <- propagateGError $ webkit_web_view_save_to_file_finish _obj' result_'
        touchManagedPtr _obj
        touchManagedPtr result_
        return ()
     ) (do
        return ()
     )

-- method WebView::set_background_color
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_set_background_color" webkit_web_view_set_background_color :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Gdk.RGBA ->                         -- rgba : TInterface "Gdk" "RGBA"
    IO ()


webViewSetBackgroundColor ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    Gdk.RGBA ->                             -- rgba
    m ()
webViewSetBackgroundColor _obj rgba = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let rgba' = unsafeManagedPtrGetPtr rgba
    webkit_web_view_set_background_color _obj' rgba'
    touchManagedPtr _obj
    touchManagedPtr rgba
    return ()

-- method WebView::set_custom_charset
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "charset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "charset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_set_custom_charset" webkit_web_view_set_custom_charset :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CString ->                              -- charset : TBasicType TUTF8
    IO ()


webViewSetCustomCharset ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- charset
    m ()
webViewSetCustomCharset _obj charset = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeCharset <- case charset of
        Nothing -> return nullPtr
        Just jCharset -> do
            jCharset' <- textToCString jCharset
            return jCharset'
    webkit_web_view_set_custom_charset _obj' maybeCharset
    touchManagedPtr _obj
    freeMem maybeCharset
    return ()

-- method WebView::set_editable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "editable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "editable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_set_editable" webkit_web_view_set_editable :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CInt ->                                 -- editable : TBasicType TBoolean
    IO ()


webViewSetEditable ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- editable
    m ()
webViewSetEditable _obj editable = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let editable' = (fromIntegral . fromEnum) editable
    webkit_web_view_set_editable _obj' editable'
    touchManagedPtr _obj
    return ()

-- method WebView::set_settings
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "settings", argType = TInterface "WebKit2" "Settings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "settings", argType = TInterface "WebKit2" "Settings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_set_settings" webkit_web_view_set_settings :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    Ptr Settings ->                         -- settings : TInterface "WebKit2" "Settings"
    IO ()


webViewSetSettings ::
    (MonadIO m, WebViewK a, SettingsK b) =>
    a ->                                    -- _obj
    b ->                                    -- settings
    m ()
webViewSetSettings _obj settings = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let settings' = unsafeManagedPtrCastPtr settings
    webkit_web_view_set_settings _obj' settings'
    touchManagedPtr _obj
    touchManagedPtr settings
    return ()

-- method WebView::set_zoom_level
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "zoom_level", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "zoom_level", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_set_zoom_level" webkit_web_view_set_zoom_level :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    CDouble ->                              -- zoom_level : TBasicType TDouble
    IO ()


webViewSetZoomLevel ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    Double ->                               -- zoom_level
    m ()
webViewSetZoomLevel _obj zoom_level = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let zoom_level' = realToFrac zoom_level
    webkit_web_view_set_zoom_level _obj' zoom_level'
    touchManagedPtr _obj
    return ()

-- method WebView::stop_loading
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2" "WebView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "webkit_web_view_stop_loading" webkit_web_view_stop_loading :: 
    Ptr WebView ->                          -- _obj : TInterface "WebKit2" "WebView"
    IO ()


webViewStopLoading ::
    (MonadIO m, WebViewK a) =>
    a ->                                    -- _obj
    m ()
webViewStopLoading _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    webkit_web_view_stop_loading _obj'
    touchManagedPtr _obj
    return ()