summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
diff options
context:
space:
mode:
authorDmytro Tyshchenko <dimitri@froglogic.com>2013-03-20 17:57:05 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-21 15:26:47 +0100
commitb5a388192c886fd346daf461a8d738a1867c21e0 (patch)
treeb77cf452328b26c6d50c565a985bb09c1dc6981a /src/plugins/platforms/cocoa/qcocoanativeinterface.mm
parent24c10b0b8d7673f2d5e04766b7e3e0e65f771127 (diff)
Add qMenuToNSMenu() and qMenuBarToNSMenu() to QCocoaNativeInterface.
Preparing the addition of toNSMenu() functions to QtMacExtras which will expose the native handle of a QMenu or QMenuBar. Task-number: QTBUG-28869 Change-Id: Ib07712f5da0758addbbf8a84d6881297420e7ac8 Reviewed-by: Harri Porten <porten@froglogic.com> Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoanativeinterface.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoanativeinterface.mm18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
index 9990537c1f..fde93a38db 100644
--- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
+++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm
@@ -109,6 +109,10 @@ QPlatformNativeInterface::NativeResourceForIntegrationFunction QCocoaNativeInter
return NativeResourceForIntegrationFunction(QCocoaNativeInterface::registerDraggedTypes);
if (resource.toLower() == "setdockmenu")
return NativeResourceForIntegrationFunction(QCocoaNativeInterface::setDockMenu);
+ if (resource.toLower() == "qmenutonsmenu")
+ return NativeResourceForIntegrationFunction(QCocoaNativeInterface::qMenuToNSMenu);
+ if (resource.toLower() == "qmenubartonsmenu")
+ return NativeResourceForIntegrationFunction(QCocoaNativeInterface::qMenuBarToNSMenu);
if (resource.toLower() == "qimagetocgimage")
return NativeResourceForIntegrationFunction(QCocoaNativeInterface::qImageToCGImage);
if (resource.toLower() == "cgimagetoqimage")
@@ -190,6 +194,20 @@ void QCocoaNativeInterface::setDockMenu(QPlatformMenu *platformMenu)
[NSApp setDockMenu: menu];
}
+void *QCocoaNativeInterface::qMenuToNSMenu(QPlatformMenu *platformMenu)
+{
+ QCocoaMenu *cocoaPlatformMenu = static_cast<QCocoaMenu *>(platformMenu);
+ NSMenu *menu = cocoaPlatformMenu->nsMenu();
+ return reinterpret_cast<void *>(menu);
+}
+
+void *QCocoaNativeInterface::qMenuBarToNSMenu(QPlatformMenuBar *platformMenuBar)
+{
+ QCocoaMenuBar *cocoaPlatformMenuBar = static_cast<QCocoaMenuBar *>(platformMenuBar);
+ NSMenu *menu = cocoaPlatformMenuBar->nsMenu();
+ return reinterpret_cast<void *>(menu);
+}
+
CGImageRef QCocoaNativeInterface::qImageToCGImage(const QImage &image)
{
return qt_mac_toCGImage(image, false, 0);