initial
This commit is contained in:
84
Pods/SwiftEntryKit/Source/Model/EntryAttributes/EKAttributes+UserInteraction.swift
generated
Normal file
84
Pods/SwiftEntryKit/Source/Model/EntryAttributes/EKAttributes+UserInteraction.swift
generated
Normal file
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// EKAttributes+UserInteraction.swift
|
||||
// SwiftEntryKit
|
||||
//
|
||||
// Created by Daniel Huri on 4/21/18.
|
||||
// Copyright (c) 2018 huri000@gmail.com. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
public extension EKAttributes {
|
||||
|
||||
/** Describes the user interaction events that are triggered as the user taps the entry / screen */
|
||||
struct UserInteraction {
|
||||
|
||||
/** Code that is executed when the user taps the entry / screen */
|
||||
public typealias Action = () -> ()
|
||||
|
||||
/** The default event that happens as the user interacts */
|
||||
public enum Default {
|
||||
|
||||
/** Absorbs touches. The entry / screen does nothing (Swallows the touch) */
|
||||
case absorbTouches
|
||||
|
||||
/** Touches delay the exit of the entry */
|
||||
case delayExit(by: TimeInterval)
|
||||
|
||||
/** Taps dismiss the entry immediately */
|
||||
case dismissEntry
|
||||
|
||||
/** Touches are forwarded to the lower window (In most cases it would be the application main window that will handle it */
|
||||
case forward
|
||||
}
|
||||
|
||||
var isResponsive: Bool {
|
||||
switch defaultAction {
|
||||
case .forward:
|
||||
return false
|
||||
default:
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
var isDelayExit: Bool {
|
||||
switch defaultAction {
|
||||
case .delayExit:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
/** A default action that is executed when the entry or the screen are interacted by the user */
|
||||
public var defaultAction: Default
|
||||
|
||||
/** Additional actions that can be customized by the user */
|
||||
public var customTapActions: [Action]
|
||||
|
||||
public init(defaultAction: Default = .absorbTouches, customTapActions: [Action] = []) {
|
||||
self.defaultAction = defaultAction
|
||||
self.customTapActions = customTapActions
|
||||
}
|
||||
|
||||
/** Dismiss action */
|
||||
public static var dismiss: UserInteraction {
|
||||
return UserInteraction(defaultAction: .dismissEntry)
|
||||
}
|
||||
|
||||
/** Forward action */
|
||||
public static var forward: UserInteraction {
|
||||
return UserInteraction(defaultAction: .forward)
|
||||
}
|
||||
|
||||
/** Absorb touches action */
|
||||
public static var absorbTouches: UserInteraction {
|
||||
return UserInteraction(defaultAction: .absorbTouches)
|
||||
}
|
||||
|
||||
/** Delay exit action */
|
||||
public static func delayExit(by delay: TimeInterval) -> UserInteraction {
|
||||
return UserInteraction(defaultAction: .delayExit(by: delay))
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user