mirror of
				https://github.com/slint-ui/slint.git
				synced 2025-10-31 03:54:25 +00:00 
			
		
		
		
	 3523e86359
			
		
	
	
		3523e86359
		
			
		
	
	
	
	
		
			
			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
 | |
|     }
 | |
| }
 |