From 907b79965d183eda77889c38819a8c98dee16994 Mon Sep 17 00:00:00 2001 From: ad Date: Mon, 30 Apr 2018 10:49:53 +0300 Subject: [PATCH] + hexColor --- MTMR/SupportHelpers.swift | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/MTMR/SupportHelpers.swift b/MTMR/SupportHelpers.swift index 89ff230..abc8a31 100644 --- a/MTMR/SupportHelpers.swift +++ b/MTMR/SupportHelpers.swift @@ -17,6 +17,24 @@ extension String { // ((\s|,)\/\*[\s\S]*?\*\/)|(( |, ")\/\/.*) return self.replacingOccurrences(of: "((\\s|,)\\/\\*[\\s\\S]*?\\*\\/)|(( |, \\\")\\/\\/.*)", with: "", options: .regularExpression) } + + var hexColor: NSColor { + let hex = trimmingCharacters(in: CharacterSet.alphanumerics.inverted) + var int = UInt32() + Scanner(string: hex).scanHexInt32(&int) + let a, r, g, b: UInt32 + switch hex.characters.count { + case 3: // RGB (12-bit) + (a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) + case 6: // RGB (24-bit) + (a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF) + case 8: // ARGB (32-bit) + (a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF) + default: + return .clear + } + return NSColor(red: CGFloat(r) / 255, green: CGFloat(g) / 255, blue: CGFloat(b) / 255, alpha: CGFloat(a) / 255) + } } extension NSImage {