gi-atk-0.2.18.13: GI/Atk/Interfaces/Hypertext.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Atk.Interfaces.Hypertext
(
-- * Exported types
Hypertext(..) ,
noHypertext ,
HypertextK ,
-- * Methods
-- ** hypertextGetLink
HypertextGetLinkMethodInfo ,
hypertextGetLink ,
-- ** hypertextGetLinkIndex
HypertextGetLinkIndexMethodInfo ,
hypertextGetLinkIndex ,
-- ** hypertextGetNLinks
HypertextGetNLinksMethodInfo ,
hypertextGetNLinks ,
-- * Signals
-- ** LinkSelected
HypertextLinkSelectedCallback ,
HypertextLinkSelectedCallbackC ,
HypertextLinkSelectedSignalInfo ,
afterHypertextLinkSelected ,
hypertextLinkSelectedCallbackWrapper ,
hypertextLinkSelectedClosure ,
mkHypertextLinkSelectedCallback ,
noHypertextLinkSelectedCallback ,
onHypertextLinkSelected ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Atk.Types
import GI.Atk.Callbacks
-- interface Hypertext
newtype Hypertext = Hypertext (ForeignPtr Hypertext)
noHypertext :: Maybe Hypertext
noHypertext = Nothing
type family ResolveHypertextMethod (t :: Symbol) (o :: *) :: * where
ResolveHypertextMethod "getLink" o = HypertextGetLinkMethodInfo
ResolveHypertextMethod "getLinkIndex" o = HypertextGetLinkIndexMethodInfo
ResolveHypertextMethod "getNLinks" o = HypertextGetNLinksMethodInfo
ResolveHypertextMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveHypertextMethod t Hypertext, MethodInfo info Hypertext p) => IsLabelProxy t (Hypertext -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveHypertextMethod t Hypertext, MethodInfo info Hypertext p) => IsLabel t (Hypertext -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
-- signal Hypertext::link-selected
type HypertextLinkSelectedCallback =
Int32 ->
IO ()
noHypertextLinkSelectedCallback :: Maybe HypertextLinkSelectedCallback
noHypertextLinkSelectedCallback = Nothing
type HypertextLinkSelectedCallbackC =
Ptr () -> -- object
Int32 ->
Ptr () -> -- user_data
IO ()
foreign import ccall "wrapper"
mkHypertextLinkSelectedCallback :: HypertextLinkSelectedCallbackC -> IO (FunPtr HypertextLinkSelectedCallbackC)
hypertextLinkSelectedClosure :: HypertextLinkSelectedCallback -> IO Closure
hypertextLinkSelectedClosure cb = newCClosure =<< mkHypertextLinkSelectedCallback wrapped
where wrapped = hypertextLinkSelectedCallbackWrapper cb
hypertextLinkSelectedCallbackWrapper ::
HypertextLinkSelectedCallback ->
Ptr () ->
Int32 ->
Ptr () ->
IO ()
hypertextLinkSelectedCallbackWrapper _cb _ arg1 _ = do
_cb arg1
onHypertextLinkSelected :: (GObject a, MonadIO m) => a -> HypertextLinkSelectedCallback -> m SignalHandlerId
onHypertextLinkSelected obj cb = liftIO $ connectHypertextLinkSelected obj cb SignalConnectBefore
afterHypertextLinkSelected :: (GObject a, MonadIO m) => a -> HypertextLinkSelectedCallback -> m SignalHandlerId
afterHypertextLinkSelected obj cb = connectHypertextLinkSelected obj cb SignalConnectAfter
connectHypertextLinkSelected :: (GObject a, MonadIO m) =>
a -> HypertextLinkSelectedCallback -> SignalConnectMode -> m SignalHandlerId
connectHypertextLinkSelected obj cb after = liftIO $ do
cb' <- mkHypertextLinkSelectedCallback (hypertextLinkSelectedCallbackWrapper cb)
connectSignalFunPtr obj "link-selected" cb' after
type instance AttributeList Hypertext = HypertextAttributeList
type HypertextAttributeList = ('[ ] :: [(Symbol, *)])
data HypertextLinkSelectedSignalInfo
instance SignalInfo HypertextLinkSelectedSignalInfo where
type HaskellCallbackType HypertextLinkSelectedSignalInfo = HypertextLinkSelectedCallback
connectSignal _ = connectHypertextLinkSelected
type instance SignalList Hypertext = HypertextSignalList
type HypertextSignalList = ('[ '("linkSelected", HypertextLinkSelectedSignalInfo)] :: [(Symbol, *)])
class ForeignPtrNewtype a => HypertextK a
instance (ForeignPtrNewtype o, IsDescendantOf Hypertext o) => HypertextK o
type instance ParentTypes Hypertext = HypertextParentTypes
type HypertextParentTypes = '[]
-- method Hypertext::get_link
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "link_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Atk" "Hyperlink"
-- throws : False
-- Skip return : False
foreign import ccall "atk_hypertext_get_link" atk_hypertext_get_link ::
Ptr Hypertext -> -- _obj : TInterface "Atk" "Hypertext"
Int32 -> -- link_index : TBasicType TInt32
IO (Ptr Hyperlink)
hypertextGetLink ::
(MonadIO m, HypertextK a) =>
a -- _obj
-> Int32 -- linkIndex
-> m Hyperlink -- result
hypertextGetLink _obj linkIndex = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- atk_hypertext_get_link _obj' linkIndex
checkUnexpectedReturnNULL "atk_hypertext_get_link" result
result' <- (newObject Hyperlink) result
touchManagedPtr _obj
return result'
data HypertextGetLinkMethodInfo
instance (signature ~ (Int32 -> m Hyperlink), MonadIO m, HypertextK a) => MethodInfo HypertextGetLinkMethodInfo a signature where
overloadedMethod _ = hypertextGetLink
-- method Hypertext::get_link_index
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "char_index", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "atk_hypertext_get_link_index" atk_hypertext_get_link_index ::
Ptr Hypertext -> -- _obj : TInterface "Atk" "Hypertext"
Int32 -> -- char_index : TBasicType TInt32
IO Int32
hypertextGetLinkIndex ::
(MonadIO m, HypertextK a) =>
a -- _obj
-> Int32 -- charIndex
-> m Int32 -- result
hypertextGetLinkIndex _obj charIndex = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- atk_hypertext_get_link_index _obj' charIndex
touchManagedPtr _obj
return result
data HypertextGetLinkIndexMethodInfo
instance (signature ~ (Int32 -> m Int32), MonadIO m, HypertextK a) => MethodInfo HypertextGetLinkIndexMethodInfo a signature where
overloadedMethod _ = hypertextGetLinkIndex
-- method Hypertext::get_n_links
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Atk" "Hypertext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False
foreign import ccall "atk_hypertext_get_n_links" atk_hypertext_get_n_links ::
Ptr Hypertext -> -- _obj : TInterface "Atk" "Hypertext"
IO Int32
hypertextGetNLinks ::
(MonadIO m, HypertextK a) =>
a -- _obj
-> m Int32 -- result
hypertextGetNLinks _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- atk_hypertext_get_n_links _obj'
touchManagedPtr _obj
return result
data HypertextGetNLinksMethodInfo
instance (signature ~ (m Int32), MonadIO m, HypertextK a) => MethodInfo HypertextGetNLinksMethodInfo a signature where
overloadedMethod _ = hypertextGetNLinks