// Copyright (C) 2024 Rubén Beltrán del Río // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see https://map.tranquil.systems. import AppKit extension NSFont { static func ronzino(size: CGFloat) -> NSFont { return NSFont(name: "Ronzino", size: size) ?? .systemFont(ofSize: size) } public struct Theme { struct SmallControl { @MainActor static let regular = NSFont.ronzino(size: Dimensions.FontSize.smallControl) @MainActor static let emphasized = NSFont.ronzino(size: Dimensions.FontSize.smallControl) } struct Editor { @MainActor static var regular: NSFont { if UserDefaults.standard.bool(forKey: "useCustomEditorFont"), let customEditorFontName = UserDefaults.standard.string(forKey: "customEditorFontName"), !customEditorFontName.isEmpty { return NSFontManager.shared.font( withFamily: customEditorFontName, traits: NSFontTraitMask(), weight: 5, size: Dimensions.FontSize.editor) ?? .monospacedSystemFont(ofSize: Dimensions.FontSize.editor, weight: .regular) } return .monospacedSystemFont(ofSize: Dimensions.FontSize.editor, weight: .regular) } } } }