gi-atk-2.0.25: Atk bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Atk.Objects.Socket

Description

Together with Plug, Socket provides the ability to embed accessibles from one process into another in a fashion that is transparent to assistive technologies. Socket works as the container of Plug, embedding it using the method socketEmbed. Any accessible contained in the Plug will appear to the assistive technologies as being inside the application that created the Socket.

The communication between a Socket and a Plug is done by the IPC layer of the accessibility framework, normally implemented by the D-Bus based implementation of AT-SPI (at-spi2). If that is the case, at-spi-atk2 is the responsible to implement the abstract methods plugGetId and socketEmbed, so an ATK implementor shouldn't reimplement them. The process that contains the Plug is responsible to send the ID returned by atk_plug_id() to the process that contains the Socket, so it could call the method socketEmbed in order to embed it.

For the same reasons, an implementor doesn't need to implement objectGetNAccessibleChildren and objectRefAccessibleChild. All the logic related to those functions will be implemented by the IPC layer.

Synopsis

Exported types

newtype Socket Source #

Memory-managed wrapper type.

Constructors

Socket (ManagedPtr Socket) 

Instances

Instances details
Eq Socket Source # 
Instance details

Defined in GI.Atk.Objects.Socket

Methods

(==) :: Socket -> Socket -> Bool #

(/=) :: Socket -> Socket -> Bool #

GObject Socket Source # 
Instance details

Defined in GI.Atk.Objects.Socket

ManagedPtrNewtype Socket Source # 
Instance details

Defined in GI.Atk.Objects.Socket

Methods

toManagedPtr :: Socket -> ManagedPtr Socket

TypedObject Socket Source # 
Instance details

Defined in GI.Atk.Objects.Socket

Methods

glibType :: IO GType

HasParentTypes Socket Source # 
Instance details

Defined in GI.Atk.Objects.Socket

IsGValue (Maybe Socket) Source #

Convert Socket to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Atk.Objects.Socket

Methods

gvalueGType_ :: IO GType

gvalueSet_ :: Ptr GValue -> Maybe Socket -> IO ()

gvalueGet_ :: Ptr GValue -> IO (Maybe Socket)

type ParentTypes Socket Source # 
Instance details

Defined in GI.Atk.Objects.Socket

type ParentTypes Socket = '[Object, Object, Component]

class (GObject o, IsDescendantOf Socket o) => IsSocket o Source #

Type class for types which can be safely cast to Socket, for instance with toSocket.

Instances

Instances details
(GObject o, IsDescendantOf Socket o) => IsSocket o Source # 
Instance details

Defined in GI.Atk.Objects.Socket

toSocket :: (MonadIO m, IsSocket o) => o -> m Socket Source #

Cast to Socket, for types for which this is known to be safe. For general casts, use castTo.

Methods

embed

socketEmbed Source #

Arguments

:: (HasCallStack, MonadIO m, IsSocket a) 
=> a

obj: an Socket

-> Text

plugId: the ID of an Plug

-> m () 

Embeds the children of an Plug as the children of the Socket. The plug may be in the same process or in a different process.

The class item used by this function should be filled in by the IPC layer (usually at-spi2-atk). The implementor of the AtkSocket should call this function and pass the id for the plug as returned by plugGetId. It is the responsibility of the application to pass the plug id on to the process implementing the Socket as needed.

Since: 1.30

isOccupied

socketIsOccupied Source #

Arguments

:: (HasCallStack, MonadIO m, IsSocket a) 
=> a

obj: an Socket

-> m Bool

Returns: TRUE if a plug is embedded in the socket

Determines whether or not the socket has an embedded plug.

Since: 1.30

new

socketNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m Socket

Returns: the newly created Socket instance

Creates a new Socket.