{-# 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.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 Control.Monad.IO.Class as MIO
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 {-# SOURCE #-} qualified GI.Atk.Objects.Hyperlink as Atk.Hyperlink
newtype HyperlinkImpl = HyperlinkImpl (SP.ManagedPtr HyperlinkImpl)
deriving (HyperlinkImpl -> HyperlinkImpl -> Bool
(HyperlinkImpl -> HyperlinkImpl -> Bool)
-> (HyperlinkImpl -> HyperlinkImpl -> Bool) -> Eq HyperlinkImpl
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 = HyperlinkImpl -> IO HyperlinkImpl
forall (m :: * -> *) a. Monad m => a -> m a
return
boxedPtrFree :: HyperlinkImpl -> IO ()
boxedPtrFree = \HyperlinkImpl
_x -> () -> IO ()
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.MethodInfo 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
#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 :: a -> m Hyperlink
hyperlinkImplGetHyperlink a
impl = IO Hyperlink -> m Hyperlink
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Hyperlink -> m Hyperlink) -> IO Hyperlink -> m Hyperlink
forall a b. (a -> b) -> a -> b
$ do
Ptr HyperlinkImpl
impl' <- a -> IO (Ptr HyperlinkImpl)
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'
Text -> Ptr Hyperlink -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"hyperlinkImplGetHyperlink" Ptr Hyperlink
result
Hyperlink
result' <- ((ManagedPtr Hyperlink -> Hyperlink)
-> Ptr Hyperlink -> IO Hyperlink
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
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
impl
Hyperlink -> IO Hyperlink
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.MethodInfo HyperlinkImplGetHyperlinkMethodInfo a signature where
overloadedMethod = hyperlinkImplGetHyperlink
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList HyperlinkImpl = HyperlinkImplSignalList
type HyperlinkImplSignalList = ('[ ] :: [(Symbol, *)])
#endif