From 6b5029199d8eab325992e07fa7c98718c9533ca0 Mon Sep 17 00:00:00 2001 From: Jorgen Lind Date: Wed, 3 Jun 2015 14:52:07 +0200 Subject: Add QCocoaWindowFunctions and add a function to find the clip offset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I0f9cd1f923867f6f24b3bc54e442a16b5d2a11e4 Reviewed-by: Tim Blechmann Reviewed-by: Morten Johan Sørvig --- .../cocoafunctions/cocoafunctions.pri | 1 + .../cocoafunctions/qcocoawindowfunctions.h | 57 +++++++++++++++++++++ .../cocoafunctions/qcocoawindowfunctions.qdoc | 58 ++++++++++++++++++++++ src/platformheaders/platformheaders.pro | 1 + 4 files changed, 117 insertions(+) create mode 100644 src/platformheaders/cocoafunctions/cocoafunctions.pri create mode 100644 src/platformheaders/cocoafunctions/qcocoawindowfunctions.h create mode 100644 src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc (limited to 'src/platformheaders') diff --git a/src/platformheaders/cocoafunctions/cocoafunctions.pri b/src/platformheaders/cocoafunctions/cocoafunctions.pri new file mode 100644 index 0000000000..3987523f9a --- /dev/null +++ b/src/platformheaders/cocoafunctions/cocoafunctions.pri @@ -0,0 +1 @@ +HEADERS += $$PWD/qcocoawindowfunctions.h diff --git a/src/platformheaders/cocoafunctions/qcocoawindowfunctions.h b/src/platformheaders/cocoafunctions/qcocoawindowfunctions.h new file mode 100644 index 0000000000..997f440e65 --- /dev/null +++ b/src/platformheaders/cocoafunctions/qcocoawindowfunctions.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QXCBWINDOWFUNCTIONS_H +#define QXCBWINDOWFUNCTIONS_H + +#include + +QT_BEGIN_NAMESPACE + +class QWindow; + +class QCocoaWindowFunctions { +public: + typedef QPoint (*BottomLeftClippedByNSWindowOffset)(QWindow *window); + static const QByteArray bottomLeftClippedByNSWindowOffsetIdentifier() { return QByteArrayLiteral("CocoaBottomLeftClippedByNSWindowOffset"); } + + static QPoint bottomLeftClippedByNSWindowOffset(QWindow *window) + { + return QPlatformHeaderHelper::callPlatformFunction(bottomLeftClippedByNSWindowOffsetIdentifier(),window); + } +}; + + +QT_END_NAMESPACE + +#endif // QXCBWINDOWFUNCTIONS_H diff --git a/src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc b/src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc new file mode 100644 index 0000000000..e95f92edb5 --- /dev/null +++ b/src/platformheaders/cocoafunctions/qcocoawindowfunctions.qdoc @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: http://www.gnu.org/copyleft/fdl.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \class QCocoaWindowFunctions + \inmodule QtPlatformHeaders + + \brief The QCocoaWindowFunctions class is an inline class containing + miscellaneous functionality for NSWindow and NSView window specific functionality. + + \note There is no binary compatibility guarantee for this class, + meaning that an application using it is only guaranteed to work with the Qt + version it was developed against. +*/ + +/*! + \typedef QCocoaWindowFunctions::BottomLeftClippedByNSWindowOffset + + This is the typedef for the function returned by QGuiApplication::platformFunction when passed clippedByNSWindowIdentifier. +*/ + +/*! + \fn QByteArray QCocoaWindowFunctions::bottomLeftClippedByNSWindowOffsetIdentifier() + + This function returnes the bytearray that can be used to query + QGuiApplication::platformFunction to retrieve the BottomLeftClippedByNSWindowOffset function. +*/ + +/*! + \fn QPoint QCocoaWindowFunctions::bottomLeftClippedByNSWindowOffset(QWindow *window) + + This is a convenience function that can be used directly instead of resolving the function pointer. + \a window will be relayed to the function retrieved by QGuiApplication +*/ diff --git a/src/platformheaders/platformheaders.pro b/src/platformheaders/platformheaders.pro index 6b6294d34c..1ced4f1c95 100644 --- a/src/platformheaders/platformheaders.pro +++ b/src/platformheaders/platformheaders.pro @@ -8,6 +8,7 @@ include(xcbfunctions/xcbfunctions.pri) include(eglfsfunctions/eglfsfunctions.pri) include(windowsfunctions/windowsfunctions.pri) include(helper/helper.pri) +include(cocoafunctions/cocoafunctions.pri) QMAKE_DOCS = $$PWD/doc/qtplatformheaders.qdocconf -- cgit v1.2.3