Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Container for AtkPlug objects from other processes
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.
See [classatkPlug
]
Synopsis
- newtype Socket = Socket (ManagedPtr Socket)
- class (GObject o, IsDescendantOf Socket o) => IsSocket o
- toSocket :: (MonadIO m, IsSocket o) => o -> m Socket
- socketEmbed :: (HasCallStack, MonadIO m, IsSocket a) => a -> Text -> m ()
- socketIsOccupied :: (HasCallStack, MonadIO m, IsSocket a) => a -> m Bool
- socketNew :: (HasCallStack, MonadIO m) => m Socket
Exported types
Memory-managed wrapper type.
Instances
Eq Socket Source # | |
GObject Socket Source # | |
Defined in GI.Atk.Objects.Socket | |
ManagedPtrNewtype Socket Source # | |
Defined in GI.Atk.Objects.Socket toManagedPtr :: Socket -> ManagedPtr Socket | |
TypedObject Socket Source # | |
Defined in GI.Atk.Objects.Socket | |
HasParentTypes Socket Source # | |
Defined in GI.Atk.Objects.Socket | |
IsGValue (Maybe Socket) Source # | Convert |
Defined in GI.Atk.Objects.Socket gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe Socket -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe Socket) | |
type ParentTypes Socket Source # | |
Defined in GI.Atk.Objects.Socket |
class (GObject o, IsDescendantOf Socket o) => IsSocket o Source #
Instances
(GObject o, IsDescendantOf Socket o) => IsSocket o Source # | |
Defined in GI.Atk.Objects.Socket |
Methods
Click to display all available methods, including inherited ones
Methods
addRelationship, bindProperty, bindPropertyFull, contains, embed, forceFloating, freezeNotify, getv, grabFocus, initialize, isFloating, isOccupied, notify, notifyByPspec, notifyStateChange, peekParent, ref, refAccessibleAtPoint, refAccessibleChild, refRelationSet, refSink, refStateSet, removeFocusHandler, removePropertyChangeHandler, removeRelationship, runDispose, scrollTo, scrollToPoint, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getAccessibleId, getAlpha, getAttributes, getData, getDescription, getExtents, getIndexInParent, getLayer, getMdiZorder, getNAccessibleChildren, getName, getObjectLocale, getParent, getPosition, getProperty, getQdata, getRole, getSize.
Setters
setAccessibleId, setData, setDataFull, setDescription, setExtents, setName, setParent, setPosition, setProperty, setRole, setSize.
embed
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
:: (HasCallStack, MonadIO m, IsSocket a) | |
=> a |
|
-> 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