// 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
Wrap := Rectangle {
// ><warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
property woo <=> text.wrap;
VerticalLayout {
// > <error{The binding for the property 'layout-cache' is part of a binding loop (square.width -> layout-cache -> text.width -> layoutinfo-v -> layout-cache -> height -> square.height -> square.width)}
// > <^error{The binding for the property 'height' is part of a binding loop (square.width -> layout-cache -> text.width -> layoutinfo-v -> layout-cache -> height -> square.height -> square.width)}
HorizontalLayout {
// > <error{The binding for the property 'layout-cache' is part of a binding loop (square.width -> layout-cache -> text.width -> layoutinfo-v -> layout-cache -> height -> square.height -> square.width)}
// > <^error{The binding for the property 'width' is part of a binding loop (square.width -> layout-cache -> text.width -> layoutinfo-v -> layout-cache -> height -> square.height -> square.width)}
// > <^^error{The binding for the property 'layoutinfo-v' is part of a binding loop (square.width -> layout-cache -> text.width -> layoutinfo-v -> layout-cache -> height -> square.height -> square.width)}
text := Text {
text: "Hello World";
}
square := Rectangle {
// > <error{The binding for the property 'height' is part of a binding loop (square.width -> layout-cache -> text.width -> layoutinfo-v -> layout-cache -> height -> square.height -> square.width)}
width: height;
// > <error{The binding for the property 'width' is part of a binding loop (square.width -> layout-cache -> text.width -> layoutinfo-v -> layout-cache -> height -> square.height -> square.width)}
background: violet;
}
}
Rectangle {}
}
property <bool> test: square.width == square.height;
}
export Test := Window {
// ><warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
// > <^warning{The binding for the property 'layoutinfo-v' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^^warning{The binding for the property 'layoutinfo-h' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
property <image> source;
GridLayout {
// > <warning{The binding for the property 'width' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^warning{The binding for the property 'layout-cache-h' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^^warning{The binding for the property 'width' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^^^warning{The binding for the property 'layoutinfo-v' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^^^^warning{The binding for the property 'height' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^^^^^warning{The binding for the property 'layout-cache-v' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^^^^^^warning{The binding for the property 'height' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
// > <^^^^^^^warning{The binding for the property 'layoutinfo-h' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
Image {
source: root.source;
}
Rectangle {
width: height;
// > <warning{The binding for the property 'width' is part of a binding loop (root.layoutinfo-h -> width -> layout-cache-h -> width -> layoutinfo-v -> root.layoutinfo-v -> height -> layout-cache-v -> height -> width -> layoutinfo-h -> root.layoutinfo-h).↵This was allowed in previous version of Slint, but is deprecated and may cause panic at runtime}
}
}
w := Wrap { }
callback set_wrap();
set_wrap => { w.woo = TextWrap.word-wrap; }
}