// // CustomIcon.swift // Feels (iOS) // // Created by Trey Tartt on 2/13/22. // import SwiftUI class CustomWidgetModel: ObservableObject { static let numberOfBGItems = 109 static let defaultCustomIcon = CustomWidgetModel(leftEye: CustomWidgetEyeOptions.defaultOption, rightEye: CustomWidgetEyeOptions.defaultOption, mouth: CustomWidgetMouthOptions.defaultOption, background: WidgetView_Previews.backgrounds, bgColor: .red, innerColor: .green, bgOverlayColor: .orange, rightEyeColor: .orange, leftEyeColor: .yellow, mouthColor: .green, circleStrokeColor: .pink) init(leftEye: CustomWidgetEyeOptions, rightEye: CustomWidgetEyeOptions, mouth: CustomWidgetMouthOptions, background: [(CustomWidgetBackGroundOptions, UUID)], bgColor: Color, innerColor: Color, bgOverlayColor: Color, rightEyeColor: Color, leftEyeColor: Color, mouthColor: Color, circleStrokeColor: Color ) { self.leftEye = leftEye self.rightEye = rightEye self.mouth = mouth self.background = background self.bgColor = bgColor self.innerColor = innerColor self.bgOverlayColor = bgOverlayColor self.rightEyeColor = rightEyeColor self.leftEyeColor = leftEyeColor self.mouthColor = mouthColor self.circleStrokeColor = circleStrokeColor } @Published var leftEye: CustomWidgetEyeOptions @Published var rightEye: CustomWidgetEyeOptions @Published var mouth: CustomWidgetMouthOptions @Published var background: [(CustomWidgetBackGroundOptions, UUID)] @Published var bgColor: Color @Published var innerColor: Color @Published var bgOverlayColor: Color @Published var leftEyeColor: Color @Published var rightEyeColor: Color @Published var mouthColor: Color @Published var circleStrokeColor: Color } enum CustomWidgetBackGroundOptions: String, CaseIterable, Codable { case horrible case bad case average case good case great case random static var selectable: [CustomWidgetBackGroundOptions] { return [.great, .good, .average, .bad, .horrible] } static public var defaultOption: CustomWidgetBackGroundOptions { CustomWidgetBackGroundOptions.random } public var image: Image { return Image(self.rawValue, bundle: .main) } } enum CustomWidgetEyes: String, Codable { case left case right } enum CustomWidgetEyeOptions: String, CaseIterable, Codable { case fire = "fire" case bolt = "bolt2" case dollar = "dollar" case bell = "bell" case btc = "btc" case code = "code" case crown = "crown" case divide = "divide" case exclamation = "exclamation" case fan = "fan" case floppy = "floppy" case x = "x" case skull = "skull" case covid = "covid" case bomb = "bomb" case skull2 = "skull2" case poo = "poo" static public var defaultOption: CustomWidgetEyeOptions { CustomWidgetEyeOptions.fire } public var image: Image { return Image(self.rawValue, bundle: .main) } } enum CustomWidgetMouthOptions: String, CaseIterable, Codable { case fire = "fire" case bolt = "bolt2" case dollar = "dollar" case bell = "bell" case btc = "btc" case code = "code" case crown = "crown" case divide = "divide" case exclamation = "exclamation" case fan = "fan" case floppy = "floppy" case x = "x" case skull = "skull" case covid = "covid" case bomb = "bomb" case skull2 = "skull2" case poo = "poo" static public var defaultOption: CustomWidgetMouthOptions { CustomWidgetMouthOptions.bomb } public var image: Image { return Image(self.rawValue, bundle: .main) } }