Struct atspi_proxies::accessible::AccessibleProxyBlocking
source · pub struct AccessibleProxyBlocking<'c>(/* private fields */);
Implementations§
source§impl<'c> AccessibleProxyBlocking<'c>
impl<'c> AccessibleProxyBlocking<'c>
sourcepub fn new(conn: &Connection) -> Result<AccessibleProxyBlocking<'c>>
pub fn new(conn: &Connection) -> Result<AccessibleProxyBlocking<'c>>
Creates a new proxy with the default service and path.
sourcepub fn builder(conn: &Connection) -> ProxyBuilder<'c, Self>
pub fn builder(conn: &Connection) -> ProxyBuilder<'c, Self>
Returns a customizable builder for this proxy.
sourcepub fn into_inner(self) -> Proxy<'c>
pub fn into_inner(self) -> Proxy<'c>
Consumes self
, returning the underlying zbus::Proxy
.
sourcepub fn get_application(&self) -> Result<Accessible>
pub fn get_application(&self) -> Result<Accessible>
Returns an Accessible
which refers to the Application
object of the application.
This object will have Application
interface implemented.
The application object is the root of the accessibility hierarchy for the application. It is the only object in the hierarchy that does not have a parent.
Notes
The application object is the only object in the accessibility hierarchy that is guaranteed to be persistent for the lifetime of the application. All other objects in the accessibility hierarchy may be created and destroyed dynamically.
sourcepub fn get_attributes(&self) -> Result<HashMap<String, String>>
pub fn get_attributes(&self) -> Result<HashMap<String, String>>
Gets a list of name/value pairs of attributes or annotations for this object.
Disambiguation
For typographic, textual, or textually-semantic attributes,
see TextProxy
’s get_attributes
method instead.
sourcepub fn get_child_at_index(&self, index: i32) -> Result<Accessible>
pub fn get_child_at_index(&self, index: i32) -> Result<Accessible>
Retrieve child by index (starting from 0),
Queries the N-th accessible child of self
. It is expected that this
will correspond to the order that the get_children
method would return.
Notes
Implementations vary in their behavior when the index is out of range. GTK4 returns an error, while atk-adaptor (e.g. Gtk3) returns the null object path “/org/a11y/atspi/null”.
Documentation advises implementors to return a DBus Error when the index is out of range, to “keep the type system gods happy”.
sourcepub fn get_children(&self) -> Result<Vec<Accessible>>
pub fn get_children(&self) -> Result<Vec<Accessible>>
Retrieves a list of the object’s accessible children.
Each array element is an Accessible
representing the accessible child object.
Registry
On the Accessible
interface of org.a11y.atspi.Registry
, the registry daemon, this method retrieves a list
of all accessible applications’ root objects on the bus.
sourcepub fn get_index_in_parent(&self) -> Result<i32>
pub fn get_index_in_parent(&self) -> Result<i32>
This object resides in its parent’s list of children. This returns its position in this list of children, starting from 0.
The function returns -1 if the object does not have a parent or if an exception occurs.
sourcepub fn get_interfaces(&self) -> Result<InterfaceSet>
pub fn get_interfaces(&self) -> Result<InterfaceSet>
Returns an InterfaceSet
accessible interface names supported by the self
object.
InterfaceSet
: crate::common::InterfaceSet
sourcepub fn get_localized_role_name(&self) -> Result<String>
pub fn get_localized_role_name(&self) -> Result<String>
Gets a String
corresponding to the name of the role played by an object,
translated to the current locale.
Notes
This method will return useful values for roles that fall outside the
enumeration used in the get_role
method.
For applications, implementing this method is optional, and it may be removed in a future version of the API.
For example, libatspi
will only call it in the event of an unknown role.
sourcepub fn get_relation_set(&self) -> Result<Vec<(RelationType, Vec<Accessible>)>>
pub fn get_relation_set(&self) -> Result<Vec<(RelationType, Vec<Accessible>)>>
Returns a set of relationships between the this self
object and others.
This vector of tuples contains a RelationType
and a vector of Accessible
’s to which that
relationship applies.
These relationships allow for better identification of how objects are associated with one another.
For example, the relationship RelationType::LabelledBy
can be used to identify labeling information
that should accompany the accessible name
property when presenting an object’s content or identity
to the end user.
Similarly, RelationType::ControllerFor
can be used to specify the context in which a valuator is useful
and/or the other UI components that are directly affected by user interactions with the valuator.
Common examples include the association of scrollbars with the viewport or panel that they control.
sourcepub fn get_role(&self) -> Result<Role>
pub fn get_role(&self) -> Result<Role>
Gets the Role
that the current accessible object represents.
Roles make it possible for various UI toolkits to expose their controls to assistive technologies (ATs) with a standard interface, regardless of toolkit.
For example, a widget that acts like a conventional push button
(appears unpressed; presses when acted upon; invokes a certain action
when pressed) can expose an Role::PushButton
role.
sourcepub fn get_role_name(&self) -> Result<String>
pub fn get_role_name(&self) -> Result<String>
Gets a String
corresponding to the name of the role played by an object,
translated to the current locale.
Notes
This method will return useful values for roles that fall outside the
enumeration used in the get_role
method.
For applications, implementing this method is optional, and it may be removed in a future version of the API.
sourcepub fn accessible_id(&self) -> Result<String>
pub fn accessible_id(&self) -> Result<String>
Application-specific identifier for the current object.
A special id given to an object. Accessible application developers can use this to give a special id to an object to use in tests, for example, “my_widget”.
Note that there is no way to directly find an object by its id; a test program may have to recursively get the children to find a specific id. This is because accessible objects can be created dynamically, and they do not always correspond to a static view of an application’s data.
sourcepub fn cached_accessible_id(
&self
) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
pub fn cached_accessible_id( &self ) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
Get the cached value of the AccessibleId
property, or None
if the property is not cached.
sourcepub fn receive_accessible_id_changed(
&self
) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
pub fn receive_accessible_id_changed( &self ) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
Create a stream for the AccessibleId
property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed
.
sourcepub fn child_count(&self) -> Result<i32>
pub fn child_count(&self) -> Result<i32>
Number of accessible children for the current object.
sourcepub fn cached_child_count(
&self
) -> Result<Option<<Result<i32> as ResultAdapter>::Ok>, <Result<i32> as ResultAdapter>::Err>
pub fn cached_child_count( &self ) -> Result<Option<<Result<i32> as ResultAdapter>::Ok>, <Result<i32> as ResultAdapter>::Err>
Get the cached value of the ChildCount
property, or None
if the property is not cached.
sourcepub fn receive_child_count_changed(
&self
) -> PropertyIterator<'c, <Result<i32> as ResultAdapter>::Ok>
pub fn receive_child_count_changed( &self ) -> PropertyIterator<'c, <Result<i32> as ResultAdapter>::Ok>
Create a stream for the ChildCount
property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed
.
sourcepub fn description(&self) -> Result<String>
pub fn description(&self) -> Result<String>
Human-readable, localized description of self
in more detail.
This is a longer description than the Name
property.
For example, a button might have a name of “OK”, but a description of “OK button”.
While the Name property is meant to be a short string that screen readers say during normal navigation, the Description property is for when the user asks for more detail.
sourcepub fn cached_description(
&self
) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
pub fn cached_description( &self ) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
Get the cached value of the Description
property, or None
if the property is not cached.
sourcepub fn receive_description_changed(
&self
) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
pub fn receive_description_changed( &self ) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
Create a stream for the Description
property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed
.
sourcepub fn locale(&self) -> Result<String>
pub fn locale(&self) -> Result<String>
Unix locale for the current object.
This is a string in the form of “language_territory.codeset”. For example, “en_US.UTF-8” or “de_DE.UTF-8”.
For an application, this may be the locale for the language that the application shows in its user interface.
For a document being shown in an application, or a paragraph within a document, the locale may refer to that object exclusively. For example: an application may be showing itself in English (“en”), but it may be used to display a document in Spanish (“es”). In the latter case, a screen reader will want to know that it should switch to Spanish while reading the document.
sourcepub fn cached_locale(
&self
) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
pub fn cached_locale( &self ) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
Get the cached value of the Locale
property, or None
if the property is not cached.
sourcepub fn receive_locale_changed(
&self
) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
pub fn receive_locale_changed( &self ) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
Create a stream for the Locale
property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed
.
sourcepub fn name(&self) -> Result<String>
pub fn name(&self) -> Result<String>
Human-readable, localized, short name for the object.
Applications should have this set for objects which do not
have a RelationType::LabelledBy
relation.
Consider a widget to select RGB colors by setting three sliders.
The names for the sliders would be “Red”, “Green”, “Blue”, respectively, or
their translations to application’s locale. The names would be unnecessary if each
slider had a LabeledBy
relation to corresponding labels visible in the user
interface.
sourcepub fn cached_name(
&self
) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
pub fn cached_name( &self ) -> Result<Option<<Result<String> as ResultAdapter>::Ok>, <Result<String> as ResultAdapter>::Err>
Get the cached value of the Name
property, or None
if the property is not cached.
sourcepub fn receive_name_changed(
&self
) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
pub fn receive_name_changed( &self ) -> PropertyIterator<'c, <Result<String> as ResultAdapter>::Ok>
Create a stream for the Name
property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed
.
sourcepub fn parent(&self) -> Result<Accessible>
pub fn parent(&self) -> Result<Accessible>
Accessible parent object of the current object.
Null parent: If the object has no parent (e.g. the application’s root object is being queried), The application should return “” for the application name name and “/org/a11y/atspi/null” for the object path.
Root object: An application must have a single root object, called “/org/a11y/atspi/accessible/root”. All other objects should have that one as their highest-level ancestor.
sourcepub fn cached_parent(
&self
) -> Result<Option<<Result<Accessible> as ResultAdapter>::Ok>, <Result<Accessible> as ResultAdapter>::Err>
pub fn cached_parent( &self ) -> Result<Option<<Result<Accessible> as ResultAdapter>::Ok>, <Result<Accessible> as ResultAdapter>::Err>
Get the cached value of the Parent
property, or None
if the property is not cached.
sourcepub fn receive_parent_changed(
&self
) -> PropertyIterator<'c, <Result<Accessible> as ResultAdapter>::Ok>
pub fn receive_parent_changed( &self ) -> PropertyIterator<'c, <Result<Accessible> as ResultAdapter>::Ok>
Create a stream for the Parent
property changes. This is a convenient wrapper around zbus::blocking::Proxy::receive_property_changed
.
Methods from Deref<Target = Proxy<'c>>§
sourcepub fn connection(&self) -> &Connection
pub fn connection(&self) -> &Connection
Get a reference to the associated connection.
sourcepub fn destination(&self) -> &BusName<'_>
pub fn destination(&self) -> &BusName<'_>
Get a reference to the destination service name.
sourcepub fn introspect(&self) -> Result<String, Error>
pub fn introspect(&self) -> Result<String, Error>
Introspect the associated object, and return the XML description.
See the xml module for parsing the result.
sourcepub fn cached_property<T>(
&self,
property_name: &str
) -> Result<Option<T>, Error>where
T: TryFrom<OwnedValue>,
<T as TryFrom<OwnedValue>>::Error: Into<Error>,
pub fn cached_property<T>( &self, property_name: &str ) -> Result<Option<T>, Error>where T: TryFrom<OwnedValue>, <T as TryFrom<OwnedValue>>::Error: Into<Error>,
Get the cached value of the property property_name
.
This returns None
if the property is not in the cache. This could be because the cache
was invalidated by an update, because caching was disabled for this property or proxy, or
because the cache has not yet been populated. Use get_property
to fetch the value from
the peer.
sourcepub fn cached_property_raw<'p>(
&'p self,
property_name: &'p str
) -> Option<impl Deref<Target = Value<'static>> + 'p>
pub fn cached_property_raw<'p>( &'p self, property_name: &'p str ) -> Option<impl Deref<Target = Value<'static>> + 'p>
Get the cached value of the property property_name
.
Same as cached_property
, but gives you access to the raw value stored in the cache. This
is useful if you want to avoid allocations and cloning.
sourcepub fn get_property<T>(&self, property_name: &str) -> Result<T, Error>where
T: TryFrom<OwnedValue>,
<T as TryFrom<OwnedValue>>::Error: Into<Error>,
pub fn get_property<T>(&self, property_name: &str) -> Result<T, Error>where T: TryFrom<OwnedValue>, <T as TryFrom<OwnedValue>>::Error: Into<Error>,
Get the property property_name
.
Get the property value from the cache or call the Get
method of the
org.freedesktop.DBus.Properties
interface.
sourcepub fn set_property<'t, T>(
&self,
property_name: &str,
value: T
) -> Result<(), Error>where
T: 't + Into<Value<'t>>,
pub fn set_property<'t, T>( &self, property_name: &str, value: T ) -> Result<(), Error>where T: 't + Into<Value<'t>>,
Set the property property_name
.
Effectively, call the Set
method of the org.freedesktop.DBus.Properties
interface.
sourcepub fn call_method<'m, M, B>(
&self,
method_name: M,
body: &B
) -> Result<Arc<Message, Global>, Error>where
M: TryInto<MemberName<'m>>,
<M as TryInto<MemberName<'m>>>::Error: Into<Error>,
B: Serialize + DynamicType,
pub fn call_method<'m, M, B>( &self, method_name: M, body: &B ) -> Result<Arc<Message, Global>, Error>where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>, B: Serialize + DynamicType,
Call a method and return the reply.
Typically, you would want to use call
method instead. Use this method if you need to
deserialize the reply message manually (this way, you can avoid the memory
allocation/copying, by deserializing the reply to an unowned type).
sourcepub fn call<'m, M, B, R>(&self, method_name: M, body: &B) -> Result<R, Error>where
M: TryInto<MemberName<'m>>,
<M as TryInto<MemberName<'m>>>::Error: Into<Error>,
B: Serialize + DynamicType,
R: DeserializeOwned + Type,
pub fn call<'m, M, B, R>(&self, method_name: M, body: &B) -> Result<R, Error>where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>, B: Serialize + DynamicType, R: DeserializeOwned + Type,
Call a method and return the reply body.
Use call_method
instead if you need to deserialize the reply manually/separately.
sourcepub fn call_with_flags<'m, M, B, R>(
&self,
method_name: M,
flags: BitFlags<MethodFlags, <MethodFlags as RawBitFlags>::Numeric>,
body: &B
) -> Result<Option<R>, Error>where
M: TryInto<MemberName<'m>>,
<M as TryInto<MemberName<'m>>>::Error: Into<Error>,
B: Serialize + DynamicType,
R: DeserializeOwned + Type,
pub fn call_with_flags<'m, M, B, R>( &self, method_name: M, flags: BitFlags<MethodFlags, <MethodFlags as RawBitFlags>::Numeric>, body: &B ) -> Result<Option<R>, Error>where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>, B: Serialize + DynamicType, R: DeserializeOwned + Type,
Call a method and return the reply body, optionally supplying a set of method flags to control the way the method call message is sent and handled.
Use call
instead if you do not need any special handling via additional flags.
If the NoReplyExpected
flag is passed , this will return None immediately
after sending the message, similar to call_noreply
sourcepub fn call_noreply<'m, M, B>(
&self,
method_name: M,
body: &B
) -> Result<(), Error>where
M: TryInto<MemberName<'m>>,
<M as TryInto<MemberName<'m>>>::Error: Into<Error>,
B: Serialize + DynamicType,
pub fn call_noreply<'m, M, B>( &self, method_name: M, body: &B ) -> Result<(), Error>where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>, B: Serialize + DynamicType,
Call a method without expecting a reply
This sets the NoReplyExpected
flag on the calling message and does not wait for a reply.
sourcepub fn receive_signal<'m, M>(
&self,
signal_name: M
) -> Result<SignalIterator<'m>, Error>where
M: TryInto<MemberName<'m>>,
<M as TryInto<MemberName<'m>>>::Error: Into<Error>,
pub fn receive_signal<'m, M>( &self, signal_name: M ) -> Result<SignalIterator<'m>, Error>where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>,
Create a stream for signal named signal_name
.
Errors
Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).
sourcepub fn receive_signal_with_args<'m, M>(
&self,
signal_name: M,
args: &[(u8, &str)]
) -> Result<SignalIterator<'m>, Error>where
M: TryInto<MemberName<'m>>,
<M as TryInto<MemberName<'m>>>::Error: Into<Error>,
pub fn receive_signal_with_args<'m, M>( &self, signal_name: M, args: &[(u8, &str)] ) -> Result<SignalIterator<'m>, Error>where M: TryInto<MemberName<'m>>, <M as TryInto<MemberName<'m>>>::Error: Into<Error>,
Same as Proxy::receive_signal
but with a filter.
The D-Bus specification allows you to filter signals by their arguments, which helps avoid a lot of unnecessary traffic and processing since the filter is run on the server side. Use this method where possible. Note that this filtering is limited to arguments of string types.
The arguments are passed as a tuples of argument index and expected value.
sourcepub fn receive_all_signals(&self) -> Result<SignalIterator<'static>, Error>
pub fn receive_all_signals(&self) -> Result<SignalIterator<'static>, Error>
Create a stream for all signals emitted by this service.
Errors
Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).
sourcepub fn receive_property_changed<'name, T>(
&self,
name: &'name str
) -> PropertyIterator<'a, T>where
'name: 'a,
pub fn receive_property_changed<'name, T>( &self, name: &'name str ) -> PropertyIterator<'a, T>where 'name: 'a,
Get an iterator to receive owner changed events.
If the proxy destination is a unique name, the stream will be notified of the peer
disconnection from the bus (with a None
value).
If the proxy destination is a well-known name, the stream will be notified whenever the name
owner is changed, either by a new peer being granted ownership (Some
value) or when the
name is released (with a None
value).
Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.
sourcepub fn receive_owner_changed(&self) -> Result<OwnerChangedIterator<'_>, Error>
pub fn receive_owner_changed(&self) -> Result<OwnerChangedIterator<'_>, Error>
Get an iterator to receive property changed events.
Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.
Trait Implementations§
source§impl<'c> AsMut<Proxy<'c>> for AccessibleProxyBlocking<'c>
impl<'c> AsMut<Proxy<'c>> for AccessibleProxyBlocking<'c>
source§impl<'c> AsRef<Proxy<'c>> for AccessibleProxyBlocking<'c>
impl<'c> AsRef<Proxy<'c>> for AccessibleProxyBlocking<'c>
source§impl<'c> Clone for AccessibleProxyBlocking<'c>
impl<'c> Clone for AccessibleProxyBlocking<'c>
source§fn clone(&self) -> AccessibleProxyBlocking<'c>
fn clone(&self) -> AccessibleProxyBlocking<'c>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more