5 // Created by Hori,Masaki on 2018/06/24.
6 // Copyright © 2018年 Hori,Masaki. All rights reserved.
20 init(_ name: String) {
26 extension ColorName: Equatable {
28 static func == (lhs: ColorName, rhs: ColorName) -> Bool {
30 return lhs.name == rhs.name
37 static let damageViewInnerSlightly = ColorName("DamageView.inner.slightly")
38 static let damageViewInnerModest = ColorName("DamageView.inner.modest")
39 static let damageViewInnerBadly = ColorName("DamageView.inner.badly")
40 static let damageViewBoarderSlightly = ColorName("DamageView.border.slightly")
41 static let damageViewBoarderModest = ColorName("DamageView.border.modest")
42 static let damageViewBoarderBadly = ColorName("DamageView.border.badly")
44 // for AirPlanInfoView
45 static let airPlanInforViewNormal = ColorName("AirPlanInfoView.normal")
46 static let airPlanInforViewTired = ColorName("AirPlanInfoView.tired")
47 static let airPlanInforViewBad = ColorName("AirPlanInfoView.bad")
48 static let airPlanInforViewBoarderNormal = ColorName("AirPlanInfoView.boarder.normal")
49 static let airPlanInforViewBoarderTired = ColorName("AirPlanInfoView.border.tired")
50 static let airPlanInforViewBoarderBad = ColorName("AirPlanInfoView.boarder.bad")
53 static let suppliesCellGreen = ColorName("SuppliesCell.greenColor")
54 static let suppliesCellYellow = ColorName("SuppliesCell.yellowColor")
55 static let suppliesCellOrange = ColorName("SuppliesCell.orangeColor")
56 static let suppliesCellRedColor = ColorName("SuppliesCell.redColor")
57 static let suppliesCellBorder = ColorName("SuppliesCell.borderColor")
58 static let suppliesCellBackground = ColorName("SuppliesCell.backgroundColor")
60 // for SlotItemLevelView
61 static let slotItemLevelViewLevel = ColorName("SlotItemLevelView.levelColor")
62 static let slotItemLevelViewLowAirLevel = ColorName("SlotItemLevelView.airLevel.low")
63 static let slotItemLevelViewHighAirLevel = ColorName("SlotItemLevelView.airLevel.high")
64 static let slotItemLevelViewLowAirLevelShadow = ColorName("SlotItemLevelView.airLevel.low.shadow")
65 static let slotItemLevelViewHighAirLevelShadow = ColorName("SlotItemLevelView.airLevel.high.shadow")
70 static var current: ColorSet {
72 if NSWorkspace.shared.accessibilityDisplayShouldIncreaseContrast {
74 return HighContrastColorSet.shared
77 return ColorSet.shared
80 class var shared: ColorSet { return _shared }
82 private static let _shared = ColorSet()
84 subscript(named: ColorName) -> NSColor {
88 case .damageViewInnerSlightly: return #colorLiteral(red: 1.000, green: 0.956, blue: 0.012, alpha: 0.5)
90 case .damageViewInnerModest: return NSColor.orange.withAlphaComponent(0.5)
92 case .damageViewInnerBadly: return NSColor.red.withAlphaComponent(0.5)
94 case .damageViewBoarderSlightly: return NSColor.orange.withAlphaComponent(0.5)
96 case .damageViewBoarderModest: return NSColor.orange.withAlphaComponent(0.9)
98 case .damageViewBoarderBadly: return NSColor.red.withAlphaComponent(0.9)
101 case .airPlanInforViewNormal: return .clear
103 case .airPlanInforViewTired: return #colorLiteral(red: 1, green: 0.7233425379, blue: 0.1258574128, alpha: 0.8239436619)
105 case .airPlanInforViewBad: return #colorLiteral(red: 0.7320367694, green: 0.07731548697, blue: 0.06799335033, alpha: 1)
107 case .airPlanInforViewBoarderNormal: return .clear
109 case .airPlanInforViewBoarderTired: return #colorLiteral(red: 0.458858192, green: 0.3335277438, blue: 0.07979661971, alpha: 1)
111 case .airPlanInforViewBoarderBad: return #colorLiteral(red: 0.5462518334, green: 0.04599834234, blue: 0.04913448542, alpha: 1)
114 case .suppliesCellGreen: return NSColor(calibratedWhite: 0.39, alpha: 1.0)
116 case .suppliesCellYellow: return NSColor(calibratedWhite: 0.55, alpha: 1.0)
118 case .suppliesCellOrange: return NSColor(calibratedWhite: 0.7, alpha: 1.0)
120 case .suppliesCellRedColor: return NSColor(calibratedWhite: 0.79, alpha: 1.0)
122 case .suppliesCellBorder: return .gridColor
124 case .suppliesCellBackground: return .controlColor
127 case .slotItemLevelViewLevel: return #colorLiteral(red: 0.135, green: 0.522, blue: 0.619, alpha: 1)
129 case .slotItemLevelViewLowAirLevel: return #colorLiteral(red: 0.257, green: 0.523, blue: 0.643, alpha: 1)
131 case .slotItemLevelViewHighAirLevel: return #colorLiteral(red: 0.784, green: 0.549, blue: 0.000, alpha: 1)
133 case .slotItemLevelViewLowAirLevelShadow: return #colorLiteral(red: 0.095, green: 0.364, blue: 0.917, alpha: 1)
135 case .slotItemLevelViewHighAirLevelShadow: return .yellow
137 default: return .clear
144 class HighContrastColorSet: ColorSet {
146 override class var shared: ColorSet { return _shared }
148 private static let _shared = HighContrastColorSet()
150 override subscript(named: ColorName) -> NSColor {
154 case .damageViewBoarderSlightly: return NSColor.red
156 case .damageViewBoarderModest: return NSColor.red
158 case .damageViewBoarderBadly: return NSColor.red
160 default: return super[named]
165 class DarkModeColorSet: ColorSet {
167 override class var shared: ColorSet { return _shared }
169 private static let _shared = DarkModeColorSet()
171 override subscript(named: ColorName) -> NSColor {
175 default: return super[named]