#define ENABLE_OVERLOADING \
(!defined(__HADDOCK_VERSION__))
module GI.Atk.Interfaces.HyperlinkImpl
(
HyperlinkImpl(..) ,
noHyperlinkImpl ,
IsHyperlinkImpl ,
#if 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.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.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.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import {-# SOURCE #-} qualified GI.Atk.Objects.Hyperlink as Atk.Hyperlink
newtype HyperlinkImpl = HyperlinkImpl (ManagedPtr HyperlinkImpl)
noHyperlinkImpl :: Maybe HyperlinkImpl
noHyperlinkImpl :: Maybe HyperlinkImpl
noHyperlinkImpl = Maybe HyperlinkImpl
forall a. Maybe a
Nothing
#if ENABLE_OVERLOADING
type instance O.SignalList HyperlinkImpl = HyperlinkImplSignalList
type HyperlinkImplSignalList = ('[ ] :: [(Symbol, *)])
#endif
class ManagedPtrNewtype a => IsHyperlinkImpl a
instance IsHyperlinkImpl HyperlinkImpl
instance WrappedPtr HyperlinkImpl where
wrappedPtrCalloc :: IO (Ptr HyperlinkImpl)
wrappedPtrCalloc = Ptr HyperlinkImpl -> IO (Ptr HyperlinkImpl)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr HyperlinkImpl
forall a. Ptr a
nullPtr
wrappedPtrCopy :: HyperlinkImpl -> IO HyperlinkImpl
wrappedPtrCopy = HyperlinkImpl -> IO HyperlinkImpl
forall (m :: * -> *) a. Monad m => a -> m a
return
wrappedPtrFree :: Maybe (FunPtr (Ptr HyperlinkImpl -> IO ()))
wrappedPtrFree = Maybe (FunPtr (Ptr HyperlinkImpl -> IO ()))
forall a. Maybe a
Nothing
#if 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) => O.IsLabelProxy t (HyperlinkImpl -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveHyperlinkImplMethod t HyperlinkImpl, O.MethodInfo info HyperlinkImpl p) => O.IsLabel t (HyperlinkImpl -> 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
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 impl :: 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 "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 ENABLE_OVERLOADING
data HyperlinkImplGetHyperlinkMethodInfo
instance (signature ~ (m Atk.Hyperlink.Hyperlink), MonadIO m, IsHyperlinkImpl a) => O.MethodInfo HyperlinkImplGetHyperlinkMethodInfo a signature where
overloadedMethod _ = hyperlinkImplGetHyperlink
#endif