{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- A policy decision for navigation actions.
-- 
-- WebKitNavigationPolicyDecision represents a policy decision for events associated with
-- navigations. If the value of t'GI.WebKit.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/mouse-button/@ is not 0, then
-- the navigation was triggered by a mouse event.

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

module GI.WebKit.Objects.NavigationPolicyDecision
    ( 

-- * Exported types
    NavigationPolicyDecision(..)            ,
    IsNavigationPolicyDecision              ,
    toNavigationPolicyDecision              ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [download]("GI.WebKit.Objects.PolicyDecision#g:method:download"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [ignore]("GI.WebKit.Objects.PolicyDecision#g:method:ignore"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [use]("GI.WebKit.Objects.PolicyDecision#g:method:use"), [useWithPolicies]("GI.WebKit.Objects.PolicyDecision#g:method:useWithPolicies"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getNavigationAction]("GI.WebKit.Objects.NavigationPolicyDecision#g:method:getNavigationAction"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

#if defined(ENABLE_OVERLOADING)
    ResolveNavigationPolicyDecisionMethod   ,
#endif

-- ** getNavigationAction #method:getNavigationAction#

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionGetNavigationActionMethodInfo,
#endif
    navigationPolicyDecisionGetNavigationAction,




 -- * Properties


-- ** navigationAction #attr:navigationAction#
-- | The t'GI.WebKit.Structs.NavigationAction.NavigationAction' that triggered this policy decision.
-- 
-- /Since: 2.6/

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionNavigationActionPropertyInfo,
#endif
    getNavigationPolicyDecisionNavigationAction,
#if defined(ENABLE_OVERLOADING)
    navigationPolicyDecisionNavigationAction,
#endif




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit.Objects.PolicyDecision as WebKit.PolicyDecision
import {-# SOURCE #-} qualified GI.WebKit.Structs.NavigationAction as WebKit.NavigationAction

-- | Memory-managed wrapper type.
newtype NavigationPolicyDecision = NavigationPolicyDecision (SP.ManagedPtr NavigationPolicyDecision)
    deriving (NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
(NavigationPolicyDecision -> NavigationPolicyDecision -> Bool)
-> (NavigationPolicyDecision -> NavigationPolicyDecision -> Bool)
-> Eq NavigationPolicyDecision
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
== :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
$c/= :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
/= :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
Eq)

instance SP.ManagedPtrNewtype NavigationPolicyDecision where
    toManagedPtr :: NavigationPolicyDecision -> ManagedPtr NavigationPolicyDecision
toManagedPtr (NavigationPolicyDecision ManagedPtr NavigationPolicyDecision
p) = ManagedPtr NavigationPolicyDecision
p

foreign import ccall "webkit_navigation_policy_decision_get_type"
    c_webkit_navigation_policy_decision_get_type :: IO B.Types.GType

instance B.Types.TypedObject NavigationPolicyDecision where
    glibType :: IO GType
glibType = IO GType
c_webkit_navigation_policy_decision_get_type

instance B.Types.GObject NavigationPolicyDecision

-- | Type class for types which can be safely cast to `NavigationPolicyDecision`, for instance with `toNavigationPolicyDecision`.
class (SP.GObject o, O.IsDescendantOf NavigationPolicyDecision o) => IsNavigationPolicyDecision o
instance (SP.GObject o, O.IsDescendantOf NavigationPolicyDecision o) => IsNavigationPolicyDecision o

instance O.HasParentTypes NavigationPolicyDecision
type instance O.ParentTypes NavigationPolicyDecision = '[WebKit.PolicyDecision.PolicyDecision, GObject.Object.Object]

-- | Cast to `NavigationPolicyDecision`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toNavigationPolicyDecision :: (MIO.MonadIO m, IsNavigationPolicyDecision o) => o -> m NavigationPolicyDecision
toNavigationPolicyDecision :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPolicyDecision o) =>
o -> m NavigationPolicyDecision
toNavigationPolicyDecision = IO NavigationPolicyDecision -> m NavigationPolicyDecision
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO NavigationPolicyDecision -> m NavigationPolicyDecision)
-> (o -> IO NavigationPolicyDecision)
-> o
-> m NavigationPolicyDecision
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision)
-> o -> IO NavigationPolicyDecision
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision
NavigationPolicyDecision

-- | Convert 'NavigationPolicyDecision' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe NavigationPolicyDecision) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_navigation_policy_decision_get_type
    gvalueSet_ :: Ptr GValue -> Maybe NavigationPolicyDecision -> IO ()
gvalueSet_ Ptr GValue
gv Maybe NavigationPolicyDecision
P.Nothing = Ptr GValue -> Ptr NavigationPolicyDecision -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr NavigationPolicyDecision
forall a. Ptr a
FP.nullPtr :: FP.Ptr NavigationPolicyDecision)
    gvalueSet_ Ptr GValue
gv (P.Just NavigationPolicyDecision
obj) = NavigationPolicyDecision
-> (Ptr NavigationPolicyDecision -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr NavigationPolicyDecision
obj (Ptr GValue -> Ptr NavigationPolicyDecision -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe NavigationPolicyDecision)
gvalueGet_ Ptr GValue
gv = do
        Ptr NavigationPolicyDecision
ptr <- Ptr GValue -> IO (Ptr NavigationPolicyDecision)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr NavigationPolicyDecision)
        if Ptr NavigationPolicyDecision
ptr Ptr NavigationPolicyDecision
-> Ptr NavigationPolicyDecision -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr NavigationPolicyDecision
forall a. Ptr a
FP.nullPtr
        then NavigationPolicyDecision -> Maybe NavigationPolicyDecision
forall a. a -> Maybe a
P.Just (NavigationPolicyDecision -> Maybe NavigationPolicyDecision)
-> IO NavigationPolicyDecision
-> IO (Maybe NavigationPolicyDecision)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision)
-> Ptr NavigationPolicyDecision -> IO NavigationPolicyDecision
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision
NavigationPolicyDecision Ptr NavigationPolicyDecision
ptr
        else Maybe NavigationPolicyDecision
-> IO (Maybe NavigationPolicyDecision)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe NavigationPolicyDecision
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveNavigationPolicyDecisionMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveNavigationPolicyDecisionMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveNavigationPolicyDecisionMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveNavigationPolicyDecisionMethod "download" o = WebKit.PolicyDecision.PolicyDecisionDownloadMethodInfo
    ResolveNavigationPolicyDecisionMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveNavigationPolicyDecisionMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveNavigationPolicyDecisionMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveNavigationPolicyDecisionMethod "ignore" o = WebKit.PolicyDecision.PolicyDecisionIgnoreMethodInfo
    ResolveNavigationPolicyDecisionMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveNavigationPolicyDecisionMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveNavigationPolicyDecisionMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveNavigationPolicyDecisionMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveNavigationPolicyDecisionMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveNavigationPolicyDecisionMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveNavigationPolicyDecisionMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveNavigationPolicyDecisionMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveNavigationPolicyDecisionMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveNavigationPolicyDecisionMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveNavigationPolicyDecisionMethod "use" o = WebKit.PolicyDecision.PolicyDecisionUseMethodInfo
    ResolveNavigationPolicyDecisionMethod "useWithPolicies" o = WebKit.PolicyDecision.PolicyDecisionUseWithPoliciesMethodInfo
    ResolveNavigationPolicyDecisionMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveNavigationPolicyDecisionMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveNavigationPolicyDecisionMethod "getNavigationAction" o = NavigationPolicyDecisionGetNavigationActionMethodInfo
    ResolveNavigationPolicyDecisionMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveNavigationPolicyDecisionMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveNavigationPolicyDecisionMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveNavigationPolicyDecisionMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveNavigationPolicyDecisionMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveNavigationPolicyDecisionMethod l o = O.MethodResolutionFailed l o

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

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveNavigationPolicyDecisionMethod t NavigationPolicyDecision, O.OverloadedMethod info NavigationPolicyDecision p, R.HasField t NavigationPolicyDecision p) => R.HasField t NavigationPolicyDecision p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveNavigationPolicyDecisionMethod t NavigationPolicyDecision, O.OverloadedMethodInfo info NavigationPolicyDecision) => OL.IsLabel t (O.MethodProxy info NavigationPolicyDecision) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "navigation-action"
   -- Type: TInterface (Name {namespace = "WebKit", name = "NavigationAction"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@navigation-action@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' navigationPolicyDecision #navigationAction
-- @
getNavigationPolicyDecisionNavigationAction :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m WebKit.NavigationAction.NavigationAction
getNavigationPolicyDecisionNavigationAction :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPolicyDecision o) =>
o -> m NavigationAction
getNavigationPolicyDecisionNavigationAction o
obj = IO NavigationAction -> m NavigationAction
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO NavigationAction -> m NavigationAction)
-> IO NavigationAction -> m NavigationAction
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe NavigationAction) -> IO NavigationAction
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getNavigationPolicyDecisionNavigationAction" (IO (Maybe NavigationAction) -> IO NavigationAction)
-> IO (Maybe NavigationAction) -> IO NavigationAction
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr NavigationAction -> NavigationAction)
-> IO (Maybe NavigationAction)
forall a b.
(GObject a, GBoxed b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyBoxed o
obj String
"navigation-action" ManagedPtr NavigationAction -> NavigationAction
WebKit.NavigationAction.NavigationAction

#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionNavigationActionPropertyInfo
instance AttrInfo NavigationPolicyDecisionNavigationActionPropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionNavigationActionPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = IsNavigationPolicyDecision
    type AttrSetTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = (~) ()
    type AttrTransferTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = (~) ()
    type AttrTransferType NavigationPolicyDecisionNavigationActionPropertyInfo = ()
    type AttrGetType NavigationPolicyDecisionNavigationActionPropertyInfo = WebKit.NavigationAction.NavigationAction
    type AttrLabel NavigationPolicyDecisionNavigationActionPropertyInfo = "navigation-action"
    type AttrOrigin NavigationPolicyDecisionNavigationActionPropertyInfo = NavigationPolicyDecision
    attrGet = getNavigationPolicyDecisionNavigationAction
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit.Objects.NavigationPolicyDecision.navigationAction"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit-6.0.2/docs/GI-WebKit-Objects-NavigationPolicyDecision.html#g:attr:navigationAction"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList NavigationPolicyDecision
type instance O.AttributeList NavigationPolicyDecision = NavigationPolicyDecisionAttributeList
type NavigationPolicyDecisionAttributeList = ('[ '("navigationAction", NavigationPolicyDecisionNavigationActionPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
navigationPolicyDecisionNavigationAction :: AttrLabelProxy "navigationAction"
navigationPolicyDecisionNavigationAction = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList NavigationPolicyDecision = NavigationPolicyDecisionSignalList
type NavigationPolicyDecisionSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method NavigationPolicyDecision::get_navigation_action
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "decision"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit" , name = "NavigationPolicyDecision" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitNavigationPolicyDecision"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "WebKit" , name = "NavigationAction" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_navigation_policy_decision_get_navigation_action" webkit_navigation_policy_decision_get_navigation_action :: 
    Ptr NavigationPolicyDecision ->         -- decision : TInterface (Name {namespace = "WebKit", name = "NavigationPolicyDecision"})
    IO (Ptr WebKit.NavigationAction.NavigationAction)

-- | Gets the value of the [NavigationPolicyDecision:navigationAction]("GI.WebKit.Objects.NavigationPolicyDecision#g:attr:navigationAction") property.
-- 
-- /Since: 2.6/
navigationPolicyDecisionGetNavigationAction ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    -- ^ /@decision@/: a t'GI.WebKit.Objects.NavigationPolicyDecision.NavigationPolicyDecision'
    -> m WebKit.NavigationAction.NavigationAction
    -- ^ __Returns:__ The t'GI.WebKit.Structs.NavigationAction.NavigationAction' triggering this policy decision.
navigationPolicyDecisionGetNavigationAction :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
a -> m NavigationAction
navigationPolicyDecisionGetNavigationAction a
decision = IO NavigationAction -> m NavigationAction
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NavigationAction -> m NavigationAction)
-> IO NavigationAction -> m NavigationAction
forall a b. (a -> b) -> a -> b
$ do
    Ptr NavigationPolicyDecision
decision' <- a -> IO (Ptr NavigationPolicyDecision)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
decision
    Ptr NavigationAction
result <- Ptr NavigationPolicyDecision -> IO (Ptr NavigationAction)
webkit_navigation_policy_decision_get_navigation_action Ptr NavigationPolicyDecision
decision'
    Text -> Ptr NavigationAction -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"navigationPolicyDecisionGetNavigationAction" Ptr NavigationAction
result
    NavigationAction
result' <- ((ManagedPtr NavigationAction -> NavigationAction)
-> Ptr NavigationAction -> IO NavigationAction
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr NavigationAction -> NavigationAction
WebKit.NavigationAction.NavigationAction) Ptr NavigationAction
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
    NavigationAction -> IO NavigationAction
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return NavigationAction
result'

#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionGetNavigationActionMethodInfo
instance (signature ~ (m WebKit.NavigationAction.NavigationAction), MonadIO m, IsNavigationPolicyDecision a) => O.OverloadedMethod NavigationPolicyDecisionGetNavigationActionMethodInfo a signature where
    overloadedMethod = navigationPolicyDecisionGetNavigationAction

instance O.OverloadedMethodInfo NavigationPolicyDecisionGetNavigationActionMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.WebKit.Objects.NavigationPolicyDecision.navigationPolicyDecisionGetNavigationAction",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit-6.0.2/docs/GI-WebKit-Objects-NavigationPolicyDecision.html#v:navigationPolicyDecisionGetNavigationAction"
        })


#endif