// // ExtensionPoint.swift // NetNewsWire // // Created by Maurice Parker on 4/7/20. // Copyright © 2020 Ranchero Software. All rights reserved. // #if os(macOS) import AppKit #else import UIKit #endif import RSCore protocol ExtensionPoint { static var isSinglton: Bool { get } static var isDeveloperBuildRestricted: Bool { get } static var title: String { get } static var templateImage: RSImage { get } static var description: NSAttributedString { get } var title: String { get } var extensionPointID: ExtensionPointIdentifer { get } } extension ExtensionPoint { var templateImage: RSImage { return extensionPointID.extensionPointType.templateImage } var description: NSAttributedString { return extensionPointID.extensionPointType.description } static func makeAttrString(_ text: String) -> NSMutableAttributedString { let paragraphStyle = NSMutableParagraphStyle() paragraphStyle.alignment = .center #if os(macOS) let attrs = [ NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.font: NSFont.systemFont(ofSize: NSFont.systemFontSize), NSAttributedString.Key.foregroundColor: NSColor.textColor ] #else let attrs = [ NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.font: UIFont.preferredFont(forTextStyle: .body), NSAttributedString.Key.foregroundColor: UIColor.label ] #endif return NSMutableAttributedString(string: text, attributes: attrs) } }