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