mirror of
https://github.com/crystalidea/qt-build-tools.git
synced 2024-11-29 22:55:54 +08:00
5.6.3 - original files
This commit is contained in:
parent
8c2fc6f666
commit
5f0a1dadfd
68
5.6.3/compile_mac.sh
Normal file
68
5.6.3/compile_mac.sh
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export PATH=$PATH:/usr/local/Qt-5.6.3/bin
|
||||||
|
|
||||||
|
cd qtbase
|
||||||
|
|
||||||
|
if [[ $1 == openssl ]]; then
|
||||||
|
|
||||||
|
# download openssl
|
||||||
|
curl -O https://www.openssl.org/source/old/1.0.2/openssl-1.0.2l.tar.gz
|
||||||
|
tar -xvzf openssl-1.0.2l.tar.gz
|
||||||
|
|
||||||
|
# compile openssl
|
||||||
|
cd openssl-1.0.2l
|
||||||
|
./Configure darwin64-x86_64-cc --prefix=$PWD/dist
|
||||||
|
make
|
||||||
|
# print arch info (optional)
|
||||||
|
lipo -info libssl.a
|
||||||
|
lipo -info libcrypto.a
|
||||||
|
make install
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# continue
|
||||||
|
|
||||||
|
OPENSSL_LIBS='-L$PWD/openssl-1.0.2l/dist/lib -lssl -lcrypto' ./configure -opensource -confirm-license -no-securetransport -nomake examples -nomake tests -openssl-linked -I $PWD/openssl-1.0.2l/dist/include -L $PWD/openssl-1.0.2l/dist/lib
|
||||||
|
|
||||||
|
elif [[ $1 == securetransport ]]; then
|
||||||
|
|
||||||
|
./configure -opensource -confirm-license -nomake examples -nomake tests -no-openssl -securetransport
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "Error: please specify which SSL layer to use (openssl or securetransport)"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
make
|
||||||
|
echo 12345 | sudo -S sudo make install
|
||||||
|
|
||||||
|
cd ../qtdeclarative
|
||||||
|
qmake
|
||||||
|
make
|
||||||
|
echo 12345 | sudo -S sudo make install
|
||||||
|
|
||||||
|
cd ../qttools
|
||||||
|
qmake
|
||||||
|
make
|
||||||
|
echo 12345 | sudo -S sudo make install
|
||||||
|
|
||||||
|
cd ../qtmacextras
|
||||||
|
qmake
|
||||||
|
make
|
||||||
|
echo 12345 | sudo -S sudo make install
|
||||||
|
|
||||||
|
# make docs
|
||||||
|
|
||||||
|
cd ../qtbase
|
||||||
|
make docs
|
||||||
|
cd ../qttools
|
||||||
|
make docs
|
||||||
|
cd ../qtmacextras
|
||||||
|
make docs
|
||||||
|
|
||||||
|
echo 12345 | sudo -S cp -f -r ../qtbase/doc /usr/local/Qt-5.6.3/
|
||||||
|
|
||||||
|
cd /usr/local
|
||||||
|
zip -r ~/Desktop/qt5.6.3_mac.zip Qt-5.6.3/*
|
77
5.6.3/compile_win.pl
Normal file
77
5.6.3/compile_win.pl
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
use strict;
|
||||||
|
|
||||||
|
my $arch = $ARGV[0];
|
||||||
|
my $openssl_v_major = "1.0.2"; # The 1.0.2 series is Long Term Support (LTS) release, supported until 31st December 2019
|
||||||
|
my $openssl_v_minor = "l";
|
||||||
|
my $openssl_version = "$openssl_v_major$openssl_v_minor";
|
||||||
|
my $openssl_dir = "openssl-$openssl_version";
|
||||||
|
my $openssl_download = "https://www.openssl.org/source/old/$openssl_v_major/openssl-$openssl_version.tar.gz";
|
||||||
|
my $openssl_arch = $arch eq "amd64" ? "WIN64A" : "WIN32";
|
||||||
|
my $openssl_do_ms = $arch eq "amd64" ? "do_win64a" : "do_ms";
|
||||||
|
|
||||||
|
die "Please specify architecture (x86 or amd64)" if ($arch ne "x86" && $arch ne "amd64");
|
||||||
|
|
||||||
|
# will create a batch file
|
||||||
|
|
||||||
|
my $batfile = 'compile_win.bat';
|
||||||
|
|
||||||
|
open BAT, '>', $batfile;
|
||||||
|
|
||||||
|
printLineToBat ("CALL \"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat\" $arch");
|
||||||
|
printLineToBat ("cd qtbase");
|
||||||
|
printLineToBat ("wget $openssl_download");
|
||||||
|
printLineToBat ("tar -xvzf openssl-$openssl_version.tar.gz");
|
||||||
|
printLineToBat ("rm openssl-$openssl_version.tar.gz");
|
||||||
|
printLineToBat ("cd $openssl_dir");
|
||||||
|
# build debug
|
||||||
|
printLineToBat ("perl Configure no-asm no-shared --prefix=%cd%\\Debug --openssldir=%cd%\\Debug debug-VC-$openssl_arch");
|
||||||
|
printLineToBat ("call ms\\$openssl_do_ms");
|
||||||
|
printLineToBat ("nmake -f ms\\nt.mak");
|
||||||
|
printLineToBat ("nmake -f ms\\nt.mak install");
|
||||||
|
printLineToBat ("xcopy tmp32.dbg\\lib.pdb Debug\\lib\\"); # Telegram does it.
|
||||||
|
printLineToBat ("nmake -f ms\\nt.mak clean");
|
||||||
|
# now release
|
||||||
|
printLineToBat ("perl Configure no-asm no-shared --prefix=%cd%\\Release --openssldir=%cd%\\Release VC-$openssl_arch");
|
||||||
|
printLineToBat ("call ms\\$openssl_do_ms");
|
||||||
|
printLineToBat ("nmake -f ms\\nt.mak");
|
||||||
|
printLineToBat ("nmake -f ms\\nt.mak install");
|
||||||
|
printLineToBat ("xcopy tmp32\\lib.pdb Release\\lib\\"); # Telegram does it.
|
||||||
|
printLineToBat ("nmake -f ms\\nt.mak clean");
|
||||||
|
# go back to qtbase
|
||||||
|
printLineToBat ("cd ..");
|
||||||
|
printLineToBat ("SET _ROOT=%cd%");
|
||||||
|
printLineToBat ("SET PATH=%_ROOT%\\qtbase\\bin;%_ROOT%\\gnuwin32\\bin;%PATH%"); # http://doc.qt.io/qt-5/windows-building.html
|
||||||
|
printLineToBat ("configure -opensource -confirm-license -opengl desktop -mp -nomake tests -nomake examples -target xp -I \"%cd%\\$openssl_dir\\Release\\include\" -openssl-linked OPENSSL_LIBS_DEBUG=\"%cd%\\$openssl_dir\\Debug\\lib\\ssleay32.lib %cd%\\$openssl_dir\\Debug\\lib\\libeay32.lib\" OPENSSL_LIBS_RELEASE=\"%cd%\\$openssl_dir\\Release\\lib\\ssleay32.lib %cd%\\$openssl_dir\\Release\\lib\\libeay32.lib\"");
|
||||||
|
printLineToBat ("nmake");
|
||||||
|
printLineToBat ("cd ..\\qttools");
|
||||||
|
printLineToBat ("..\\qtbase\\bin\\qmake");
|
||||||
|
printLineToBat ("nmake");
|
||||||
|
printLineToBat ("cd ..\\qtwinextras");
|
||||||
|
printLineToBat ("..\\qtbase\\bin\\qmake");
|
||||||
|
printLineToBat ("nmake");
|
||||||
|
printLineToBat ("cd ..\\qtbase");
|
||||||
|
printLineToBat ("nmake docs");
|
||||||
|
printLineToBat ("cd .."); # go up to qt dir
|
||||||
|
# openssl clean up
|
||||||
|
printLineToBat ("cd qtbase");
|
||||||
|
printLineToBat ("cd $openssl_dir");
|
||||||
|
printLineToBat ("del /s /f /q out32");
|
||||||
|
printLineToBat ("del /s /f /q out32.dbg");
|
||||||
|
printLineToBat ("cd ..");
|
||||||
|
printLineToBat ("cd ..");
|
||||||
|
# the rest
|
||||||
|
printLineToBat ("del *.obj /s /f");
|
||||||
|
printLineToBat ("del *.ilk /s /f");
|
||||||
|
printLineToBat ("del *.pch /s /f");
|
||||||
|
printLineToBat ("del Makefile* /s /f");
|
||||||
|
|
||||||
|
close BAT;
|
||||||
|
|
||||||
|
system ($batfile);
|
||||||
|
#system ("del $batfile");
|
||||||
|
system ("pause");
|
||||||
|
|
||||||
|
sub printLineToBat
|
||||||
|
{
|
||||||
|
print BAT "$_[0]\n";
|
||||||
|
}
|
104
5.6.3/qtbase/mkspecs/common/msvc-desktop.conf
Normal file
104
5.6.3/qtbase/mkspecs/common/msvc-desktop.conf
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
#
|
||||||
|
# qmake configuration for Microsoft Visual Studio C/C++ Compiler
|
||||||
|
# This mkspec is used for all win32-msvcXXXX specs
|
||||||
|
#
|
||||||
|
|
||||||
|
isEmpty(MSC_VER)|isEmpty(MSVC_VER): error("Source mkspec must set both MSC_VER and MSVC_VER.")
|
||||||
|
|
||||||
|
#
|
||||||
|
# Baseline: Visual Studio 2005 (8.0), VC++ 14.0
|
||||||
|
#
|
||||||
|
|
||||||
|
include(angle.conf)
|
||||||
|
|
||||||
|
MAKEFILE_GENERATOR = MSVC.NET
|
||||||
|
QMAKE_PLATFORM = win32
|
||||||
|
QMAKE_COMPILER = msvc
|
||||||
|
CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
|
||||||
|
DEFINES += UNICODE WIN32
|
||||||
|
QMAKE_COMPILER_DEFINES += _MSC_VER=$$MSC_VER _WIN32
|
||||||
|
contains(QMAKE_TARGET.arch, x86_64) {
|
||||||
|
DEFINES += WIN64
|
||||||
|
QMAKE_COMPILER_DEFINES += _WIN64
|
||||||
|
}
|
||||||
|
|
||||||
|
QMAKE_CC = cl
|
||||||
|
QMAKE_LEX = flex
|
||||||
|
QMAKE_LEXFLAGS =
|
||||||
|
QMAKE_YACC = bison -y
|
||||||
|
QMAKE_YACCFLAGS = -d
|
||||||
|
QMAKE_CFLAGS = -nologo -Zc:wchar_t
|
||||||
|
QMAKE_CFLAGS_WARN_ON = -W3
|
||||||
|
QMAKE_CFLAGS_WARN_OFF = -W0
|
||||||
|
QMAKE_CFLAGS_RELEASE = -O2 -MD
|
||||||
|
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
|
||||||
|
QMAKE_CFLAGS_DEBUG = -Zi -MDd
|
||||||
|
QMAKE_CFLAGS_YACC =
|
||||||
|
QMAKE_CFLAGS_LTCG = -GL
|
||||||
|
QMAKE_CFLAGS_SSE2 = -arch:SSE2
|
||||||
|
QMAKE_CFLAGS_SSE3 = -arch:SSE2
|
||||||
|
QMAKE_CFLAGS_SSSE3 = -arch:SSE2
|
||||||
|
QMAKE_CFLAGS_SSE4_1 = -arch:SSE2
|
||||||
|
QMAKE_CFLAGS_SSE4_2 = -arch:SSE2
|
||||||
|
|
||||||
|
QMAKE_CXX = $$QMAKE_CC
|
||||||
|
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
|
||||||
|
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189 -w44996
|
||||||
|
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
|
||||||
|
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
|
||||||
|
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
|
||||||
|
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
|
||||||
|
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
|
||||||
|
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
||||||
|
QMAKE_CXXFLAGS_STL_ON = -EHsc
|
||||||
|
QMAKE_CXXFLAGS_STL_OFF =
|
||||||
|
QMAKE_CXXFLAGS_RTTI_ON = -GR
|
||||||
|
QMAKE_CXXFLAGS_RTTI_OFF =
|
||||||
|
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
|
||||||
|
QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
|
||||||
|
|
||||||
|
QMAKE_INCDIR =
|
||||||
|
|
||||||
|
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
|
||||||
|
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
|
||||||
|
QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
|
||||||
|
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
|
||||||
|
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
|
||||||
|
QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
|
||||||
|
|
||||||
|
QMAKE_LINK = link
|
||||||
|
QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT
|
||||||
|
QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO
|
||||||
|
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF /INCREMENTAL:NO
|
||||||
|
QMAKE_LFLAGS_DEBUG = /DEBUG
|
||||||
|
QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
|
||||||
|
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
|
||||||
|
QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
|
||||||
|
QMAKE_LFLAGS_DLL = /DLL
|
||||||
|
QMAKE_LFLAGS_LTCG = /LTCG
|
||||||
|
QMAKE_PREFIX_SHLIB =
|
||||||
|
QMAKE_EXTENSION_SHLIB = dll
|
||||||
|
QMAKE_PREFIX_STATICLIB =
|
||||||
|
QMAKE_EXTENSION_STATICLIB = lib
|
||||||
|
|
||||||
|
QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
|
||||||
|
QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib
|
||||||
|
QMAKE_LIBS_NETWORK = ws2_32.lib
|
||||||
|
QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib
|
||||||
|
QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib gdi32.lib user32.lib
|
||||||
|
QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib gdi32.lib user32.lib
|
||||||
|
QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
|
||||||
|
|
||||||
|
QMAKE_LIBS_QT_ENTRY = -lqtmain
|
||||||
|
|
||||||
|
QMAKE_IDL = midl
|
||||||
|
QMAKE_LIB = lib /NOLOGO
|
||||||
|
QMAKE_RC = rc
|
||||||
|
|
||||||
|
VCPROJ_EXTENSION = .vcproj
|
||||||
|
VCSOLUTION_EXTENSION = .sln
|
||||||
|
VCPROJ_KEYWORD = Qt4VSv1.0
|
||||||
|
|
||||||
|
include(msvc-base.conf)
|
||||||
|
|
||||||
|
unset(MSC_VER)
|
454
5.6.3/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
Normal file
454
5.6.3/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
Normal file
@ -0,0 +1,454 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** 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$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (c) 2007-2008, Apple, Inc.
|
||||||
|
**
|
||||||
|
** All rights reserved.
|
||||||
|
**
|
||||||
|
** Redistribution and use in source and binary forms, with or without
|
||||||
|
** modification, are permitted provided that the following conditions are met:
|
||||||
|
**
|
||||||
|
** * Redistributions of source code must retain the above copyright notice,
|
||||||
|
** this list of conditions and the following disclaimer.
|
||||||
|
**
|
||||||
|
** * Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
** this list of conditions and the following disclaimer in the documentation
|
||||||
|
** and/or other materials provided with the distribution.
|
||||||
|
**
|
||||||
|
** * Neither the name of Apple, Inc. nor the names of its contributors
|
||||||
|
** may be used to endorse or promote products derived from this software
|
||||||
|
** without specific prior written permission.
|
||||||
|
**
|
||||||
|
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#import "qcocoaapplicationdelegate.h"
|
||||||
|
#import "qnswindowdelegate.h"
|
||||||
|
#import "qcocoamenuloader.h"
|
||||||
|
#include "qcocoaintegration.h"
|
||||||
|
#include <qevent.h>
|
||||||
|
#include <qurl.h>
|
||||||
|
#include <qdebug.h>
|
||||||
|
#include <qguiapplication.h>
|
||||||
|
#include <private/qguiapplication_p.h>
|
||||||
|
#include "qt_mac_p.h"
|
||||||
|
#include <qpa/qwindowsysteminterface.h>
|
||||||
|
|
||||||
|
QT_USE_NAMESPACE
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
static QCocoaApplicationDelegate *sharedCocoaApplicationDelegate = nil;
|
||||||
|
|
||||||
|
static void cleanupCocoaApplicationDelegate()
|
||||||
|
{
|
||||||
|
[sharedCocoaApplicationDelegate release];
|
||||||
|
}
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
@implementation QCocoaApplicationDelegate
|
||||||
|
|
||||||
|
- (id)init
|
||||||
|
{
|
||||||
|
self = [super init];
|
||||||
|
if (self) {
|
||||||
|
inLaunch = true;
|
||||||
|
[[NSNotificationCenter defaultCenter]
|
||||||
|
addObserver:self
|
||||||
|
selector:@selector(updateScreens:)
|
||||||
|
name:NSApplicationDidChangeScreenParametersNotification
|
||||||
|
object:NSApp];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)updateScreens:(NSNotification *)notification
|
||||||
|
{
|
||||||
|
Q_UNUSED(notification);
|
||||||
|
if (QCocoaIntegration *ci = QCocoaIntegration::instance())
|
||||||
|
ci->updateScreens();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)dealloc
|
||||||
|
{
|
||||||
|
sharedCocoaApplicationDelegate = nil;
|
||||||
|
[dockMenu release];
|
||||||
|
[qtMenuLoader release];
|
||||||
|
if (reflectionDelegate) {
|
||||||
|
[[NSApplication sharedApplication] setDelegate:reflectionDelegate];
|
||||||
|
[reflectionDelegate release];
|
||||||
|
}
|
||||||
|
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||||
|
|
||||||
|
[super dealloc];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (id)allocWithZone:(NSZone *)zone
|
||||||
|
{
|
||||||
|
@synchronized(self) {
|
||||||
|
if (sharedCocoaApplicationDelegate == nil) {
|
||||||
|
sharedCocoaApplicationDelegate = [super allocWithZone:zone];
|
||||||
|
qAddPostRoutine(cleanupCocoaApplicationDelegate);
|
||||||
|
return sharedCocoaApplicationDelegate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (QCocoaApplicationDelegate *)sharedDelegate
|
||||||
|
{
|
||||||
|
@synchronized(self) {
|
||||||
|
if (sharedCocoaApplicationDelegate == nil)
|
||||||
|
[[self alloc] init];
|
||||||
|
}
|
||||||
|
return [[sharedCocoaApplicationDelegate retain] autorelease];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setDockMenu:(NSMenu*)newMenu
|
||||||
|
{
|
||||||
|
[newMenu retain];
|
||||||
|
[dockMenu release];
|
||||||
|
dockMenu = newMenu;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSMenu *)applicationDockMenu:(NSApplication *)sender
|
||||||
|
{
|
||||||
|
Q_UNUSED(sender);
|
||||||
|
// Manually invoke the delegate's -menuWillOpen: method.
|
||||||
|
// See QTBUG-39604 (and its fix) for details.
|
||||||
|
[[dockMenu delegate] menuWillOpen:dockMenu];
|
||||||
|
return [[dockMenu retain] autorelease];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setMenuLoader:(QCocoaMenuLoader *)menuLoader
|
||||||
|
{
|
||||||
|
[menuLoader retain];
|
||||||
|
[qtMenuLoader release];
|
||||||
|
qtMenuLoader = menuLoader;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (QCocoaMenuLoader *)menuLoader
|
||||||
|
{
|
||||||
|
return [[qtMenuLoader retain] autorelease];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) canQuit
|
||||||
|
{
|
||||||
|
[[NSApp mainMenu] cancelTracking];
|
||||||
|
|
||||||
|
bool handle_quit = true;
|
||||||
|
NSMenuItem *quitMenuItem = [[[QCocoaApplicationDelegate sharedDelegate] menuLoader] quitMenuItem];
|
||||||
|
if (!QGuiApplicationPrivate::instance()->modalWindowList.isEmpty()
|
||||||
|
&& [quitMenuItem isEnabled]) {
|
||||||
|
int visible = 0;
|
||||||
|
const QWindowList tlws = QGuiApplication::topLevelWindows();
|
||||||
|
for (int i = 0; i < tlws.size(); ++i) {
|
||||||
|
if (tlws.at(i)->isVisible())
|
||||||
|
++visible;
|
||||||
|
}
|
||||||
|
handle_quit = (visible <= 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (handle_quit) {
|
||||||
|
QCloseEvent ev;
|
||||||
|
QGuiApplication::sendEvent(qGuiApp, &ev);
|
||||||
|
if (ev.isAccepted()) {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This function will only be called when NSApp is actually running.
|
||||||
|
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
|
||||||
|
{
|
||||||
|
// The reflection delegate gets precedence
|
||||||
|
if (reflectionDelegate) {
|
||||||
|
if ([reflectionDelegate respondsToSelector:@selector(applicationShouldTerminate:)])
|
||||||
|
return [reflectionDelegate applicationShouldTerminate:sender];
|
||||||
|
return NSTerminateNow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([self canQuit]) {
|
||||||
|
if (!startedQuit) {
|
||||||
|
startedQuit = true;
|
||||||
|
// Close open windows. This is done in order to deliver de-expose
|
||||||
|
// events while the event loop is still running.
|
||||||
|
const QWindowList topLevels = QGuiApplication::topLevelWindows();
|
||||||
|
for (int i = 0; i < topLevels.size(); ++i) {
|
||||||
|
QWindow *topLevelWindow = topLevels.at(i);
|
||||||
|
// Already closed windows will not have a platform window, skip those
|
||||||
|
if (topLevelWindow->handle())
|
||||||
|
QWindowSystemInterface::handleCloseEvent(topLevelWindow);
|
||||||
|
}
|
||||||
|
QWindowSystemInterface::flushWindowSystemEvents();
|
||||||
|
|
||||||
|
QGuiApplication::exit(0);
|
||||||
|
startedQuit = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (QGuiApplicationPrivate::instance()->threadData->eventLoops.isEmpty()) {
|
||||||
|
// INVARIANT: No event loop is executing. This probably
|
||||||
|
// means that Qt is used as a plugin, or as a part of a native
|
||||||
|
// Cocoa application. In any case it should be fine to
|
||||||
|
// terminate now:
|
||||||
|
return NSTerminateNow;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NSTerminateCancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) applicationWillFinishLaunching:(NSNotification *)notification
|
||||||
|
{
|
||||||
|
Q_UNUSED(notification);
|
||||||
|
|
||||||
|
/*
|
||||||
|
From the Cocoa documentation: "A good place to install event handlers
|
||||||
|
is in the applicationWillFinishLaunching: method of the application
|
||||||
|
delegate. At that point, the Application Kit has installed its default
|
||||||
|
event handlers, so if you install a handler for one of the same events,
|
||||||
|
it will replace the Application Kit version."
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
If Qt is used as a plugin, we let the 3rd party application handle
|
||||||
|
events like quit and open file events. Otherwise, if we install our own
|
||||||
|
handlers, we easily end up breaking functionality the 3rd party
|
||||||
|
application depends on.
|
||||||
|
*/
|
||||||
|
NSAppleEventManager *eventManager = [NSAppleEventManager sharedAppleEventManager];
|
||||||
|
[eventManager setEventHandler:self
|
||||||
|
andSelector:@selector(appleEventQuit:withReplyEvent:)
|
||||||
|
forEventClass:kCoreEventClass
|
||||||
|
andEventID:kAEQuitApplication];
|
||||||
|
[eventManager setEventHandler:self
|
||||||
|
andSelector:@selector(getUrl:withReplyEvent:)
|
||||||
|
forEventClass:kInternetEventClass
|
||||||
|
andEventID:kAEGetURL];
|
||||||
|
}
|
||||||
|
|
||||||
|
// called by QCocoaIntegration's destructor before resetting the application delegate to nil
|
||||||
|
- (void) removeAppleEventHandlers
|
||||||
|
{
|
||||||
|
NSAppleEventManager *eventManager = [NSAppleEventManager sharedAppleEventManager];
|
||||||
|
[eventManager removeEventHandlerForEventClass:kCoreEventClass andEventID:kAEQuitApplication];
|
||||||
|
[eventManager removeEventHandlerForEventClass:kInternetEventClass andEventID:kAEGetURL];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (bool) inLaunch
|
||||||
|
{
|
||||||
|
return inLaunch;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
||||||
|
{
|
||||||
|
Q_UNUSED(aNotification);
|
||||||
|
inLaunch = false;
|
||||||
|
|
||||||
|
if (qEnvironmentVariableIsEmpty("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM")) {
|
||||||
|
if (QSysInfo::macVersion() >= QSysInfo::MV_10_12) {
|
||||||
|
// Move the application window to front to avoid launching behind the terminal.
|
||||||
|
// Ignoring other apps is necessary (we must ignore the terminal), but makes
|
||||||
|
// Qt apps play slightly less nice with other apps when lanching from Finder
|
||||||
|
// (See the activateIgnoringOtherApps docs.)
|
||||||
|
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames
|
||||||
|
{
|
||||||
|
Q_UNUSED(filenames);
|
||||||
|
Q_UNUSED(sender);
|
||||||
|
|
||||||
|
for (NSString *fileName in filenames) {
|
||||||
|
QString qtFileName = QCFString::toQString(fileName);
|
||||||
|
if (inLaunch) {
|
||||||
|
// We need to be careful because Cocoa will be nice enough to take
|
||||||
|
// command line arguments and send them to us as events. Given the history
|
||||||
|
// of Qt Applications, this will result in behavior people don't want, as
|
||||||
|
// they might be doing the opening themselves with the command line parsing.
|
||||||
|
if (qApp->arguments().contains(qtFileName))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
QWindowSystemInterface::handleFileOpenEvent(qtFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reflectionDelegate &&
|
||||||
|
[reflectionDelegate respondsToSelector:@selector(application:openFiles:)])
|
||||||
|
[reflectionDelegate application:sender openFiles:filenames];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
|
||||||
|
{
|
||||||
|
// If we have a reflection delegate, that will get to call the shots.
|
||||||
|
if (reflectionDelegate
|
||||||
|
&& [reflectionDelegate respondsToSelector:
|
||||||
|
@selector(applicationShouldTerminateAfterLastWindowClosed:)])
|
||||||
|
return [reflectionDelegate applicationShouldTerminateAfterLastWindowClosed:sender];
|
||||||
|
return NO; // Someday qApp->quitOnLastWindowClosed(); when QApp and NSApp work closer together.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (void)applicationDidBecomeActive:(NSNotification *)notification
|
||||||
|
{
|
||||||
|
if (reflectionDelegate
|
||||||
|
&& [reflectionDelegate respondsToSelector:@selector(applicationDidBecomeActive:)])
|
||||||
|
[reflectionDelegate applicationDidBecomeActive:notification];
|
||||||
|
|
||||||
|
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationActive);
|
||||||
|
/*
|
||||||
|
onApplicationChangedActivation(true);
|
||||||
|
|
||||||
|
if (!QWidget::mouseGrabber()){
|
||||||
|
// Update enter/leave immidiatly, don't wait for a move event. But only
|
||||||
|
// if no grab exists (even if the grab points to this widget, it seems, ref X11)
|
||||||
|
QPoint qlocal, qglobal;
|
||||||
|
QWidget *widgetUnderMouse = 0;
|
||||||
|
qt_mac_getTargetForMouseEvent(0, QEvent::Enter, qlocal, qglobal, 0, &widgetUnderMouse);
|
||||||
|
QApplicationPrivate::dispatchEnterLeave(widgetUnderMouse, 0);
|
||||||
|
qt_last_mouse_receiver = widgetUnderMouse;
|
||||||
|
qt_last_native_mouse_receiver = widgetUnderMouse ?
|
||||||
|
(widgetUnderMouse->internalWinId() ? widgetUnderMouse : widgetUnderMouse->nativeParentWidget()) : 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)applicationDidResignActive:(NSNotification *)notification
|
||||||
|
{
|
||||||
|
if (reflectionDelegate
|
||||||
|
&& [reflectionDelegate respondsToSelector:@selector(applicationDidResignActive:)])
|
||||||
|
[reflectionDelegate applicationDidResignActive:notification];
|
||||||
|
|
||||||
|
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationInactive);
|
||||||
|
/*
|
||||||
|
onApplicationChangedActivation(false);
|
||||||
|
|
||||||
|
if (!QWidget::mouseGrabber())
|
||||||
|
QApplicationPrivate::dispatchEnterLeave(0, qt_last_mouse_receiver);
|
||||||
|
qt_last_mouse_receiver = 0;
|
||||||
|
qt_last_native_mouse_receiver = 0;
|
||||||
|
qt_button_down = 0;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag
|
||||||
|
{
|
||||||
|
Q_UNUSED(theApplication);
|
||||||
|
Q_UNUSED(flag);
|
||||||
|
if (reflectionDelegate
|
||||||
|
&& [reflectionDelegate respondsToSelector:@selector(applicationShouldHandleReopen:hasVisibleWindows:)])
|
||||||
|
return [reflectionDelegate applicationShouldHandleReopen:theApplication hasVisibleWindows:flag];
|
||||||
|
|
||||||
|
/*
|
||||||
|
true to force delivery of the event even if the application state is already active,
|
||||||
|
because rapp (handle reopen) events are sent each time the dock icon is clicked regardless
|
||||||
|
of the active state of the application or number of visible windows. For example, a browser
|
||||||
|
app that has no windows opened would need the event be to delivered even if it was already
|
||||||
|
active in order to create a new window as per OS X conventions.
|
||||||
|
*/
|
||||||
|
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationActive, true /*forcePropagate*/);
|
||||||
|
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setReflectionDelegate:(NSObject <NSApplicationDelegate> *)oldDelegate
|
||||||
|
{
|
||||||
|
[oldDelegate retain];
|
||||||
|
[reflectionDelegate release];
|
||||||
|
reflectionDelegate = oldDelegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
|
||||||
|
{
|
||||||
|
NSMethodSignature *result = [super methodSignatureForSelector:aSelector];
|
||||||
|
if (!result && reflectionDelegate) {
|
||||||
|
result = [reflectionDelegate methodSignatureForSelector:aSelector];
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)respondsToSelector:(SEL)aSelector
|
||||||
|
{
|
||||||
|
BOOL result = [super respondsToSelector:aSelector];
|
||||||
|
if (!result && reflectionDelegate)
|
||||||
|
result = [reflectionDelegate respondsToSelector:aSelector];
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)forwardInvocation:(NSInvocation *)invocation
|
||||||
|
{
|
||||||
|
SEL invocationSelector = [invocation selector];
|
||||||
|
if (reflectionDelegate && [reflectionDelegate respondsToSelector:invocationSelector])
|
||||||
|
[invocation invokeWithTarget:reflectionDelegate];
|
||||||
|
else
|
||||||
|
[self doesNotRecognizeSelector:invocationSelector];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
|
||||||
|
{
|
||||||
|
Q_UNUSED(replyEvent);
|
||||||
|
NSString *urlString = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
|
||||||
|
QWindowSystemInterface::handleFileOpenEvent(QUrl(QCFString::toQString(urlString)));
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)appleEventQuit:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
|
||||||
|
{
|
||||||
|
Q_UNUSED(event);
|
||||||
|
Q_UNUSED(replyEvent);
|
||||||
|
[NSApp terminate:self];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)qtDispatcherToQAction:(id)sender
|
||||||
|
{
|
||||||
|
Q_UNUSED(sender);
|
||||||
|
[qtMenuLoader qtDispatcherToQPAMenuItem:sender];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
2018
5.6.3/src/plugins/platforms/cocoa/qcocoawindow.mm
Normal file
2018
5.6.3/src/plugins/platforms/cocoa/qcocoawindow.mm
Normal file
File diff suppressed because it is too large
Load Diff
146
5.6.3/src/plugins/platforms/cocoa/qnsview.h
Normal file
146
5.6.3/src/plugins/platforms/cocoa/qnsview.h
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** 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 QNSVIEW_H
|
||||||
|
#define QNSVIEW_H
|
||||||
|
|
||||||
|
#include <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
#include <QtCore/QPointer>
|
||||||
|
#include <QtGui/QImage>
|
||||||
|
#include <QtGui/QAccessible>
|
||||||
|
|
||||||
|
#include "private/qcore_mac_p.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
class QCocoaWindow;
|
||||||
|
class QCocoaBackingStore;
|
||||||
|
class QCocoaGLContext;
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
Q_FORWARD_DECLARE_OBJC_CLASS(QT_MANGLE_NAMESPACE(QNSViewMouseMoveHelper));
|
||||||
|
|
||||||
|
@interface QT_MANGLE_NAMESPACE(QNSView) : NSView <NSTextInputClient> {
|
||||||
|
QCocoaBackingStore* m_backingStore;
|
||||||
|
QPoint m_backingStoreOffset;
|
||||||
|
CGImageRef m_maskImage;
|
||||||
|
uchar *m_maskData;
|
||||||
|
bool m_shouldInvalidateWindowShadow;
|
||||||
|
QPointer<QWindow> m_window;
|
||||||
|
QCocoaWindow *m_platformWindow;
|
||||||
|
NSTrackingArea *m_trackingArea;
|
||||||
|
Qt::MouseButtons m_buttons;
|
||||||
|
Qt::MouseButtons m_frameStrutButtons;
|
||||||
|
QString m_composingText;
|
||||||
|
bool m_sendKeyEvent;
|
||||||
|
QStringList *currentCustomDragTypes;
|
||||||
|
bool m_sendUpAsRightButton;
|
||||||
|
Qt::KeyboardModifiers currentWheelModifiers;
|
||||||
|
bool m_subscribesForGlobalFrameNotifications;
|
||||||
|
#ifndef QT_NO_OPENGL
|
||||||
|
QCocoaGLContext *m_glContext;
|
||||||
|
bool m_shouldSetGLContextinDrawRect;
|
||||||
|
#endif
|
||||||
|
NSString *m_inputSource;
|
||||||
|
QT_MANGLE_NAMESPACE(QNSViewMouseMoveHelper) *m_mouseMoveHelper;
|
||||||
|
bool m_resendKeyEvent;
|
||||||
|
bool m_scrolling;
|
||||||
|
bool m_updatingDrag;
|
||||||
|
bool m_exposedOnMoveToWindow;
|
||||||
|
NSEvent *m_currentlyInterpretedKeyEvent;
|
||||||
|
bool m_isMenuView;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id)init;
|
||||||
|
- (id)initWithQWindow:(QWindow *)window platformWindow:(QCocoaWindow *) platformWindow;
|
||||||
|
- (void) clearQWindowPointers;
|
||||||
|
#ifndef QT_NO_OPENGL
|
||||||
|
- (void)setQCocoaGLContext:(QCocoaGLContext *)context;
|
||||||
|
#endif
|
||||||
|
- (void)flushBackingStore:(QCocoaBackingStore *)backingStore region:(const QRegion &)region offset:(QPoint)offset;
|
||||||
|
- (void)clearBackingStore:(QCocoaBackingStore *)backingStore;
|
||||||
|
- (void)setMaskRegion:(const QRegion *)region;
|
||||||
|
- (void)invalidateWindowShadowIfNeeded;
|
||||||
|
- (void)drawRect:(NSRect)dirtyRect;
|
||||||
|
- (void)updateGeometry;
|
||||||
|
- (void)notifyWindowStateChanged:(Qt::WindowState)newState;
|
||||||
|
- (void)windowNotification : (NSNotification *) windowNotification;
|
||||||
|
- (void)notifyWindowWillZoom:(BOOL)willZoom;
|
||||||
|
- (void)textInputContextKeyboardSelectionDidChangeNotification : (NSNotification *) textInputContextKeyboardSelectionDidChangeNotification;
|
||||||
|
- (void)viewDidHide;
|
||||||
|
- (void)viewDidUnhide;
|
||||||
|
- (void)removeFromSuperview;
|
||||||
|
|
||||||
|
- (BOOL)isFlipped;
|
||||||
|
- (BOOL)acceptsFirstResponder;
|
||||||
|
- (BOOL)becomeFirstResponder;
|
||||||
|
- (BOOL)hasMask;
|
||||||
|
- (BOOL)isOpaque;
|
||||||
|
|
||||||
|
- (void)convertFromScreen:(NSPoint)mouseLocation toWindowPoint:(QPointF *)qtWindowPoint andScreenPoint:(QPointF *)qtScreenPoint;
|
||||||
|
|
||||||
|
- (void)resetMouseButtons;
|
||||||
|
|
||||||
|
- (void)handleMouseEvent:(NSEvent *)theEvent;
|
||||||
|
- (void)mouseDown:(NSEvent *)theEvent;
|
||||||
|
- (void)mouseDragged:(NSEvent *)theEvent;
|
||||||
|
- (void)mouseUp:(NSEvent *)theEvent;
|
||||||
|
- (void)mouseMovedImpl:(NSEvent *)theEvent;
|
||||||
|
- (void)mouseEnteredImpl:(NSEvent *)theEvent;
|
||||||
|
- (void)mouseExitedImpl:(NSEvent *)theEvent;
|
||||||
|
- (void)rightMouseDown:(NSEvent *)theEvent;
|
||||||
|
- (void)rightMouseDragged:(NSEvent *)theEvent;
|
||||||
|
- (void)rightMouseUp:(NSEvent *)theEvent;
|
||||||
|
- (void)otherMouseDown:(NSEvent *)theEvent;
|
||||||
|
- (void)otherMouseDragged:(NSEvent *)theEvent;
|
||||||
|
- (void)otherMouseUp:(NSEvent *)theEvent;
|
||||||
|
- (void)handleFrameStrutMouseEvent:(NSEvent *)theEvent;
|
||||||
|
|
||||||
|
- (bool)handleTabletEvent: (NSEvent *)theEvent;
|
||||||
|
- (void)tabletPoint: (NSEvent *)theEvent;
|
||||||
|
- (void)tabletProximity: (NSEvent *)theEvent;
|
||||||
|
|
||||||
|
- (int) convertKeyCode : (QChar)keyCode;
|
||||||
|
+ (Qt::KeyboardModifiers) convertKeyModifiers : (ulong)modifierFlags;
|
||||||
|
- (void)handleKeyEvent:(NSEvent *)theEvent eventType:(int)eventType;
|
||||||
|
- (void)keyDown:(NSEvent *)theEvent;
|
||||||
|
- (void)keyUp:(NSEvent *)theEvent;
|
||||||
|
|
||||||
|
- (void)registerDragTypes;
|
||||||
|
- (NSDragOperation)handleDrag:(id <NSDraggingInfo>)sender;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSView);
|
||||||
|
|
||||||
|
#endif //QNSVIEW_H
|
2094
5.6.3/src/plugins/platforms/cocoa/qnsview.mm
Normal file
2094
5.6.3/src/plugins/platforms/cocoa/qnsview.mm
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user