{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit.Objects.NavigationPolicyDecision
(
NavigationPolicyDecision(..) ,
IsNavigationPolicyDecision ,
toNavigationPolicyDecision ,
#if defined(ENABLE_OVERLOADING)
ResolveNavigationPolicyDecisionMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
NavigationPolicyDecisionGetNavigationActionMethodInfo,
#endif
navigationPolicyDecisionGetNavigationAction,
#if defined(ENABLE_OVERLOADING)
NavigationPolicyDecisionNavigationActionPropertyInfo,
#endif
getNavigationPolicyDecisionNavigationAction,
#if defined(ENABLE_OVERLOADING)
navigationPolicyDecisionNavigationAction,
#endif
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit.Objects.PolicyDecision as WebKit.PolicyDecision
import {-# SOURCE #-} qualified GI.WebKit.Structs.NavigationAction as WebKit.NavigationAction
newtype NavigationPolicyDecision = NavigationPolicyDecision (SP.ManagedPtr NavigationPolicyDecision)
deriving (NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
(NavigationPolicyDecision -> NavigationPolicyDecision -> Bool)
-> (NavigationPolicyDecision -> NavigationPolicyDecision -> Bool)
-> Eq NavigationPolicyDecision
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
== :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
$c/= :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
/= :: NavigationPolicyDecision -> NavigationPolicyDecision -> Bool
Eq)
instance SP.ManagedPtrNewtype NavigationPolicyDecision where
toManagedPtr :: NavigationPolicyDecision -> ManagedPtr NavigationPolicyDecision
toManagedPtr (NavigationPolicyDecision ManagedPtr NavigationPolicyDecision
p) = ManagedPtr NavigationPolicyDecision
p
foreign import ccall "webkit_navigation_policy_decision_get_type"
c_webkit_navigation_policy_decision_get_type :: IO B.Types.GType
instance B.Types.TypedObject NavigationPolicyDecision where
glibType :: IO GType
glibType = IO GType
c_webkit_navigation_policy_decision_get_type
instance B.Types.GObject NavigationPolicyDecision
class (SP.GObject o, O.IsDescendantOf NavigationPolicyDecision o) => IsNavigationPolicyDecision o
instance (SP.GObject o, O.IsDescendantOf NavigationPolicyDecision o) => IsNavigationPolicyDecision o
instance O.HasParentTypes NavigationPolicyDecision
type instance O.ParentTypes NavigationPolicyDecision = '[WebKit.PolicyDecision.PolicyDecision, GObject.Object.Object]
toNavigationPolicyDecision :: (MIO.MonadIO m, IsNavigationPolicyDecision o) => o -> m NavigationPolicyDecision
toNavigationPolicyDecision :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPolicyDecision o) =>
o -> m NavigationPolicyDecision
toNavigationPolicyDecision = IO NavigationPolicyDecision -> m NavigationPolicyDecision
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO NavigationPolicyDecision -> m NavigationPolicyDecision)
-> (o -> IO NavigationPolicyDecision)
-> o
-> m NavigationPolicyDecision
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision)
-> o -> IO NavigationPolicyDecision
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision
NavigationPolicyDecision
instance B.GValue.IsGValue (Maybe NavigationPolicyDecision) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_navigation_policy_decision_get_type
gvalueSet_ :: Ptr GValue -> Maybe NavigationPolicyDecision -> IO ()
gvalueSet_ Ptr GValue
gv Maybe NavigationPolicyDecision
P.Nothing = Ptr GValue -> Ptr NavigationPolicyDecision -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr NavigationPolicyDecision
forall a. Ptr a
FP.nullPtr :: FP.Ptr NavigationPolicyDecision)
gvalueSet_ Ptr GValue
gv (P.Just NavigationPolicyDecision
obj) = NavigationPolicyDecision
-> (Ptr NavigationPolicyDecision -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr NavigationPolicyDecision
obj (Ptr GValue -> Ptr NavigationPolicyDecision -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe NavigationPolicyDecision)
gvalueGet_ Ptr GValue
gv = do
Ptr NavigationPolicyDecision
ptr <- Ptr GValue -> IO (Ptr NavigationPolicyDecision)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr NavigationPolicyDecision)
if Ptr NavigationPolicyDecision
ptr Ptr NavigationPolicyDecision
-> Ptr NavigationPolicyDecision -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr NavigationPolicyDecision
forall a. Ptr a
FP.nullPtr
then NavigationPolicyDecision -> Maybe NavigationPolicyDecision
forall a. a -> Maybe a
P.Just (NavigationPolicyDecision -> Maybe NavigationPolicyDecision)
-> IO NavigationPolicyDecision
-> IO (Maybe NavigationPolicyDecision)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision)
-> Ptr NavigationPolicyDecision -> IO NavigationPolicyDecision
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr NavigationPolicyDecision -> NavigationPolicyDecision
NavigationPolicyDecision Ptr NavigationPolicyDecision
ptr
else Maybe NavigationPolicyDecision
-> IO (Maybe NavigationPolicyDecision)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe NavigationPolicyDecision
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveNavigationPolicyDecisionMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveNavigationPolicyDecisionMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveNavigationPolicyDecisionMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveNavigationPolicyDecisionMethod "download" o = WebKit.PolicyDecision.PolicyDecisionDownloadMethodInfo
ResolveNavigationPolicyDecisionMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveNavigationPolicyDecisionMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveNavigationPolicyDecisionMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveNavigationPolicyDecisionMethod "ignore" o = WebKit.PolicyDecision.PolicyDecisionIgnoreMethodInfo
ResolveNavigationPolicyDecisionMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveNavigationPolicyDecisionMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveNavigationPolicyDecisionMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveNavigationPolicyDecisionMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveNavigationPolicyDecisionMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveNavigationPolicyDecisionMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveNavigationPolicyDecisionMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveNavigationPolicyDecisionMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveNavigationPolicyDecisionMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveNavigationPolicyDecisionMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveNavigationPolicyDecisionMethod "use" o = WebKit.PolicyDecision.PolicyDecisionUseMethodInfo
ResolveNavigationPolicyDecisionMethod "useWithPolicies" o = WebKit.PolicyDecision.PolicyDecisionUseWithPoliciesMethodInfo
ResolveNavigationPolicyDecisionMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveNavigationPolicyDecisionMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveNavigationPolicyDecisionMethod "getNavigationAction" o = NavigationPolicyDecisionGetNavigationActionMethodInfo
ResolveNavigationPolicyDecisionMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveNavigationPolicyDecisionMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveNavigationPolicyDecisionMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveNavigationPolicyDecisionMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveNavigationPolicyDecisionMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveNavigationPolicyDecisionMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveNavigationPolicyDecisionMethod t NavigationPolicyDecision, O.OverloadedMethod info NavigationPolicyDecision p) => OL.IsLabel t (NavigationPolicyDecision -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveNavigationPolicyDecisionMethod t NavigationPolicyDecision, O.OverloadedMethod info NavigationPolicyDecision p, R.HasField t NavigationPolicyDecision p) => R.HasField t NavigationPolicyDecision p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveNavigationPolicyDecisionMethod t NavigationPolicyDecision, O.OverloadedMethodInfo info NavigationPolicyDecision) => OL.IsLabel t (O.MethodProxy info NavigationPolicyDecision) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
getNavigationPolicyDecisionNavigationAction :: (MonadIO m, IsNavigationPolicyDecision o) => o -> m WebKit.NavigationAction.NavigationAction
getNavigationPolicyDecisionNavigationAction :: forall (m :: * -> *) o.
(MonadIO m, IsNavigationPolicyDecision o) =>
o -> m NavigationAction
getNavigationPolicyDecisionNavigationAction o
obj = IO NavigationAction -> m NavigationAction
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO NavigationAction -> m NavigationAction)
-> IO NavigationAction -> m NavigationAction
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe NavigationAction) -> IO NavigationAction
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getNavigationPolicyDecisionNavigationAction" (IO (Maybe NavigationAction) -> IO NavigationAction)
-> IO (Maybe NavigationAction) -> IO NavigationAction
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr NavigationAction -> NavigationAction)
-> IO (Maybe NavigationAction)
forall a b.
(GObject a, GBoxed b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyBoxed o
obj String
"navigation-action" ManagedPtr NavigationAction -> NavigationAction
WebKit.NavigationAction.NavigationAction
#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionNavigationActionPropertyInfo
instance AttrInfo NavigationPolicyDecisionNavigationActionPropertyInfo where
type AttrAllowedOps NavigationPolicyDecisionNavigationActionPropertyInfo = '[ 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = IsNavigationPolicyDecision
type AttrSetTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = (~) ()
type AttrTransferTypeConstraint NavigationPolicyDecisionNavigationActionPropertyInfo = (~) ()
type AttrTransferType NavigationPolicyDecisionNavigationActionPropertyInfo = ()
type AttrGetType NavigationPolicyDecisionNavigationActionPropertyInfo = WebKit.NavigationAction.NavigationAction
type AttrLabel NavigationPolicyDecisionNavigationActionPropertyInfo = "navigation-action"
type AttrOrigin NavigationPolicyDecisionNavigationActionPropertyInfo = NavigationPolicyDecision
attrGet = getNavigationPolicyDecisionNavigationAction
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit.Objects.NavigationPolicyDecision.navigationAction"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit-6.0.2/docs/GI-WebKit-Objects-NavigationPolicyDecision.html#g:attr:navigationAction"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList NavigationPolicyDecision
type instance O.AttributeList NavigationPolicyDecision = NavigationPolicyDecisionAttributeList
type NavigationPolicyDecisionAttributeList = ('[ '("navigationAction", NavigationPolicyDecisionNavigationActionPropertyInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
navigationPolicyDecisionNavigationAction :: AttrLabelProxy "navigationAction"
navigationPolicyDecisionNavigationAction = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList NavigationPolicyDecision = NavigationPolicyDecisionSignalList
type NavigationPolicyDecisionSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "webkit_navigation_policy_decision_get_navigation_action" webkit_navigation_policy_decision_get_navigation_action ::
Ptr NavigationPolicyDecision ->
IO (Ptr WebKit.NavigationAction.NavigationAction)
navigationPolicyDecisionGetNavigationAction ::
(B.CallStack.HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
a
-> m WebKit.NavigationAction.NavigationAction
navigationPolicyDecisionGetNavigationAction :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsNavigationPolicyDecision a) =>
a -> m NavigationAction
navigationPolicyDecisionGetNavigationAction a
decision = IO NavigationAction -> m NavigationAction
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NavigationAction -> m NavigationAction)
-> IO NavigationAction -> m NavigationAction
forall a b. (a -> b) -> a -> b
$ do
Ptr NavigationPolicyDecision
decision' <- a -> IO (Ptr NavigationPolicyDecision)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
decision
Ptr NavigationAction
result <- Ptr NavigationPolicyDecision -> IO (Ptr NavigationAction)
webkit_navigation_policy_decision_get_navigation_action Ptr NavigationPolicyDecision
decision'
Text -> Ptr NavigationAction -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"navigationPolicyDecisionGetNavigationAction" Ptr NavigationAction
result
NavigationAction
result' <- ((ManagedPtr NavigationAction -> NavigationAction)
-> Ptr NavigationAction -> IO NavigationAction
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr NavigationAction -> NavigationAction
WebKit.NavigationAction.NavigationAction) Ptr NavigationAction
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
decision
NavigationAction -> IO NavigationAction
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return NavigationAction
result'
#if defined(ENABLE_OVERLOADING)
data NavigationPolicyDecisionGetNavigationActionMethodInfo
instance (signature ~ (m WebKit.NavigationAction.NavigationAction), MonadIO m, IsNavigationPolicyDecision a) => O.OverloadedMethod NavigationPolicyDecisionGetNavigationActionMethodInfo a signature where
overloadedMethod = navigationPolicyDecisionGetNavigationAction
instance O.OverloadedMethodInfo NavigationPolicyDecisionGetNavigationActionMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit.Objects.NavigationPolicyDecision.navigationPolicyDecisionGetNavigationAction",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit-6.0.2/docs/GI-WebKit-Objects-NavigationPolicyDecision.html#v:navigationPolicyDecisionGetNavigationAction"
})
#endif