2017-05-27 19:43:27 +02:00
|
|
|
//
|
|
|
|
// TimelineCellAppearance.swift
|
2018-08-29 07:18:24 +02:00
|
|
|
// NetNewsWire
|
2017-05-27 19:43:27 +02:00
|
|
|
//
|
|
|
|
// Created by Brent Simmons on 2/6/16.
|
|
|
|
// Copyright © 2016 Ranchero Software, LLC. All rights reserved.
|
|
|
|
//
|
|
|
|
|
2018-02-03 07:51:32 +01:00
|
|
|
import AppKit
|
2017-05-27 19:43:27 +02:00
|
|
|
|
2018-01-05 06:20:09 +01:00
|
|
|
struct TimelineCellAppearance: Equatable {
|
2017-05-27 19:43:27 +02:00
|
|
|
|
2019-11-06 01:05:57 +01:00
|
|
|
let showIcon: Bool
|
2019-02-08 07:01:31 +01:00
|
|
|
|
2020-11-19 05:02:54 +01:00
|
|
|
let cellPadding: NSEdgeInsets
|
2017-05-27 19:43:27 +02:00
|
|
|
|
|
|
|
let feedNameFont: NSFont
|
2018-01-05 06:20:09 +01:00
|
|
|
|
2017-05-27 19:43:27 +02:00
|
|
|
let dateFont: NSFont
|
2020-03-24 03:43:54 +01:00
|
|
|
let dateMarginLeft: CGFloat = 8.0
|
2019-04-13 20:48:40 +02:00
|
|
|
|
2017-05-27 19:43:27 +02:00
|
|
|
let titleFont: NSFont
|
2019-04-13 20:48:40 +02:00
|
|
|
let titleBottomMargin: CGFloat = 1.0
|
2020-03-24 03:43:54 +01:00
|
|
|
let titleNumberOfLines = 3
|
2017-05-27 19:43:27 +02:00
|
|
|
|
|
|
|
let textFont: NSFont
|
2018-02-19 01:13:58 +01:00
|
|
|
|
|
|
|
let textOnlyFont: NSFont
|
|
|
|
|
2019-04-13 20:48:40 +02:00
|
|
|
let unreadCircleDimension: CGFloat = 8.0
|
|
|
|
let unreadCircleMarginRight: CGFloat = 8.0
|
2018-02-18 06:46:19 +01:00
|
|
|
|
2019-04-13 20:48:40 +02:00
|
|
|
let starDimension: CGFloat = 13.0
|
2018-02-18 06:46:19 +01:00
|
|
|
|
2019-04-13 20:48:40 +02:00
|
|
|
let drawsGrid = false
|
2017-11-29 06:39:09 +01:00
|
|
|
|
2019-11-06 01:05:57 +01:00
|
|
|
let iconSize = NSSize(width: 48, height: 48)
|
|
|
|
let iconMarginLeft: CGFloat = 8.0
|
|
|
|
let iconMarginRight: CGFloat = 8.0
|
|
|
|
let iconAdjustmentTop: CGFloat = 4.0
|
|
|
|
let iconCornerRadius: CGFloat = 4.0
|
2018-01-05 06:20:09 +01:00
|
|
|
|
|
|
|
let boxLeftMargin: CGFloat
|
|
|
|
|
2019-11-06 01:05:57 +01:00
|
|
|
init(showIcon: Bool, fontSize: FontSize) {
|
2017-05-27 19:43:27 +02:00
|
|
|
|
2020-07-02 05:17:38 +02:00
|
|
|
let actualFontSize = AppDefaults.shared.actualFontSize(for: fontSize)
|
2020-03-24 03:43:54 +01:00
|
|
|
let smallItemFontSize = floor(actualFontSize * 0.90)
|
|
|
|
let largeItemFontSize = actualFontSize
|
2018-02-19 05:28:31 +01:00
|
|
|
|
2020-08-24 04:18:02 +02:00
|
|
|
self.feedNameFont = NSFont.systemFont(ofSize: smallItemFontSize, weight: NSFont.Weight.bold)
|
2020-08-19 18:56:14 +02:00
|
|
|
self.dateFont = NSFont.systemFont(ofSize: smallItemFontSize, weight: NSFont.Weight.bold)
|
2020-03-24 03:58:35 +01:00
|
|
|
self.titleFont = NSFont.systemFont(ofSize: largeItemFontSize, weight: NSFont.Weight.semibold)
|
2020-08-24 06:24:52 +02:00
|
|
|
self.textFont = NSFont.systemFont(ofSize: largeItemFontSize)
|
2018-02-19 05:28:31 +01:00
|
|
|
self.textOnlyFont = NSFont.systemFont(ofSize: largeItemFontSize)
|
|
|
|
|
2019-11-06 01:05:57 +01:00
|
|
|
self.showIcon = showIcon
|
2020-11-19 05:02:54 +01:00
|
|
|
|
2024-02-28 05:02:31 +01:00
|
|
|
cellPadding = NSEdgeInsets(top: 8.0, left: 4.0, bottom: 10.0, right: 4.0)
|
2018-01-05 06:20:09 +01:00
|
|
|
|
2018-02-19 00:13:47 +01:00
|
|
|
let margin = self.cellPadding.left + self.unreadCircleDimension + self.unreadCircleMarginRight
|
2018-01-05 06:20:09 +01:00
|
|
|
self.boxLeftMargin = margin
|
|
|
|
}
|
2017-05-27 19:43:27 +02:00
|
|
|
}
|
|
|
|
|
2018-01-05 06:20:09 +01:00
|
|
|
extension NSEdgeInsets: Equatable {
|
|
|
|
|
|
|
|
public static func ==(lhs: NSEdgeInsets, rhs: NSEdgeInsets) -> Bool {
|
|
|
|
return lhs.left == rhs.left && lhs.top == rhs.top && lhs.right == rhs.right && lhs.bottom == rhs.bottom
|
|
|
|
}
|
|
|
|
}
|