mirror of
https://github.com/slint-ui/slint.git
synced 2025-07-14 00:25:19 +00:00

Base the commercial license on the Royalty-free license adding clauses pertaining to the fees.
35 lines
1.1 KiB
Text
35 lines
1.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 component TabBarBase inherits TouchArea {
|
|
// injected properties:
|
|
// The currently selected tab
|
|
in-out property <int> current;
|
|
// The total number of tabs
|
|
in-out property <int> num-tabs;
|
|
|
|
// Returns the index of the previous tab
|
|
protected pure function previous-tab() -> int {
|
|
return Math.max(root.current - 1, 0);
|
|
}
|
|
|
|
// Returns the index of the next tab
|
|
protected pure function next-tab() -> int {
|
|
return Math.min(root.current + 1, root.num-tabs - 1);
|
|
}
|
|
|
|
private property <length> scroll-delta: 2px;
|
|
|
|
// Allows scrolling through the tabs
|
|
scroll-event(event) => {
|
|
if (event.delta-y < -root.scroll-delta) {
|
|
root.current = next-tab();
|
|
return accept;
|
|
}
|
|
if (event.delta-y > -root.scroll-delta) {
|
|
root.current = previous-tab();
|
|
return accept;
|
|
}
|
|
reject
|
|
}
|
|
}
|