OSDN Git Service

ファイル名をクラス名に合わせた
[kcd/KCD.git] / KCD / Bookmark.swift
1 //
2 //  BookmarkItem.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/01/28.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 class Bookmark: NSManagedObject {
12     @NSManaged var identifier: String
13     @NSManaged var name: String
14     @NSManaged var urlString: String
15     @NSManaged var canScroll: Bool
16     @NSManaged var canResize: Bool
17     @NSManaged var windowContentSizeString: String
18     @NSManaged var contentVisibleRectString: String
19     @NSManaged var order: Int
20     @NSManaged var scrollDelayValue: Float
21 }
22
23 extension Bookmark {
24     var windowContentSize: NSSize {
25         get { return NSSizeFromString(windowContentSizeString) }
26         set { windowContentSizeString = NSStringFromSize(newValue) }
27     }
28     var contentVisibleRect: NSRect {
29         get { return NSRectFromString(contentVisibleRectString) }
30         set { contentVisibleRectString = NSStringFromRect(newValue) }
31     }
32     var scrollDelay: TimeInterval {
33         get { return TimeInterval(scrollDelayValue) }
34         set { scrollDelayValue = Float(newValue) }
35     }
36 }
37
38 extension Bookmark: NSPasteboardWriting {
39     func writableTypes(for pasteboard: NSPasteboard) -> [String] {
40         return ["com.masakih.KCD.BookmarkItem"]
41     }
42     func pasteboardPropertyList(forType type: String) -> Any? {
43         let uri = objectID.uriRepresentation()
44         return NSKeyedArchiver.archivedData(withRootObject: uri)
45     }
46 }