1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-30 19:46:56 +00:00
transmission/macosx/NSImageAdditions.mm
Antoine Cœur 7f9264940e
Compatibility to build on the last macOS 32 bit system with its last compatible Xcode (#2844)
* Compatibility to build on the last macOS 32 bit system with its last compatible Xcode

* Code review: Compatibility declarations

* compatibility with `make`

* Code review: headers

* Avoiding dummy NSImageSymbolConfiguration implementation

* clang-format

* Don't force-include compat header

* Remove compat header from pch header

Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: Mike Gelfand <mikedld@mikedld.com>
2022-04-24 21:34:30 +01:00

50 lines
1.3 KiB
Text

// This file Copyright © 2011-2022 Transmission authors and contributors.
// It may be used under the MIT (SPDX: MIT) license.
// License text can be found in the licenses/ folder.
#import "CocoaCompatibility.h"
#import "NSImageAdditions.h"
@implementation NSImage (NSImageAdditions)
- (NSImage*)imageWithColor:(NSColor*)color
{
NSImage* coloredImage = [self copy];
[coloredImage lockFocus];
[color set];
NSSize const size = coloredImage.size;
NSRectFillUsingOperation(NSMakeRect(0.0, 0.0, size.width, size.height), NSCompositingOperationSourceAtop);
[coloredImage unlockFocus];
return coloredImage;
}
+ (NSImage*)systemSymbol:(NSString*)symbolName withFallback:(NSString*)fallbackName
{
if (@available(macOS 11.0, *))
{
return [NSImage imageWithSystemSymbolName:symbolName accessibilityDescription:nil];
}
return [NSImage imageNamed:fallbackName];
}
+ (NSImage*)largeSystemSymbol:(NSString*)symbolName withFallback:(NSString*)fallbackName
{
#ifdef __MAC_11_0
if (@available(macOS 11.0, *))
{
return [[NSImage imageWithSystemSymbolName:symbolName accessibilityDescription:nil]
imageWithSymbolConfiguration:[NSImageSymbolConfiguration configurationWithScale:NSImageSymbolScaleLarge]];
}
#endif
return [NSImage imageNamed:fallbackName];
}
@end