Files
Termind/Frameworks/TermindPresentation/Terminal/TerminalFontSettings.swift
T

27 lines
938 B
Swift

import SwiftUI
import TermindApplication
import TermindDomain
/// Shares device-local typography between Settings and every mounted terminal.
@propertyWrapper
public struct TerminalFontSettings: DynamicProperty {
@AppStorage(SettingsKey.terminalFontFamily) private var family = ""
@AppStorage(SettingsKey.terminalFontSize) private var size = 12.0
@AppStorage(SettingsKey.terminalFontFollowTheme) private var sizeFollowsTheme = true
public init() {}
public var wrappedValue: TerminalFontPreferences {
get { TerminalFontPreferences(family: family, size: size, sizeFollowsTheme: sizeFollowsTheme) }
nonmutating set {
family = newValue.family
size = newValue.size
sizeFollowsTheme = newValue.sizeFollowsTheme
}
}
public var projectedValue: Binding<TerminalFontPreferences> {
Binding(get: { wrappedValue }, set: { wrappedValue = $0 })
}
}