//
|
// EKAttributes+Presets.swift
|
// SwiftEntryKit
|
//
|
// Created by Daniel Huri on 4/23/18.
|
//
|
|
import Foundation
|
|
public extension EKAttributes {
|
|
/** Default attributes - Can be mutated according to the hosting application theme */
|
static var `default` = EKAttributes()
|
|
/** Toast preset - The frame fills margins and safe area is filled with background view */
|
static var toast: EKAttributes {
|
var attributes = EKAttributes()
|
attributes.positionConstraints = .fullWidth
|
attributes.positionConstraints.safeArea = .empty(fillSafeArea: true)
|
attributes.windowLevel = .statusBar
|
attributes.scroll = .edgeCrossingDisabled(swipeable: true)
|
attributes.popBehavior = .animated(animation: .translation)
|
return attributes
|
}
|
|
/** Float preset - The frame is margined and the safe area is left cleared */
|
static var float: EKAttributes {
|
var attributes = EKAttributes()
|
attributes.positionConstraints = .float
|
attributes.roundCorners = .all(radius: 10)
|
attributes.positionConstraints.safeArea = .empty(fillSafeArea: false)
|
attributes.windowLevel = .statusBar
|
return attributes
|
}
|
|
/** Preset for top float entry */
|
static var topFloat: EKAttributes {
|
var attributes = float
|
attributes.position = .top
|
return attributes
|
}
|
|
/** Preset for a bottom float entry */
|
static var bottomFloat: EKAttributes {
|
var attributes = float
|
attributes.position = .bottom
|
return attributes
|
}
|
|
/** Preset for a center float entry */
|
static var centerFloat: EKAttributes {
|
var attributes = float
|
attributes.position = .center
|
return attributes
|
}
|
|
/** Preset for a bottom toast entry */
|
static var bottomToast: EKAttributes {
|
var attributes = toast
|
attributes.position = .bottom
|
return attributes
|
}
|
|
/** Preset for a top toast entry */
|
static var topToast: EKAttributes {
|
var attributes = toast
|
attributes.position = .top
|
return attributes
|
}
|
|
/** Preset for a top note entry */
|
static var topNote: EKAttributes {
|
var attributes = topToast
|
attributes.scroll = .disabled
|
attributes.windowLevel = .normal
|
attributes.entryInteraction = .absorbTouches
|
return attributes
|
}
|
|
/** Preset for a bottom note entry */
|
static var bottomNote: EKAttributes {
|
var attributes = bottomToast
|
attributes.scroll = .disabled
|
attributes.windowLevel = .normal
|
attributes.entryInteraction = .absorbTouches
|
return attributes
|
}
|
|
/** Preset for a status bar entry - appears on top of the status bar */
|
static var statusBar: EKAttributes {
|
var attributes = topToast
|
attributes.windowLevel = .statusBar
|
attributes.entryInteraction = .absorbTouches
|
attributes.positionConstraints.safeArea = .overridden
|
return attributes
|
}
|
}
|