1#![allow(deprecated)]slint::slint!{#[include_path=r#"/input/slint/tests/driver/driverlib/../../cases/bindings"#]
2// Copyright © SixtyFPS GmbH <info@slint.dev>
3// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.1 OR LicenseRef-Slint-commercial
4
5SubElem := Rectangle {
6 property <int> value: sub.value;
7 callback change();
8 change => { sub.value += 44; }
9 sub := Rectangle {
10 property <int> value: 55;
11 }
12}
13
14TestCase := Rectangle {
15 callback change();
16 change => { sub.change() }
17 property <int> toplevel: sub.value + 1;
18 sub := SubElem { }
19}
20
21
22/*
23
24```rust
25let instance = TestCase::new().unwrap();
26assert_eq!(instance.get_toplevel(), 56);
27instance.invoke_change();
28assert_eq!(instance.get_toplevel(), 56+44);
29```
30
31
32```cpp
33auto handle = TestCase::create();
34const TestCase &instance = *handle;
35assert_eq(instance.get_toplevel(), 56);
36instance.invoke_change();
37assert_eq(instance.get_toplevel(), 56+44);
38```
39
40```js
41var instance = new slint.TestCase({});
42assert.equal(instance.toplevel, 56);
43instance.change();
44assert.equal(instance.toplevel, 56+44);
45```
46
47*/
48}
49
50#[test] fn t_0() -> std::result::Result<(), std::boxed::Box<dyn std::error::Error>> {
51 use i_slint_backend_testing as slint_testing;
52 slint_testing::init();
53 let instance = TestCase::new().unwrap();
54 assert_eq!(instance.get_toplevel(), 56);
55 instance.invoke_change();
56 assert_eq!(instance.get_toplevel(), 56+44);
57 Ok(())
58}