slint/internal/compiler/widgets/common/tabwidget-base.slint
Aurindam Jana 3523e86359
Simplify commercial license (#3063)
Base the commercial license on the Royalty-free license adding clauses pertaining to the fees.
2024-05-31 14:06:17 +02:00

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
}
}