Files
ShhShell/ShhShell/Themes/ColorCodable.swift
neon443 a4d245caec !!!!!!!!!!
fixed selecting themes - it now actually remembers!!
fix all themes having no names
fix remembering selected themes
added toTheme to return a theme from a themecodable
removed themeNames - its not needed as the names are saved in the ThemeCodable itself
extracted colorcodable and themecodable into their own files
removed all the debug prints
2025-06-29 10:43:47 +01:00

58 lines
1.2 KiB
Swift

//
// ColorCodable.swift
// ShhShell
//
// Created by neon443 on 29/06/2025.
//
import Foundation
import SwiftTerm
import SwiftUI
struct ColorCodable: Codable {
var red: Double
var green: Double
var blue: Double
enum CodingKeys: String, CodingKey {
case red = "Red Component"
case green = "Green Component"
case blue = "Blue Component"
}
}
extension ColorCodable {
var stColor: SwiftTerm.Color {
return SwiftTerm.Color(self)
}
}
extension SwiftTerm.Color {
convenience init(_ colorCodable: ColorCodable) {
let red = UInt16(colorCodable.red * 65535)
let green = UInt16(colorCodable.green * 65535)
let blue = UInt16(colorCodable.blue * 65535)
self.init(red: red, green: green, blue: blue)
}
var colorCodable: ColorCodable {
let red = Double(self.red)/65535
let green = Double(self.green)/65535
let blue = Double(self.blue)/65535
return ColorCodable(red: red, green: green, blue: blue)
}
}
extension SwiftTerm.Color {
var suiColor: SwiftUI.Color {
return Color(uiColor: self.uiColor)
}
var uiColor: UIColor {
let red = CGFloat(self.red)/65535
let green = CGFloat(self.green)/65535
let blue = CGFloat(self.blue)/65535
return UIColor(red: red, green: green, blue: blue, alpha: 1)
}
}