diff --git a/Demo/Demo/Info.plist b/Demo/Demo/Info.plist
index 3b5301a..25f6c12 100644
--- a/Demo/Demo/Info.plist
+++ b/Demo/Demo/Info.plist
@@ -17,7 +17,7 @@
Swift
-public var displayName: String = "Dark Theme"
+ public var displayName: String
Swift
-public var shortDisplayName: String = "Dark"
+ public var shortDisplayName: String
Swift
-public var isDarkTheme: Bool = true
+ public var isDarkTheme: Bool
Swift
-public var displayName: String = "Light Theme"
+ public var displayName: String
Swift
-public var shortDisplayName: String = "Light"
+ public var shortDisplayName: String
Swift
-public var isDarkTheme: Bool = false
+ public var isDarkTheme: Bool
Swift
-public var displayName: String
+ public var displayName: String { get }
Swift
-public var shortDisplayName: String
+ public var shortDisplayName: String { get }
Swift
-public var isDarkTheme: Bool = SystemTheme.isAppleInterfaceThemeDark
+ public var isDarkTheme: Bool
Swift
-@objc public static var isAppleInterfaceThemeDark: Bool = SystemTheme.isAppleInterfaceThemeDarkOnUserDefaults()
+ @objc
+public static var isAppleInterfaceThemeDark: Bool
- color(with:)
+ color(with:)
Swift
-public class func color(with selector: Selector) -> ThemeColor
+ @objc(colorWithSelector:)
+public class func color(with selector: Selector) -> ThemeColor
- color(for:selector:)
+ color(for:selector:)
- color(for:selector:)
+ color(for:selector:)
Swift
-public class func color(for view: NSView, selector: Selector) -> NSColor
+ @objc(colorForView:selector:)
+public class func color(for view: NSView, selector: Selector) -> NSColor
Swift
-@objc open func recacheColor()
+ @objc
+open func recacheColor()
Swift
-@objc class open func emptyCache()
+ @objc
+open class func emptyCache()
- gradient(with:)
+ gradient(with:)
Swift
-public class func gradient(with selector: Selector) -> ThemeGradient?
+ @objc(gradientWithSelector:)
+public class func gradient(with selector: Selector) -> ThemeGradient?
- gradient(for:selector:)
+ gradient(for:selector:)
- gradient(for:selector:)
+ gradient(for:selector:)
Swift
-public class func gradient(for view: NSView, selector: Selector) -> NSGradient?
+ @objc(gradientForView:selector:)
+public class func gradient(for view: NSView, selector: Selector) -> NSGradient?
Swift
-@objc open func recacheGradient()
+ @objc
+open func recacheGradient()
Swift
-@objc class open func emptyCache()
+ @objc
+open class func emptyCache()
- image(with:)
+ image(with:)
Swift
-public class func image(with selector: Selector) -> ThemeImage
+ @objc(imageWithSelector:)
+public class func image(with selector: Selector) -> ThemeImage
- image(for:selector:)
+ image(for:selector:)
- image(for:selector:)
+ image(for:selector:)
Swift
-public class func image(for view: NSView, selector: Selector) -> NSImage?
+ @objc(imageForView:selector:)
+public class func image(for view: NSView, selector: Selector) -> NSImage?
Swift
-@objc open func recacheImage()
+ @objc
+open func recacheImage()
Swift
-@objc class open func emptyCache()
+ @objc
+open class func emptyCache()
Swift
-@objc public var isEnabled: Bool
+ @objc
+public var isEnabled: Bool { get set }
Swift
-@objc public static var lightTheme: Theme = LightTheme()
+ @objc
+public static var lightTheme: Theme
Swift
-@objc public static var darkTheme: Theme = DarkTheme()
+ @objc
+public static var darkTheme: Theme
Swift
-@objc public static let systemTheme = SystemTheme()
+ @objc
+public static let systemTheme: SystemTheme
Swift
-@objc public static var defaultTheme: Theme = ThemeManager.systemTheme
+ @objc
+public static var defaultTheme: Theme
- theme(withIdentifier:)
+ theme(withIdentifier:)
Swift
-@objc static public let userDefaultsThemeKey = "ThemeKitTheme"
+ @objc
+public static let userDefaultsThemeKey: String
Swift
-@objc public func applyLastOrDefaultTheme()
+ @objc
+public func applyLastOrDefaultTheme()
Swift
-@objc public func reApplyCurrentTheme()
+ @objc
+public func reApplyCurrentTheme()
Swift
-@objc public var userThemesFolderURL: URL?
+ @objc
+public var userThemesFolderURL: URL? { get set }
Swift
-@objc public var effectiveThemeAppearance: NSAppearance
+ @objc
+public var effectiveThemeAppearance: NSAppearance { get }
Swift
-@objc public var lightAppearance: NSAppearance?
+ @objc
+public var lightAppearance: NSAppearance? { get }
Swift
-@objc public var darkAppearance: NSAppearance?
+ @objc
+public var darkAppearance: NSAppearance? { get }
E.g.:
-ThemeManager.shared.windowThemePolicy = .themeSomeWindows(windowClasses: [CustomWindow.self])
+ThemeManager.shared.windowThemePolicy = .themeSomeWindows(windowClasses: [CustomWindow.self])
Objective-C
@@ -824,8 +865,8 @@ Objective-C
Example:
-[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
-[TKThemeManager sharedManager].themableWindowClasses = @[[CustomWindow class]];
+[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
+[TKThemeManager sharedManager].themableWindowClasses = @[[CustomWindow class]];
NSWindow Extension
@@ -850,7 +891,7 @@ NSWindow Extension
Declaration
Swift
- public enum WindowThemePolicy
+ public enum WindowThemePolicy
@@ -880,7 +921,7 @@ Declaration
Declaration
Swift
- public var windowThemePolicy: WindowThemePolicy = .themeAllWindows
+ public var windowThemePolicy: WindowThemePolicy
@@ -896,9 +937,11 @@ Declaration
-
@@ -921,7 +964,8 @@
Theme Switching
Declaration
Swift
- @objc public var animateThemeTransitions: Bool = true
+ @objc
+public var animateThemeTransitions: Bool
@@ -937,9 +981,11 @@ Declaration
-
@@ -962,7 +1008,8 @@
Notifications
Declaration
Swift
- @objc public static let willChangeThemeNotification = Notification.Name.willChangeTheme
+ @objc
+public static let willChangeThemeNotification: Notification.Name
@@ -992,7 +1039,8 @@ Declaration
Declaration
Swift
- @objc public static let didChangeThemeNotification = Notification.Name.didChangeTheme
+ @objc
+public static let didChangeThemeNotification: Notification.Name
@@ -1022,7 +1070,8 @@ Declaration
Declaration
Swift
- @objc public static let didChangeSystemThemeNotification = Notification.Name.didChangeSystemTheme
+ @objc
+public static let didChangeSystemThemeNotification: Notification.Name
@@ -1038,7 +1087,7 @@ Declaration
diff --git a/Docs/Classes/ThemeManager/WindowThemePolicy.html b/Docs/Classes/ThemeManager/WindowThemePolicy.html
index 0ad9d8f..bb488d6 100644
--- a/Docs/Classes/ThemeManager/WindowThemePolicy.html
+++ b/Docs/Classes/ThemeManager/WindowThemePolicy.html
@@ -8,15 +8,23 @@
+
+
+
@@ -67,7 +75,7 @@
+ Show on GitHub
+
@@ -174,7 +186,7 @@ NSWindow Extension
Declaration
Swift
- case themeAllWindows
+ case themeAllWindows
@@ -184,16 +196,12 @@ Declaration
+
-
-
-
-
-
@@ -208,7 +216,7 @@
Declaration
Declaration
Swift
- case themeSomeWindows(windowClasses: [AnyClass])
+ case themeSomeWindows(windowClasses: [AnyClass])
@@ -218,16 +226,12 @@ Declaration
-
-
-
-
-
@@ -242,7 +246,7 @@
Declaration
Declaration
Swift
- case doNotThemeSomeWindows(windowClasses: [AnyClass])
+ case doNotThemeSomeWindows(windowClasses: [AnyClass])
@@ -252,10 +256,6 @@ Declaration
@@ -276,7 +276,7 @@ Declaration
Declaration
Swift
- case doNotThemeWindows
+ case doNotThemeWindows
Swift
-public var shortDisplayName: String = "Not Loaded"
+ public var shortDisplayName: String
Swift
-public var isDarkTheme: Bool = false
+ public var isDarkTheme: Bool
Swift
-@objc public var fileURL: URL?
+ @objc
+public var fileURL: URL?
Swift
-@objc public func reload()
+ @objc
+public func reload()
- themeAsset(_:)
+ themeAsset(_:)
Swift
-@objc public func themeAsset(_ key: String) -> Any?
+ @objc
+public func themeAsset(_ key: String) -> Any?
- hasThemeAsset(_:)
+ hasThemeAsset(_:)
Swift
-@objc public func hasThemeAsset(_ key: String) -> Bool
+ @objc
+public func hasThemeAsset(_ key: String) -> Bool
Swift
+public extension NSWindow
+
+
@@ -142,6 +155,14 @@ Extensions
See more
Swift
+extension NSColor
+
+ Swift
-@objc public class func colorMethodNames() -> [String]
+ @objc
+public class func colorMethodNames() -> [String]
Swift
-@objc public var windowEffectiveTheme: Theme
+ @objc
+var windowEffectiveTheme: Theme { get }
Swift
-@objc public var windowEffectiveThemeAppearance: NSAppearance?
+ @objc
+var windowEffectiveThemeAppearance: NSAppearance? { get }
Swift
-@objc public func theme()
+ @objc
+func theme()
Swift
-@objc public func themeIfCompliantWithWindowThemePolicy()
+ @objc
+func themeIfCompliantWithWindowThemePolicy()
Swift
-@objc public static func themeAllWindows()
+ @objc
+static func themeAllWindows()
Swift
+public extension Notification.Name
+
+ Swift
-public static let didChangeTheme = Notification.Name("ThemeKitDidChangeThemeNotification")
+ static let didChangeTheme: Notification.Name
Swift
-public static let didChangeSystemTheme = Notification.Name("ThemeKitDidChangeSystemThemeNotification")
+ static let didChangeSystemTheme: Notification.Name
Swift
-static let didChangeAppleInterfaceTheme = Notification.Name("AppleInterfaceThemeChangedNotification")
+ static let didChangeAppleInterfaceTheme: Notification.Name
Swift
-var shortDisplayName: String
+ var shortDisplayName: String { get }
Swift
-var isDarkTheme: Bool
+ var isDarkTheme: Bool { get }
Swift
-@objc optional var fallbackForegroundColor: NSColor?
+ @objc
+optional var fallbackForegroundColor: NSColor? { get }
Swift
-@objc optional var fallbackBackgroundColor: NSColor?
+ @objc
+optional var fallbackBackgroundColor: NSColor? { get }
Swift
-@objc optional var fallbackGradient: NSGradient?
+ @objc
+optional var fallbackGradient: NSGradient? { get }
Swift
-@objc optional var fallbackImage: NSImage?
+ @objc
+optional var fallbackImage: NSImage? { get }
Swift
-public var isLightTheme: Bool
+ var isLightTheme: Bool { get }
Swift
-public var isSystemTheme: Bool
+ var isSystemTheme: Bool { get }
Swift
-public var isUserTheme: Bool
+ var isUserTheme: Bool { get }
Swift
-public func apply()
+ func apply()
- themeAsset(_:)
+ themeAsset(_:)
Extension method
@@ -576,7 +599,7 @@ Swift
-public func themeAsset(_ key: String) -> Any?
+ func themeAsset(_ key: String) -> Any?
- hasThemeAsset(_:)
+ hasThemeAsset(_:)
Extension method
@@ -636,7 +659,7 @@ Swift
-public func hasThemeAsset(_ key: String) -> Bool
+ func hasThemeAsset(_ key: String) -> Bool
Swift
-var defaultFallbackForegroundColor: NSColor
+ var defaultFallbackForegroundColor: NSColor { get }
Swift
-var defaultFallbackBackgroundColor: NSColor
+ var defaultFallbackBackgroundColor: NSColor { get }
Swift
-var defaultFallbackGradient: NSGradient?
+ var defaultFallbackGradient: NSGradient? { get }
Swift
-var defaultFallbackImage: NSImage
+ var defaultFallbackImage: NSImage { get }
Swift
-var effectiveTheme: Theme
+ var effectiveTheme: Theme { get }
- themeDescription(_:)
+ themeDescription(_:)
Extension method
@@ -884,7 +907,7 @@ Swift
-public func themeDescription(_ theme: Theme) -> String
+ func themeDescription(_ theme: Theme) -> String
@@ -285,7 +291,7 @@ Declaration
Theme-aware means you don’t need to check any conditions when choosing which
gradient to draw. E.g.:
-ThemeGradient.rainbowGradient.draw(in: bounds, angle: 0)
+ThemeGradient.rainbowGradient.draw(in: bounds, angle: 0)
The drawing code will draw with different gradient depending on the selected
@@ -300,83 +306,83 @@
Defining theme-aware gra
Objective-C) to add class methods for your gradients. E.g.:
In Swift:
-extension ThemeGradient {
+extension ThemeGradient {
- static var brandGradient: ThemeGradient {
- return ThemeGradient.gradient(with: #function)
- }
+ static var brandGradient: ThemeGradient {
+ return ThemeGradient.gradient(with: #function)
+ }
-}
+}
In Objective-C:
-@interface TKThemeGradient (Demo)
+@interface TKThemeGradient (Demo)
-+ (TKThemeGradient*)brandGradient;
++ (TKThemeGradient*)brandGradient;
-@end
+@end
-@implementation TKThemeGradient (Demo)
+@implementation TKThemeGradient (Demo)
-+ (TKThemeGradient*)brandGradient {
- return [TKThemeGradient gradientWithSelector:_cmd];
++ (TKThemeGradient*)brandGradient {
+ return [TKThemeGradient gradientWithSelector:_cmd];
}
-@end
+@end
Add Class Extensions on any Theme
you want to support (e.g., LightTheme
and DarkTheme
- TKLightTheme
and TKDarkTheme
on Objective-C) to provide
instance methods for each theme gradient class method defined on (1). E.g.:
In Swift:
-extension LightTheme {
+extension LightTheme {
- var brandGradient: NSGradient {
- return NSGradient(starting: NSColor.white, ending: NSColor.black)
- }
+ var brandGradient: NSGradient {
+ return NSGradient(starting: NSColor.white, ending: NSColor.black)
+ }
- }
+ }
- extension DarkTheme {
+ extension DarkTheme {
- var brandGradient: NSGradient {
- return NSGradient(starting: NSColor.black, ending: NSColor.white)
- }
+ var brandGradient: NSGradient {
+ return NSGradient(starting: NSColor.black, ending: NSColor.white)
+ }
-}
+}
In Objective-C:
-@interface TKLightTheme (Demo) @end
+@interface TKLightTheme (Demo) @end
-@implementation TKLightTheme (Demo)
+@implementation TKLightTheme (Demo)
-- (NSGradient*)brandGradient
+- (NSGradient*)brandGradient
{
- return [[NSGradient alloc] initWithStartingColor:[NSColor whiteColor] endingColor:[NSColor blackColor]];
+ return [[NSGradient alloc] initWithStartingColor:[NSColor whiteColor] endingColor:[NSColor blackColor]];
}
-@end
+@end
-@interface TKDarkTheme (Demo) @end
+@interface TKDarkTheme (Demo) @end
-@implementation TKDarkTheme (Demo)
+@implementation TKDarkTheme (Demo)
-- (NSGradient*)brandGradient
+- (NSGradient*)brandGradient
{
- return [[NSGradient alloc] initWithStartingColor:[NSColor blackColor] endingColor:[NSColor whiteColor]];
+ return [[NSGradient alloc] initWithStartingColor:[NSColor blackColor] endingColor:[NSColor whiteColor]];
}
-@end
+@end
If supporting UserTheme
‘s, define properties on user theme files (.theme
)
for each theme gradient class method defined on (1). E.g.:
-displayName = Sample User Theme
-identifier = com.luckymarmot.ThemeKit.SampleUserTheme
-darkTheme = false
+displayName = Sample User Theme
+identifier = com.luckymarmot.ThemeKit.SampleUserTheme
+darkTheme = false
-orangeSky = rgb(160, 90, 45, .5)
-brandGradient = linear-gradient($orangeSky, rgb(200, 140, 60))
+orangeSky = rgb(160, 90, 45, .5)
+brandGradient = linear-gradient($orangeSky, rgb(200, 140, 60))
Fallback colors
@@ -392,7 +398,8 @@ Fallback colors
Declaration
Swift
- open class ThemeGradient: NSGradient
+ @objc(TKThemeGradient)
+open class ThemeGradient : NSGradient
@@ -424,7 +427,7 @@ Declaration
Theme-aware means you don’t need to check any conditions when choosing which
image to draw. E.g.:
-ThemeImage.logoImage.draw(in: bounds)
+ThemeImage.logoImage.draw(in: bounds)
The drawing code will draw with different image depending on the selected
@@ -439,83 +442,83 @@
Defining theme-aware images
Objective-C) to add class methods for your images. E.g.:
In Swift:
-extension ThemeImage {
+extension ThemeImage {
- static var logoImage: ThemeImage {
- return ThemeImage.image(with: #function)
- }
+ static var logoImage: ThemeImage {
+ return ThemeImage.image(with: #function)
+ }
-}
+}
In Objective-C:
-@interface TKThemeImage (Demo)
+@interface TKThemeImage (Demo)
-+ (TKThemeImage*)logoImage;
++ (TKThemeImage*)logoImage;
-@end
+@end
-@implementation TKThemeImage (Demo)
+@implementation TKThemeImage (Demo)
-+ (TKThemeImage*)logoImage {
- return [TKThemeImage imageWithSelector:_cmd];
++ (TKThemeImage*)logoImage {
+ return [TKThemeImage imageWithSelector:_cmd];
}
-@end
+@end
Add Class Extensions on any Theme
you want to support (e.g., LightTheme
and DarkTheme
- TKLightTheme
and TKDarkTheme
on Objective-C) to provide
instance methods for each theme image class method defined on (1). E.g.:
In Swift:
-extension LightTheme {
+extension LightTheme {
- var logoImage: NSImage? {
- return NSImage(named: "MyLightLogo")
- }
+ var logoImage: NSImage? {
+ return NSImage(named: "MyLightLogo")
+ }
-}
+}
-extension DarkTheme {
+extension DarkTheme {
- var logoImage: NSImage? {
- return NSImage(contentsOfFile: "somewhere/MyDarkLogo.png")
- }
+ var logoImage: NSImage? {
+ return NSImage(contentsOfFile: "somewhere/MyDarkLogo.png")
+ }
-}
+}
In Objective-C:
-@interface TKLightTheme (Demo) @end
+@interface TKLightTheme (Demo) @end
-@implementation TKLightTheme (Demo)
+@implementation TKLightTheme (Demo)
-- (NSImage*)logoImage
+- (NSImage*)logoImage
{
- return [NSImage imageNamed:@"MyLightLogo"];
+ return [NSImage imageNamed:@"MyLightLogo"];
}
-@end
+@end
-@interface TKDarkTheme (Demo) @end
+@interface TKDarkTheme (Demo) @end
-@implementation TKDarkTheme (Demo)
+@implementation TKDarkTheme (Demo)
-- (NSImage*)logoImage
+- (NSImage*)logoImage
{
- return [NSImage alloc] initWithContentsOfFile:@"somewhere/MyDarkLogo.png"];
+ return [NSImage alloc] initWithContentsOfFile:@"somewhere/MyDarkLogo.png"];
}
-@end
+@end
If supporting UserTheme
‘s, define properties on user theme files (.theme
)
for each theme image class method defined on (1). E.g.:
-displayName = Sample User Theme
-identifier = com.luckymarmot.ThemeKit.SampleUserTheme
-darkTheme = false
+displayName = Sample User Theme
+identifier = com.luckymarmot.ThemeKit.SampleUserTheme
+darkTheme = false
-logoImage = image(named:MyLogo)
-//logoImage = image(file:../some/path/MyLogo.png)
+logoImage = image(named:MyLogo)
+//logoImage = image(file:../some/path/MyLogo.png)
Fallback images
@@ -531,7 +534,8 @@ Fallback images
Declaration
Swift
- open class ThemeImage: NSImage
+ @objc(TKThemeImage)
+open class ThemeImage : NSImage
@@ -176,7 +182,8 @@ Declaration
Declaration
@@ -211,7 +214,8 @@ Declaration
Declaration
@@ -249,7 +249,8 @@ Declaration
Declaration
@@ -309,26 +306,26 @@ Declaration
# define a new color for `NSColor.labelColor` (overriding)
labelColor = rgb(11, 220, 111)
# define gradient for `ThemeGradient.brandGradient`
-brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
+brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
// ********************* Images & Patterns ********************** //
# define pattern image from named image "paper" for color `ThemeColor.contentBackgroundColor`
contentBackgroundColor = pattern(named:paper)
# define pattern image from filesystem (relative to user themes folder) for color `ThemeColor.bottomBackgroundColor`
-bottomBackgroundColor = pattern(file:../some/path/some-file.png)
+bottomBackgroundColor = pattern(file:../some/path/some-file.png)
# use named image "apple"
namedImage = image(named:apple)
# use image from filesystem (relative to user themes folder)
-fileImage = image(file:../some/path/some-file.jpg)
+fileImage = image(file:../some/path/some-file.jpg)
// *********************** Common Colors ************************ //
blue = rgb(0, 170, 255)
orange.sky = rgb(160, 90, 45, .5)
// ********************** Fallback Assets *********************** //
-fallbackForegroundColor = rgb(255, 10, 90, 1.0)
+fallbackForegroundColor = rgb(255, 10, 90, 1.0)
fallbackBackgroundColor = rgb(255, 200, 190)
-fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
+fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
With the exception of system overrided named colors (e.g., labelColor
), which
@@ -343,7 +340,8 @@
Swift
-public var displayName: String = "Dark Theme"
+ public var displayName: String
Swift
-public var shortDisplayName: String = "Dark"
+ public var shortDisplayName: String
Swift
-public var isDarkTheme: Bool = true
+ public var isDarkTheme: Bool
Swift
-public var displayName: String = "Light Theme"
+ public var displayName: String
Swift
-public var shortDisplayName: String = "Light"
+ public var shortDisplayName: String
Swift
-public var isDarkTheme: Bool = false
+ public var isDarkTheme: Bool
Swift
-public var displayName: String
+ public var displayName: String { get }
Swift
-public var shortDisplayName: String
+ public var shortDisplayName: String { get }
Swift
-public var isDarkTheme: Bool = SystemTheme.isAppleInterfaceThemeDark
+ public var isDarkTheme: Bool
Swift
-@objc public static var isAppleInterfaceThemeDark: Bool = SystemTheme.isAppleInterfaceThemeDarkOnUserDefaults()
+ @objc
+public static var isAppleInterfaceThemeDark: Bool
- color(with:)
+ color(with:)
Swift
-public class func color(with selector: Selector) -> ThemeColor
+ @objc(colorWithSelector:)
+public class func color(with selector: Selector) -> ThemeColor
- color(for:selector:)
+ color(for:selector:)
- color(for:selector:)
+ color(for:selector:)
Swift
-public class func color(for view: NSView, selector: Selector) -> NSColor
+ @objc(colorForView:selector:)
+public class func color(for view: NSView, selector: Selector) -> NSColor
Swift
-@objc open func recacheColor()
+ @objc
+open func recacheColor()
Swift
-@objc class open func emptyCache()
+ @objc
+open class func emptyCache()
- gradient(with:)
+ gradient(with:)
Swift
-public class func gradient(with selector: Selector) -> ThemeGradient?
+ @objc(gradientWithSelector:)
+public class func gradient(with selector: Selector) -> ThemeGradient?
- gradient(for:selector:)
+ gradient(for:selector:)
- gradient(for:selector:)
+ gradient(for:selector:)
Swift
-public class func gradient(for view: NSView, selector: Selector) -> NSGradient?
+ @objc(gradientForView:selector:)
+public class func gradient(for view: NSView, selector: Selector) -> NSGradient?
Swift
-@objc open func recacheGradient()
+ @objc
+open func recacheGradient()
Swift
-@objc class open func emptyCache()
+ @objc
+open class func emptyCache()
- image(with:)
+ image(with:)
Swift
-public class func image(with selector: Selector) -> ThemeImage
+ @objc(imageWithSelector:)
+public class func image(with selector: Selector) -> ThemeImage
- image(for:selector:)
+ image(for:selector:)
- image(for:selector:)
+ image(for:selector:)
Swift
-public class func image(for view: NSView, selector: Selector) -> NSImage?
+ @objc(imageForView:selector:)
+public class func image(for view: NSView, selector: Selector) -> NSImage?
Swift
-@objc open func recacheImage()
+ @objc
+open func recacheImage()
Swift
-@objc class open func emptyCache()
+ @objc
+open class func emptyCache()
Swift
-@objc public var isEnabled: Bool
+ @objc
+public var isEnabled: Bool { get set }
Swift
-@objc public static var lightTheme: Theme = LightTheme()
+ @objc
+public static var lightTheme: Theme
Swift
-@objc public static var darkTheme: Theme = DarkTheme()
+ @objc
+public static var darkTheme: Theme
Swift
-@objc public static let systemTheme = SystemTheme()
+ @objc
+public static let systemTheme: SystemTheme
Swift
-@objc public static var defaultTheme: Theme = ThemeManager.systemTheme
+ @objc
+public static var defaultTheme: Theme
- theme(withIdentifier:)
+ theme(withIdentifier:)
Swift
-@objc static public let userDefaultsThemeKey = "ThemeKitTheme"
+ @objc
+public static let userDefaultsThemeKey: String
Swift
-@objc public func applyLastOrDefaultTheme()
+ @objc
+public func applyLastOrDefaultTheme()
Swift
-@objc public func reApplyCurrentTheme()
+ @objc
+public func reApplyCurrentTheme()
Swift
-@objc public var userThemesFolderURL: URL?
+ @objc
+public var userThemesFolderURL: URL? { get set }
Swift
-@objc public var effectiveThemeAppearance: NSAppearance
+ @objc
+public var effectiveThemeAppearance: NSAppearance { get }
Swift
-@objc public var lightAppearance: NSAppearance?
+ @objc
+public var lightAppearance: NSAppearance? { get }
Swift
-@objc public var darkAppearance: NSAppearance?
+ @objc
+public var darkAppearance: NSAppearance? { get }
E.g.:
-ThemeManager.shared.windowThemePolicy = .themeSomeWindows(windowClasses: [CustomWindow.self])
+ThemeManager.shared.windowThemePolicy = .themeSomeWindows(windowClasses: [CustomWindow.self])
Objective-C
@@ -824,8 +865,8 @@ Objective-C
Example:
-[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
-[TKThemeManager sharedManager].themableWindowClasses = @[[CustomWindow class]];
+[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
+[TKThemeManager sharedManager].themableWindowClasses = @[[CustomWindow class]];
NSWindow Extension
@@ -850,7 +891,7 @@ NSWindow Extension
Declaration
Swift
- public enum WindowThemePolicy
+ public enum WindowThemePolicy
@@ -880,7 +921,7 @@ Declaration
Declaration
Swift
- public var windowThemePolicy: WindowThemePolicy = .themeAllWindows
+ public var windowThemePolicy: WindowThemePolicy
@@ -896,9 +937,11 @@ Declaration
-
@@ -921,7 +964,8 @@
Theme Switching
Declaration
Swift
- @objc public var animateThemeTransitions: Bool = true
+ @objc
+public var animateThemeTransitions: Bool
@@ -937,9 +981,11 @@ Declaration
-
@@ -962,7 +1008,8 @@
Notifications
Declaration
Swift
- @objc public static let willChangeThemeNotification = Notification.Name.willChangeTheme
+ @objc
+public static let willChangeThemeNotification: Notification.Name
@@ -992,7 +1039,8 @@ Declaration
Declaration
Swift
- @objc public static let didChangeThemeNotification = Notification.Name.didChangeTheme
+ @objc
+public static let didChangeThemeNotification: Notification.Name
@@ -1022,7 +1070,8 @@ Declaration
Declaration
Swift
- @objc public static let didChangeSystemThemeNotification = Notification.Name.didChangeSystemTheme
+ @objc
+public static let didChangeSystemThemeNotification: Notification.Name
@@ -1038,7 +1087,7 @@ Declaration
diff --git a/Docs/docsets/ThemeKit.docset/Contents/Resources/Documents/Classes/ThemeManager/WindowThemePolicy.html b/Docs/docsets/ThemeKit.docset/Contents/Resources/Documents/Classes/ThemeManager/WindowThemePolicy.html
index 0ad9d8f..bb488d6 100644
--- a/Docs/docsets/ThemeKit.docset/Contents/Resources/Documents/Classes/ThemeManager/WindowThemePolicy.html
+++ b/Docs/docsets/ThemeKit.docset/Contents/Resources/Documents/Classes/ThemeManager/WindowThemePolicy.html
@@ -8,15 +8,23 @@
+
+
+
@@ -67,7 +75,7 @@
+ Show on GitHub
+
@@ -174,7 +186,7 @@ NSWindow Extension
Declaration
Swift
- case themeAllWindows
+ case themeAllWindows
@@ -184,16 +196,12 @@ Declaration
+
-
-
-
-
-
@@ -208,7 +216,7 @@
Declaration
Declaration
Swift
- case themeSomeWindows(windowClasses: [AnyClass])
+ case themeSomeWindows(windowClasses: [AnyClass])
@@ -218,16 +226,12 @@ Declaration
-
-
-
-
-
@@ -242,7 +246,7 @@
Declaration
Declaration
Swift
- case doNotThemeSomeWindows(windowClasses: [AnyClass])
+ case doNotThemeSomeWindows(windowClasses: [AnyClass])
@@ -252,10 +256,6 @@ Declaration
@@ -276,7 +276,7 @@ Declaration
Declaration
Swift
- case doNotThemeWindows
+ case doNotThemeWindows
Swift
-public var shortDisplayName: String = "Not Loaded"
+ public var shortDisplayName: String
Swift
-public var isDarkTheme: Bool = false
+ public var isDarkTheme: Bool
Swift
-@objc public var fileURL: URL?
+ @objc
+public var fileURL: URL?
Swift
-@objc public func reload()
+ @objc
+public func reload()
- themeAsset(_:)
+ themeAsset(_:)
Swift
-@objc public func themeAsset(_ key: String) -> Any?
+ @objc
+public func themeAsset(_ key: String) -> Any?
- hasThemeAsset(_:)
+ hasThemeAsset(_:)
Swift
-@objc public func hasThemeAsset(_ key: String) -> Bool
+ @objc
+public func hasThemeAsset(_ key: String) -> Bool
Swift
+public extension NSWindow
+
+
@@ -142,6 +155,14 @@ Extensions
See more
Swift
+extension NSColor
+
+ Swift
-@objc public class func colorMethodNames() -> [String]
+ @objc
+public class func colorMethodNames() -> [String]
Swift
-@objc public var windowEffectiveTheme: Theme
+ @objc
+var windowEffectiveTheme: Theme { get }
Swift
-@objc public var windowEffectiveThemeAppearance: NSAppearance?
+ @objc
+var windowEffectiveThemeAppearance: NSAppearance? { get }
Swift
-@objc public func theme()
+ @objc
+func theme()
Swift
-@objc public func themeIfCompliantWithWindowThemePolicy()
+ @objc
+func themeIfCompliantWithWindowThemePolicy()
Swift
-@objc public static func themeAllWindows()
+ @objc
+static func themeAllWindows()
Swift
+public extension Notification.Name
+
+ Swift
-public static let didChangeTheme = Notification.Name("ThemeKitDidChangeThemeNotification")
+ static let didChangeTheme: Notification.Name
Swift
-public static let didChangeSystemTheme = Notification.Name("ThemeKitDidChangeSystemThemeNotification")
+ static let didChangeSystemTheme: Notification.Name
Swift
-static let didChangeAppleInterfaceTheme = Notification.Name("AppleInterfaceThemeChangedNotification")
+ static let didChangeAppleInterfaceTheme: Notification.Name
Swift
-var shortDisplayName: String
+ var shortDisplayName: String { get }
Swift
-var isDarkTheme: Bool
+ var isDarkTheme: Bool { get }
Swift
-@objc optional var fallbackForegroundColor: NSColor?
+ @objc
+optional var fallbackForegroundColor: NSColor? { get }
Swift
-@objc optional var fallbackBackgroundColor: NSColor?
+ @objc
+optional var fallbackBackgroundColor: NSColor? { get }
Swift
-@objc optional var fallbackGradient: NSGradient?
+ @objc
+optional var fallbackGradient: NSGradient? { get }
Swift
-@objc optional var fallbackImage: NSImage?
+ @objc
+optional var fallbackImage: NSImage? { get }
Swift
-public var isLightTheme: Bool
+ var isLightTheme: Bool { get }
Swift
-public var isSystemTheme: Bool
+ var isSystemTheme: Bool { get }
Swift
-public var isUserTheme: Bool
+ var isUserTheme: Bool { get }
Swift
-public func apply()
+ func apply()
- themeAsset(_:)
+ themeAsset(_:)
Extension method
@@ -576,7 +599,7 @@ Swift
-public func themeAsset(_ key: String) -> Any?
+ func themeAsset(_ key: String) -> Any?
- hasThemeAsset(_:)
+ hasThemeAsset(_:)
Extension method
@@ -636,7 +659,7 @@ Swift
-public func hasThemeAsset(_ key: String) -> Bool
+ func hasThemeAsset(_ key: String) -> Bool
Swift
-var defaultFallbackForegroundColor: NSColor
+ var defaultFallbackForegroundColor: NSColor { get }
Swift
-var defaultFallbackBackgroundColor: NSColor
+ var defaultFallbackBackgroundColor: NSColor { get }
Swift
-var defaultFallbackGradient: NSGradient?
+ var defaultFallbackGradient: NSGradient? { get }
Swift
-var defaultFallbackImage: NSImage
+ var defaultFallbackImage: NSImage { get }
Swift
-var effectiveTheme: Theme
+ var effectiveTheme: Theme { get }
- themeDescription(_:)
+ themeDescription(_:)
Extension method
@@ -884,7 +907,7 @@ Swift
-public func themeDescription(_ theme: Theme) -> String
+ func themeDescription(_ theme: Theme) -> String
@@ -285,7 +291,7 @@ Declaration
Theme-aware means you don’t need to check any conditions when choosing which
gradient to draw. E.g.:
-ThemeGradient.rainbowGradient.draw(in: bounds, angle: 0)
+ThemeGradient.rainbowGradient.draw(in: bounds, angle: 0)
The drawing code will draw with different gradient depending on the selected
@@ -300,83 +306,83 @@
Defining theme-aware gra
Objective-C) to add class methods for your gradients. E.g.:
In Swift:
-extension ThemeGradient {
+extension ThemeGradient {
- static var brandGradient: ThemeGradient {
- return ThemeGradient.gradient(with: #function)
- }
+ static var brandGradient: ThemeGradient {
+ return ThemeGradient.gradient(with: #function)
+ }
-}
+}
In Objective-C:
-@interface TKThemeGradient (Demo)
+@interface TKThemeGradient (Demo)
-+ (TKThemeGradient*)brandGradient;
++ (TKThemeGradient*)brandGradient;
-@end
+@end
-@implementation TKThemeGradient (Demo)
+@implementation TKThemeGradient (Demo)
-+ (TKThemeGradient*)brandGradient {
- return [TKThemeGradient gradientWithSelector:_cmd];
++ (TKThemeGradient*)brandGradient {
+ return [TKThemeGradient gradientWithSelector:_cmd];
}
-@end
+@end
Add Class Extensions on any Theme
you want to support (e.g., LightTheme
and DarkTheme
- TKLightTheme
and TKDarkTheme
on Objective-C) to provide
instance methods for each theme gradient class method defined on (1). E.g.:
In Swift:
-extension LightTheme {
+extension LightTheme {
- var brandGradient: NSGradient {
- return NSGradient(starting: NSColor.white, ending: NSColor.black)
- }
+ var brandGradient: NSGradient {
+ return NSGradient(starting: NSColor.white, ending: NSColor.black)
+ }
- }
+ }
- extension DarkTheme {
+ extension DarkTheme {
- var brandGradient: NSGradient {
- return NSGradient(starting: NSColor.black, ending: NSColor.white)
- }
+ var brandGradient: NSGradient {
+ return NSGradient(starting: NSColor.black, ending: NSColor.white)
+ }
-}
+}
In Objective-C:
-@interface TKLightTheme (Demo) @end
+@interface TKLightTheme (Demo) @end
-@implementation TKLightTheme (Demo)
+@implementation TKLightTheme (Demo)
-- (NSGradient*)brandGradient
+- (NSGradient*)brandGradient
{
- return [[NSGradient alloc] initWithStartingColor:[NSColor whiteColor] endingColor:[NSColor blackColor]];
+ return [[NSGradient alloc] initWithStartingColor:[NSColor whiteColor] endingColor:[NSColor blackColor]];
}
-@end
+@end
-@interface TKDarkTheme (Demo) @end
+@interface TKDarkTheme (Demo) @end
-@implementation TKDarkTheme (Demo)
+@implementation TKDarkTheme (Demo)
-- (NSGradient*)brandGradient
+- (NSGradient*)brandGradient
{
- return [[NSGradient alloc] initWithStartingColor:[NSColor blackColor] endingColor:[NSColor whiteColor]];
+ return [[NSGradient alloc] initWithStartingColor:[NSColor blackColor] endingColor:[NSColor whiteColor]];
}
-@end
+@end
If supporting UserTheme
‘s, define properties on user theme files (.theme
)
for each theme gradient class method defined on (1). E.g.:
-displayName = Sample User Theme
-identifier = com.luckymarmot.ThemeKit.SampleUserTheme
-darkTheme = false
+displayName = Sample User Theme
+identifier = com.luckymarmot.ThemeKit.SampleUserTheme
+darkTheme = false
-orangeSky = rgb(160, 90, 45, .5)
-brandGradient = linear-gradient($orangeSky, rgb(200, 140, 60))
+orangeSky = rgb(160, 90, 45, .5)
+brandGradient = linear-gradient($orangeSky, rgb(200, 140, 60))
Fallback colors
@@ -392,7 +398,8 @@ Fallback colors
Declaration
Swift
- open class ThemeGradient: NSGradient
+ @objc(TKThemeGradient)
+open class ThemeGradient : NSGradient
@@ -424,7 +427,7 @@ Declaration
Theme-aware means you don’t need to check any conditions when choosing which
image to draw. E.g.:
-ThemeImage.logoImage.draw(in: bounds)
+ThemeImage.logoImage.draw(in: bounds)
The drawing code will draw with different image depending on the selected
@@ -439,83 +442,83 @@
Defining theme-aware images
Objective-C) to add class methods for your images. E.g.:
In Swift:
-extension ThemeImage {
+extension ThemeImage {
- static var logoImage: ThemeImage {
- return ThemeImage.image(with: #function)
- }
+ static var logoImage: ThemeImage {
+ return ThemeImage.image(with: #function)
+ }
-}
+}
In Objective-C:
-@interface TKThemeImage (Demo)
+@interface TKThemeImage (Demo)
-+ (TKThemeImage*)logoImage;
++ (TKThemeImage*)logoImage;
-@end
+@end
-@implementation TKThemeImage (Demo)
+@implementation TKThemeImage (Demo)
-+ (TKThemeImage*)logoImage {
- return [TKThemeImage imageWithSelector:_cmd];
++ (TKThemeImage*)logoImage {
+ return [TKThemeImage imageWithSelector:_cmd];
}
-@end
+@end
Add Class Extensions on any Theme
you want to support (e.g., LightTheme
and DarkTheme
- TKLightTheme
and TKDarkTheme
on Objective-C) to provide
instance methods for each theme image class method defined on (1). E.g.:
In Swift:
-extension LightTheme {
+extension LightTheme {
- var logoImage: NSImage? {
- return NSImage(named: "MyLightLogo")
- }
+ var logoImage: NSImage? {
+ return NSImage(named: "MyLightLogo")
+ }
-}
+}
-extension DarkTheme {
+extension DarkTheme {
- var logoImage: NSImage? {
- return NSImage(contentsOfFile: "somewhere/MyDarkLogo.png")
- }
+ var logoImage: NSImage? {
+ return NSImage(contentsOfFile: "somewhere/MyDarkLogo.png")
+ }
-}
+}
In Objective-C:
-@interface TKLightTheme (Demo) @end
+@interface TKLightTheme (Demo) @end
-@implementation TKLightTheme (Demo)
+@implementation TKLightTheme (Demo)
-- (NSImage*)logoImage
+- (NSImage*)logoImage
{
- return [NSImage imageNamed:@"MyLightLogo"];
+ return [NSImage imageNamed:@"MyLightLogo"];
}
-@end
+@end
-@interface TKDarkTheme (Demo) @end
+@interface TKDarkTheme (Demo) @end
-@implementation TKDarkTheme (Demo)
+@implementation TKDarkTheme (Demo)
-- (NSImage*)logoImage
+- (NSImage*)logoImage
{
- return [NSImage alloc] initWithContentsOfFile:@"somewhere/MyDarkLogo.png"];
+ return [NSImage alloc] initWithContentsOfFile:@"somewhere/MyDarkLogo.png"];
}
-@end
+@end
If supporting UserTheme
‘s, define properties on user theme files (.theme
)
for each theme image class method defined on (1). E.g.:
-displayName = Sample User Theme
-identifier = com.luckymarmot.ThemeKit.SampleUserTheme
-darkTheme = false
+displayName = Sample User Theme
+identifier = com.luckymarmot.ThemeKit.SampleUserTheme
+darkTheme = false
-logoImage = image(named:MyLogo)
-//logoImage = image(file:../some/path/MyLogo.png)
+logoImage = image(named:MyLogo)
+//logoImage = image(file:../some/path/MyLogo.png)
Fallback images
@@ -531,7 +534,8 @@ Fallback images
Declaration
Swift
- open class ThemeImage: NSImage
+ @objc(TKThemeImage)
+open class ThemeImage : NSImage
@@ -169,7 +175,7 @@ Declaration
@@ -176,7 +182,8 @@ Declaration
Declaration
@@ -211,7 +214,8 @@ Declaration
Declaration
@@ -249,7 +249,8 @@ Declaration
Declaration
@@ -309,26 +306,26 @@ Declaration
# define a new color for `NSColor.labelColor` (overriding)
labelColor = rgb(11, 220, 111)
# define gradient for `ThemeGradient.brandGradient`
-brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
+brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
// ********************* Images & Patterns ********************** //
# define pattern image from named image "paper" for color `ThemeColor.contentBackgroundColor`
contentBackgroundColor = pattern(named:paper)
# define pattern image from filesystem (relative to user themes folder) for color `ThemeColor.bottomBackgroundColor`
-bottomBackgroundColor = pattern(file:../some/path/some-file.png)
+bottomBackgroundColor = pattern(file:../some/path/some-file.png)
# use named image "apple"
namedImage = image(named:apple)
# use image from filesystem (relative to user themes folder)
-fileImage = image(file:../some/path/some-file.jpg)
+fileImage = image(file:../some/path/some-file.jpg)
// *********************** Common Colors ************************ //
blue = rgb(0, 170, 255)
orange.sky = rgb(160, 90, 45, .5)
// ********************** Fallback Assets *********************** //
-fallbackForegroundColor = rgb(255, 10, 90, 1.0)
+fallbackForegroundColor = rgb(255, 10, 90, 1.0)
fallbackBackgroundColor = rgb(255, 200, 190)
-fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
+fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
With the exception of system overrided named colors (e.g., labelColor
), which
@@ -343,7 +340,8 @@
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
- // Apply the dark theme
- TKDarkTheme *darkTheme = TKThemeManager.darkTheme;
+ // Apply the dark theme
+ TKDarkTheme *darkTheme = TKThemeManager.darkTheme;
[[TKThemeManager sharedManager] setTheme:darkTheme];
}
@@ -305,33 +313,33 @@ In Swift:
In Objective-C:
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
- /// Define default theme.
- /// Used on first run. Default: `SystemTheme`.
- /// Note: `SystemTheme` is a special theme that resolves to `ThemeManager.lightTheme` or `ThemeManager.darkTheme`,
- /// depending on the macOS preference at 'System Preferences > General > Appearance'.
- [TKThemeManager setDefaultTheme:TKThemeManager.lightTheme];
-
- /// Define window theme policy.
- [TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeAllWindows;
- //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
- //[TKThemeManager sharedManager].themableWindowClasses = @[[MyWindow class]];
- //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeSomeWindows;
- //[TKThemeManager sharedManager].notThemableWindowClasses = @[[NSPanel class]];
- //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeWindows;
-
- /// Enable & configure user themes.
- /// Will use folder `(...)/Application Support/{your_app_bundle_id}/Themes`.
- NSArray<NSString*>* applicationSupportURLs = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
+ /// Define default theme.
+ /// Used on first run. Default: `SystemTheme`.
+ /// Note: `SystemTheme` is a special theme that resolves to `ThemeManager.lightTheme` or `ThemeManager.darkTheme`,
+ /// depending on the macOS preference at 'System Preferences > General > Appearance'.
+ [TKThemeManager setDefaultTheme:TKThemeManager.lightTheme];
+
+ /// Define window theme policy.
+ [TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeAllWindows;
+ //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
+ //[TKThemeManager sharedManager].themableWindowClasses = @[[MyWindow class]];
+ //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeSomeWindows;
+ //[TKThemeManager sharedManager].notThemableWindowClasses = @[[NSPanel class]];
+ //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeWindows;
+
+ /// Enable & configure user themes.
+ /// Will use folder `(...)/Application Support/{your_app_bundle_id}/Themes`.
+ NSArray<NSString*>* applicationSupportURLs = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSURL* thisAppSupportURL = [[NSURL fileURLWithPath:applicationSupportURLs.firstObject] URLByAppendingPathComponent:[NSBundle mainBundle].bundleIdentifier];
NSURL* userThemesFolderURL = [thisAppSupportURL URLByAppendingPathComponent:@"Themes"];
[TKThemeManager sharedManager].userThemesFolderURL = userThemesFolderURL;
- /// Change the default light and dark theme, used when `SystemTheme` is selected.
- //TKThemeManager.lightTheme = [[TKThemeManager sharedManager] themeWithIdentifier:PaperTheme.identifier];
- //TKThemeManager.darkTheme = [[TKThemeManager sharedManager] themeWithIdentifier:@"com.luckymarmot.ThemeKit.PurpleGreen"];
-
- /// Apply last applied theme (or the default theme, if no previous one)
- [[TKThemeManager sharedManager] applyLastOrDefaultTheme];
+ /// Change the default light and dark theme, used when `SystemTheme` is selected.
+ //TKThemeManager.lightTheme = [[TKThemeManager sharedManager] themeWithIdentifier:PaperTheme.identifier];
+ //TKThemeManager.darkTheme = [[TKThemeManager sharedManager] themeWithIdentifier:@"com.luckymarmot.ThemeKit.PurpleGreen"];
+
+ /// Apply last applied theme (or the default theme, if no previous one)
+ [[TKThemeManager sharedManager] applyLastOrDefaultTheme];
}
@@ -498,26 +506,26 @@ User Themes
# define a new color for `NSColor.labelColor` (overriding)
labelColor = rgb(11, 220, 111)
# define gradient for `ThemeGradient.brandGradient`
-brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
+brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
// ********************* Images & Patterns ********************** //
# define pattern image from named image "paper" for color `ThemeColor.contentBackgroundColor`
contentBackgroundColor = pattern(named:paper)
# define pattern image from filesystem (relative to user themes folder) for color `ThemeColor.bottomBackgroundColor`
-bottomBackgroundColor = pattern(file:../some/path/some-file.png)
+bottomBackgroundColor = pattern(file:../some/path/some-file.png)
# define image using named image "apple"
namedImage = image(named:apple)
# define image using from filesystem (relative to user themes folder)
-fileImage = image(file:../some/path/some-file.jpg)
+fileImage = image(file:../some/path/some-file.jpg)
// *********************** Common Colors ************************ //
blue = rgb(0, 170, 255)
orange.sky = rgb(160, 90, 45, .5)
// ********************** Fallback Assets *********************** //
-fallbackForegroundColor = rgb(255, 10, 90, 1.0)
+fallbackForegroundColor = rgb(255, 10, 90, 1.0)
fallbackBackgroundColor = rgb(255, 200, 190)
-fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
+fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
@@ -546,7 +554,7 @@ ThemeColor
and ThemeGradient
) so that your controls drawing will always adapt to your current theme… automatically!
-In case needed (for example, if drawing is being cached), you can observe when theme changes to refresh the UI or to perform any theme related operation. Check Observing theme changes
on Usage section above.
In case needed (for example, if drawing is being cached), you can observe when theme changes to refresh the UI or to perform any theme related operation. Check “Observing theme changes” on Usage section above.
Please check this issue. This theming issue only affects view-based NSTableView
s, when placed on sheets, on macOS < 10.14. Please check this comment for a brief explanation on how to fix it, and a small project demonstrating the issue and the fix.
t |
Check if color is being overriden in a ThemeColor extension.
","parent_name":"NSColor"},"Extensions/NSColor.html#/c:@CM@ThemeKit@@objc(cs)NSColor(cm)colorMethodNames":{"name":"colorMethodNames()","abstract":"Get all NSColor
color methods.","parent_name":"NSColor"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowTheme":{"name":"windowTheme","abstract":"
Any window specific theme.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveTheme":{"name":"windowEffectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveThemeAppearance":{"name":"windowEffectiveThemeAppearance","abstract":"Returns the current effective appearance (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)theme":{"name":"theme()","abstract":"Theme window if needed.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)themeIfCompliantWithWindowThemePolicy":{"name":"themeIfCompliantWithWindowThemePolicy()","abstract":"Theme window if compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(cm)themeAllWindows":{"name":"themeAllWindows()","abstract":"Theme all windows compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html":{"name":"NSWindow","abstract":"NSWindow
ThemeKit extension.
NSColor
ThemeKit extension to help on when overriding colors in ThemeColor
extensions.
ThemeImage
image selector used as theme instance method for same","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(py)resolvedThemeImage":{"name":"resolvedThemeImage","abstract":"
Resolved Image from current theme (dynamically changes with the current theme).
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageWithSelector:":{"name":"image(with:)","abstract":"Create a new ThemeImage instance for the specified selector.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForTheme:selector:":{"name":"image(for:selector:)","abstract":"Image for a specific theme.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForView:selector:":{"name":"image(for:selector:)","abstract":"Current theme image, but respecting view appearance and any window","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(im)recacheImage":{"name":"recacheImage()","abstract":"
Forces dynamic color resolution into resolvedThemeImage
and cache it.","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeImage"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)themeGradientSelector":{"name":"themeGradientSelector","abstract":"
ThemeGradient
gradient selector used as theme instance method for same","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)resolvedThemeGradient":{"name":"resolvedThemeGradient","abstract":"
Resolved gradient from current theme (dynamically changes with the current theme).
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientWithSelector:":{"name":"gradient(with:)","abstract":"Create a new ThemeGradient instance for the specified selector.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForTheme:selector:":{"name":"gradient(for:selector:)","abstract":"Gradient for a specific theme.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForView:selector:":{"name":"gradient(for:selector:)","abstract":"Current theme gradient, but respecting view appearance and any window","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(im)recacheGradient":{"name":"recacheGradient()","abstract":"
Forces dynamic gradient resolution into resolvedThemeGradient
and cache it.","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeGradient"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)themeColorSelector":{"name":"themeColorSelector","abstract":"
ThemeColor
color selector used as theme instance method for same selector","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)resolvedThemeColor":{"name":"resolvedThemeColor","abstract":"
Resolved color from current theme (dynamically changes with the current theme).
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorWithSelector:":{"name":"color(with:)","abstract":"Create a new ThemeColor instance for the specified selector.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForTheme:selector:":{"name":"color(for:selector:)","abstract":"Color for a specific theme.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForView:selector:":{"name":"color(for:selector:)","abstract":"Current theme color, but respecting view appearance and any window","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(im)recacheColor":{"name":"recacheColor()","abstract":"
Forces dynamic color resolution into resolvedThemeColor
and cache it.","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeColor"},"Classes/ThemeColor.html":{"name":"ThemeColor","abstract":"
ThemeColor
is a NSColor
subclass that dynamically changes its colors whenever"},"Classes/ThemeGradient.html":{"name":"ThemeGradient","abstract":"
ThemeGradient
is a NSGradient
subclass that dynamically changes its colors"},"Classes/ThemeImage.html":{"name":"ThemeImage","abstract":"
ThemeImage
is a NSImage
subclass that dynamically changes its colors"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)identifier":{"name":"identifier","abstract":"
Unique theme identifier.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)fileURL":{"name":"fileURL","abstract":"File URL.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)reload":{"name":"reload()","abstract":"Reloads user theme from file.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)themeAsset:":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"UserTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)identifier":{"name":"identifier","abstract":"System theme identifier (static).
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)isAppleInterfaceThemeDark":{"name":"isAppleInterfaceThemeDark","abstract":"Checks if Apple UI theme is set to dark, as set on System Preferences > General > Appearance.
","parent_name":"SystemTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(cpy)identifier":{"name":"identifier","abstract":"Dark theme identifier (static).
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"DarkTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(cpy)identifier":{"name":"identifier","abstract":"Light theme identifier (static).
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"LightTheme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackForegroundColor":{"name":"fallbackForegroundColor","abstract":"Optional: foreground color to be used on when a foreground color is not provided","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackBackgroundColor":{"name":"fallbackBackgroundColor","abstract":"
Optional: background color to be used on when a background color (a color which","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackGradient":{"name":"fallbackGradient","abstract":"
Optional: gradient to be used on when a gradient is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackImage":{"name":"fallbackImage","abstract":"Optional: image to be used on when an image is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE07isLightA0Sbvp":{"name":"isLightTheme","abstract":"Is this a light theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE08isSystemA0Sbvp":{"name":"isSystemTheme","abstract":"Is this the system theme? If true, theme automatically resolve to","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE06isUserA0Sbvp":{"name":"isUserTheme","abstract":"
Is this a user theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE5applyyyF":{"name":"apply()","abstract":"Apply theme (make it the current one).
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE10themeAssetyypSgSSF":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackForegroundColorSo7NSColorCvp":{"name":"defaultFallbackForegroundColor","abstract":"Default foreground color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackBackgroundColorSo7NSColorCvp":{"name":"defaultFallbackBackgroundColor","abstract":"
Default background color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE23defaultFallbackGradientSo10NSGradientCSgvp":{"name":"defaultFallbackGradient","abstract":"
Default gradient to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE20defaultFallbackImageSo7NSImageCvp":{"name":"defaultFallbackImage","abstract":"
Default image to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE09effectiveA0AaB_pvp":{"name":"effectiveTheme","abstract":"
Effective theme, which can be different from itself if it represents the","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE16themeDescriptionySSAaB_pF":{"name":"themeDescription(_:)","abstract":"
Theme description.
","parent_name":"Theme"},"Protocols/Theme.html":{"name":"Theme","abstract":"Theme protocol: the base of all themes.
"},"Classes/LightTheme.html":{"name":"LightTheme","abstract":"Light theme (default).
"},"Classes/DarkTheme.html":{"name":"DarkTheme","abstract":"Dark theme.
"},"Classes/SystemTheme.html":{"name":"SystemTheme","abstract":"System theme.
"},"Classes/UserTheme.html":{"name":"UserTheme","abstract":"A Theme
class wrapping a user provided theme file (.theme
).
ThemeKit notification sent when current theme is about to change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE09didChangeC0ABvpZ":{"name":"didChangeTheme","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE015didChangeSystemC0ABvpZ":{"name":"didChangeSystemTheme","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE023didChangeAppleInterfaceC0ABvpZ":{"name":"didChangeAppleInterfaceTheme","abstract":"Convenience property for the system notification sent when System Preference for dark mode changes.
","parent_name":"Name"},"Extensions/Notification/Name.html":{"name":"Name","abstract":"Notifications defined by ThemeKit
.
Theme all application windows (default).
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO16themeSomeWindowsyAESayyXlXpG_tcAEmF":{"name":"themeSomeWindows(windowClasses:)","abstract":"Only theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA11SomeWindowsyAESayyXlXpG_tcAEmF":{"name":"doNotThemeSomeWindows(windowClasses:)","abstract":"Do not theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA7WindowsyA2EmF":{"name":"doNotThemeWindows","abstract":"Do not theme any window.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)sharedManager":{"name":"shared","abstract":"ThemeManager shared manager.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)isEnabled":{"name":"isEnabled","abstract":"Enables or disables ThemeKit functionality.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)theme":{"name":"theme","abstract":"Sets or returns the current theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveTheme":{"name":"effectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)themes":{"name":"themes","abstract":"List all available themes:
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)userThemes":{"name":"userThemes","abstract":"List all user themes (UserTheme
class, loaded from .theme
files)
Convenience method for accessing the light theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)darkTheme":{"name":"darkTheme","abstract":"Convenience method for accessing the dark theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)systemTheme":{"name":"systemTheme","abstract":"Convenience method for accessing the theme that dynamically changes to","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)defaultTheme":{"name":"defaultTheme","abstract":"
Set/get default theme to be used on the first run (default: ThemeManager.systemTheme
).
Get the theme with specified identifier.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)userDefaultsThemeKey":{"name":"userDefaultsThemeKey","abstract":"User defaults key for current theme
.
Apply last applied theme, or default, if none.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(im)reApplyCurrentTheme":{"name":"reApplyCurrentTheme()","abstract":"Force-apply current theme
.
Location of user provided themes (.theme files).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveThemeAppearance":{"name":"effectiveThemeAppearance","abstract":"Appearance in use for effective theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)lightAppearance":{"name":"lightAppearance","abstract":"Convenience method to get the light appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)darkAppearance":{"name":"darkAppearance","abstract":"Convenience method to get the dark appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager/WindowThemePolicy.html":{"name":"WindowThemePolicy","abstract":"Window theme policies that define which windows should be automatically themed, if any.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/s:8ThemeKit0A7ManagerC06windowA6PolicyAC06WindowaE0Ovp":{"name":"windowThemePolicy","abstract":"Current window theme policy.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)animateThemeTransitions":{"name":"animateThemeTransitions","abstract":"Animate theme transitions?
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)willChangeThemeNotification":{"name":"willChangeThemeNotification","abstract":"ThemeKit notification sent when current theme is about to change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeThemeNotification":{"name":"didChangeThemeNotification","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeSystemThemeNotification":{"name":"didChangeSystemThemeNotification","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html":{"name":"ThemeManager","abstract":"Use ThemeManager
shared instance to perform app-wide theming related operations,"},"Extensions/Notification.html":{"name":"Notification"},"ThemeKit.html":{"name":"ThemeKit"},"Themes.html":{"name":"Themes"},"Theme Assets.html":{"name":"Theme Assets"},"Extensions.html":{"name":"Extensions"}}
\ No newline at end of file
+{"Extensions/NSColor.html#/c:@CM@ThemeKit@@objc(cs)NSColor(py)isThemeOverriden":{"name":"isThemeOverriden","abstract":"
Check if color is being overriden in a ThemeColor extension.
","parent_name":"NSColor"},"Extensions/NSColor.html#/c:@CM@ThemeKit@@objc(cs)NSColor(cm)colorMethodNames":{"name":"colorMethodNames()","abstract":"Get all NSColor
color methods.","parent_name":"NSColor"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowTheme":{"name":"windowTheme","abstract":"
Any window specific theme.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveTheme":{"name":"windowEffectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveThemeAppearance":{"name":"windowEffectiveThemeAppearance","abstract":"Returns the current effective appearance (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)theme":{"name":"theme()","abstract":"Theme window if needed.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)themeIfCompliantWithWindowThemePolicy":{"name":"themeIfCompliantWithWindowThemePolicy()","abstract":"Theme window if compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(cm)themeAllWindows":{"name":"themeAllWindows()","abstract":"Theme all windows compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html":{"name":"NSWindow","abstract":"NSWindow
ThemeKit extension.
NSColor
ThemeKit extension to help on when overriding colors in ThemeColor
extensions.
ThemeImage
image selector used as theme instance method for same","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(py)resolvedThemeImage":{"name":"resolvedThemeImage","abstract":"
Resolved Image from current theme (dynamically changes with the current theme).
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageWithSelector:":{"name":"image(with:)","abstract":"Create a new ThemeImage instance for the specified selector.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForTheme:selector:":{"name":"image(for:selector:)","abstract":"Image for a specific theme.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForView:selector:":{"name":"image(for:selector:)","abstract":"Current theme image, but respecting view appearance and any window","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(im)recacheImage":{"name":"recacheImage()","abstract":"
Forces dynamic color resolution into resolvedThemeImage
and cache it.","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeImage"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)themeGradientSelector":{"name":"themeGradientSelector","abstract":"
ThemeGradient
gradient selector used as theme instance method for same","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)resolvedThemeGradient":{"name":"resolvedThemeGradient","abstract":"
Resolved gradient from current theme (dynamically changes with the current theme).
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientWithSelector:":{"name":"gradient(with:)","abstract":"Create a new ThemeGradient instance for the specified selector.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForTheme:selector:":{"name":"gradient(for:selector:)","abstract":"Gradient for a specific theme.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForView:selector:":{"name":"gradient(for:selector:)","abstract":"Current theme gradient, but respecting view appearance and any window","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(im)recacheGradient":{"name":"recacheGradient()","abstract":"
Forces dynamic gradient resolution into resolvedThemeGradient
and cache it.","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeGradient"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)themeColorSelector":{"name":"themeColorSelector","abstract":"
ThemeColor
color selector used as theme instance method for same selector","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)resolvedThemeColor":{"name":"resolvedThemeColor","abstract":"
Resolved color from current theme (dynamically changes with the current theme).
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorWithSelector:":{"name":"color(with:)","abstract":"Create a new ThemeColor instance for the specified selector.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForTheme:selector:":{"name":"color(for:selector:)","abstract":"Color for a specific theme.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForView:selector:":{"name":"color(for:selector:)","abstract":"Current theme color, but respecting view appearance and any window","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(im)recacheColor":{"name":"recacheColor()","abstract":"
Forces dynamic color resolution into resolvedThemeColor
and cache it.","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeColor"},"Classes/ThemeColor.html":{"name":"ThemeColor","abstract":"
ThemeColor
is a NSColor
subclass that dynamically changes its colors whenever"},"Classes/ThemeGradient.html":{"name":"ThemeGradient","abstract":"
ThemeGradient
is a NSGradient
subclass that dynamically changes its colors"},"Classes/ThemeImage.html":{"name":"ThemeImage","abstract":"
ThemeImage
is a NSImage
subclass that dynamically changes its colors"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)identifier":{"name":"identifier","abstract":"
Unique theme identifier.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)fileURL":{"name":"fileURL","abstract":"File URL.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)reload":{"name":"reload()","abstract":"Reloads user theme from file.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)themeAsset:":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"UserTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)identifier":{"name":"identifier","abstract":"System theme identifier (static).
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)isAppleInterfaceThemeDark":{"name":"isAppleInterfaceThemeDark","abstract":"Checks if Apple UI theme is set to dark, as set on System Preferences > General > Appearance.
","parent_name":"SystemTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(cpy)identifier":{"name":"identifier","abstract":"Dark theme identifier (static).
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"DarkTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(cpy)identifier":{"name":"identifier","abstract":"Light theme identifier (static).
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"LightTheme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackForegroundColor":{"name":"fallbackForegroundColor","abstract":"Optional: foreground color to be used on when a foreground color is not provided","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackBackgroundColor":{"name":"fallbackBackgroundColor","abstract":"
Optional: background color to be used on when a background color (a color which","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackGradient":{"name":"fallbackGradient","abstract":"
Optional: gradient to be used on when a gradient is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackImage":{"name":"fallbackImage","abstract":"Optional: image to be used on when an image is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE07isLightA0Sbvp":{"name":"isLightTheme","abstract":"Is this a light theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE08isSystemA0Sbvp":{"name":"isSystemTheme","abstract":"Is this the system theme? If true, theme automatically resolve to","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE06isUserA0Sbvp":{"name":"isUserTheme","abstract":"
Is this a user theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE5applyyyF":{"name":"apply()","abstract":"Apply theme (make it the current one).
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE10themeAssetyypSgSSF":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackForegroundColorSo7NSColorCvp":{"name":"defaultFallbackForegroundColor","abstract":"Default foreground color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackBackgroundColorSo7NSColorCvp":{"name":"defaultFallbackBackgroundColor","abstract":"
Default background color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE23defaultFallbackGradientSo10NSGradientCSgvp":{"name":"defaultFallbackGradient","abstract":"
Default gradient to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE20defaultFallbackImageSo7NSImageCvp":{"name":"defaultFallbackImage","abstract":"
Default image to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE09effectiveA0AaB_pvp":{"name":"effectiveTheme","abstract":"
Effective theme, which can be different from itself if it represents the","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE16themeDescriptionySSAaB_pF":{"name":"themeDescription(_:)","abstract":"
Theme description.
","parent_name":"Theme"},"Protocols/Theme.html":{"name":"Theme","abstract":"Theme protocol: the base of all themes.
"},"Classes/LightTheme.html":{"name":"LightTheme","abstract":"Light theme (default).
"},"Classes/DarkTheme.html":{"name":"DarkTheme","abstract":"Dark theme.
"},"Classes/SystemTheme.html":{"name":"SystemTheme","abstract":"System theme.
"},"Classes/UserTheme.html":{"name":"UserTheme","abstract":"A Theme
class wrapping a user provided theme file (.theme
).
ThemeKit notification sent when current theme is about to change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE09didChangeC0ABvpZ":{"name":"didChangeTheme","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE015didChangeSystemC0ABvpZ":{"name":"didChangeSystemTheme","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE023didChangeAppleInterfaceC0ABvpZ":{"name":"didChangeAppleInterfaceTheme","abstract":"Convenience property for the system notification sent when System Preference for dark mode changes.
","parent_name":"Name"},"Extensions/Notification/Name.html":{"name":"Name","abstract":"Notifications defined by ThemeKit
.
Theme all application windows (default).
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO16themeSomeWindowsyAESayyXlXpG_tcAEmF":{"name":"themeSomeWindows(windowClasses:)","abstract":"Only theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA11SomeWindowsyAESayyXlXpG_tcAEmF":{"name":"doNotThemeSomeWindows(windowClasses:)","abstract":"Do not theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA7WindowsyA2EmF":{"name":"doNotThemeWindows","abstract":"Do not theme any window.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)sharedManager":{"name":"shared","abstract":"ThemeManager shared manager.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)isEnabled":{"name":"isEnabled","abstract":"Enables or disables ThemeKit functionality.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)theme":{"name":"theme","abstract":"Sets or returns the current theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveTheme":{"name":"effectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)themes":{"name":"themes","abstract":"List all available themes:
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)userThemes":{"name":"userThemes","abstract":"List all user themes (UserTheme
class, loaded from .theme
files)
Convenience method for accessing the light theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)darkTheme":{"name":"darkTheme","abstract":"Convenience method for accessing the dark theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)systemTheme":{"name":"systemTheme","abstract":"Convenience method for accessing the theme that dynamically changes to","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)defaultTheme":{"name":"defaultTheme","abstract":"
Set/get default theme to be used on the first run (default: ThemeManager.systemTheme
).
Get the theme with specified identifier.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)userDefaultsThemeKey":{"name":"userDefaultsThemeKey","abstract":"User defaults key for current theme
.
Apply last applied theme, or default, if none.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(im)reApplyCurrentTheme":{"name":"reApplyCurrentTheme()","abstract":"Force-apply current theme
.
Location of user provided themes (.theme files).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveThemeAppearance":{"name":"effectiveThemeAppearance","abstract":"Appearance in use for effective theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)lightAppearance":{"name":"lightAppearance","abstract":"Convenience method to get the light appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)darkAppearance":{"name":"darkAppearance","abstract":"Convenience method to get the dark appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager/WindowThemePolicy.html":{"name":"WindowThemePolicy","abstract":"Window theme policies that define which windows should be automatically themed, if any.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/s:8ThemeKit0A7ManagerC06windowA6PolicyAC06WindowaE0Ovp":{"name":"windowThemePolicy","abstract":"Current window theme policy.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)animateThemeTransitions":{"name":"animateThemeTransitions","abstract":"Animate theme transitions?
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)willChangeThemeNotification":{"name":"willChangeThemeNotification","abstract":"ThemeKit notification sent when current theme is about to change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeThemeNotification":{"name":"didChangeThemeNotification","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeSystemThemeNotification":{"name":"didChangeSystemThemeNotification","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html":{"name":"ThemeManager","abstract":"Use ThemeManager
shared instance to perform app-wide theming related operations,"},"Extensions/Notification.html":{"name":"Notification"},"ThemeKit.html":{"name":"ThemeKit"},"Themes.html":{"name":"Themes"},"Theme%20Assets.html":{"name":"Theme Assets"},"Extensions.html":{"name":"Extensions"}}
\ No newline at end of file
diff --git a/Docs/docsets/ThemeKit.docset/Contents/Resources/docSet.dsidx b/Docs/docsets/ThemeKit.docset/Contents/Resources/docSet.dsidx
index c42ab56..382e3e3 100644
Binary files a/Docs/docsets/ThemeKit.docset/Contents/Resources/docSet.dsidx and b/Docs/docsets/ThemeKit.docset/Contents/Resources/docSet.dsidx differ
diff --git a/Docs/docsets/ThemeKit.tgz b/Docs/docsets/ThemeKit.tgz
index 9dc39c3..4698f21 100644
Binary files a/Docs/docsets/ThemeKit.tgz and b/Docs/docsets/ThemeKit.tgz differ
diff --git a/Docs/docsets/ThemeKit.xml b/Docs/docsets/ThemeKit.xml
index a7eac64..60b4c83 100644
--- a/Docs/docsets/ThemeKit.xml
+++ b/Docs/docsets/ThemeKit.xml
@@ -1 +1 @@
-
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
- // Apply the dark theme
- TKDarkTheme *darkTheme = TKThemeManager.darkTheme;
+ // Apply the dark theme
+ TKDarkTheme *darkTheme = TKThemeManager.darkTheme;
[[TKThemeManager sharedManager] setTheme:darkTheme];
}
@@ -305,33 +313,33 @@ In Swift:
In Objective-C:
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification {
- /// Define default theme.
- /// Used on first run. Default: `SystemTheme`.
- /// Note: `SystemTheme` is a special theme that resolves to `ThemeManager.lightTheme` or `ThemeManager.darkTheme`,
- /// depending on the macOS preference at 'System Preferences > General > Appearance'.
- [TKThemeManager setDefaultTheme:TKThemeManager.lightTheme];
-
- /// Define window theme policy.
- [TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeAllWindows;
- //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
- //[TKThemeManager sharedManager].themableWindowClasses = @[[MyWindow class]];
- //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeSomeWindows;
- //[TKThemeManager sharedManager].notThemableWindowClasses = @[[NSPanel class]];
- //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeWindows;
-
- /// Enable & configure user themes.
- /// Will use folder `(...)/Application Support/{your_app_bundle_id}/Themes`.
- NSArray<NSString*>* applicationSupportURLs = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
+ /// Define default theme.
+ /// Used on first run. Default: `SystemTheme`.
+ /// Note: `SystemTheme` is a special theme that resolves to `ThemeManager.lightTheme` or `ThemeManager.darkTheme`,
+ /// depending on the macOS preference at 'System Preferences > General > Appearance'.
+ [TKThemeManager setDefaultTheme:TKThemeManager.lightTheme];
+
+ /// Define window theme policy.
+ [TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeAllWindows;
+ //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyThemeSomeWindows;
+ //[TKThemeManager sharedManager].themableWindowClasses = @[[MyWindow class]];
+ //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeSomeWindows;
+ //[TKThemeManager sharedManager].notThemableWindowClasses = @[[NSPanel class]];
+ //[TKThemeManager sharedManager].windowThemePolicy = TKThemeManagerWindowThemePolicyDoNotThemeWindows;
+
+ /// Enable & configure user themes.
+ /// Will use folder `(...)/Application Support/{your_app_bundle_id}/Themes`.
+ NSArray<NSString*>* applicationSupportURLs = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSURL* thisAppSupportURL = [[NSURL fileURLWithPath:applicationSupportURLs.firstObject] URLByAppendingPathComponent:[NSBundle mainBundle].bundleIdentifier];
NSURL* userThemesFolderURL = [thisAppSupportURL URLByAppendingPathComponent:@"Themes"];
[TKThemeManager sharedManager].userThemesFolderURL = userThemesFolderURL;
- /// Change the default light and dark theme, used when `SystemTheme` is selected.
- //TKThemeManager.lightTheme = [[TKThemeManager sharedManager] themeWithIdentifier:PaperTheme.identifier];
- //TKThemeManager.darkTheme = [[TKThemeManager sharedManager] themeWithIdentifier:@"com.luckymarmot.ThemeKit.PurpleGreen"];
-
- /// Apply last applied theme (or the default theme, if no previous one)
- [[TKThemeManager sharedManager] applyLastOrDefaultTheme];
+ /// Change the default light and dark theme, used when `SystemTheme` is selected.
+ //TKThemeManager.lightTheme = [[TKThemeManager sharedManager] themeWithIdentifier:PaperTheme.identifier];
+ //TKThemeManager.darkTheme = [[TKThemeManager sharedManager] themeWithIdentifier:@"com.luckymarmot.ThemeKit.PurpleGreen"];
+
+ /// Apply last applied theme (or the default theme, if no previous one)
+ [[TKThemeManager sharedManager] applyLastOrDefaultTheme];
}
@@ -498,26 +506,26 @@ User Themes
# define a new color for `NSColor.labelColor` (overriding)
labelColor = rgb(11, 220, 111)
# define gradient for `ThemeGradient.brandGradient`
-brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
+brandGradient = linear-gradient($orange.sky, rgba(200, 140, 60, 1.0))
// ********************* Images & Patterns ********************** //
# define pattern image from named image "paper" for color `ThemeColor.contentBackgroundColor`
contentBackgroundColor = pattern(named:paper)
# define pattern image from filesystem (relative to user themes folder) for color `ThemeColor.bottomBackgroundColor`
-bottomBackgroundColor = pattern(file:../some/path/some-file.png)
+bottomBackgroundColor = pattern(file:../some/path/some-file.png)
# define image using named image "apple"
namedImage = image(named:apple)
# define image using from filesystem (relative to user themes folder)
-fileImage = image(file:../some/path/some-file.jpg)
+fileImage = image(file:../some/path/some-file.jpg)
// *********************** Common Colors ************************ //
blue = rgb(0, 170, 255)
orange.sky = rgb(160, 90, 45, .5)
// ********************** Fallback Assets *********************** //
-fallbackForegroundColor = rgb(255, 10, 90, 1.0)
+fallbackForegroundColor = rgb(255, 10, 90, 1.0)
fallbackBackgroundColor = rgb(255, 200, 190)
-fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
+fallbackGradient = linear-gradient($blue, rgba(200, 140, 60, 1.0))
@@ -546,7 +554,7 @@ ThemeColor
and ThemeGradient
) so that your controls drawing will always adapt to your current theme… automatically!
-In case needed (for example, if drawing is being cached), you can observe when theme changes to refresh the UI or to perform any theme related operation. Check Observing theme changes
on Usage section above.
In case needed (for example, if drawing is being cached), you can observe when theme changes to refresh the UI or to perform any theme related operation. Check “Observing theme changes” on Usage section above.
Please check this issue. This theming issue only affects view-based NSTableView
s, when placed on sheets, on macOS < 10.14. Please check this comment for a brief explanation on how to fix it, and a small project demonstrating the issue and the fix.
t |
Check if color is being overriden in a ThemeColor extension.
","parent_name":"NSColor"},"Extensions/NSColor.html#/c:@CM@ThemeKit@@objc(cs)NSColor(cm)colorMethodNames":{"name":"colorMethodNames()","abstract":"Get all NSColor
color methods.","parent_name":"NSColor"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowTheme":{"name":"windowTheme","abstract":"
Any window specific theme.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveTheme":{"name":"windowEffectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveThemeAppearance":{"name":"windowEffectiveThemeAppearance","abstract":"Returns the current effective appearance (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)theme":{"name":"theme()","abstract":"Theme window if needed.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)themeIfCompliantWithWindowThemePolicy":{"name":"themeIfCompliantWithWindowThemePolicy()","abstract":"Theme window if compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(cm)themeAllWindows":{"name":"themeAllWindows()","abstract":"Theme all windows compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html":{"name":"NSWindow","abstract":"NSWindow
ThemeKit extension.
NSColor
ThemeKit extension to help on when overriding colors in ThemeColor
extensions.
ThemeImage
image selector used as theme instance method for same","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(py)resolvedThemeImage":{"name":"resolvedThemeImage","abstract":"
Resolved Image from current theme (dynamically changes with the current theme).
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageWithSelector:":{"name":"image(with:)","abstract":"Create a new ThemeImage instance for the specified selector.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForTheme:selector:":{"name":"image(for:selector:)","abstract":"Image for a specific theme.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForView:selector:":{"name":"image(for:selector:)","abstract":"Current theme image, but respecting view appearance and any window","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(im)recacheImage":{"name":"recacheImage()","abstract":"
Forces dynamic color resolution into resolvedThemeImage
and cache it.","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeImage"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)themeGradientSelector":{"name":"themeGradientSelector","abstract":"
ThemeGradient
gradient selector used as theme instance method for same","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)resolvedThemeGradient":{"name":"resolvedThemeGradient","abstract":"
Resolved gradient from current theme (dynamically changes with the current theme).
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientWithSelector:":{"name":"gradient(with:)","abstract":"Create a new ThemeGradient instance for the specified selector.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForTheme:selector:":{"name":"gradient(for:selector:)","abstract":"Gradient for a specific theme.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForView:selector:":{"name":"gradient(for:selector:)","abstract":"Current theme gradient, but respecting view appearance and any window","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(im)recacheGradient":{"name":"recacheGradient()","abstract":"
Forces dynamic gradient resolution into resolvedThemeGradient
and cache it.","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeGradient"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)themeColorSelector":{"name":"themeColorSelector","abstract":"
ThemeColor
color selector used as theme instance method for same selector","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)resolvedThemeColor":{"name":"resolvedThemeColor","abstract":"
Resolved color from current theme (dynamically changes with the current theme).
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorWithSelector:":{"name":"color(with:)","abstract":"Create a new ThemeColor instance for the specified selector.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForTheme:selector:":{"name":"color(for:selector:)","abstract":"Color for a specific theme.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForView:selector:":{"name":"color(for:selector:)","abstract":"Current theme color, but respecting view appearance and any window","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(im)recacheColor":{"name":"recacheColor()","abstract":"
Forces dynamic color resolution into resolvedThemeColor
and cache it.","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeColor"},"Classes/ThemeColor.html":{"name":"ThemeColor","abstract":"
ThemeColor
is a NSColor
subclass that dynamically changes its colors whenever"},"Classes/ThemeGradient.html":{"name":"ThemeGradient","abstract":"
ThemeGradient
is a NSGradient
subclass that dynamically changes its colors"},"Classes/ThemeImage.html":{"name":"ThemeImage","abstract":"
ThemeImage
is a NSImage
subclass that dynamically changes its colors"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)identifier":{"name":"identifier","abstract":"
Unique theme identifier.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)fileURL":{"name":"fileURL","abstract":"File URL.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)reload":{"name":"reload()","abstract":"Reloads user theme from file.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)themeAsset:":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"UserTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)identifier":{"name":"identifier","abstract":"System theme identifier (static).
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)isAppleInterfaceThemeDark":{"name":"isAppleInterfaceThemeDark","abstract":"Checks if Apple UI theme is set to dark, as set on System Preferences > General > Appearance.
","parent_name":"SystemTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(cpy)identifier":{"name":"identifier","abstract":"Dark theme identifier (static).
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"DarkTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(cpy)identifier":{"name":"identifier","abstract":"Light theme identifier (static).
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"LightTheme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackForegroundColor":{"name":"fallbackForegroundColor","abstract":"Optional: foreground color to be used on when a foreground color is not provided","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackBackgroundColor":{"name":"fallbackBackgroundColor","abstract":"
Optional: background color to be used on when a background color (a color which","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackGradient":{"name":"fallbackGradient","abstract":"
Optional: gradient to be used on when a gradient is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackImage":{"name":"fallbackImage","abstract":"Optional: image to be used on when an image is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE07isLightA0Sbvp":{"name":"isLightTheme","abstract":"Is this a light theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE08isSystemA0Sbvp":{"name":"isSystemTheme","abstract":"Is this the system theme? If true, theme automatically resolve to","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE06isUserA0Sbvp":{"name":"isUserTheme","abstract":"
Is this a user theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE5applyyyF":{"name":"apply()","abstract":"Apply theme (make it the current one).
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE10themeAssetyypSgSSF":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackForegroundColorSo7NSColorCvp":{"name":"defaultFallbackForegroundColor","abstract":"Default foreground color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackBackgroundColorSo7NSColorCvp":{"name":"defaultFallbackBackgroundColor","abstract":"
Default background color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE23defaultFallbackGradientSo10NSGradientCSgvp":{"name":"defaultFallbackGradient","abstract":"
Default gradient to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE20defaultFallbackImageSo7NSImageCvp":{"name":"defaultFallbackImage","abstract":"
Default image to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE09effectiveA0AaB_pvp":{"name":"effectiveTheme","abstract":"
Effective theme, which can be different from itself if it represents the","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE16themeDescriptionySSAaB_pF":{"name":"themeDescription(_:)","abstract":"
Theme description.
","parent_name":"Theme"},"Protocols/Theme.html":{"name":"Theme","abstract":"Theme protocol: the base of all themes.
"},"Classes/LightTheme.html":{"name":"LightTheme","abstract":"Light theme (default).
"},"Classes/DarkTheme.html":{"name":"DarkTheme","abstract":"Dark theme.
"},"Classes/SystemTheme.html":{"name":"SystemTheme","abstract":"System theme.
"},"Classes/UserTheme.html":{"name":"UserTheme","abstract":"A Theme
class wrapping a user provided theme file (.theme
).
ThemeKit notification sent when current theme is about to change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE09didChangeC0ABvpZ":{"name":"didChangeTheme","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE015didChangeSystemC0ABvpZ":{"name":"didChangeSystemTheme","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE023didChangeAppleInterfaceC0ABvpZ":{"name":"didChangeAppleInterfaceTheme","abstract":"Convenience property for the system notification sent when System Preference for dark mode changes.
","parent_name":"Name"},"Extensions/Notification/Name.html":{"name":"Name","abstract":"Notifications defined by ThemeKit
.
Theme all application windows (default).
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO16themeSomeWindowsyAESayyXlXpG_tcAEmF":{"name":"themeSomeWindows(windowClasses:)","abstract":"Only theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA11SomeWindowsyAESayyXlXpG_tcAEmF":{"name":"doNotThemeSomeWindows(windowClasses:)","abstract":"Do not theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA7WindowsyA2EmF":{"name":"doNotThemeWindows","abstract":"Do not theme any window.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)sharedManager":{"name":"shared","abstract":"ThemeManager shared manager.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)isEnabled":{"name":"isEnabled","abstract":"Enables or disables ThemeKit functionality.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)theme":{"name":"theme","abstract":"Sets or returns the current theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveTheme":{"name":"effectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)themes":{"name":"themes","abstract":"List all available themes:
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)userThemes":{"name":"userThemes","abstract":"List all user themes (UserTheme
class, loaded from .theme
files)
Convenience method for accessing the light theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)darkTheme":{"name":"darkTheme","abstract":"Convenience method for accessing the dark theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)systemTheme":{"name":"systemTheme","abstract":"Convenience method for accessing the theme that dynamically changes to","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)defaultTheme":{"name":"defaultTheme","abstract":"
Set/get default theme to be used on the first run (default: ThemeManager.systemTheme
).
Get the theme with specified identifier.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)userDefaultsThemeKey":{"name":"userDefaultsThemeKey","abstract":"User defaults key for current theme
.
Apply last applied theme, or default, if none.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(im)reApplyCurrentTheme":{"name":"reApplyCurrentTheme()","abstract":"Force-apply current theme
.
Location of user provided themes (.theme files).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveThemeAppearance":{"name":"effectiveThemeAppearance","abstract":"Appearance in use for effective theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)lightAppearance":{"name":"lightAppearance","abstract":"Convenience method to get the light appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)darkAppearance":{"name":"darkAppearance","abstract":"Convenience method to get the dark appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager/WindowThemePolicy.html":{"name":"WindowThemePolicy","abstract":"Window theme policies that define which windows should be automatically themed, if any.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/s:8ThemeKit0A7ManagerC06windowA6PolicyAC06WindowaE0Ovp":{"name":"windowThemePolicy","abstract":"Current window theme policy.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)animateThemeTransitions":{"name":"animateThemeTransitions","abstract":"Animate theme transitions?
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)willChangeThemeNotification":{"name":"willChangeThemeNotification","abstract":"ThemeKit notification sent when current theme is about to change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeThemeNotification":{"name":"didChangeThemeNotification","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeSystemThemeNotification":{"name":"didChangeSystemThemeNotification","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html":{"name":"ThemeManager","abstract":"Use ThemeManager
shared instance to perform app-wide theming related operations,"},"Extensions/Notification.html":{"name":"Notification"},"ThemeKit.html":{"name":"ThemeKit"},"Themes.html":{"name":"Themes"},"Theme Assets.html":{"name":"Theme Assets"},"Extensions.html":{"name":"Extensions"}}
\ No newline at end of file
+{"Extensions/NSColor.html#/c:@CM@ThemeKit@@objc(cs)NSColor(py)isThemeOverriden":{"name":"isThemeOverriden","abstract":"
Check if color is being overriden in a ThemeColor extension.
","parent_name":"NSColor"},"Extensions/NSColor.html#/c:@CM@ThemeKit@@objc(cs)NSColor(cm)colorMethodNames":{"name":"colorMethodNames()","abstract":"Get all NSColor
color methods.","parent_name":"NSColor"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowTheme":{"name":"windowTheme","abstract":"
Any window specific theme.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveTheme":{"name":"windowEffectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(py)windowEffectiveThemeAppearance":{"name":"windowEffectiveThemeAppearance","abstract":"Returns the current effective appearance (read-only).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)theme":{"name":"theme()","abstract":"Theme window if needed.
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(im)themeIfCompliantWithWindowThemePolicy":{"name":"themeIfCompliantWithWindowThemePolicy()","abstract":"Theme window if compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html#/c:@CM@ThemeKit@@objc(cs)NSWindow(cm)themeAllWindows":{"name":"themeAllWindows()","abstract":"Theme all windows compliant to ThemeManager.windowThemePolicy (and if needed).
","parent_name":"NSWindow"},"Extensions/NSWindow.html":{"name":"NSWindow","abstract":"NSWindow
ThemeKit extension.
NSColor
ThemeKit extension to help on when overriding colors in ThemeColor
extensions.
ThemeImage
image selector used as theme instance method for same","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(py)resolvedThemeImage":{"name":"resolvedThemeImage","abstract":"
Resolved Image from current theme (dynamically changes with the current theme).
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageWithSelector:":{"name":"image(with:)","abstract":"Create a new ThemeImage instance for the specified selector.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForTheme:selector:":{"name":"image(for:selector:)","abstract":"Image for a specific theme.
","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)imageForView:selector:":{"name":"image(for:selector:)","abstract":"Current theme image, but respecting view appearance and any window","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(im)recacheImage":{"name":"recacheImage()","abstract":"
Forces dynamic color resolution into resolvedThemeImage
and cache it.","parent_name":"ThemeImage"},"Classes/ThemeImage.html#/c:@M@ThemeKit@objc(cs)TKThemeImage(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeImage"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)themeGradientSelector":{"name":"themeGradientSelector","abstract":"
ThemeGradient
gradient selector used as theme instance method for same","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(py)resolvedThemeGradient":{"name":"resolvedThemeGradient","abstract":"
Resolved gradient from current theme (dynamically changes with the current theme).
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientWithSelector:":{"name":"gradient(with:)","abstract":"Create a new ThemeGradient instance for the specified selector.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForTheme:selector:":{"name":"gradient(for:selector:)","abstract":"Gradient for a specific theme.
","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)gradientForView:selector:":{"name":"gradient(for:selector:)","abstract":"Current theme gradient, but respecting view appearance and any window","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(im)recacheGradient":{"name":"recacheGradient()","abstract":"
Forces dynamic gradient resolution into resolvedThemeGradient
and cache it.","parent_name":"ThemeGradient"},"Classes/ThemeGradient.html#/c:@M@ThemeKit@objc(cs)TKThemeGradient(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeGradient"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)themeColorSelector":{"name":"themeColorSelector","abstract":"
ThemeColor
color selector used as theme instance method for same selector","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(py)resolvedThemeColor":{"name":"resolvedThemeColor","abstract":"
Resolved color from current theme (dynamically changes with the current theme).
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorWithSelector:":{"name":"color(with:)","abstract":"Create a new ThemeColor instance for the specified selector.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForTheme:selector:":{"name":"color(for:selector:)","abstract":"Color for a specific theme.
","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)colorForView:selector:":{"name":"color(for:selector:)","abstract":"Current theme color, but respecting view appearance and any window","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(im)recacheColor":{"name":"recacheColor()","abstract":"
Forces dynamic color resolution into resolvedThemeColor
and cache it.","parent_name":"ThemeColor"},"Classes/ThemeColor.html#/c:@M@ThemeKit@objc(cs)TKThemeColor(cm)emptyCache":{"name":"emptyCache()","abstract":"
Clear all caches.","parent_name":"ThemeColor"},"Classes/ThemeColor.html":{"name":"ThemeColor","abstract":"
ThemeColor
is a NSColor
subclass that dynamically changes its colors whenever"},"Classes/ThemeGradient.html":{"name":"ThemeGradient","abstract":"
ThemeGradient
is a NSGradient
subclass that dynamically changes its colors"},"Classes/ThemeImage.html":{"name":"ThemeImage","abstract":"
ThemeImage
is a NSImage
subclass that dynamically changes its colors"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)identifier":{"name":"identifier","abstract":"
Unique theme identifier.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(py)fileURL":{"name":"fileURL","abstract":"File URL.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)reload":{"name":"reload()","abstract":"Reloads user theme from file.
","parent_name":"UserTheme"},"Classes/UserTheme.html#/c:@M@ThemeKit@objc(cs)TKUserTheme(im)themeAsset:":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"UserTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)identifier":{"name":"identifier","abstract":"System theme identifier (static).
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"SystemTheme"},"Classes/SystemTheme.html#/c:@M@ThemeKit@objc(cs)TKSystemTheme(cpy)isAppleInterfaceThemeDark":{"name":"isAppleInterfaceThemeDark","abstract":"Checks if Apple UI theme is set to dark, as set on System Preferences > General > Appearance.
","parent_name":"SystemTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(cpy)identifier":{"name":"identifier","abstract":"Dark theme identifier (static).
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"DarkTheme"},"Classes/DarkTheme.html#/c:@M@ThemeKit@objc(cs)TKDarkTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"DarkTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(cpy)identifier":{"name":"identifier","abstract":"Light theme identifier (static).
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"LightTheme"},"Classes/LightTheme.html#/c:@M@ThemeKit@objc(cs)TKLightTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"LightTheme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)identifier":{"name":"identifier","abstract":"Unique theme identifier.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)displayName":{"name":"displayName","abstract":"Theme display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)shortDisplayName":{"name":"shortDisplayName","abstract":"Theme short display name.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)isDarkTheme":{"name":"isDarkTheme","abstract":"Is this a dark theme?
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackForegroundColor":{"name":"fallbackForegroundColor","abstract":"Optional: foreground color to be used on when a foreground color is not provided","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackBackgroundColor":{"name":"fallbackBackgroundColor","abstract":"
Optional: background color to be used on when a background color (a color which","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackGradient":{"name":"fallbackGradient","abstract":"
Optional: gradient to be used on when a gradient is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/c:@M@ThemeKit@objc(pl)TKTheme(py)fallbackImage":{"name":"fallbackImage","abstract":"Optional: image to be used on when an image is not provided by the theme.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE07isLightA0Sbvp":{"name":"isLightTheme","abstract":"Is this a light theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE08isSystemA0Sbvp":{"name":"isSystemTheme","abstract":"Is this the system theme? If true, theme automatically resolve to","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE06isUserA0Sbvp":{"name":"isUserTheme","abstract":"
Is this a user theme?
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE5applyyyF":{"name":"apply()","abstract":"Apply theme (make it the current one).
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE10themeAssetyypSgSSF":{"name":"themeAsset(_:)","abstract":"Theme asset for the specified key. Supported assets are NSColor
, NSGradient
, NSImage
and NSString
.
Checks if a theme asset is provided for the given key.
","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackForegroundColorSo7NSColorCvp":{"name":"defaultFallbackForegroundColor","abstract":"Default foreground color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE30defaultFallbackBackgroundColorSo7NSColorCvp":{"name":"defaultFallbackBackgroundColor","abstract":"
Default background color to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE23defaultFallbackGradientSo10NSGradientCSgvp":{"name":"defaultFallbackGradient","abstract":"
Default gradient to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE20defaultFallbackImageSo7NSImageCvp":{"name":"defaultFallbackImage","abstract":"
Default image to be used on fallback situations when","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE09effectiveA0AaB_pvp":{"name":"effectiveTheme","abstract":"
Effective theme, which can be different from itself if it represents the","parent_name":"Theme"},"Protocols/Theme.html#/s:8ThemeKit0A0PAAE16themeDescriptionySSAaB_pF":{"name":"themeDescription(_:)","abstract":"
Theme description.
","parent_name":"Theme"},"Protocols/Theme.html":{"name":"Theme","abstract":"Theme protocol: the base of all themes.
"},"Classes/LightTheme.html":{"name":"LightTheme","abstract":"Light theme (default).
"},"Classes/DarkTheme.html":{"name":"DarkTheme","abstract":"Dark theme.
"},"Classes/SystemTheme.html":{"name":"SystemTheme","abstract":"System theme.
"},"Classes/UserTheme.html":{"name":"UserTheme","abstract":"A Theme
class wrapping a user provided theme file (.theme
).
ThemeKit notification sent when current theme is about to change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE09didChangeC0ABvpZ":{"name":"didChangeTheme","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE015didChangeSystemC0ABvpZ":{"name":"didChangeSystemTheme","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"Name"},"Extensions/Notification/Name.html#/s:So18NSNotificationNamea8ThemeKitE023didChangeAppleInterfaceC0ABvpZ":{"name":"didChangeAppleInterfaceTheme","abstract":"Convenience property for the system notification sent when System Preference for dark mode changes.
","parent_name":"Name"},"Extensions/Notification/Name.html":{"name":"Name","abstract":"Notifications defined by ThemeKit
.
Theme all application windows (default).
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO16themeSomeWindowsyAESayyXlXpG_tcAEmF":{"name":"themeSomeWindows(windowClasses:)","abstract":"Only theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA11SomeWindowsyAESayyXlXpG_tcAEmF":{"name":"doNotThemeSomeWindows(windowClasses:)","abstract":"Do not theme windows of the specified classes.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager/WindowThemePolicy.html#/s:8ThemeKit0A7ManagerC06WindowA6PolicyO05doNotA7WindowsyA2EmF":{"name":"doNotThemeWindows","abstract":"Do not theme any window.
","parent_name":"WindowThemePolicy"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)sharedManager":{"name":"shared","abstract":"ThemeManager shared manager.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)isEnabled":{"name":"isEnabled","abstract":"Enables or disables ThemeKit functionality.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)theme":{"name":"theme","abstract":"Sets or returns the current theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveTheme":{"name":"effectiveTheme","abstract":"Returns the current effective theme (read-only).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)themes":{"name":"themes","abstract":"List all available themes:
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)userThemes":{"name":"userThemes","abstract":"List all user themes (UserTheme
class, loaded from .theme
files)
Convenience method for accessing the light theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)darkTheme":{"name":"darkTheme","abstract":"Convenience method for accessing the dark theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)systemTheme":{"name":"systemTheme","abstract":"Convenience method for accessing the theme that dynamically changes to","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)defaultTheme":{"name":"defaultTheme","abstract":"
Set/get default theme to be used on the first run (default: ThemeManager.systemTheme
).
Get the theme with specified identifier.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)userDefaultsThemeKey":{"name":"userDefaultsThemeKey","abstract":"User defaults key for current theme
.
Apply last applied theme, or default, if none.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(im)reApplyCurrentTheme":{"name":"reApplyCurrentTheme()","abstract":"Force-apply current theme
.
Location of user provided themes (.theme files).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)effectiveThemeAppearance":{"name":"effectiveThemeAppearance","abstract":"Appearance in use for effective theme.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)lightAppearance":{"name":"lightAppearance","abstract":"Convenience method to get the light appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)darkAppearance":{"name":"darkAppearance","abstract":"Convenience method to get the dark appearance.
","parent_name":"ThemeManager"},"Classes/ThemeManager/WindowThemePolicy.html":{"name":"WindowThemePolicy","abstract":"Window theme policies that define which windows should be automatically themed, if any.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/s:8ThemeKit0A7ManagerC06windowA6PolicyAC06WindowaE0Ovp":{"name":"windowThemePolicy","abstract":"Current window theme policy.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(py)animateThemeTransitions":{"name":"animateThemeTransitions","abstract":"Animate theme transitions?
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)willChangeThemeNotification":{"name":"willChangeThemeNotification","abstract":"ThemeKit notification sent when current theme is about to change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeThemeNotification":{"name":"didChangeThemeNotification","abstract":"ThemeKit notification sent when current theme did change.
","parent_name":"ThemeManager"},"Classes/ThemeManager.html#/c:@M@ThemeKit@objc(cs)TKThemeManager(cpy)didChangeSystemThemeNotification":{"name":"didChangeSystemThemeNotification","abstract":"ThemeKit notification sent when system theme did change (System Preference > General > Appearance).
","parent_name":"ThemeManager"},"Classes/ThemeManager.html":{"name":"ThemeManager","abstract":"Use ThemeManager
shared instance to perform app-wide theming related operations,"},"Extensions/Notification.html":{"name":"Notification"},"ThemeKit.html":{"name":"ThemeKit"},"Themes.html":{"name":"Themes"},"Theme%20Assets.html":{"name":"Theme Assets"},"Extensions.html":{"name":"Extensions"}}
\ No newline at end of file
diff --git a/Docs/undocumented.json b/Docs/undocumented.json
index f9734da..47255fe 100644
--- a/Docs/undocumented.json
+++ b/Docs/undocumented.json
@@ -1,593 +1,593 @@
{
"warnings": [
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/DarkTheme.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/DarkTheme.swift",
"line": 36,
"symbol": "DarkTheme.description",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/LightTheme.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/LightTheme.swift",
"line": 36,
"symbol": "LightTheme.description",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/NSColor+ThemeKit.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/NSColor+ThemeKit.swift",
"line": 94,
"symbol": "NSColor.themeKitSet()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/NSColor+ThemeKit.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/NSColor+ThemeKit.swift",
"line": 106,
"symbol": "NSColor.themeKitSetFill()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/NSColor+ThemeKit.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/NSColor+ThemeKit.swift",
"line": 118,
"symbol": "NSColor.themeKitSetStroke()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/SystemTheme.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/SystemTheme.swift",
"line": 62,
"symbol": "SystemTheme.description",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 406,
"symbol": "ThemeColor.setFill()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 410,
"symbol": "ThemeColor.setStroke()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 414,
"symbol": "ThemeColor.set()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 418,
"symbol": "ThemeColor.usingColorSpace(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 422,
"symbol": "ThemeColor.usingColorSpaceName(_:device:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 448,
"symbol": "ThemeColor.colorSpaceName",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 452,
"symbol": "ThemeColor.colorSpace",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 456,
"symbol": "ThemeColor.numberOfComponents",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 460,
"symbol": "ThemeColor.getComponents(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 465,
"symbol": "ThemeColor.redComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 473,
"symbol": "ThemeColor.greenComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 481,
"symbol": "ThemeColor.blueComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 489,
"symbol": "ThemeColor.getRed(_:green:blue:alpha:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 494,
"symbol": "ThemeColor.cyanComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 502,
"symbol": "ThemeColor.magentaComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 510,
"symbol": "ThemeColor.yellowComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 518,
"symbol": "ThemeColor.blackComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 526,
"symbol": "ThemeColor.getCyan(_:magenta:yellow:black:alpha:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 535,
"symbol": "ThemeColor.whiteComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 543,
"symbol": "ThemeColor.getWhite(_:alpha:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 548,
"symbol": "ThemeColor.hueComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 556,
"symbol": "ThemeColor.saturationComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 564,
"symbol": "ThemeColor.brightnessComponent",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 572,
"symbol": "ThemeColor.getHue(_:saturation:brightness:alpha:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 577,
"symbol": "ThemeColor.highlight(withLevel:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 582,
"symbol": "ThemeColor.shadow(withLevel:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 587,
"symbol": "ThemeColor.withAlphaComponent(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeColor.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeColor.swift",
"line": 592,
"symbol": "ThemeColor.description",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 263,
"symbol": "ThemeGradient.init(coder:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 317,
"symbol": "ThemeGradient.draw(in:angle:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 321,
"symbol": "ThemeGradient.draw(in:angle:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 325,
"symbol": "ThemeGradient.draw(from:to:options:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 329,
"symbol": "ThemeGradient.draw(fromCenter:radius:toCenter:radius:options:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 333,
"symbol": "ThemeGradient.draw(in:relativeCenterPosition:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 337,
"symbol": "ThemeGradient.draw(in:relativeCenterPosition:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 341,
"symbol": "ThemeGradient.colorSpace",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 345,
"symbol": "ThemeGradient.numberOfColorStops",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 349,
"symbol": "ThemeGradient.getColor(_:location:at:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeGradient.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeGradient.swift",
"line": 353,
"symbol": "ThemeGradient.interpolatedColor(atLocation:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 314,
"symbol": "ThemeImage.size",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 323,
"symbol": "ThemeImage.setName(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 327,
"symbol": "ThemeImage.name()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 331,
"symbol": "ThemeImage.backgroundColor",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 340,
"symbol": "ThemeImage.usesEPSOnResolutionMismatch",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 349,
"symbol": "ThemeImage.prefersColorMatch",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 358,
"symbol": "ThemeImage.matchesOnMultipleResolution",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 367,
"symbol": "ThemeImage.matchesOnlyOnBestFittingAxis",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 376,
"symbol": "ThemeImage.draw(at:from:operation:fraction:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 380,
"symbol": "ThemeImage.draw(in:from:operation:fraction:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 384,
"symbol": "ThemeImage.draw(in:from:operation:fraction:respectFlipped:hints:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 388,
"symbol": "ThemeImage.drawRepresentation(_:in:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 392,
"symbol": "ThemeImage.draw(in:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 396,
"symbol": "ThemeImage.recache()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 400,
"symbol": "ThemeImage.tiffRepresentation",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 404,
"symbol": "ThemeImage.tiffRepresentation(using:factor:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 408,
"symbol": "ThemeImage.representations",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 412,
"symbol": "ThemeImage.addRepresentations(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 416,
"symbol": "ThemeImage.addRepresentation(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 420,
"symbol": "ThemeImage.removeRepresentation(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 424,
"symbol": "ThemeImage.isValid",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 428,
"symbol": "ThemeImage.lockFocus()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 432,
"symbol": "ThemeImage.lockFocusFlipped(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 436,
"symbol": "ThemeImage.unlockFocus()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 440,
"symbol": "ThemeImage.delegate",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 449,
"symbol": "ThemeImage.cancelIncrementalLoad()",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 453,
"symbol": "ThemeImage.cacheMode",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 462,
"symbol": "ThemeImage.alignmentRect",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 471,
"symbol": "ThemeImage.isTemplate",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 480,
"symbol": "ThemeImage.accessibilityDescription",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 489,
"symbol": "ThemeImage.cgImage(forProposedRect:context:hints:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 493,
"symbol": "ThemeImage.bestRepresentation(for:context:hints:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 497,
"symbol": "ThemeImage.hitTest(_:withDestinationRect:context:hints:flipped:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 501,
"symbol": "ThemeImage.recommendedLayerContentsScale(_:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 505,
"symbol": "ThemeImage.layerContents(forContentsScale:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 509,
"symbol": "ThemeImage.capInsets",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeImage.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeImage.swift",
"line": 518,
"symbol": "ThemeImage.resizingMode",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/ThemeManager.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/ThemeManager.swift",
"line": 462,
"symbol": "ThemeManager.observeValue(forKeyPath:of:change:context:)",
"symbol_kind": "source.lang.swift.decl.function.method.instance",
"warning": "undocumented"
},
{
- "file": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit/Sources/UserTheme.swift",
+ "file": "/Users/Zymantas/Developer/RapidAPI/ThemeKit/Sources/UserTheme.swift",
"line": 225,
"symbol": "UserTheme.description",
"symbol_kind": "source.lang.swift.decl.var.instance",
"warning": "undocumented"
}
],
- "source_directory": "/Users/nfgrilo/Projects/luckymarmot/ThemeKit"
+ "source_directory": "/Users/Zymantas/Developer/RapidAPI/ThemeKit"
}
\ No newline at end of file
diff --git a/README.md b/README.md
index 57f4d6f..ad7719a 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,8 @@