Skip to content

Instantly share code, notes, and snippets.

View dmytro-anokhin's full-sized avatar
🔨

Dmytro Anokhin dmytro-anokhin

🔨
  • London
View GitHub Profile
typedef NS_ENUM(NSInteger, CLRColorSpace) {
CLRColorSpaceRGB = 0,
CLRColorSpaceHSV
} NS_SWIFT_NAME(ColorSpace);
typedef NS_OPTIONS(NSUInteger, CLRDrawingMode) {
CLRDrawingModeNone = 0,
CLRDrawingModeFill = 1 << 0,
CLRDrawingModeStroke = 1 << 1
public enum ColorSpace : Int {
case RGB
case HSV
}
public struct DrawingMode : OptionSet {
public init(rawValue: UInt)
open class Palette : NSObject {
public /*not inherited*/ init(name: String, colors: [CLRColor])
}
@interface CLRPalette : NSObject
+ (CLRPalette *)paletteWithName:(NSString *)name colors:(NSArray<CLRColor *> *)colors;
@end
@interface CLRPalette : NSObject
- (nullable CLRPalette *)convertToColorSpace:(CLRColorSpace)colorSpace error:(NSError **)error;
@end
open class Palette : NSObject {
open func convert(to colorSpace: ColorSpace) throws -> Palette
}
NS_SWIFT_NAME(Color)
@interface CLRColor : NSObject
- (void)getHue:(nullable CGFloat *)hue saturation:(nullable CGFloat *)saturation value:(nullable CGFloat *)value NS_REFINED_FOR_SWIFT;
@end
extension Color {
var hsv: (hue: CGFloat, saturation: CGFloat, value: CGFloat) {
var r: CGFloat = 0.0
var g: CGFloat = 0.0
var b: CGFloat = 0.0
__getHue(&r, saturation: &g, value: &b)
return (hue: r, saturation: g, value: b)
}
}
#if DEBUG
extension UIWindow {
class var key: UIWindow {
let selector: Selector = NSSelectorFromString("keyWindow")
let result = UIWindow.perform(selector)
return result?.takeUnretainedValue() as! UIWindow
}
}
class Controller {
var view: View
var model: Model
}