{- |
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.NavigationPolicyDecision
    ( 

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


 -- * Methods
-- ** getFrameName #method:getFrameName#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionGetFrameNameMethodInfo,
#endif
    navigationPolicyDecisionGetFrameName    ,


-- ** getModifiers #method:getModifiers#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionGetModifiersMethodInfo,
#endif
    navigationPolicyDecisionGetModifiers    ,


-- ** getMouseButton #method:getMouseButton#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionGetMouseButtonMethodInfo,
#endif
    navigationPolicyDecisionGetMouseButton  ,


-- ** getNavigationAction #method:getNavigationAction#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionGetNavigationActionMethodInfo,
#endif
    navigationPolicyDecisionGetNavigationAction,


-- ** getNavigationType #method:getNavigationType#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionGetNavigationTypeMethodInfo,
#endif
    navigationPolicyDecisionGetNavigationType,


-- ** getRequest #method:getRequest#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionGetRequestMethodInfo,
#endif
    navigationPolicyDecisionGetRequest      ,




 -- * Properties
-- ** frameName #attr:frameName#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionFrameNamePropertyInfo,
#endif
    getNavigationPolicyDecisionFrameName    ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    navigationPolicyDecisionFrameName       ,
#endif


-- ** modifiers #attr:modifiers#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionModifiersPropertyInfo,
#endif
    getNavigationPolicyDecisionModifiers    ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    navigationPolicyDecisionModifiers       ,
#endif


-- ** mouseButton #attr:mouseButton#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionMouseButtonPropertyInfo,
#endif
    getNavigationPolicyDecisionMouseButton  ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    navigationPolicyDecisionMouseButton     ,
#endif


-- ** navigationAction #attr:navigationAction#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionNavigationActionPropertyInfo,
#endif
    getNavigationPolicyDecisionNavigationAction,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    navigationPolicyDecisionNavigationAction,
#endif


-- ** navigationType #attr:navigationType#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionNavigationTypePropertyInfo,
#endif
    getNavigationPolicyDecisionNavigationType,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    navigationPolicyDecisionNavigationType  ,
#endif


-- ** request #attr:request#
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    NavigationPolicyDecisionRequestPropertyInfo,
#endif
    getNavigationPolicyDecisionRequest      ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
    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.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 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

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
    

class GObject o => IsNavigationPolicyDecision o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError NavigationPolicyDecision a) =>
    IsNavigationPolicyDecision a
#endif
instance IsNavigationPolicyDecision NavigationPolicyDecision
instance WebKit2.PolicyDecision.IsPolicyDecision NavigationPolicyDecision
instance GObject.Object.IsObject NavigationPolicyDecision

toNavigationPolicyDecision :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m NavigationPolicyDecision
toNavigationPolicyDecision = liftIO . unsafeCastTo NavigationPolicyDecision

noNavigationPolicyDecision :: Maybe NavigationPolicyDecision
noNavigationPolicyDecision = Nothing

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 "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 "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveNavigationPolicyDecisionMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    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) => O.IsLabelProxy t (NavigationPolicyDecision -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveNavigationPolicyDecisionMethod t NavigationPolicyDecision, O.MethodInfo info NavigationPolicyDecision p) => O.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

#endif

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

getNavigationPolicyDecisionFrameName :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m T.Text
getNavigationPolicyDecisionFrameName obj = liftIO $ checkUnexpectedNothing "getNavigationPolicyDecisionFrameName" $ getObjectPropertyString obj "frame-name"

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data NavigationPolicyDecisionFrameNamePropertyInfo
instance AttrInfo NavigationPolicyDecisionFrameNamePropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionFrameNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint NavigationPolicyDecisionFrameNamePropertyInfo = (~) ()
    type AttrBaseTypeConstraint NavigationPolicyDecisionFrameNamePropertyInfo = IsNavigationPolicyDecision
    type AttrGetType NavigationPolicyDecisionFrameNamePropertyInfo = 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)

getNavigationPolicyDecisionModifiers :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m Word32
getNavigationPolicyDecisionModifiers obj = liftIO $ getObjectPropertyUInt32 obj "modifiers"

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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)

getNavigationPolicyDecisionMouseButton :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m Word32
getNavigationPolicyDecisionMouseButton obj = liftIO $ getObjectPropertyUInt32 obj "mouse-button"

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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)

getNavigationPolicyDecisionNavigationAction :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m WebKit2.NavigationAction.NavigationAction
getNavigationPolicyDecisionNavigationAction obj = liftIO $ checkUnexpectedNothing "getNavigationPolicyDecisionNavigationAction" $ getObjectPropertyBoxed obj "navigation-action" WebKit2.NavigationAction.NavigationAction

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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)

getNavigationPolicyDecisionNavigationType :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m WebKit2.Enums.NavigationType
getNavigationPolicyDecisionNavigationType obj = liftIO $ getObjectPropertyEnum obj "navigation-type"

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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)

getNavigationPolicyDecisionRequest :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m WebKit2.URIRequest.URIRequest
getNavigationPolicyDecisionRequest obj = liftIO $ checkUnexpectedNothing "getNavigationPolicyDecisionRequest" $ getObjectPropertyObject obj "request" WebKit2.URIRequest.URIRequest

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 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'
    checkUnexpectedReturnNULL "navigationPolicyDecisionGetFrameName" result
    result' <- cstringToText result
    touchManagedPtr decision
    return result'

#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data NavigationPolicyDecisionGetFrameNameMethodInfo
instance (signature ~ (m 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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
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 defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data NavigationPolicyDecisionGetRequestMethodInfo
instance (signature ~ (m WebKit2.URIRequest.URIRequest), MonadIO m, IsNavigationPolicyDecision a) => O.MethodInfo NavigationPolicyDecisionGetRequestMethodInfo a signature where
    overloadedMethod _ = navigationPolicyDecisionGetRequest

#endif