1// Copyright © SixtyFPS GmbH <info@slint.dev>
2// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
3
4
5
6TestCase := Rectangle {
7 width: 100phx;
8 height: 100phx;
9 background: white;
10 property<int> top_level: 42;
11
12 property<bool> cond1;
13
14 Rectangle {
15 property <string> blah: "ddd";
16 Rectangle {
17 property <bool> cc <=> cond1;
18 property <bool> blah: false;
19 if (cc || self.blah) : TouchArea {
20 property <int> cc: 0;
21 clicked => {
22 root.top_level += 50;
23 }
24 }
25 }
26 }
27
28}
29
30
31/*
32```cpp
33auto handle = TestCase::create();
34const TestCase &instance = *handle;
35
36// condition is false
37slint_testing::send_mouse_click(&instance, 5., 5.);
38assert_eq(instance.get_top_level(), 42);
39
40instance.set_cond1(true);
41slint_testing::send_mouse_click(&instance, 5., 5.);
42assert_eq(instance.get_top_level(), 92);
43
44instance.set_cond1(false);
45slint_testing::send_mouse_click(&instance, 5., 5.);
46assert_eq(instance.get_top_level(), 92);
47```
48
49
50```rust
51let instance = TestCase::new().unwrap();
52
53slint_testing::send_mouse_click(&instance, 5., 5.);
54assert_eq!(instance.get_top_level(), 42);
55
56instance.set_cond1(true);
57slint_testing::send_mouse_click(&instance, 5., 5.);
58assert_eq!(instance.get_top_level(), 92);
59
60instance.set_cond1(false);
61slint_testing::send_mouse_click(&instance, 5., 5.);
62assert_eq!(instance.get_top_level(), 92);
63```
64
65```js
66var instance = new slint.TestCase();
67slintlib.private_api.send_mouse_click(instance, 5., 5.);
68assert.equal(instance.top_level, 42);
69
70instance.cond1 = true;
71slintlib.private_api.send_mouse_click(instance, 5., 5.);
72assert.equal(instance.top_level, 92);
73
74instance.cond1 = false;
75slintlib.private_api.send_mouse_click(instance, 5., 5.);
76assert.equal(instance.top_level, 92);
77```
78*/
79