Files
OrderScheduling/Pods/SwiftEntryKit/Source/Model/EKRatingMessage.swift
DDIsFriend f0e8a1709d initial
2023-08-18 17:28:57 +08:00

61 lines
1.7 KiB
Swift

//
// EKRatingMessage.swift
// SwiftEntryKit
//
// Created by Daniel Huri on 6/1/18.
// Copyright (c) 2018 huri000@gmail.com. All rights reserved.
//
import Foundation
public struct EKRatingMessage {
// NOTE: Intentionally a reference type
class SelectedIndex {
var selectedIndex: Int!
}
/** Selection */
public typealias Selection = (Int) -> Void
/** Initial title */
public var initialTitle: EKProperty.LabelContent
/** Initial description */
public var initialDescription: EKProperty.LabelContent
/** Rating items */
public var ratingItems: [EKProperty.EKRatingItemContent]
/** Button bar content appears after selection */
public var buttonBarContent: EKProperty.ButtonBarContent
/** Selection event - Each time the user interacts a rating star */
public var selection: Selection!
let selectedIndexRef = SelectedIndex()
/** Selected index (if there is one) */
public var selectedIndex: Int? {
get {
return selectedIndexRef.selectedIndex
}
set {
selectedIndexRef.selectedIndex = newValue
}
}
/** Initializer */
public init(initialTitle: EKProperty.LabelContent,
initialDescription: EKProperty.LabelContent,
ratingItems: [EKProperty.EKRatingItemContent],
buttonBarContent: EKProperty.ButtonBarContent,
selection: Selection? = nil) {
self.initialTitle = initialTitle
self.initialDescription = initialDescription
self.ratingItems = ratingItems
self.buttonBarContent = buttonBarContent
self.selection = selection
}
}