slint/sixtyfps_compiler/tests/syntax/basic/dialog.60
2021-10-28 15:52:29 +02:00

64 lines
2.1 KiB
Text

/* LICENSE BEGIN
This file is part of the SixtyFPS Project -- https://sixtyfps.io
Copyright (c) 2021 Olivier Goffart <olivier.goffart@sixtyfps.io>
Copyright (c) 2021 Simon Hausmann <simon.hausmann@sixtyfps.io>
SPDX-License-Identifier: GPL-3.0-only
This file is also available under commercial licensing terms.
Please contact info@sixtyfps.io for more information.
LICENSE END */
import { StandardButton } from "sixtyfps_widgets.60";
MyDiag1 := Dialog {
Rectangle {}
StandardButton { kind: cancel; }
Rectangle {}
// ^error{A Dialog can have only one child element that is not a StandardButton}
}
MyDiag2 := Dialog {
// ^error{A Dialog must have a single child element that is not StandardButton}
StandardButton { kind: reset; }
StandardButton {
kind: cancel;
col: 42;
// ^error{col used outside of a GridLayout}
rowspan: 2;
// ^error{rowspan used outside of a GridLayout}
}
}
MyDiag3 := Dialog {
Rectangle { }
StandardButton { kind: ok; }
StandardButton { }
// ^error{The `kind` property of the StandardButton in a Dialog must be set}
StandardButton { kind: true ? ok : cancel; }
// ^error{The `kind` property of the StandardButton in a Dialog must be known at compile-time}
StandardButton { kind: ok; }
// ^error{Duplicated `kind`: There are two StandardButton in this Dialog with the same kind}
}
MyDialog4 := Dialog {
StandardButton { kind: ok; }
Rectangle { dialog-button-role: accept; }
Rectangle { dialog-button-role: none; }
// ^error{The `dialog-button-role` cannot be set explicitly to none}
Rectangle { dialog-button-role: true ? accept : reject; }
// ^error{The `dialog-button-role` property must be known at compile-time}
Rectangle {
Rectangle { dialog-button-role: accept; }
// ^error{dialog-button-role used outside of a Dialog}
}
}
Test := Rectangle {
MyDiag1 {}
MyDiag2 {}
MyDiag3 {}
MyDialog4 {}
}