Proto commits in slint-ui/slint

These 33 commits are when the Protocol Buffers files have changed:

Commit:ee963ac
Author:Simon Hausmann

system testing / MCP: Expose the window scale factor in the window properties

Commit:4bc189b
Author:Olivier Goffart
Committer:GitHub

accessibility: Add landmark accessible roles (#11831) Add banner, complementary, content-info, form, main, navigation, region, and search roles to AccessibleRole with mappings for the AccessKit, Qt, and testing backends. Use navigation and main landmarks in the gallery demo.

Commit:d37ca00
Author:Till Adam
Committer:GitHub

Add MCP event log for processed window events (#11665) - add an internal window-event dispatch hook and shared testing-backend event ring buffer - expose get_event_log and clear_event_log MCP tools, plus systest responses for the same log - record pointer/key/window events with sequence cursors, dropped counts, and key processing results - preserve extended pointer buttons and keep event-log pagination/clear cursors monotonic

Commit:1ddcc3b
Author:Ioan Michnea
Committer:GitHub

widgets: Add RadioGroup (#11141) * feat: add RadioGroup and docs/example updates

Commit:bb9d6aa
Author:Till Adam
Committer:Simon Hausmann

Drive MCP tool definitions and dispatch from proto messages Replace hand-written JSON schemas and manual string parsing with proto-driven generation: - Add RequestGetElementTree, RequestDispatchKeyEvent, and KeyEventType to slint_systest.proto so all 12 MCP tools have proto counterparts - Generate JSON schemas from proto descriptors at build time in build.rs - Replace 160 lines of hand-written JSON with a declarative TOOLS table mapping tool names to proto request types - Unify all tool handlers to use deserialize_params with proto types, eliminating manual string matching for enums and field extraction

Commit:a0415da
Author:Till Adam
Committer:Simon Hausmann

Add drag gesture simulation to testing backend and MCP server Add drag() and mock_drag() methods to ElementHandle that simulate a pointer drag from the element's center to a target position. The pointer is pressed at center, moved in interpolated ~5px steps (below the 8px DISTANCE_THRESHOLD), then released at the target. Zero-distance drags short-circuit to a press-release without spurious move events. Expose the new capability through both transports: - systest: RequestElementDrag / ElementDragResponse proto messages - MCP: drag_element tool with targetX, targetY, optional button Also adds MCP server documentation to the testing backend README and two unit tests covering normal drags and zero-distance edge case.

Commit:1b79aed
Author:David Faure
Committer:David Faure

Rename FlexBoxLayout to FlexboxLayout and LayoutKind::FlexBox -> LayoutKind::FlexboxLayout for consistency with the other enum values in LayoutKind In internal/backends/testing/slint_systest.proto, move the comment about Unknown to the AccessibleRole where it initially belonged (commit 2cad49eb9b32c inserted enum LayoutKind between the comment and the AccessibleRole enum) Fixes #11152

Commit:a337105
Author:Till Adam
Committer:Simon Hausmann

Address review: use LayoutKind enum, rename proto variants, add tests - Replace SharedString return with a proper LayoutKind enum in ElementHandle::layout_kind() - Rename proto enum variants to match element names (HorizontalLayout, VerticalLayout, GridLayout) - Add test covering all layout kinds and non-layout elements

Commit:2cad49e
Author:Till Adam
Committer:Simon Hausmann

Expose layout kind through the test protocol Encode the layout kind (h-box, v-box, grid, flex-box) as a third field in the debug info string emitted by the compiler, and surface it through ItemRc, ElementHandle, and the systest protobuf protocol. This allows test tooling to distinguish layout elements from plain rectangles.

Commit:2949410
Author:Arnold Loubriat
Committer:Simon Hausmann

Add `AccessibleRole.radio-button`

Commit:f0c3df8
Author:Simon Hausmann
Committer:Simon Hausmann

system-testing: Make the image format for snapshots configurable Let the image crate pick an encoder by mime-type, otherwise fall back to png. Renaming the field in the response is compatible, as only the tag numbers are encoded. Adding a field to the request is also compatible as every field is optional.

The documentation is generated from this commit.

Commit:ccf651c
Author:Simon Hausmann

system testing: Expose accessible-enabled and accessible-read-only

Commit:864fbf0
Author:Simon Hausmann

system testing: Expose accessible-placeholder-text in the element properties

Commit:90c337f
Author:Arnold Loubriat
Committer:GitHub

Add `AccessibleRole::Image` and use it in the `AboutSlint` widget (#7593) * Add `AccessibleRole::Image` * Improve accessibility of the `AboutSlint` widget * Filter out some images from the accessibility tree

Commit:358e42a
Author:Arnold Loubriat
Committer:Simon Hausmann

Add the `accessible-action-expand` action

Commit:aa33220
Author:Simon Hausmann
Committer:Simon Hausmann

Rename AccessibleRole.GroupBox to AccessibleRole.Groupbox While unfortunate in casing, this is consistent with Checkbox, Combobox, and Spinbox.

Commit:3e94bd2
Author:Olivier Goffart
Committer:Olivier Goffart

Janitor: Remove trailing whitespaces from all files `git grep -I -l -O'sed -i "s/[[:space:]]*$//"' -e ''`

Commit:4919672
Author:Arnold Loubriat
Committer:Simon Hausmann

Add `AccessibleRole::GroupBox`

Commit:3304df0
Author:Arnold Loubriat
Committer:Simon Hausmann

Add `AccessibleRole::TabPanel`

Commit:b2873a3
Author:Simon Hausmann
Committer:Simon Hausmann

ui-testing: Add support for reading the computed opacity of elements This is useful when the UI shows for example labels that appear and the screenshot for referenceing is meant to be taken when the opacity animation is complete and the value is (near) 1.0.

Commit:f014202
Author:Arnold Loubriat
Committer:Simon Hausmann

Changelog: Introduce `AccessibleRole::ListItem`

Commit:12f5343
Author:Simon Hausmann
Committer:Simon Hausmann

Add the window's root element handle to the window properties

Commit:69e5a8a
Author:Simon Hausmann
Committer:Simon Hausmann

System Testing: Add descendent and element id/type/role matching messages

Commit:9e8fccb
Author:Simon Hausmann
Committer:Simon Hausmann

system testing: Add support for dispatching pointer and key window events

Commit:e35d05f
Author:Simon Hausmann
Committer:Simon Hausmann

API Review: Remove SharedImageBuffer from public API and rename Window::grab_window() to take_snapshot() Use SharedPixelBuffer as return value for take_snapshot() and provide counter-parts to from_rgb* in Image as to_rgb*

Commit:7f05b8a
Author:Simon Hausmann
Committer:Simon Hausmann

Changed ElementHandle click API to a single_click and double_click function taking the button That way one can also simulate double right click, for example. This is a little less convenient, more generic, but a reasonable compromise (perhaps :-)

Commit:e78e68a
Author:Simon Hausmann
Committer:Simon Hausmann

System Testing: Add support for clicking on elements

Commit:155156a
Author:Simon Hausmann
Committer:Simon Hausmann

System testing: Add support for grabbing window contents as PNG encoded image

Commit:142b1eb
Author:Simon Hausmann
Committer:Simon Hausmann

System Testing: Expose the accessibility role of elements

Commit:1c6aade
Author:Simon Hausmann
Committer:Simon Hausmann

Add support for setting the accessible value

Commit:e071ba9
Author:Simon Hausmann
Committer:Simon Hausmann

Add a way to invoke accessibility actions

Commit:97343b2
Author:Simon Hausmann
Committer:Simon Hausmann

Testing: Add the ability to locate elements by id and expose various properties

Commit:4591ad8
Author:Simon Hausmann
Committer:Simon Hausmann

Add plumbing for system testing