//===----------------------------------------------------------------------===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// import Foundation @_exported import AppKit // NSCollectionView extensions public extension IndexPath { /// Initialize for use with `NSCollectionView`. public init(item: Int, section: Int) { self.init(indexes: [section, item]) } /// The item of this index path, when used with `NSCollectionView`. /// /// - precondition: The index path must have exactly two elements. public var item : Int { get { precondition(count == 2, "Invalid index path for use with NSCollectionView. This index path must contain exactly two indices specifying the section and item.") return self[1] } set { precondition(count == 2, "Invalid index path for use with NSCollectionView. This index path must contain exactly two indices specifying the section and item.") self[1] = newValue } } /// The section of this index path, when used with `NSCollectionView`. /// /// - precondition: The index path must have exactly two elements. public var section : Int { get { precondition(count == 2, "Invalid index path for use with NSCollectionView. This index path must contain exactly two indices specifying the section and item.") return self[0] } set { precondition(count == 2, "Invalid index path for use with NSCollectionView. This index path must contain exactly two indices specifying the section and item.") self[0] = newValue } } } public extension URLResourceValues { /// Returns all thumbnails as a single NSImage. @available(OSX 10.10, *) public var thumbnail : NSImage? { return allValues[URLResourceKey.thumbnailKey] as? NSImage } /// The color of the assigned label. public var labelColor: NSColor? { return allValues[URLResourceKey.labelColorKey] as? NSColor } /// The icon normally displayed for the resource public var effectiveIcon: AnyObject? { return allValues[URLResourceKey.effectiveIconKey] as? NSImage } /// The custom icon assigned to the resource, if any (Currently not implemented) public var customIcon: NSImage? { return allValues[URLResourceKey.customIconKey] as? NSImage } /// Returns a dictionary of NSImage objects keyed by size. @available(OSX 10.10, *) public var thumbnailDictionary : [URLThumbnailDictionaryItem : NSImage]? { return allValues[URLResourceKey.thumbnailDictionaryKey] as? [URLThumbnailDictionaryItem : NSImage] } }