Преглед на файлове

Implement function to set macOS dock icon

pull/5425/head
annes преди 3 месеца
committed by GitHub
родител
ревизия
ebe7c22ce1
No known key found for this signature in database GPG ключ ID: B5690EEEBB952194
променени са 1 файла, в които са добавени 20 реда и са изтрити 0 реда
  1. +20
    -0
      src/_cocoalayer.mm

+ 20
- 0
src/_cocoalayer.mm Целия файл

@ -0,0 +1,20 @@
#if defined(__APPLE__)
#import <Cocoa/Cocoa.h>
#import <objc/runtime.h>
#include "_cocoalayer.h"
// Example: make a global function you can call
extern "C" void _cocoasetdockicon(unsigned char* data, int width, int height)
{
NSImage *dockIcon = [[NSImage alloc] initWithSize:NSMakeSize(width, height)];
CGDataProviderRef provider = CGDataProviderCreateWithData(nullptr, data, width*height*4, nullptr);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGImageRef cgImage = CGImageCreate(width, height, 8, 32, width*4, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big,
provider, nullptr, false, kCGRenderingIntentDefault);
[dockIcon addRepresentation:[[NSBitmapImageRep alloc] initWithCGImage:cgImage]];
[NSApp setApplicationIconImage:dockIcon];
CGImageRelease(cgImage);
CGColorSpaceRelease(colorSpace);
CGDataProviderRelease(provider);
}
#endif

Зареждане…
Отказ
Запис