{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Atk.Interfaces.HyperlinkImpl
(
HyperlinkImpl(..) ,
IsHyperlinkImpl ,
#if defined(ENABLE_OVERLOADING)
ResolveHyperlinkImplMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
HyperlinkImplGetHyperlinkMethodInfo ,
#endif
hyperlinkImplGetHyperlink ,
) 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.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 {-# SOURCE #-} qualified GI.Atk.Objects.Hyperlink as Atk.Hyperlink
newtype HyperlinkImpl = HyperlinkImpl (SP.ManagedPtr HyperlinkImpl)
deriving (HyperlinkImpl -> HyperlinkImpl -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HyperlinkImpl -> HyperlinkImpl -> Bool
$c/= :: HyperlinkImpl -> HyperlinkImpl -> Bool
== :: HyperlinkImpl -> HyperlinkImpl -> Bool
$c== :: HyperlinkImpl -> HyperlinkImpl -> Bool
Eq)
instance SP.ManagedPtrNewtype HyperlinkImpl where
toManagedPtr :: HyperlinkImpl -> ManagedPtr HyperlinkImpl
toManagedPtr (HyperlinkImpl ManagedPtr HyperlinkImpl
p) = ManagedPtr HyperlinkImpl
p
class (ManagedPtrNewtype o, O.IsDescendantOf HyperlinkImpl o) => IsHyperlinkImpl o
instance (ManagedPtrNewtype o, O.IsDescendantOf HyperlinkImpl o) => IsHyperlinkImpl o
instance BoxedPtr HyperlinkImpl where
boxedPtrCopy :: HyperlinkImpl -> IO HyperlinkImpl
boxedPtrCopy = forall (m :: * -> *) a. Monad m => a -> m a
return
boxedPtrFree :: HyperlinkImpl -> IO ()
boxedPtrFree = \HyperlinkImpl
_x -> forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
type family ResolveHyperlinkImplMethod (t :: Symbol) (o :: *) :: * where
ResolveHyperlinkImplMethod "getHyperlink" o = HyperlinkImplGetHyperlinkMethodInfo
ResolveHyperlinkImplMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveHyperlinkImplMethod t HyperlinkImpl, O.OverloadedMethod info HyperlinkImpl p) => OL.IsLabel t (HyperlinkImpl -> 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 ~ ResolveHyperlinkImplMethod t HyperlinkImpl, O.OverloadedMethod info HyperlinkImpl p, R.HasField t HyperlinkImpl p) => R.HasField t HyperlinkImpl p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveHyperlinkImplMethod t HyperlinkImpl, O.OverloadedMethodInfo info HyperlinkImpl) => OL.IsLabel t (O.MethodProxy info HyperlinkImpl) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
foreign import ccall "atk_hyperlink_impl_get_hyperlink" atk_hyperlink_impl_get_hyperlink ::
Ptr HyperlinkImpl ->
IO (Ptr Atk.Hyperlink.Hyperlink)
hyperlinkImplGetHyperlink ::
(B.CallStack.HasCallStack, MonadIO m, IsHyperlinkImpl a) =>
a
-> m Atk.Hyperlink.Hyperlink
hyperlinkImplGetHyperlink :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsHyperlinkImpl a) =>
a -> m Hyperlink
hyperlinkImplGetHyperlink a
impl = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ do
Ptr HyperlinkImpl
impl' <- forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
impl
Ptr Hyperlink
result <- Ptr HyperlinkImpl -> IO (Ptr Hyperlink)
atk_hyperlink_impl_get_hyperlink Ptr HyperlinkImpl
impl'
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"hyperlinkImplGetHyperlink" Ptr Hyperlink
result
Hyperlink
result' <- (forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Hyperlink -> Hyperlink
Atk.Hyperlink.Hyperlink) Ptr Hyperlink
result
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
impl
forall (m :: * -> *) a. Monad m => a -> m a
return Hyperlink
result'
#if defined(ENABLE_OVERLOADING)
data HyperlinkImplGetHyperlinkMethodInfo
instance (signature ~ (m Atk.Hyperlink.Hyperlink), MonadIO m, IsHyperlinkImpl a) => O.OverloadedMethod HyperlinkImplGetHyperlinkMethodInfo a signature where
overloadedMethod = hyperlinkImplGetHyperlink
instance O.OverloadedMethodInfo HyperlinkImplGetHyperlinkMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Atk.Interfaces.HyperlinkImpl.hyperlinkImplGetHyperlink",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-atk-2.0.25/docs/GI-Atk-Interfaces-HyperlinkImpl.html#v:hyperlinkImplGetHyperlink"
})
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList HyperlinkImpl = HyperlinkImplSignalList
type HyperlinkImplSignalList = ('[ ] :: [(Symbol, *)])
#endif