mirror of
https://github.com/slint-ui/slint.git
synced 2025-08-04 02:39:28 +00:00
Changelog: Add accessible-selectable
and accessible-selected
properties
This commit is contained in:
parent
66ebcbd1b7
commit
19f09950c2
8 changed files with 60 additions and 0 deletions
|
@ -316,6 +316,32 @@ public:
|
|||
return std::nullopt;
|
||||
}
|
||||
|
||||
/// Returns the accessible-selected of that element, if any.
|
||||
std::optional<bool> accessible_selected() const
|
||||
{
|
||||
if (auto result = get_accessible_string_property(
|
||||
cbindgen_private::AccessibleStringProperty::Selected)) {
|
||||
if (*result == "true")
|
||||
return true;
|
||||
else if (*result == "false")
|
||||
return false;
|
||||
}
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
/// Returns the accessible-selectable of that element, if any.
|
||||
std::optional<bool> accessible_selectable() const
|
||||
{
|
||||
if (auto result = get_accessible_string_property(
|
||||
cbindgen_private::AccessibleStringProperty::Selectable)) {
|
||||
if (*result == "true")
|
||||
return true;
|
||||
else if (*result == "false")
|
||||
return false;
|
||||
}
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
/// Sets the accessible-value of that element.
|
||||
///
|
||||
/// Setting the value will invoke the `accessible-action-set-value` callback.
|
||||
|
|
|
@ -588,6 +588,28 @@ impl ElementHandle {
|
|||
.and_then(|item| item.parse().ok())
|
||||
}
|
||||
|
||||
/// Returns the value of the `accessible-selected` property, if present
|
||||
pub fn accessible_selected(&self) -> Option<bool> {
|
||||
if self.element_index != 0 {
|
||||
return None;
|
||||
}
|
||||
self.item
|
||||
.upgrade()
|
||||
.and_then(|item| item.accessible_string_property(AccessibleStringProperty::Selected))
|
||||
.and_then(|item| item.parse().ok())
|
||||
}
|
||||
|
||||
/// Returns the value of the `accessible-selectable` property, if present
|
||||
pub fn accessible_selectable(&self) -> Option<bool> {
|
||||
if self.element_index != 0 {
|
||||
return None;
|
||||
}
|
||||
self.item
|
||||
.upgrade()
|
||||
.and_then(|item| item.accessible_string_property(AccessibleStringProperty::Selectable))
|
||||
.and_then(|item| item.parse().ok())
|
||||
}
|
||||
|
||||
/// Returns the size of the element in logical pixels. This corresponds to the value of the `width` and
|
||||
/// `height` properties in Slint code. Returns a zero size if the element is not valid.
|
||||
pub fn size(&self) -> i_slint_core::api::LogicalSize {
|
||||
|
|
|
@ -120,6 +120,8 @@ pub fn reserved_accessibility_properties() -> impl Iterator<Item = (&'static str
|
|||
"accessible-action-set-value",
|
||||
Type::Callback { return_type: None, args: vec![Type::String] },
|
||||
),
|
||||
("accessible-selectable", Type::Bool),
|
||||
("accessible-selected", Type::Bool),
|
||||
]
|
||||
.into_iter()
|
||||
}
|
||||
|
|
|
@ -112,6 +112,8 @@ export component ListItem {
|
|||
layout := HorizontalLayout {
|
||||
padding-bottom: 8px;
|
||||
accessible-role: list-item;
|
||||
accessible-selectable: true;
|
||||
accessible-selected: root.is-selected;
|
||||
|
||||
StateLayerBase {
|
||||
width: 100%;
|
||||
|
|
|
@ -74,6 +74,8 @@ export component ListItem {
|
|||
padding-left: root.padding-horizontal;
|
||||
padding-right: root.padding-horizontal;
|
||||
accessible-role: list-item;
|
||||
accessible-selectable: true;
|
||||
accessible-selected: root.is-selected;
|
||||
|
||||
i-background := Rectangle {
|
||||
background: transparent;
|
||||
|
|
|
@ -79,6 +79,8 @@ export component ListItem {
|
|||
padding-right: 16px;
|
||||
spacing: 4px;
|
||||
accessible-role: list-item;
|
||||
accessible-selectable: true;
|
||||
accessible-selected: root.is-selected;
|
||||
|
||||
i-text := Text {
|
||||
text: root.item.text;
|
||||
|
|
|
@ -146,6 +146,8 @@ export component ListItem {
|
|||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
accessible-role: list-item;
|
||||
accessible-selectable: true;
|
||||
accessible-selected: root.is-selected;
|
||||
|
||||
label := Text {
|
||||
text: root.item.text;
|
||||
|
|
|
@ -21,6 +21,8 @@ pub enum AccessibleStringProperty {
|
|||
Description,
|
||||
Label,
|
||||
PlaceholderText,
|
||||
Selectable,
|
||||
Selected,
|
||||
Value,
|
||||
ValueMaximum,
|
||||
ValueMinimum,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue