Draw a white unread indicator in the timeline when the cell is selected and emphasized. Fix #112.

This commit is contained in:
Brent Simmons 2018-01-06 14:33:16 -08:00
parent 36b3ad8e85
commit 0a1642abdf
2 changed files with 22 additions and 3 deletions

View File

@ -61,7 +61,8 @@ class TimelineTableCellView: NSTableCellView {
didSet {
dateView.emphasized = isEmphasized
feedNameView.emphasized = isEmphasized
titleView.emphasized = isEmphasized
titleView.emphasized = isEmphasized
unreadIndicatorView.isEmphasized = isEmphasized
needsDisplay = true
}
}
@ -71,6 +72,7 @@ class TimelineTableCellView: NSTableCellView {
dateView.selected = isSelected
feedNameView.selected = isSelected
titleView.selected = isSelected
unreadIndicatorView.isSelected = isSelected
needsDisplay = true
}
}

View File

@ -19,9 +19,26 @@ class UnreadIndicatorView: NSView {
static let unreadCircleColor = appDelegate.currentTheme.color(forKey: "MainWindow.Timeline.cell.unreadCircleColor")
var isEmphasized = false {
didSet {
if isEmphasized != oldValue {
needsDisplay = true
}
}
}
var isSelected = false {
didSet {
if isSelected != oldValue {
needsDisplay = true
}
}
}
override func draw(_ dirtyRect: NSRect) {
UnreadIndicatorView.unreadCircleColor.setFill()
let color = isEmphasized && isSelected ? NSColor.white : UnreadIndicatorView.unreadCircleColor
color.setFill()
UnreadIndicatorView.bezierPath.fill()
}