8 #include <QImageWriter>
10 #include <QTemporaryFile>
14 #include <Cocoa/Cocoa.h>
16 #if QT_VERSION < 0x050000
35 [[NSAppleEventManager sharedAppleEventManager]
37 andSelector:@selector(handleDockClickEvent:withReplyEvent:)
38 forEventClass:kCoreEventClass
39 andEventID:kAEReopenApplication];
44 - (void)handleDockClickEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
58 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
64 #if QT_VERSION < 0x050000
66 #elif QT_VERSION >= 0x050200
78 [this->m_dockIconClickEventHandler release];
90 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
93 image = [[NSImage imageNamed:
@"NSApplicationIcon"] retain];
96 QSize size = icon.actualSize(QSize(128, 128));
97 QPixmap pixmap = icon.pixmap(size);
100 QTemporaryFile notificationIconFile;
101 if (!pixmap.isNull() && notificationIconFile.open()) {
102 QImageWriter writer(¬ificationIconFile,
"PNG");
103 if (writer.write(pixmap.toImage())) {
104 const char *cString = notificationIconFile.fileName().toUtf8().data();
105 NSString *macString = [NSString stringWithCString:cString encoding:NSUTF8StringEncoding];
106 image = [[NSImage alloc] initWithContentsOfFile:macString];
112 image = [[NSImage imageNamed:@"NSApplicationIcon"] retain];
116 [NSApp setApplicationIconImage:image];
void qt_mac_set_dock_menu(QMenu *)
Macintosh-specific dock icon handler.
void handleDockIconClickEvent()
void setIcon(const QIcon &icon)
static MacDockIconHandler * instance()
void setMainWindow(QMainWindow *window)
MacDockIconHandler * dockIconHandler
DockIconClickEventHandler * m_dockIconClickEventHandler