5 #include <QTemporaryFile>
6 #include <QImageWriter>
9 #include <Cocoa/Cocoa.h>
11 #if QT_VERSION < 0x050000
30 [[NSAppleEventManager sharedAppleEventManager]
32 andSelector:@selector(handleDockClickEvent:withReplyEvent:)
33 forEventClass:kCoreEventClass
34 andEventID:kAEReopenApplication];
39 - (void)handleDockClickEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
53 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
59 #if QT_VERSION < 0x050000
71 [this->m_dockIconClickEventHandler release];
83 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
86 image = [[NSImage imageNamed:
@"NSApplicationIcon"] retain];
89 QSize size = icon.actualSize(QSize(128, 128));
90 QPixmap pixmap = icon.pixmap(size);
93 QTemporaryFile notificationIconFile;
94 if (!pixmap.isNull() && notificationIconFile.open()) {
95 QImageWriter writer(¬ificationIconFile,
"PNG");
96 if (writer.write(pixmap.toImage())) {
97 const char *cString = notificationIconFile.fileName().toUtf8().data();
98 NSString *macString = [NSString stringWithCString:cString encoding:NSUTF8StringEncoding];
99 image = [[NSImage alloc] initWithContentsOfFile:macString];
105 image = [[NSImage imageNamed:@"NSApplicationIcon"] retain];
109 [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