/** * Splash * Copyright (c) John Sundell 2018 * MIT license - see LICENSE.md */ import Foundation /// A representation of a font, for use with a `Theme`. /// Since Splash aims to be cross-platform, it uses this /// simplified color representation rather than `NSFont` /// or `UIFont`. public struct Font { /// The underlying resource used to load the font public var resource: Resource /// The size (in points) of the font public var size: Double /// Initialize an instance with a path to a font file /// on disk and a size. public init(path: String, size: Double) { #if os(macOS) resource = .path((path as NSString).expandingTildeInPath) #else resource = .path(path) #endif self.size = size } /// Initialize an instance with a size, and use an /// appropriate system font to render text. public init(size: Double) { resource = .system self.size = size } } public extension Font { /// Enum describing how to load the underlying resource for a font enum Resource { /// Use an appropriate system font case system /// Load a font file from a given file system path case path(String) } }