7 #include <QImageWriter>
9 #include <QTemporaryFile>
13 #include <Cocoa/Cocoa.h>
15 #if QT_VERSION < 0x050000
34 [[NSAppleEventManager sharedAppleEventManager]
36 andSelector:@selector(handleDockClickEvent:withReplyEvent:)
37 forEventClass:kCoreEventClass
38 andEventID:kAEReopenApplication];
43 - (void)handleDockClickEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
57 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
63 #if QT_VERSION < 0x050000
65 #elif QT_VERSION >= 0x050200
77 [this->m_dockIconClickEventHandler release];
89 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
92 image = [[NSImage imageNamed:
@"NSApplicationIcon"] retain];
95 QSize size = icon.actualSize(QSize(128, 128));
96 QPixmap pixmap = icon.pixmap(size);
99 QTemporaryFile notificationIconFile;
100 if (!pixmap.isNull() && notificationIconFile.open()) {
101 QImageWriter writer(¬ificationIconFile,
"PNG");
102 if (writer.write(pixmap.toImage())) {
103 const char *cString = notificationIconFile.fileName().toUtf8().data();
104 NSString *macString = [NSString stringWithCString:cString encoding:NSUTF8StringEncoding];
105 image = [[NSImage alloc] initWithContentsOfFile:macString];
111 image = [[NSImage imageNamed:@"NSApplicationIcon"] retain];
115 [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