slint/internal/compiler/widgets/common/tabwidget-base.slint
Aurindam Jana 9a3aa265d5
Update Royalty-free license (#5257)
Add clarification that Application may not expose Slint APIs.
2024-05-31 10:53:19 +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-commercial
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
}
}