{-# LANGUAGE TypeApplications #-}


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

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

module GI.WebKit2.Objects.NavigationPolicyDecision
    ( 

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


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

#if defined(ENABLE_OVERLOADING)
    ResolveNavigationPolicyDecisionMethod   ,
#endif


-- ** getFrameName #method:getFrameName#

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionGetFrameNameMethodInfo,
#endif
    navigationPolicyDecisionGetFrameName    ,


-- ** getModifiers #method:getModifiers#

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionGetModifiersMethodInfo,
#endif
    navigationPolicyDecisionGetModifiers    ,


-- ** getMouseButton #method:getMouseButton#

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionGetMouseButtonMethodInfo,
#endif
    navigationPolicyDecisionGetMouseButton  ,


-- ** getNavigationAction #method:getNavigationAction#

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


-- ** getNavigationType #method:getNavigationType#

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionGetNavigationTypeMethodInfo,
#endif
    navigationPolicyDecisionGetNavigationType,


-- ** getRequest #method:getRequest#

#if defined(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 'P.Nothing'.

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionFrameNamePropertyInfo,
#endif
    getNavigationPolicyDecisionFrameName    ,
#if defined(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
-- t'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 defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionModifiersPropertyInfo,
#endif
    getNavigationPolicyDecisionModifiers    ,
#if defined(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 defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionMouseButtonPropertyInfo,
#endif
    getNavigationPolicyDecisionMouseButton  ,
#if defined(ENABLE_OVERLOADING)
    navigationPolicyDecisionMouseButton     ,
#endif


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

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionNavigationActionPropertyInfo,
#endif
    getNavigationPolicyDecisionNavigationAction,
#if defined(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 defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionNavigationTypePropertyInfo,
#endif
    getNavigationPolicyDecisionNavigationType,
#if defined(ENABLE_OVERLOADING)
    navigationPolicyDecisionNavigationType  ,
#endif


-- ** request #attr:request#
-- | This property contains the t'GI.WebKit2.Objects.URIRequest.URIRequest' associated with this
-- navigation.

#if defined(ENABLE_OVERLOADING)
    NavigationPolicyDecisionRequestPropertyInfo,
#endif
    getNavigationPolicyDecisionRequest      ,
#if defined(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.GI.Base.Signals as B.Signals
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.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)
    deriving (NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
(NavigationPolicyDecision -> NavigationPolicyDecision -> Bool)
-> (NavigationPolicyDecision -> NavigationPolicyDecision -> Bool)
-> Eq NavigationPolicyDecision
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
$c/= :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
== :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
$c== :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
Eq)
foreign import ccall "webkit_navigation_policy_decision_get_type"
    c_webkit_navigation_policy_decision_get_type :: IO GType

instance GObject NavigationPolicyDecision where
    gobjectType :: IO GType
gobjectType = IO GType
c_webkit_navigation_policy_decision_get_type
    

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

-- | 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 :: o -> m NavigationPolicyDecision
toNavigationPolicyDecision = IO NavigationPolicyDecision -> m NavigationPolicyDecision
forall (m :: * -> *) a. MonadIO m => IO a -> m a
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, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision
NavigationPolicyDecision

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

#if defined(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 "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    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 @info
#else
    fromLabel _ = O.overloadedMethod @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 :: o -> m (Maybe Text)
getNavigationPolicyDecisionFrameName obj :: o
obj = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj "frame-name"

#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionFrameNamePropertyInfo
instance AttrInfo NavigationPolicyDecisionFrameNamePropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionFrameNamePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint NavigationPolicyDecisionFrameNamePropertyInfo = IsNavigationPolicyDecision
    type AttrSetTypeConstraint NavigationPolicyDecisionFrameNamePropertyInfo = (~) ()
    type AttrTransferTypeConstraint NavigationPolicyDecisionFrameNamePropertyInfo = (~) ()
    type AttrTransferType NavigationPolicyDecisionFrameNamePropertyInfo = ()
    type AttrGetType NavigationPolicyDecisionFrameNamePropertyInfo = (Maybe T.Text)
    type AttrLabel NavigationPolicyDecisionFrameNamePropertyInfo = "frame-name"
    type AttrOrigin NavigationPolicyDecisionFrameNamePropertyInfo = NavigationPolicyDecision
    attrGet = getNavigationPolicyDecisionFrameName
    attrSet = undefined
    attrTransfer _ = 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 :: o -> m Word32
getNavigationPolicyDecisionModifiers obj :: o
obj = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj "modifiers"

#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionModifiersPropertyInfo
instance AttrInfo NavigationPolicyDecisionModifiersPropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionModifiersPropertyInfo = '[ 'AttrGet]
    type AttrBaseTypeConstraint NavigationPolicyDecisionModifiersPropertyInfo = IsNavigationPolicyDecision
    type AttrSetTypeConstraint NavigationPolicyDecisionModifiersPropertyInfo = (~) ()
    type AttrTransferTypeConstraint NavigationPolicyDecisionModifiersPropertyInfo = (~) ()
    type AttrTransferType NavigationPolicyDecisionModifiersPropertyInfo = ()
    type AttrGetType NavigationPolicyDecisionModifiersPropertyInfo = Word32
    type AttrLabel NavigationPolicyDecisionModifiersPropertyInfo = "modifiers"
    type AttrOrigin NavigationPolicyDecisionModifiersPropertyInfo = NavigationPolicyDecision
    attrGet = getNavigationPolicyDecisionModifiers
    attrSet = undefined
    attrTransfer _ = 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 :: o -> m Word32
getNavigationPolicyDecisionMouseButton obj :: o
obj = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj "mouse-button"

#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionMouseButtonPropertyInfo
instance AttrInfo NavigationPolicyDecisionMouseButtonPropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionMouseButtonPropertyInfo = '[ 'AttrGet]
    type AttrBaseTypeConstraint NavigationPolicyDecisionMouseButtonPropertyInfo = IsNavigationPolicyDecision
    type AttrSetTypeConstraint NavigationPolicyDecisionMouseButtonPropertyInfo = (~) ()
    type AttrTransferTypeConstraint NavigationPolicyDecisionMouseButtonPropertyInfo = (~) ()
    type AttrTransferType NavigationPolicyDecisionMouseButtonPropertyInfo = ()
    type AttrGetType NavigationPolicyDecisionMouseButtonPropertyInfo = Word32
    type AttrLabel NavigationPolicyDecisionMouseButtonPropertyInfo = "mouse-button"
    type AttrOrigin NavigationPolicyDecisionMouseButtonPropertyInfo = NavigationPolicyDecision
    attrGet = getNavigationPolicyDecisionMouseButton
    attrSet = undefined
    attrTransfer _ = 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 :: o -> m NavigationAction
getNavigationPolicyDecisionNavigationAction obj :: o
obj = IO NavigationAction -> m NavigationAction
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
$ Text -> IO (Maybe NavigationAction) -> IO NavigationAction
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing "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, BoxedObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyBoxed o
obj "navigation-action" ManagedPtr NavigationAction -> NavigationAction
WebKit2.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 = WebKit2.NavigationAction.NavigationAction
    type AttrLabel NavigationPolicyDecisionNavigationActionPropertyInfo = "navigation-action"
    type AttrOrigin NavigationPolicyDecisionNavigationActionPropertyInfo = NavigationPolicyDecision
    attrGet = getNavigationPolicyDecisionNavigationAction
    attrSet = undefined
    attrTransfer _ = 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 :: o -> m NavigationType
getNavigationPolicyDecisionNavigationType obj :: o
obj = IO NavigationType -> m NavigationType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NavigationType -> m NavigationType)
-> IO NavigationType -> m NavigationType
forall a b. (a -> b) -> a -> b
$ o -> String -> IO NavigationType
forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
B.Properties.getObjectPropertyEnum o
obj "navigation-type"

#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionNavigationTypePropertyInfo
instance AttrInfo NavigationPolicyDecisionNavigationTypePropertyInfo where
    type AttrAllowedOps NavigationPolicyDecisionNavigationTypePropertyInfo = '[ 'AttrGet]
    type AttrBaseTypeConstraint NavigationPolicyDecisionNavigationTypePropertyInfo = IsNavigationPolicyDecision
    type AttrSetTypeConstraint NavigationPolicyDecisionNavigationTypePropertyInfo = (~) ()
    type AttrTransferTypeConstraint NavigationPolicyDecisionNavigationTypePropertyInfo = (~) ()
    type AttrTransferType NavigationPolicyDecisionNavigationTypePropertyInfo = ()
    type AttrGetType NavigationPolicyDecisionNavigationTypePropertyInfo = WebKit2.Enums.NavigationType
    type AttrLabel NavigationPolicyDecisionNavigationTypePropertyInfo = "navigation-type"
    type AttrOrigin NavigationPolicyDecisionNavigationTypePropertyInfo = NavigationPolicyDecision
    attrGet = getNavigationPolicyDecisionNavigationType
    attrSet = undefined
    attrTransfer _ = 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 :: o -> m URIRequest
getNavigationPolicyDecisionRequest obj :: o
obj = IO URIRequest -> m URIRequest
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO URIRequest -> m URIRequest) -> IO URIRequest -> m URIRequest
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe URIRequest) -> IO URIRequest
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing "getNavigationPolicyDecisionRequest" (IO (Maybe URIRequest) -> IO URIRequest)
-> IO (Maybe URIRequest) -> IO URIRequest
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr URIRequest -> URIRequest)
-> IO (Maybe URIRequest)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj "request" ManagedPtr URIRequest -> URIRequest
WebKit2.URIRequest.URIRequest

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

#if defined(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 defined(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 defined(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 t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/frame-name/@ property.
navigationPolicyDecisionGetFrameName ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    -- ^ /@decision@/: a t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision'
    -> m (Maybe T.Text)
    -- ^ __Returns:__ The name of the new frame this navigation action targets or 'P.Nothing'
navigationPolicyDecisionGetFrameName :: a -> m (Maybe Text)
navigationPolicyDecisionGetFrameName decision :: a
decision = IO (Maybe Text) -> m (Maybe Text)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Text) -> m (Maybe Text))
-> IO (Maybe Text) -> m (Maybe Text)
forall a b. (a -> b) -> a -> b
$ do
    Ptr NavigationPolicyDecision
decision' <- a -> IO (Ptr NavigationPolicyDecision)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
decision
    CString
result <- Ptr NavigationPolicyDecision -> IO CString
webkit_navigation_policy_decision_get_frame_name Ptr NavigationPolicyDecision
decision'
    Maybe Text
maybeResult <- CString -> (CString -> IO Text) -> IO (Maybe Text)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull CString
result ((CString -> IO Text) -> IO (Maybe Text))
-> (CString -> IO Text) -> IO (Maybe Text)
forall a b. (a -> b) -> a -> b
$ \result' :: CString
result' -> do
        Text
result'' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result'
        Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
    Maybe Text -> IO (Maybe Text)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Text
maybeResult

#if defined(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 t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/modifiers/@ property.
navigationPolicyDecisionGetModifiers ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    -- ^ /@decision@/: a t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision'
    -> m Word32
    -- ^ __Returns:__ The modifiers active if this decision was triggered by a mouse event
navigationPolicyDecisionGetModifiers :: a -> m Word32
navigationPolicyDecisionGetModifiers decision :: a
decision = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
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
    Word32
result <- Ptr NavigationPolicyDecision -> IO Word32
webkit_navigation_policy_decision_get_modifiers Ptr NavigationPolicyDecision
decision'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(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 t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/mouse-button/@ property.
navigationPolicyDecisionGetMouseButton ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    -- ^ /@decision@/: a t'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 :: a -> m Word32
navigationPolicyDecisionGetMouseButton decision :: a
decision = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
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
    Word32
result <- Ptr NavigationPolicyDecision -> IO Word32
webkit_navigation_policy_decision_get_mouse_button Ptr NavigationPolicyDecision
decision'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(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 t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/navigation-action/@ property.
-- 
-- /Since: 2.6/
navigationPolicyDecisionGetNavigationAction ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    -- ^ /@decision@/: a t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision'
    -> m WebKit2.NavigationAction.NavigationAction
    -- ^ __Returns:__ The t'GI.WebKit2.Structs.NavigationAction.NavigationAction' triggering this policy decision.
navigationPolicyDecisionGetNavigationAction :: a -> m NavigationAction
navigationPolicyDecisionGetNavigationAction decision :: a
decision = IO NavigationAction -> m NavigationAction
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 "navigationPolicyDecisionGetNavigationAction" Ptr NavigationAction
result
    NavigationAction
result' <- ((ManagedPtr NavigationAction -> NavigationAction)
-> Ptr NavigationAction -> IO NavigationAction
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr NavigationAction -> NavigationAction
WebKit2.NavigationAction.NavigationAction) Ptr NavigationAction
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
    NavigationAction -> IO NavigationAction
forall (m :: * -> *) a. Monad m => a -> m a
return NavigationAction
result'

#if defined(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 t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/navigation-type/@ property.
navigationPolicyDecisionGetNavigationType ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    -- ^ /@decision@/: a t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision'
    -> m WebKit2.Enums.NavigationType
    -- ^ __Returns:__ The type of navigation triggering this policy decision.
navigationPolicyDecisionGetNavigationType :: a -> m NavigationType
navigationPolicyDecisionGetNavigationType decision :: a
decision = IO NavigationType -> m NavigationType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NavigationType -> m NavigationType)
-> IO NavigationType -> m NavigationType
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
    CUInt
result <- Ptr NavigationPolicyDecision -> IO CUInt
webkit_navigation_policy_decision_get_navigation_type Ptr NavigationPolicyDecision
decision'
    let result' :: NavigationType
result' = (Int -> NavigationType
forall a. Enum a => Int -> a
toEnum (Int -> NavigationType)
-> (CUInt -> Int) -> CUInt -> NavigationType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
    NavigationType -> IO NavigationType
forall (m :: * -> *) a. Monad m => a -> m a
return NavigationType
result'

#if defined(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 t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision':@/request/@ property.
navigationPolicyDecisionGetRequest ::
    (B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
    a
    -- ^ /@decision@/: a t'GI.WebKit2.Objects.NavigationPolicyDecision.NavigationPolicyDecision'
    -> m WebKit2.URIRequest.URIRequest
    -- ^ __Returns:__ The URI request that is associated with this navigation
navigationPolicyDecisionGetRequest :: a -> m URIRequest
navigationPolicyDecisionGetRequest decision :: a
decision = IO URIRequest -> m URIRequest
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO URIRequest -> m URIRequest) -> IO URIRequest -> m URIRequest
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 URIRequest
result <- Ptr NavigationPolicyDecision -> IO (Ptr URIRequest)
webkit_navigation_policy_decision_get_request Ptr NavigationPolicyDecision
decision'
    Text -> Ptr URIRequest -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "navigationPolicyDecisionGetRequest" Ptr URIRequest
result
    URIRequest
result' <- ((ManagedPtr URIRequest -> URIRequest)
-> Ptr URIRequest -> IO URIRequest
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr URIRequest -> URIRequest
WebKit2.URIRequest.URIRequest) Ptr URIRequest
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
    URIRequest -> IO URIRequest
forall (m :: * -> *) a. Monad m => a -> m a
return URIRequest
result'

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

#endif