Skip to content

Commit

Permalink
Move all aliases to a common file, some formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
mattmassicotte committed Dec 21, 2023
1 parent 97d8fda commit 88a4759
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 58 deletions.
18 changes: 15 additions & 3 deletions Sources/NSUI/Aliases.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@ public typealias NSUIApplicationDelegate = NSApplicationDelegate
@available(macOS 11.0, *)
public typealias NSUIApplicationDelegateAdaptor = NSApplicationDelegateAdaptor
public typealias NSUIColor = NSColor
public typealias NSUIImage = NSImage
public typealias NSUILongPressGestureRecognizer = NSPressGestureRecognizer
public typealias NSUIPasteboard = NSPasteboard
public typealias NSUIResponder = NSResponder
public typealias NSUITapGestureRecognizer = NSClickGestureRecognizer
public typealias NSUITextView = NSTextView
public typealias NSUIView = NSView
public typealias NSUIViewController = NSViewController
public typealias NSUIHostingController = NSHostingController
public typealias NSUIWorkspace = NSWorkspace
public typealias NSUIPasteboard = NSPasteboard

#elseif canImport(UIKit)
import UIKit
Expand All @@ -21,10 +27,16 @@ public typealias NSUIApplicationDelegate = UIApplicationDelegate
@available(iOS 14.0, tvOS 14.0, *)
public typealias NSUIApplicationDelegateAdaptor = UIApplicationDelegateAdaptor
public typealias NSUIColor = UIColor
public typealias NSUIImage = UIImage
public typealias NSUILongPressGestureRecognizer = UILongPressGestureRecognizer
public typealias NSUITapGestureRecognizer = UITapGestureRecognizer
public typealias NSUIWorkspace = UIApplication
@available(tvOS, unavailable)
public typealias NSUIPasteboard = UIPasteboard
public typealias NSUIResponder = UIResponder
public typealias NSUITapGestureRecognizer = UITapGestureRecognizer
public typealias NSUITextView = UITextView
public typealias NSUIView = UIView
public typealias NSUIViewController = UIViewController
public typealias NSUIHostingController = UIHostingController
public typealias NSUIWorkspace = UIApplication

#endif
15 changes: 0 additions & 15 deletions Sources/NSUI/Controllers.swift

This file was deleted.

56 changes: 29 additions & 27 deletions Sources/NSUI/Image.swift
Original file line number Diff line number Diff line change
@@ -1,46 +1,48 @@
import SwiftUI

#if canImport(AppKit)
public typealias NSUIImage = NSImage
#elseif canImport(UIKit)
public typealias NSUIImage = UIImage
#endif

extension Image {
public init(nsuiImage: NSUIImage) {
#if canImport(AppKit)
public init(nsuiImage: NSUIImage) {
self.init(nsImage: nsuiImage)
}
#elseif canImport(UIKit)
public init(nsuiImage: NSUIImage) {
self.init(uiImage: nsuiImage)
#endif
}
#endif
}

@available(iOS 16.0, macOS 13.0, tvOS 16.0, watchOS 9.0, *)
extension ImageRenderer {
@MainActor
public var nsuiImage: NSUIImage? {
#if canImport(AppKit)
return nsImage
#elseif canImport(UIKit)
return uiImage
#endif
}
@MainActor
public var nsuiImage: NSUIImage? {
#if canImport(AppKit)
return nsImage
#elseif canImport(UIKit)
return uiImage
#else
return nil
#endif
}
}

#if canImport(AppKit)
extension NSImage {
public var cgImage: CGImage? {
guard let imageData = self.tiffRepresentation,
let bitmap = NSBitmapImageRep(data: imageData) else {
return nil
}
return bitmap.cgImage
}

@available(macOS 11.0, *)
public convenience init?(systemName: String) {
self.init(systemSymbolName: systemName, accessibilityDescription: systemName)
}
public var cgImage: CGImage? {
guard
let imageData = self.tiffRepresentation,
let bitmap = NSBitmapImageRep(data: imageData)
else {
return nil
}

return bitmap.cgImage
}

@available(macOS 11.0, *)
public convenience init?(systemName: String) {

This comment has been minimized.

Copy link
@martindufort

martindufort Dec 27, 2023

Contributor

That's a great addition....

This comment has been minimized.

Copy link
@mattmassicotte
self.init(systemSymbolName: systemName, accessibilityDescription: systemName)
}
}
#endif
4 changes: 0 additions & 4 deletions Sources/NSUI/TextView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ public extension NSTextStorage {

public typealias NSUITextStorageEditActions = NSTextStorageEditActions

public typealias NSUITextView = NSTextView

public extension NSTextView {
var text: String {
get { return string }
Expand All @@ -21,6 +19,4 @@ import UIKit

public typealias NSUITextStorageEditActions = NSTextStorage.EditActions

public typealias NSUITextView = UITextView

#endif
9 changes: 0 additions & 9 deletions Sources/NSUI/Views.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ import SwiftUI
#if canImport(AppKit)
import AppKit

public typealias NSUIView = NSView

public typealias NSUIResponder = NSResponder

extension NSUIResponder {
public var canBecomeFirstResponder: Bool {
get { acceptsFirstResponder }
Expand All @@ -16,13 +12,8 @@ extension NSUIResponder {
#elseif canImport(UIKit)
import UIKit

public typealias NSUIView = UIView

// I think this is a cool idea, but haven't quite worked it out
final class NSUIHostingView<Content: View>: UIView {
}

public typealias NSUIResponder = UIResponder


#endif

0 comments on commit 88a4759

Please sign in to comment.