slint/internal/compiler/tests/syntax/basic/rotation.slint
Ashley 0670cb1dc7
Handle rotating mouse events (#9317)
* Start on touch event rotation work

* [autofix.ci] apply automated fixes

* Use ItemTransform instead.

* [autofix.ci] apply automated fixes

* Use casts to deal with integer Coords on some platforms

* Remove rotation checks

* Transform the exit event as well

* Delete check_rotation pass

* Do casts around transform_point to handle i32 Coords

* Remove errors from rotation syntax test

* Basic event rotation test

Working changes

* Fix clicks on rotated objects

* Add RendererSealed::suppports_transformation for runtime checks

* [autofix.ci] apply automated fixes

* Add a few missing line breaks, only transform events if supported by
renderer

* Improve test

* Remove extra whitespace

* Get absolute-position working

* Ensure map_to_window does the coordinate cast thing.

* Manually test mouse-x and mouse-y, test absolute_position()

* Whitespace stuff again

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-12 00:13:14 +12:00

72 lines
2.1 KiB
Text

// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
export Ex1 := Rectangle {
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
Rectangle {
rotation-origin-x: width / 2;
rotation-angle: 45deg;
rotation-origin-y: width / 2;
}
Rectangle {
rotation-origin-x: width / 2;
rotation-origin-y: width / 2;
}
Text {
rotation-angle: 90deg;
}
}
RotImg := Image {
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
rotation-angle: 45deg;
}
JustAnImage := Image {}
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
ImageWithChild := Image {
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
Rectangle {}
}
export Ex2 := Rectangle {
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
Image {
rotation-angle: 45deg;
Rectangle {}
}
RotImg {
Rectangle {}
}
ImageWithChild {
rotation-origin-x: 45px;
}
JustAnImage {
rotation-angle: 45deg;
Rectangle {}
}
}
export Ex3 := Rectangle {
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
i1 := Image {
Rectangle {}
}
i2 := Rectangle {}
TouchArea {
clicked => {
i1.rotation-angle = 60deg;
i2.rotation-origin-x = 10px;
}
}
}
export component Ex4 {
in property rot <=> rect . rotation-angle;
rect := Rectangle {}
}