mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Swift
		
	
| // Copyright © 2023 Rangeproof Pty Ltd. All rights reserved.
 | |
| 
 | |
| import UIKit
 | |
| import SessionUIKit
 | |
| import SessionUtilitiesKit
 | |
| 
 | |
| extension SessionCarouselView {
 | |
|     public struct Info {
 | |
|         let slices: [UIView]
 | |
|         let copyOfFirstSlice: UIView?
 | |
|         let copyOfLastSlice: UIView?
 | |
|         let sliceSize: CGSize
 | |
|         let sliceCount: Int
 | |
|         let shouldShowPageControl: Bool
 | |
|         let pageControlStyle: PageControlStyle
 | |
|         let shouldShowArrows: Bool
 | |
|         let arrowsSize: CGSize
 | |
|         let cornerRadius: CGFloat
 | |
|         
 | |
|         // MARK: - Initialization
 | |
|         
 | |
|         init(
 | |
|             slices: [UIView] = [],
 | |
|             copyOfFirstSlice: UIView? = nil,
 | |
|             copyOfLastSlice: UIView? = nil,
 | |
|             sliceSize: CGSize = .zero,
 | |
|             shouldShowPageControl: Bool = true,
 | |
|             pageControlStyle: PageControlStyle,
 | |
|             shouldShowArrows: Bool = true,
 | |
|             arrowsSize: CGSize = .zero,
 | |
|             cornerRadius: CGFloat = 0
 | |
|         ) {
 | |
|             self.slices = slices
 | |
|             self.copyOfFirstSlice = copyOfFirstSlice
 | |
|             self.copyOfLastSlice = copyOfLastSlice
 | |
|             self.sliceSize = sliceSize
 | |
|             self.sliceCount = slices.count
 | |
|             self.shouldShowPageControl = shouldShowPageControl && (self.sliceCount > 1)
 | |
|             self.pageControlStyle = pageControlStyle
 | |
|             self.shouldShowArrows = shouldShowArrows && (self.sliceCount > 1)
 | |
|             self.arrowsSize = arrowsSize
 | |
|             self.cornerRadius = cornerRadius
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     public struct PageControlStyle {
 | |
|         enum DotSize: CGFloat {
 | |
|             case mini = 0.5
 | |
|             case medium = 0.8
 | |
|             case original = 1
 | |
|         }
 | |
|         
 | |
|         let height: CGFloat?
 | |
|         let size: DotSize
 | |
|         let backgroundColor: UIColor
 | |
|         let bottomInset: CGFloat
 | |
|         
 | |
|         // MARK: - Initialization
 | |
|         
 | |
|         init(
 | |
|             height: CGFloat? = nil,
 | |
|             size: DotSize = .original,
 | |
|             backgroundColor: UIColor = .clear,
 | |
|             bottomInset: CGFloat = 0
 | |
|         ) {
 | |
|             self.height = height
 | |
|             self.size = size
 | |
|             self.backgroundColor = backgroundColor
 | |
|             self.bottomInset = bottomInset
 | |
|         }
 | |
|     }
 | |
| }
 |