/
MarkdownView.swift
58 lines (46 loc) · 1.3 KB
/
MarkdownView.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//
// MarkdownView.swift
// Twig
//
// Created by Luka Kerr on 21/6/18.
// Copyright © 2018 Luka Kerr. All rights reserved.
//
import Cocoa
class MarkdownView: NSView {
override func updateLayer() {
updateUI()
}
private func updateUI() {
let bg = theme.background
var appearance = window?.appearance?.name
if #available(OSX 10.14, *) {
appearance = NSApp.effectiveAppearance.name
}
self.window?.titlebarAppearsTransparent = preferences.modernTitlebar
if appearance == .dark || bg.isDark {
theme.code = bg.lighter
theme.text = .white
// using dark mode, so remove theme based appearance
if appearance == .dark {
window?.backgroundColor = nil
} else {
if !preferences.useSystemAppearance {
window?.appearance = NSAppearance(named: .dark)
}
window?.backgroundColor = bg
}
} else {
theme.code = bg.darker
theme.text = .black
if !preferences.useSystemAppearance {
window?.appearance = NSAppearance(named: .aqua)
}
window?.backgroundColor = bg
}
// remove appearance so when dark/light mode changed, updateLayer() is called
if preferences.useSystemAppearance {
window?.appearance = nil
}
NotificationCenter.send(.appearanceChanged)
}
}