{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

/No description available in the introspection data./
-}

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

module GI.WebKit2.Objects.NavigationPolicyDecision
    (

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


 -- * Methods
-- ** getFrameName #method:getFrameName#

#if ENABLE_OVERLOADING
    NavigationPolicyDecisionGetFrameNameMethodInfo,
#endif
    navigationPolicyDecisionGetFrameName    ,


-- ** getModifiers #method:getModifiers#

#if ENABLE_OVERLOADING
    NavigationPolicyDecisionGetModifiersMethodInfo,
#endif
    navigationPolicyDecisionGetModifiers    ,


-- ** getMouseButton #method:getMouseButton#

#if ENABLE_OVERLOADING
    NavigationPolicyDecisionGetMouseButtonMethodInfo,
#endif
    navigationPolicyDecisionGetMouseButton  ,


-- ** getNavigationAction #method:getNavigationAction#

#if ENABLE_OVERLOADING
    NavigationPolicyDecisionGetNavigationActionMethodInfo,
#endif
    navigationPolicyDecisionGetNavigationAction,


-- ** getNavigationType #method:getNavigationType#

#if ENABLE_OVERLOADING
    NavigationPolicyDecisionGetNavigationTypeMethodInfo,
#endif
    navigationPolicyDecisionGetNavigationType,


-- ** getRequest #method:getRequest#

#if ENABLE_OVERLOADING
    NavigationPolicyDecisionGetRequestMethodInfo,
#endif
    navigationPolicyDecisionGetRequest      ,




 -- * Properties
-- ** frameName #attr:frameName#
{- | If this navigation request targets a new frame, this property contains
the name of that frame. For example if the decision was triggered by clicking a
link with a target attribute equal to \"_blank\", this property will contain the
value of that attribute. In all other cases, this value will be 'Nothing'.
-}
#if ENABLE_OVERLOADING
    NavigationPolicyDecisionFrameNamePropertyInfo,
#endif
    getNavigationPolicyDecisionFrameName    ,
#if ENABLE_OVERLOADING
    navigationPolicyDecisionFrameName       ,
#endif


-- ** modifiers #attr:modifiers#
{- | If the navigation associated with this policy decision was originally
triggered by a mouse event, this property contains a bitmask of various
'GI.Gdk.Flags.ModifierType' values describing the modifiers used for that click.
If the navigation was not triggered by a mouse event or no modifiers
were active, the value of this property will be zero.
-}
#if ENABLE_OVERLOADING
    NavigationPolicyDecisionModifiersPropertyInfo,
#endif
    getNavigationPolicyDecisionModifiers    ,
#if ENABLE_OVERLOADING
    navigationPolicyDecisionModifiers       ,
#endif


-- ** mouseButton #attr:mouseButton#
{- | If the navigation associated with this policy decision was originally
triggered by a mouse event, this property contains non-zero button number
of the button triggering that event. The button numbers match those from GDK.
If the navigation was not triggered by a mouse event, the value of this
property will be 0.
-}
#if ENABLE_OVERLOADING
    NavigationPolicyDecisionMouseButtonPropertyInfo,
#endif
    getNavigationPolicyDecisionMouseButton  ,
#if ENABLE_OVERLOADING
    navigationPolicyDecisionMouseButton     ,
#endif


-- ** navigationAction #attr:navigationAction#
{- | The 'GI.WebKit2.Structs.NavigationAction.NavigationAction' that triggered this policy decision.

/Since: 2.6/
-}
#if ENABLE_OVERLOADING
    NavigationPolicyDecisionNavigationActionPropertyInfo,
#endif
    getNavigationPolicyDecisionNavigationAction,
#if ENABLE_OVERLOADING
    navigationPolicyDecisionNavigationAction,
#endif


-- ** navigationType #attr:navigationType#
{- | The type of navigation that triggered this policy decision. This is
useful for enacting different policies depending on what type of user
action caused the navigation.
-}
#if ENABLE_OVERLOADING
    NavigationPolicyDecisionNavigationTypePropertyInfo,
#endif
    getNavigationPolicyDecisionNavigationType,
#if ENABLE_OVERLOADING
    navigationPolicyDecisionNavigationType  ,
#endif


-- ** request #attr:request#
{- | This property contains the 'GI.WebKit2.Objects.URIRequest.URIRequest' associated with this
navigation.
-}
#if ENABLE_OVERLOADING
    NavigationPolicyDecisionRequestPropertyInfo,
#endif
    getNavigationPolicyDecisionRequest      ,
#if ENABLE_OVERLOADING
    navigationPolicyDecisionRequest         ,
#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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

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

-- | Memory-managed wrapper type.
newtype NavigationPolicyDecision = NavigationPolicyDecision (ManagedPtr NavigationPolicyDecision)
foreign import ccall "webkit_navigation_policy_decision_get_type"
    c_webkit_navigation_policy_decision_get_type :: IO GType

instance GObject NavigationPolicyDecision where
    gobjectType = c_webkit_navigation_policy_decision_get_type


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

instance O.HasParentTypes NavigationPolicyDecision
type instance O.ParentTypes NavigationPolicyDecision = '[WebKit2.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 :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m NavigationPolicyDecision
toNavigationPolicyDecision = liftIO . unsafeCastTo NavigationPolicyDecision

-- | A convenience alias for `Nothing` :: `Maybe` `NavigationPolicyDecision`.
noNavigationPolicyDecision :: Maybe NavigationPolicyDecision
noNavigationPolicyDecision = Nothing

#if ENABLE_OVERLOADING
type family ResolveNavigationPolicyDecisionMethod (t :: Symbol) (o :: *) :: * where
    ResolveNavigationPolicyDecisionMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveNavigationPolicyDecisionMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveNavigationPolicyDecisionMethod "download" o = WebKit2.PolicyDecision.PolicyDecisionDownloadMethodInfo
    ResolveNavigationPolicyDecisionMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveNavigationPolicyDecisionMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveNavigationPolicyDecisionMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveNavigationPolicyDecisionMethod "ignore" o = WebKit2.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 = WebKit2.PolicyDecision.PolicyDecisionUseMethodInfo
    ResolveNavigationPolicyDecisionMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveNavigationPolicyDecisionMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveNavigationPolicyDecisionMethod "getFrameName" o = NavigationPolicyDecisionGetFrameNameMethodInfo
    ResolveNavigationPolicyDecisionMethod "getModifiers" o = NavigationPolicyDecisionGetModifiersMethodInfo
    ResolveNavigationPolicyDecisionMethod "getMouseButton" o = NavigationPolicyDecisionGetMouseButtonMethodInfo
    ResolveNavigationPolicyDecisionMethod "getNavigationAction" o = NavigationPolicyDecisionGetNavigationActionMethodInfo
    ResolveNavigationPolicyDecisionMethod "getNavigationType" o = NavigationPolicyDecisionGetNavigationTypeMethodInfo
    ResolveNavigationPolicyDecisionMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveNavigationPolicyDecisionMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveNavigationPolicyDecisionMethod "getRequest" o = NavigationPolicyDecisionGetRequestMethodInfo
    ResolveNavigationPolicyDecisionMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveNavigationPolicyDecisionMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveNavigationPolicyDecisionMethod l o = O.MethodResolutionFailed l o

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

#endif

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

{- |
Get the value of the “@frame-name@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' navigationPolicyDecision #frameName
@
-}
getNavigationPolicyDecisionFrameName :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m (Maybe T.Text)
getNavigationPolicyDecisionFrameName obj = liftIO $ B.Properties.getObjectPropertyString obj "frame-name"

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionFrameNamePropertyInfo
instance AttrInfo NavigationPolicyDecisionFrameNamePropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionFrameNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint NavigationPolicyDecisionFrameNamePropertyInfo = (~) ()
    type AttrBaseTypeConstraint NavigationPolicyDecisionFrameNamePropertyInfo = IsNavigationPolicyDecision
    type AttrGetType NavigationPolicyDecisionFrameNamePropertyInfo = (Maybe T.Text)
    type AttrLabel NavigationPolicyDecisionFrameNamePropertyInfo = "frame-name"
    type AttrOrigin NavigationPolicyDecisionFrameNamePropertyInfo = NavigationPolicyDecision
    attrGet _ = getNavigationPolicyDecisionFrameName
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "modifiers"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@modifiers@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' navigationPolicyDecision #modifiers
@
-}
getNavigationPolicyDecisionModifiers :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m Word32
getNavigationPolicyDecisionModifiers obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "modifiers"

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionModifiersPropertyInfo
instance AttrInfo NavigationPolicyDecisionModifiersPropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionModifiersPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint NavigationPolicyDecisionModifiersPropertyInfo = (~) ()
    type AttrBaseTypeConstraint NavigationPolicyDecisionModifiersPropertyInfo = IsNavigationPolicyDecision
    type AttrGetType NavigationPolicyDecisionModifiersPropertyInfo = Word32
    type AttrLabel NavigationPolicyDecisionModifiersPropertyInfo = "modifiers"
    type AttrOrigin NavigationPolicyDecisionModifiersPropertyInfo = NavigationPolicyDecision
    attrGet _ = getNavigationPolicyDecisionModifiers
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "mouse-button"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@mouse-button@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' navigationPolicyDecision #mouseButton
@
-}
getNavigationPolicyDecisionMouseButton :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m Word32
getNavigationPolicyDecisionMouseButton obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "mouse-button"

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionMouseButtonPropertyInfo
instance AttrInfo NavigationPolicyDecisionMouseButtonPropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionMouseButtonPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint NavigationPolicyDecisionMouseButtonPropertyInfo = (~) ()
    type AttrBaseTypeConstraint NavigationPolicyDecisionMouseButtonPropertyInfo = IsNavigationPolicyDecision
    type AttrGetType NavigationPolicyDecisionMouseButtonPropertyInfo = Word32
    type AttrLabel NavigationPolicyDecisionMouseButtonPropertyInfo = "mouse-button"
    type AttrOrigin NavigationPolicyDecisionMouseButtonPropertyInfo = NavigationPolicyDecision
    attrGet _ = getNavigationPolicyDecisionMouseButton
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "navigation-action"
   -- Type: TInterface (Name {namespace = "WebKit2", 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 WebKit2.NavigationAction.NavigationAction
getNavigationPolicyDecisionNavigationAction obj = liftIO $ checkUnexpectedNothing "getNavigationPolicyDecisionNavigationAction" $ B.Properties.getObjectPropertyBoxed obj "navigation-action" WebKit2.NavigationAction.NavigationAction

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionNavigationActionPropertyInfo
instance AttrInfo NavigationPolicyDecisionNavigationActionPropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionNavigationActionPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = (~) ()
    type AttrBaseTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = IsNavigationPolicyDecision
    type AttrGetType NavigationPolicyDecisionNavigationActionPropertyInfo = WebKit2.NavigationAction.NavigationAction
    type AttrLabel NavigationPolicyDecisionNavigationActionPropertyInfo = "navigation-action"
    type AttrOrigin NavigationPolicyDecisionNavigationActionPropertyInfo = NavigationPolicyDecision
    attrGet _ = getNavigationPolicyDecisionNavigationAction
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

{- |
Get the value of the “@navigation-type@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' navigationPolicyDecision #navigationType
@
-}
getNavigationPolicyDecisionNavigationType :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m WebKit2.Enums.NavigationType
getNavigationPolicyDecisionNavigationType obj = liftIO $ B.Properties.getObjectPropertyEnum obj "navigation-type"

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionNavigationTypePropertyInfo
instance AttrInfo NavigationPolicyDecisionNavigationTypePropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionNavigationTypePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint NavigationPolicyDecisionNavigationTypePropertyInfo = (~) ()
    type AttrBaseTypeConstraint NavigationPolicyDecisionNavigationTypePropertyInfo = IsNavigationPolicyDecision
    type AttrGetType NavigationPolicyDecisionNavigationTypePropertyInfo = WebKit2.Enums.NavigationType
    type AttrLabel NavigationPolicyDecisionNavigationTypePropertyInfo = "navigation-type"
    type AttrOrigin NavigationPolicyDecisionNavigationTypePropertyInfo = NavigationPolicyDecision
    attrGet _ = getNavigationPolicyDecisionNavigationType
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

-- VVV Prop "request"
   -- Type: TInterface (Name {namespace = "WebKit2", name = "URIRequest"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

{- |
Get the value of the “@request@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' navigationPolicyDecision #request
@
-}
getNavigationPolicyDecisionRequest :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m WebKit2.URIRequest.URIRequest
getNavigationPolicyDecisionRequest obj = liftIO $ checkUnexpectedNothing "getNavigationPolicyDecisionRequest" $ B.Properties.getObjectPropertyObject obj "request" WebKit2.URIRequest.URIRequest

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionRequestPropertyInfo
instance AttrInfo NavigationPolicyDecisionRequestPropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionRequestPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint NavigationPolicyDecisionRequestPropertyInfo = (~) ()
    type AttrBaseTypeConstraint NavigationPolicyDecisionRequestPropertyInfo = IsNavigationPolicyDecision
    type AttrGetType NavigationPolicyDecisionRequestPropertyInfo = WebKit2.URIRequest.URIRequest
    type AttrLabel NavigationPolicyDecisionRequestPropertyInfo = "request"
    type AttrOrigin NavigationPolicyDecisionRequestPropertyInfo = NavigationPolicyDecision
    attrGet _ = getNavigationPolicyDecisionRequest
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList NavigationPolicyDecision
type instance O.AttributeList NavigationPolicyDecision = NavigationPolicyDecisionAttributeList
type NavigationPolicyDecisionAttributeList = ('[ '("frameName", NavigationPolicyDecisionFrameNamePropertyInfo), '("modifiers", NavigationPolicyDecisionModifiersPropertyInfo), '("mouseButton", NavigationPolicyDecisionMouseButtonPropertyInfo), '("navigationAction", NavigationPolicyDecisionNavigationActionPropertyInfo), '("navigationType", NavigationPolicyDecisionNavigationTypePropertyInfo), '("request", NavigationPolicyDecisionRequestPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
navigationPolicyDecisionFrameName :: AttrLabelProxy "frameName"
navigationPolicyDecisionFrameName = AttrLabelProxy

navigationPolicyDecisionModifiers :: AttrLabelProxy "modifiers"
navigationPolicyDecisionModifiers = AttrLabelProxy

navigationPolicyDecisionMouseButton :: AttrLabelProxy "mouseButton"
navigationPolicyDecisionMouseButton = AttrLabelProxy

navigationPolicyDecisionNavigationAction :: AttrLabelProxy "navigationAction"
navigationPolicyDecisionNavigationAction = AttrLabelProxy

navigationPolicyDecisionNavigationType :: AttrLabelProxy "navigationType"
navigationPolicyDecisionNavigationType = AttrLabelProxy

navigationPolicyDecisionRequest :: AttrLabelProxy "request"
navigationPolicyDecisionRequest = AttrLabelProxy

#endif

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

#endif

-- method NavigationPolicyDecision::get_frame_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "decision", argType = TInterface (Name {namespace = "WebKit2", 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 (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_navigation_policy_decision_get_frame_name" webkit_navigation_policy_decision_get_frame_name ::
    Ptr NavigationPolicyDecision ->         -- decision : TInterface (Name {namespace = "WebKit2", name = "NavigationPolicyDecision"})
    IO CString

{- |
Gets the value of the 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/frame-name/@ property.
-}
navigationPolicyDecisionGetFrameName ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    {- ^ /@decision@/: a 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision' -}
    -> m (Maybe T.Text)
    {- ^ __Returns:__ The name of the new frame this navigation action targets or 'Nothing' -}
navigationPolicyDecisionGetFrameName decision = liftIO $ do
    decision' <- unsafeManagedPtrCastPtr decision
    result <- webkit_navigation_policy_decision_get_frame_name decision'
    maybeResult <- convertIfNonNull result $ \result' -> do
        result'' <- cstringToText result'
        return result''
    touchManagedPtr decision
    return maybeResult

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionGetFrameNameMethodInfo
instance (signature ~ (m (Maybe T.Text)), MonadIO m, IsNavigationPolicyDecision a) => O.MethodInfo NavigationPolicyDecisionGetFrameNameMethodInfo a signature where
    overloadedMethod _ = navigationPolicyDecisionGetFrameName

#endif

-- method NavigationPolicyDecision::get_modifiers
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "decision", argType = TInterface (Name {namespace = "WebKit2", 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 (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_navigation_policy_decision_get_modifiers" webkit_navigation_policy_decision_get_modifiers ::
    Ptr NavigationPolicyDecision ->         -- decision : TInterface (Name {namespace = "WebKit2", name = "NavigationPolicyDecision"})
    IO Word32

{-# DEPRECATED navigationPolicyDecisionGetModifiers ["(Since version 2.6)","Use 'GI.WebKit2.Objects.NavigationPolicyDecision.navigationPolicyDecisionGetNavigationAction' instead."] #-}
{- |
Gets the value of the 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/modifiers/@ property.
-}
navigationPolicyDecisionGetModifiers ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    {- ^ /@decision@/: a 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision' -}
    -> m Word32
    {- ^ __Returns:__ The modifiers active if this decision was triggered by a mouse event -}
navigationPolicyDecisionGetModifiers decision = liftIO $ do
    decision' <- unsafeManagedPtrCastPtr decision
    result <- webkit_navigation_policy_decision_get_modifiers decision'
    touchManagedPtr decision
    return result

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionGetModifiersMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsNavigationPolicyDecision a) => O.MethodInfo NavigationPolicyDecisionGetModifiersMethodInfo a signature where
    overloadedMethod _ = navigationPolicyDecisionGetModifiers

#endif

-- method NavigationPolicyDecision::get_mouse_button
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "decision", argType = TInterface (Name {namespace = "WebKit2", 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 (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_navigation_policy_decision_get_mouse_button" webkit_navigation_policy_decision_get_mouse_button ::
    Ptr NavigationPolicyDecision ->         -- decision : TInterface (Name {namespace = "WebKit2", name = "NavigationPolicyDecision"})
    IO Word32

{-# DEPRECATED navigationPolicyDecisionGetMouseButton ["(Since version 2.6)","Use 'GI.WebKit2.Objects.NavigationPolicyDecision.navigationPolicyDecisionGetNavigationAction' instead."] #-}
{- |
Gets the value of the 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/mouse-button/@ property.
-}
navigationPolicyDecisionGetMouseButton ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    {- ^ /@decision@/: a 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision' -}
    -> m Word32
    {- ^ __Returns:__ The mouse button used if this decision was triggered by a mouse event or 0 otherwise -}
navigationPolicyDecisionGetMouseButton decision = liftIO $ do
    decision' <- unsafeManagedPtrCastPtr decision
    result <- webkit_navigation_policy_decision_get_mouse_button decision'
    touchManagedPtr decision
    return result

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionGetMouseButtonMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsNavigationPolicyDecision a) => O.MethodInfo NavigationPolicyDecisionGetMouseButtonMethodInfo a signature where
    overloadedMethod _ = navigationPolicyDecisionGetMouseButton

#endif

-- method NavigationPolicyDecision::get_navigation_action
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "decision", argType = TInterface (Name {namespace = "WebKit2", 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 = "WebKit2", 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 = "WebKit2", name = "NavigationPolicyDecision"})
    IO (Ptr WebKit2.NavigationAction.NavigationAction)

{- |
Gets the value of the 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/navigation-action/@ property.

/Since: 2.6/
-}
navigationPolicyDecisionGetNavigationAction ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    {- ^ /@decision@/: a 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision' -}
    -> m WebKit2.NavigationAction.NavigationAction
    {- ^ __Returns:__ The 'GI.WebKit2.Structs.NavigationAction.NavigationAction' triggering this policy decision. -}
navigationPolicyDecisionGetNavigationAction decision = liftIO $ do
    decision' <- unsafeManagedPtrCastPtr decision
    result <- webkit_navigation_policy_decision_get_navigation_action decision'
    checkUnexpectedReturnNULL "navigationPolicyDecisionGetNavigationAction" result
    result' <- (newBoxed WebKit2.NavigationAction.NavigationAction) result
    touchManagedPtr decision
    return result'

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionGetNavigationActionMethodInfo
instance (signature ~ (m WebKit2.NavigationAction.NavigationAction), MonadIO m, IsNavigationPolicyDecision a) => O.MethodInfo NavigationPolicyDecisionGetNavigationActionMethodInfo a signature where
    overloadedMethod _ = navigationPolicyDecisionGetNavigationAction

#endif

-- method NavigationPolicyDecision::get_navigation_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "decision", argType = TInterface (Name {namespace = "WebKit2", 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 = "WebKit2", name = "NavigationType"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_navigation_policy_decision_get_navigation_type" webkit_navigation_policy_decision_get_navigation_type ::
    Ptr NavigationPolicyDecision ->         -- decision : TInterface (Name {namespace = "WebKit2", name = "NavigationPolicyDecision"})
    IO CUInt

{-# DEPRECATED navigationPolicyDecisionGetNavigationType ["(Since version 2.6)","Use 'GI.WebKit2.Objects.NavigationPolicyDecision.navigationPolicyDecisionGetNavigationAction' instead."] #-}
{- |
Gets the value of the 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/navigation-type/@ property.
-}
navigationPolicyDecisionGetNavigationType ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    {- ^ /@decision@/: a 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision' -}
    -> m WebKit2.Enums.NavigationType
    {- ^ __Returns:__ The type of navigation triggering this policy decision. -}
navigationPolicyDecisionGetNavigationType decision = liftIO $ do
    decision' <- unsafeManagedPtrCastPtr decision
    result <- webkit_navigation_policy_decision_get_navigation_type decision'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr decision
    return result'

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionGetNavigationTypeMethodInfo
instance (signature ~ (m WebKit2.Enums.NavigationType), MonadIO m, IsNavigationPolicyDecision a) => O.MethodInfo NavigationPolicyDecisionGetNavigationTypeMethodInfo a signature where
    overloadedMethod _ = navigationPolicyDecisionGetNavigationType

#endif

-- method NavigationPolicyDecision::get_request
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "decision", argType = TInterface (Name {namespace = "WebKit2", 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 = "WebKit2", name = "URIRequest"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_navigation_policy_decision_get_request" webkit_navigation_policy_decision_get_request ::
    Ptr NavigationPolicyDecision ->         -- decision : TInterface (Name {namespace = "WebKit2", name = "NavigationPolicyDecision"})
    IO (Ptr WebKit2.URIRequest.URIRequest)

{-# DEPRECATED navigationPolicyDecisionGetRequest ["(Since version 2.6)","Use 'GI.WebKit2.Objects.NavigationPolicyDecision.navigationPolicyDecisionGetNavigationAction' instead."] #-}
{- |
Gets the value of the 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/request/@ property.
-}
navigationPolicyDecisionGetRequest ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    {- ^ /@decision@/: a 'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision' -}
    -> m WebKit2.URIRequest.URIRequest
    {- ^ __Returns:__ The URI request that is associated with this navigation -}
navigationPolicyDecisionGetRequest decision = liftIO $ do
    decision' <- unsafeManagedPtrCastPtr decision
    result <- webkit_navigation_policy_decision_get_request decision'
    checkUnexpectedReturnNULL "navigationPolicyDecisionGetRequest" result
    result' <- (newObject WebKit2.URIRequest.URIRequest) result
    touchManagedPtr decision
    return result'

#if ENABLE_OVERLOADING
data NavigationPolicyDecisionGetRequestMethodInfo
instance (signature ~ (m WebKit2.URIRequest.URIRequest), MonadIO m, IsNavigationPolicyDecision a) => O.MethodInfo NavigationPolicyDecisionGetRequestMethodInfo a signature where
    overloadedMethod _ = navigationPolicyDecisionGetRequest

#endif