diff options
author | Morten Johan Sørvig <morten.sorvig@digia.com> | 2014-02-13 14:14:44 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-20 22:12:47 +0100 |
commit | 3b8b47db6aaeb333f106cff57cc712b01d828302 (patch) | |
tree | ddc23c12694293279f0fb5aba33f23d5b280e13d /src/plugins/platforms/cocoa/qcocoanativeinterface.mm | |
parent | 2bc7a40048ada41c59ddac0988bb2e04c227a18d (diff) |
Set unified toolbar height accurately.
Add registerContentBorderArea() to the Cocoa native
interface which allows registering multiple "unified
toolbar" areas for each window.
Use this function in QToolBarLayout::setGeometry()
to register the area for each TopToolBarArea toolbar.
Task-number: QTBUG-36700
Change-Id: I52efcc5662556bb94f25f504be3710d0491f79b9
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoanativeinterface.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoanativeinterface.mm | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm index 5e57200ebc..d6a5be8d52 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm @@ -125,6 +125,10 @@ QPlatformNativeInterface::NativeResourceForIntegrationFunction QCocoaNativeInter return NativeResourceForIntegrationFunction(QCocoaNativeInterface::setEmbeddedInForeignView); if (resource.toLower() == "setcontentborderthickness") return NativeResourceForIntegrationFunction(QCocoaNativeInterface::setContentBorderThickness); + if (resource.toLower() == "registercontentborderarea") + return NativeResourceForIntegrationFunction(QCocoaNativeInterface::registerContentBorderArea); + if (resource.toLower() == "enablecontentborderarea") + return NativeResourceForIntegrationFunction(QCocoaNativeInterface::enableContentBorderArea); if (resource.toLower() == "setnstoolbar") return NativeResourceForIntegrationFunction(QCocoaNativeInterface::setNSToolbar); @@ -287,11 +291,28 @@ void QCocoaNativeInterface::setContentBorderThickness(QWindow *window, int topTh cocoaWindow->setContentBorderThickness(topThickness, bottomThickness); } -void QCocoaNativeInterface::setNSToolbar(QWindow *window, void *nsToolbar) +void QCocoaNativeInterface::registerContentBorderArea(QWindow *window, quintptr identifier, int upper, int lower) { if (!window) return; + QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window->handle()); + if (cocoaWindow) + cocoaWindow->registerContentBorderArea(identifier, upper, lower); +} + +void QCocoaNativeInterface::enableContentBorderArea(QWindow *window, bool enable) +{ + if (!window) + return; + + QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window->handle()); + if (cocoaWindow) + cocoaWindow->enableContentBorderArea(enable); +} + +void QCocoaNativeInterface::setNSToolbar(QWindow *window, void *nsToolbar) +{ QCocoaIntegration::instance()->setToolbar(window, static_cast<NSToolbar *>(nsToolbar)); QCocoaWindow *cocoaWindow = static_cast<QCocoaWindow *>(window->handle()); |