diff --git a/Telegram/Emoji.plist b/Telegram/Emoji.plist
new file mode 100644
index 000000000..622dd607d
--- /dev/null
+++ b/Telegram/Emoji.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleExecutable
+ MetaEmoji
+ CFBundleGetInfoString
+ MetaEmoji compiler
+ CFBundleIdentifier
+ com.tdesktop.${PRODUCT_NAME:rfc1034identifier}
+ CFBundlePackageType
+ APPL
+ CFBundleSignature
+ ????
+ NOTE
+
+ NSPrincipalClass
+ NSApplication
+
+
diff --git a/Telegram/MetaEmoji.pro b/Telegram/MetaEmoji.pro
new file mode 100644
index 000000000..77927fb41
--- /dev/null
+++ b/Telegram/MetaEmoji.pro
@@ -0,0 +1,31 @@
+QT += core
+
+CONFIG(debug, debug|release) {
+ DEFINES += _DEBUG
+ OBJECTS_DIR = ./../Mac/DebugIntermediateEmoji
+ MOC_DIR = ./GeneratedFiles/Debug
+ DESTDIR = ./../Mac/DebugEmoji
+}
+CONFIG(release, debug|release) {
+ OBJECTS_DIR = ./../Mac/ReleaseIntermediateEmoji
+ MOC_DIR = ./GeneratedFiles/Release
+ DESTDIR = ./../Mac/ReleaseEmoji
+}
+
+macx {
+ QMAKE_INFO_PLIST = ./SourceFiles/_other/Emoji.plist
+ QMAKE_LFLAGS += -framework Cocoa
+}
+
+SOURCES += \
+ ./SourceFiles/_other/memain.cpp \
+ ./SourceFiles/_other/genemoji.cpp \
+
+HEADERS += \
+ ./SourceFiles/_other/memain.h \
+ ./SourceFiles/_other/genemoji.h \
+
+INCLUDEPATH += ./../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui\
+ ./../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore\
+ ./../../Libraries/QtStatic/qtbase/include\
+
diff --git a/Telegram/MetaEmoji.xcodeproj/project.pbxproj b/Telegram/MetaEmoji.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..fb5bf86ab
--- /dev/null
+++ b/Telegram/MetaEmoji.xcodeproj/project.pbxproj
@@ -0,0 +1,801 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXAggregateTarget section */
+ D93715D85BD26B270C3CC80B /* Preprocess */ = {
+ isa = PBXAggregateTarget;
+ buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaEmoji" */;
+ buildPhases = (
+ 7EF0942E79C014DCEC8976BC /* Qt Preprocessors */,
+ );
+ dependencies = (
+ );
+ name = Preprocess;
+ productName = "Qt Preprocess";
+ };
+/* End PBXAggregateTarget section */
+
+/* Begin PBXBuildFile section */
+ 1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DBF506D10449BFABD45B82DA /* Qt5PrintSupport */; };
+ 1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */; };
+ 328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DFD7912080BC557230093752 /* ApplicationServices.framework */; };
+ 496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8F500B5166907B6D9A7C3E3D /* qico */; };
+ 4B166C0FE4A3C31F5E3D05CE /* metaemoji_plugin_import.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = A9341A7B02F69BC5802268AA /* metaemoji_plugin_import.cpp */; settings = {ATTRIBUTES = (); }; };
+ 59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F0681BC551FC8A2B132FC646 /* qjp2 */; };
+ 668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9742F24EE18EA44D52824F1E /* CoreServices.framework */; };
+ 7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 31120EDB269DFF13E1D49847 /* qicns */; };
+ 7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DCEFD9167C239650120B0145 /* qtga */; };
+ 83425F7776C9E52C29BE0E6F /* memain.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 3AC2626B26B65AA88F06BFB5 /* memain.cpp */; settings = {ATTRIBUTES = (); }; };
+ 8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D4B32C2222F82AC56BADEB21 /* OpenGL.framework */; };
+ 8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = A1A67BEAA744704B29168D39 /* IOKit.framework */; };
+ 8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D6193B79CECC9DD0142D1200 /* qtharfbuzzng */; };
+ 9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 04391BE7A8B9D811E255100A /* Qt5Gui */; };
+ A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8CF51323544B886B8F4A2232 /* qwbmp */; };
+ A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D3D1BE0BEA3AEE0551AD39AC /* qdds */; };
+ B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 5A80A1907B6CFFB524C1E57D /* Qt5Core */; };
+ BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */; };
+ C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F2453BA07315EB9F34F1CD57 /* qtiff */; };
+ C4F1177BDAACCF1E50ACCED9 /* moc_genemoji.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 93E4BE1A02365B73BAF00B73 /* moc_genemoji.cpp */; settings = {ATTRIBUTES = (); }; };
+ C5357D951917482510CE3E54 /* genemoji.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 1F47C130E1F45B4A5A91DB5E /* genemoji.cpp */; settings = {ATTRIBUTES = (); }; };
+ D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D53D8E6A188E05078A114294 /* qcocoa */; };
+ D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */; };
+ E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */; };
+ F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = FCC237CA5AD60B9BA4447615 /* Foundation.framework */; };
+ F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = ADC6308023253CEA51F86E21 /* qwebp */; };
+ F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */; };
+ F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9DFF62A901D70814B8A323D4 /* Carbon.framework */; };
+ FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 83D37373949868693FB7816D /* qmng */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 0708466E1954218200B5AE3A /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 6DB9C3763D02B1415CD9D565 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D93715D85BD26B270C3CC80B;
+ remoteInfo = "Qt Preprocess";
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 04391BE7A8B9D811E255100A /* Qt5Gui */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Gui; path = "/usr/local/Qt-5.3.0/lib/libQt5Gui$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ 060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri"; sourceTree = ""; };
+ 075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri"; sourceTree = ""; };
+ 0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/unix.conf"; sourceTree = ""; };
+ 111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri"; sourceTree = ""; };
+ 16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri"; sourceTree = ""; };
+ 1F47C130E1F45B4A5A91DB5E /* genemoji.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = genemoji.cpp; path = SourceFiles/_other/genemoji.cpp; sourceTree = ""; };
+ 1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri"; sourceTree = ""; };
+ 23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri"; sourceTree = ""; };
+ 2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri"; sourceTree = ""; };
+ 247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri"; sourceTree = ""; };
+ 24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri"; sourceTree = ""; };
+ 28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri"; sourceTree = ""; };
+ 293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri"; sourceTree = ""; };
+ 2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri"; sourceTree = ""; };
+ 2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri"; sourceTree = ""; };
+ 311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri"; sourceTree = ""; };
+ 31120EDB269DFF13E1D49847 /* qicns */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qicns; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqicns$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ 33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri"; sourceTree = ""; };
+ 346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri"; sourceTree = ""; };
+ 360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri"; sourceTree = ""; };
+ 3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri"; sourceTree = ""; };
+ 382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri"; sourceTree = ""; };
+ 3AC2626B26B65AA88F06BFB5 /* memain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = memain.cpp; path = SourceFiles/_other/memain.cpp; sourceTree = ""; };
+ 3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri"; sourceTree = ""; };
+ 45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf"; sourceTree = ""; };
+ 45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri"; sourceTree = ""; };
+ 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Widgets; path = "/usr/local/Qt-5.3.0/lib/libQt5Widgets$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ 4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri"; sourceTree = ""; };
+ 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; };
+ 4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri"; sourceTree = ""; };
+ 5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri"; sourceTree = ""; };
+ 58308B26DE991A86E8589883 /* genemoji.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = genemoji.h; path = SourceFiles/_other/genemoji.h; sourceTree = ""; };
+ 5A80A1907B6CFFB524C1E57D /* Qt5Core */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Core; path = "/usr/local/Qt-5.3.0/lib/libQt5Core$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ 5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri"; sourceTree = ""; };
+ 5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri"; sourceTree = ""; };
+ 5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri"; sourceTree = ""; };
+ 6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri"; sourceTree = ""; };
+ 63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf"; sourceTree = ""; };
+ 669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf"; sourceTree = ""; };
+ 69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri"; sourceTree = ""; };
+ 6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri"; sourceTree = ""; };
+ 6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qdevice.pri"; sourceTree = ""; };
+ 74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri"; sourceTree = ""; };
+ 77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri"; sourceTree = ""; };
+ 7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri"; sourceTree = ""; };
+ 7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri"; sourceTree = ""; };
+ 7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri"; sourceTree = ""; };
+ 7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri"; sourceTree = ""; };
+ 7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri"; sourceTree = ""; };
+ 817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/macx.conf"; sourceTree = ""; };
+ 82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri"; sourceTree = ""; };
+ 83D37373949868693FB7816D /* qmng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qmng; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqmng$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ 85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf"; sourceTree = ""; };
+ 85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri"; sourceTree = ""; };
+ 87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri"; sourceTree = ""; };
+ 87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri"; sourceTree = ""; };
+ 8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri"; sourceTree = ""; };
+ 892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri"; sourceTree = ""; };
+ 89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri"; sourceTree = ""; };
+ 8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri"; sourceTree = ""; };
+ 8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri"; sourceTree = ""; };
+ 8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri"; sourceTree = ""; };
+ 8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang.conf"; sourceTree = ""; };
+ 8CF51323544B886B8F4A2232 /* qwbmp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwbmp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; };
+ 8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri"; sourceTree = ""; };
+ 8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri"; sourceTree = ""; };
+ 8F500B5166907B6D9A7C3E3D /* qico */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qico; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqico$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ 8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri"; sourceTree = ""; };
+ 8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri"; sourceTree = ""; };
+ 93E4BE1A02365B73BAF00B73 /* moc_genemoji.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = moc_genemoji.cpp; path = GeneratedFiles/Debug/moc_genemoji.cpp; sourceTree = ""; };
+ 946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri"; sourceTree = ""; };
+ 9742F24EE18EA44D52824F1E /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; };
+ 9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri"; sourceTree = ""; };
+ 9DFF62A901D70814B8A323D4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; };
+ A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri"; sourceTree = ""; };
+ A1A67BEAA744704B29168D39 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; };
+ A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri"; sourceTree = ""; };
+ A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri"; sourceTree = ""; };
+ A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri"; sourceTree = ""; };
+ A9341A7B02F69BC5802268AA /* metaemoji_plugin_import.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = metaemoji_plugin_import.cpp; sourceTree = ""; };
+ A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf"; sourceTree = ""; };
+ AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri"; sourceTree = ""; };
+ AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri"; sourceTree = ""; };
+ AB745978DF0F41D1801ABDA6 /* .qmake.stash */ = {isa = PBXFileReference; lastKnownFileType = file; path = .qmake.stash; sourceTree = ""; };
+ ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri"; sourceTree = ""; };
+ ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri"; sourceTree = ""; };
+ ADC6308023253CEA51F86E21 /* qwebp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwebp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwebp$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri"; sourceTree = ""; };
+ AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; };
+ AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri"; sourceTree = ""; };
+ B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri"; sourceTree = ""; };
+ B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri"; sourceTree = ""; };
+ B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri"; sourceTree = ""; };
+ B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri"; sourceTree = ""; };
+ B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri"; sourceTree = ""; };
+ B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri"; sourceTree = ""; };
+ B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri"; sourceTree = ""; };
+ B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri"; sourceTree = ""; };
+ B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri"; sourceTree = ""; };
+ BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri"; sourceTree = ""; };
+ BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri"; sourceTree = ""; };
+ BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri"; sourceTree = ""; };
+ BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri"; sourceTree = ""; };
+ C3345709A0BD182590087379 /* MetaEmoji.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MetaEmoji.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri"; sourceTree = ""; };
+ C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri"; sourceTree = ""; };
+ C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri"; sourceTree = ""; };
+ CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri"; sourceTree = ""; };
+ CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri"; sourceTree = ""; };
+ CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri"; sourceTree = ""; };
+ CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri"; sourceTree = ""; };
+ CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri"; sourceTree = ""; };
+ D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri"; sourceTree = ""; };
+ D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri"; sourceTree = ""; };
+ D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri"; sourceTree = ""; };
+ D3D1BE0BEA3AEE0551AD39AC /* qdds */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qdds; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqdds$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ D4B32C2222F82AC56BADEB21 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; };
+ D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qconfig.pri"; sourceTree = ""; };
+ D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri"; sourceTree = ""; };
+ D53D8E6A188E05078A114294 /* qcocoa */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qcocoa; path = "/usr/local/Qt-5.3.0/plugins/platforms/libqcocoa$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ D6193B79CECC9DD0142D1200 /* qtharfbuzzng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtharfbuzzng; path = "/usr/local/Qt-5.3.0/lib/libqtharfbuzzng$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri"; sourceTree = ""; };
+ D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri"; sourceTree = ""; };
+ D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri"; sourceTree = ""; };
+ DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri"; sourceTree = ""; };
+ DBF506D10449BFABD45B82DA /* Qt5PrintSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PrintSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PrintSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ DCEFD9167C239650120B0145 /* qtga */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtga; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtga$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri"; sourceTree = ""; };
+ DFD7912080BC557230093752 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; };
+ E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri"; sourceTree = ""; };
+ E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri"; sourceTree = ""; };
+ E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri"; sourceTree = ""; };
+ E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri"; sourceTree = ""; };
+ E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri"; sourceTree = ""; };
+ E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PlatformSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PlatformSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri"; sourceTree = ""; };
+ E981470FA003A8DCE3C52E59 /* memain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memain.h; path = SourceFiles/_other/memain.h; sourceTree = ""; };
+ EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri"; sourceTree = ""; };
+ EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri"; sourceTree = ""; };
+ EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri"; sourceTree = ""; };
+ EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/mac.conf"; sourceTree = ""; };
+ F0681BC551FC8A2B132FC646 /* qjp2 */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qjp2; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqjp2$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri"; sourceTree = ""; };
+ F13124A218B58585B027D96A /* MetaEmoji.pro */ = {isa = PBXFileReference; lastKnownFileType = text; path = MetaEmoji.pro; sourceTree = ""; };
+ F2453BA07315EB9F34F1CD57 /* qtiff */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtiff; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtiff$(QT_LIBRARY_SUFFIX).a"; sourceTree = ""; };
+ F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri"; sourceTree = ""; };
+ F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf"; sourceTree = ""; };
+ F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri"; sourceTree = ""; };
+ F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri"; sourceTree = ""; };
+ F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri"; sourceTree = ""; };
+ F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri"; sourceTree = ""; };
+ FCC237CA5AD60B9BA4447615 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; };
+ FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri"; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ D1C883685E82D5676953459A /* Link Binary With Libraries */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */,
+ 328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */,
+ 668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */,
+ F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */,
+ F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */,
+ 8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */,
+ E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */,
+ D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */,
+ F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */,
+ 8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */,
+ 1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */,
+ D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */,
+ BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */,
+ A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */,
+ 7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */,
+ 496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */,
+ 59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */,
+ FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */,
+ 7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */,
+ C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */,
+ A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */,
+ F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */,
+ 9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */,
+ 8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */,
+ B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */,
+ );
+ name = "Link Binary With Libraries";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 25B08E2869634E9BCBA333A2 /* Generated Sources */ = {
+ isa = PBXGroup;
+ children = (
+ D0B536A85E53302E4F66CE23 /* GeneratedFiles */,
+ );
+ name = "Generated Sources";
+ sourceTree = "";
+ };
+ 2EB56BE3C2D93CDAB0C52E67 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 73F2E45FDEB381A085D37A49 /* SourceFiles */,
+ A9341A7B02F69BC5802268AA /* metaemoji_plugin_import.cpp */,
+ );
+ name = Sources;
+ sourceTree = "";
+ };
+ 31562E815E3DF5B1A777D3EF /* _other */ = {
+ isa = PBXGroup;
+ children = (
+ 3AC2626B26B65AA88F06BFB5 /* memain.cpp */,
+ 1F47C130E1F45B4A5A91DB5E /* genemoji.cpp */,
+ E981470FA003A8DCE3C52E59 /* memain.h */,
+ 58308B26DE991A86E8589883 /* genemoji.h */,
+ );
+ name = _other;
+ sourceTree = "";
+ };
+ 73F2E45FDEB381A085D37A49 /* SourceFiles */ = {
+ isa = PBXGroup;
+ children = (
+ 31562E815E3DF5B1A777D3EF /* _other */,
+ );
+ name = SourceFiles;
+ sourceTree = "";
+ };
+ 74B182DB50CB5611B5C1C297 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ F13124A218B58585B027D96A /* MetaEmoji.pro */,
+ 6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */,
+ 669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */,
+ 0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */,
+ EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */,
+ 817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */,
+ 45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */,
+ A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */,
+ 8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */,
+ F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */,
+ D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */,
+ ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */,
+ 2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */,
+ BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */,
+ CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */,
+ 77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */,
+ 7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */,
+ 7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */,
+ 5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */,
+ 7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */,
+ 89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */,
+ F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */,
+ 7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */,
+ 69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */,
+ 360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */,
+ 4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */,
+ 23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */,
+ D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */,
+ FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */,
+ D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */,
+ A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */,
+ 33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */,
+ D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */,
+ E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */,
+ 28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */,
+ D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */,
+ 293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */,
+ 382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */,
+ 8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */,
+ B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */,
+ 5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */,
+ E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */,
+ E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */,
+ 5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */,
+ 8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */,
+ F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */,
+ E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */,
+ 6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */,
+ D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */,
+ B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */,
+ 6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */,
+ 4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */,
+ DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */,
+ ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */,
+ 5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */,
+ 16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */,
+ 8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */,
+ 82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */,
+ D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */,
+ B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */,
+ CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */,
+ C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */,
+ CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */,
+ A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */,
+ 85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */,
+ BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */,
+ BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */,
+ 311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */,
+ 7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */,
+ 075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */,
+ ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */,
+ 8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */,
+ DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */,
+ 8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */,
+ E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */,
+ B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */,
+ 8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */,
+ 87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */,
+ A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */,
+ 8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */,
+ AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */,
+ E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */,
+ 2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */,
+ F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */,
+ D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */,
+ 1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */,
+ F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */,
+ AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */,
+ EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */,
+ 111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */,
+ 3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */,
+ 2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */,
+ EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */,
+ C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */,
+ 45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */,
+ B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */,
+ F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */,
+ B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */,
+ EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */,
+ 3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */,
+ 946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */,
+ CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */,
+ 9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */,
+ B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */,
+ F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */,
+ CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */,
+ 247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */,
+ 87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */,
+ 24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */,
+ 060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */,
+ BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */,
+ B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */,
+ 74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */,
+ C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */,
+ AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */,
+ 8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */,
+ 892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */,
+ A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */,
+ 346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */,
+ B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */,
+ 63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */,
+ 85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */,
+ AB745978DF0F41D1801ABDA6 /* .qmake.stash */,
+ );
+ name = "Supporting Files";
+ sourceTree = "";
+ };
+ 801973D3334D0FCA849CF485 /* Debug */ = {
+ isa = PBXGroup;
+ children = (
+ 93E4BE1A02365B73BAF00B73 /* moc_genemoji.cpp */,
+ );
+ name = Debug;
+ sourceTree = "";
+ };
+ AF39DD055C3EF8226FBE929D /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */,
+ DFD7912080BC557230093752 /* ApplicationServices.framework */,
+ 9742F24EE18EA44D52824F1E /* CoreServices.framework */,
+ 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */,
+ FCC237CA5AD60B9BA4447615 /* Foundation.framework */,
+ D4B32C2222F82AC56BADEB21 /* OpenGL.framework */,
+ 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */,
+ D53D8E6A188E05078A114294 /* qcocoa */,
+ 9DFF62A901D70814B8A323D4 /* Carbon.framework */,
+ A1A67BEAA744704B29168D39 /* IOKit.framework */,
+ DBF506D10449BFABD45B82DA /* Qt5PrintSupport */,
+ E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */,
+ 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */,
+ D3D1BE0BEA3AEE0551AD39AC /* qdds */,
+ 31120EDB269DFF13E1D49847 /* qicns */,
+ 8F500B5166907B6D9A7C3E3D /* qico */,
+ F0681BC551FC8A2B132FC646 /* qjp2 */,
+ 83D37373949868693FB7816D /* qmng */,
+ DCEFD9167C239650120B0145 /* qtga */,
+ F2453BA07315EB9F34F1CD57 /* qtiff */,
+ 8CF51323544B886B8F4A2232 /* qwbmp */,
+ ADC6308023253CEA51F86E21 /* qwebp */,
+ 04391BE7A8B9D811E255100A /* Qt5Gui */,
+ D6193B79CECC9DD0142D1200 /* qtharfbuzzng */,
+ 5A80A1907B6CFFB524C1E57D /* Qt5Core */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ D0B536A85E53302E4F66CE23 /* GeneratedFiles */ = {
+ isa = PBXGroup;
+ children = (
+ 801973D3334D0FCA849CF485 /* Debug */,
+ );
+ name = GeneratedFiles;
+ sourceTree = "";
+ };
+ E8C543AB96796ECAA2E65C57 /* MetaEmoji */ = {
+ isa = PBXGroup;
+ children = (
+ 2EB56BE3C2D93CDAB0C52E67 /* Sources */,
+ 25B08E2869634E9BCBA333A2 /* Generated Sources */,
+ 74B182DB50CB5611B5C1C297 /* Supporting Files */,
+ AF39DD055C3EF8226FBE929D /* Frameworks */,
+ FE0A091FDBFB3E9C31B7A1BD /* Products */,
+ );
+ name = MetaEmoji;
+ sourceTree = "";
+ };
+ FE0A091FDBFB3E9C31B7A1BD /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ C3345709A0BD182590087379 /* MetaEmoji.app */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ E4122523B1AB28431125160A /* MetaEmoji */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaEmoji" */;
+ buildPhases = (
+ F7E50F631C51CD5B5DC0BC43 /* Compile Sources */,
+ D1C883685E82D5676953459A /* Link Binary With Libraries */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 8F9AEC020DB94B2A3918B1FE /* PBXTargetDependency */,
+ );
+ name = MetaEmoji;
+ productInstallPath = ../Mac/DebugEmoji/;
+ productName = MetaEmoji;
+ productReference = C3345709A0BD182590087379 /* MetaEmoji.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 6DB9C3763D02B1415CD9D565 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0510;
+ };
+ buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaEmoji" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ en,
+ );
+ mainGroup = E8C543AB96796ECAA2E65C57 /* MetaEmoji */;
+ productRefGroup = FE0A091FDBFB3E9C31B7A1BD /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ E4122523B1AB28431125160A /* MetaEmoji */,
+ D93715D85BD26B270C3CC80B /* Preprocess */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 7EF0942E79C014DCEC8976BC /* Qt Preprocessors */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ name = "Qt Preprocessors";
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "make -C . -f MetaEmoji.xcodeproj/qt_preprocess.mak";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ F7E50F631C51CD5B5DC0BC43 /* Compile Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 83425F7776C9E52C29BE0E6F /* memain.cpp in Compile Sources */,
+ C5357D951917482510CE3E54 /* genemoji.cpp in Compile Sources */,
+ 4B166C0FE4A3C31F5E3D05CE /* metaemoji_plugin_import.cpp in Compile Sources */,
+ C4F1177BDAACCF1E50ACCED9 /* moc_genemoji.cpp in Compile Sources */,
+ );
+ name = "Compile Sources";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 8F9AEC020DB94B2A3918B1FE /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = D93715D85BD26B270C3CC80B /* Preprocess */;
+ targetProxy = 0708466E1954218200B5AE3A /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 339EE1B2CC4FC24589A0EA95 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Emoji$(EFFECTIVE_PLATFORM_NAME)";
+ COPY_PHASE_STRIP = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1.0;
+ DYLIB_CURRENT_VERSION = 1.0.0;
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ ../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
+ ../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
+ ../../Libraries/QtStatic/qtbase/include,
+ "/usr/local/Qt-5.3.0/include",
+ "/usr/local/Qt-5.3.0/include/QtGui",
+ "/usr/local/Qt-5.3.0/include/QtCore",
+ GeneratedFiles/Debug,
+ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
+ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
+ "/usr/local/Qt-5.3.0/mkspecs/macx-clang",
+ );
+ INFOPLIST_FILE = Emoji.plist;
+ INSTALL_DIR = ../Mac/ReleaseEmoji/;
+ LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
+ LIBRARY_SEARCH_PATHS = (
+ /System/Library/Frameworks/,
+ "/usr/local/Qt-5.3.0/lib",
+ "/usr/local/Qt-5.3.0/plugins/platforms",
+ "/usr/local/Qt-5.3.0/plugins/imageformats",
+ );
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ OBJROOT = ./../Mac/ReleaseIntermediateEmoji/;
+ OTHER_CFLAGS = (
+ "-pipe",
+ "-g",
+ "-Wall",
+ "-W",
+ "-fPIE",
+ "-D_DEBUG",
+ "-DQT_GUI_LIB",
+ "-DQT_CORE_LIB",
+ );
+ OTHER_CPLUSPLUSFLAGS = (
+ "-pipe",
+ "-g",
+ "-std=c++11",
+ "-stdlib=libc++",
+ "-Wall",
+ "-W",
+ "-fPIE",
+ "-D_DEBUG",
+ "-DQT_GUI_LIB",
+ "-DQT_CORE_LIB",
+ );
+ OTHER_LDFLAGS = (
+ "-headerpad_max_install_names",
+ "-stdlib=libc++",
+ "-L/usr/local/Qt-5.3.0/lib",
+ "-L/usr/local/Qt-5.3.0/plugins/platforms",
+ "-lcups",
+ "-L/usr/local/Qt-5.3.0/plugins/imageformats",
+ "-lz",
+ "-lm",
+ );
+ PRODUCT_NAME = MetaEmoji;
+ QT_LIBRARY_SUFFIX = "";
+ SDKROOT = macosx;
+ SYMROOT = ./../Mac;
+ };
+ name = Release;
+ };
+ 3AA6C32AC930069E80220CF1 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Emoji$(EFFECTIVE_PLATFORM_NAME)";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DYLIB_COMPATIBILITY_VERSION = 1.0;
+ DYLIB_CURRENT_VERSION = 1.0.0;
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ ../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
+ ../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
+ ../../Libraries/QtStatic/qtbase/include,
+ "/usr/local/Qt-5.3.0/include",
+ "/usr/local/Qt-5.3.0/include/QtGui",
+ "/usr/local/Qt-5.3.0/include/QtCore",
+ GeneratedFiles/Debug,
+ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
+ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
+ "/usr/local/Qt-5.3.0/mkspecs/macx-clang",
+ );
+ INFOPLIST_FILE = Emoji.plist;
+ INSTALL_DIR = ../Mac/DebugEmoji/;
+ LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
+ LIBRARY_SEARCH_PATHS = (
+ /System/Library/Frameworks/,
+ "/usr/local/Qt-5.3.0/lib",
+ "/usr/local/Qt-5.3.0/plugins/platforms",
+ "/usr/local/Qt-5.3.0/plugins/imageformats",
+ );
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ OBJROOT = ./../Mac/DebugIntermediateEmoji/;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_CFLAGS = (
+ "-pipe",
+ "-g",
+ "-Wall",
+ "-W",
+ "-fPIE",
+ "-D_DEBUG",
+ "-DQT_GUI_LIB",
+ "-DQT_CORE_LIB",
+ );
+ OTHER_CPLUSPLUSFLAGS = (
+ "-pipe",
+ "-g",
+ "-std=c++11",
+ "-stdlib=libc++",
+ "-Wall",
+ "-W",
+ "-fPIE",
+ "-D_DEBUG",
+ "-DQT_GUI_LIB",
+ "-DQT_CORE_LIB",
+ );
+ OTHER_LDFLAGS = (
+ "-headerpad_max_install_names",
+ "-stdlib=libc++",
+ "-L/usr/local/Qt-5.3.0/lib",
+ "-L/usr/local/Qt-5.3.0/plugins/platforms",
+ "-lcups",
+ "-L/usr/local/Qt-5.3.0/plugins/imageformats",
+ "-lz",
+ "-lm",
+ );
+ PRODUCT_NAME = MetaEmoji;
+ QT_LIBRARY_SUFFIX = _debug;
+ SDKROOT = macosx;
+ SYMROOT = ./../Mac;
+ };
+ name = Debug;
+ };
+ 6666AA5E688052234F6758D8 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ PRODUCT_NAME = MetaEmoji;
+ QT_LIBRARY_SUFFIX = "";
+ SDKROOT = macosx;
+ };
+ name = Release;
+ };
+ 77418F46922677BB04ED38DD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ PRODUCT_NAME = MetaEmoji;
+ QT_LIBRARY_SUFFIX = _debug;
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaEmoji" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 77418F46922677BB04ED38DD /* Debug */,
+ 6666AA5E688052234F6758D8 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaEmoji" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 3AA6C32AC930069E80220CF1 /* Debug */,
+ 339EE1B2CC4FC24589A0EA95 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 6DB9C3763D02B1415CD9D565 /* Project object */;
+}
diff --git a/Telegram/MetaEmoji.xcodeproj/qt_makeqmake.mak b/Telegram/MetaEmoji.xcodeproj/qt_makeqmake.mak
new file mode 100644
index 000000000..d9877c992
--- /dev/null
+++ b/Telegram/MetaEmoji.xcodeproj/qt_makeqmake.mak
@@ -0,0 +1,345 @@
+#############################################################################
+# Makefile for building: ../Mac/DebugEmoji/MetaEmoji.app/Contents/MacOS/MetaEmoji
+# Generated by qmake (3.0) (Qt 5.3.0)
+# Project: MetaEmoji.pro
+# Template: app
+# Command: /usr/local/Qt-5.3.0/bin/qmake -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
+#############################################################################
+
+MAKEFILE = project.pbxproj
+
+QMAKE = /usr/local/Qt-5.3.0/bin/qmake
+MetaEmoji.xcodeproj/project.pbxproj: MetaEmoji.pro /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf /usr/local/Qt-5.3.0/mkspecs/features/spec_pre.prf \
+ /usr/local/Qt-5.3.0/mkspecs/qdevice.pri \
+ /usr/local/Qt-5.3.0/mkspecs/features/device_config.prf \
+ /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf \
+ /usr/local/Qt-5.3.0/mkspecs/common/unix.conf \
+ /usr/local/Qt-5.3.0/mkspecs/common/mac.conf \
+ /usr/local/Qt-5.3.0/mkspecs/common/macx.conf \
+ /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf \
+ /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf \
+ /usr/local/Qt-5.3.0/mkspecs/common/clang.conf \
+ /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf \
+ /usr/local/Qt-5.3.0/mkspecs/qconfig.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri \
+ /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri \
+ /usr/local/Qt-5.3.0/mkspecs/features/qt_functions.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/qt_config.prf \
+ /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf \
+ /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf \
+ /usr/local/Qt-5.3.0/mkspecs/features/spec_post.prf \
+ .qmake.stash \
+ /usr/local/Qt-5.3.0/mkspecs/features/exclusive_builds.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/default_pre.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/mac/default_pre.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/resolve_config.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/default_post.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/mac/sdk.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/mac/default_post.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/c++11.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/mac/objective_c.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/warn_on.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/qt.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/resources.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/moc.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/unix/opengl.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/unix/thread.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/mac/rez.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/testcase_targets.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/exceptions.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/yacc.prf \
+ /usr/local/Qt-5.3.0/mkspecs/features/lex.prf \
+ MetaEmoji.pro \
+ /usr/local/Qt-5.3.0/lib/libQt5Gui_debug.prl \
+ /usr/local/Qt-5.3.0/lib/libQt5Core_debug.prl \
+ /usr/local/Qt-5.3.0/lib/libqtharfbuzzng_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/platforms/libqcocoa_debug.prl \
+ /usr/local/Qt-5.3.0/lib/libQt5PrintSupport_debug.prl \
+ /usr/local/Qt-5.3.0/lib/libQt5Widgets_debug.prl \
+ /usr/local/Qt-5.3.0/lib/libQt5PlatformSupport_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqdds_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqicns_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqico_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqjp2_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqmng_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqtga_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqtiff_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp_debug.prl \
+ /usr/local/Qt-5.3.0/plugins/imageformats/libqwebp_debug.prl
+ $(QMAKE) -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
+/usr/local/Qt-5.3.0/mkspecs/features/spec_pre.prf:
+/usr/local/Qt-5.3.0/mkspecs/qdevice.pri:
+/usr/local/Qt-5.3.0/mkspecs/features/device_config.prf:
+/usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf:
+/usr/local/Qt-5.3.0/mkspecs/common/unix.conf:
+/usr/local/Qt-5.3.0/mkspecs/common/mac.conf:
+/usr/local/Qt-5.3.0/mkspecs/common/macx.conf:
+/usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf:
+/usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf:
+/usr/local/Qt-5.3.0/mkspecs/common/clang.conf:
+/usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf:
+/usr/local/Qt-5.3.0/mkspecs/qconfig.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri:
+/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri:
+/usr/local/Qt-5.3.0/mkspecs/features/qt_functions.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/qt_config.prf:
+/usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf:
+/usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf:
+/usr/local/Qt-5.3.0/mkspecs/features/spec_post.prf:
+.qmake.stash:
+/usr/local/Qt-5.3.0/mkspecs/features/exclusive_builds.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/default_pre.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/mac/default_pre.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/resolve_config.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/default_post.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/mac/sdk.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/mac/default_post.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/c++11.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/mac/objective_c.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/warn_on.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/qt.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/resources.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/moc.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/unix/opengl.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/unix/thread.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/mac/rez.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/testcase_targets.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/exceptions.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/yacc.prf:
+/usr/local/Qt-5.3.0/mkspecs/features/lex.prf:
+MetaEmoji.pro:
+/usr/local/Qt-5.3.0/lib/libQt5Gui_debug.prl:
+/usr/local/Qt-5.3.0/lib/libQt5Core_debug.prl:
+/usr/local/Qt-5.3.0/lib/libqtharfbuzzng_debug.prl:
+/usr/local/Qt-5.3.0/plugins/platforms/libqcocoa_debug.prl:
+/usr/local/Qt-5.3.0/lib/libQt5PrintSupport_debug.prl:
+/usr/local/Qt-5.3.0/lib/libQt5Widgets_debug.prl:
+/usr/local/Qt-5.3.0/lib/libQt5PlatformSupport_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqdds_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqicns_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqico_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqjp2_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqmng_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqtga_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqtiff_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp_debug.prl:
+/usr/local/Qt-5.3.0/plugins/imageformats/libqwebp_debug.prl:
+qmake: FORCE
+ @$(QMAKE) -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
+
+qmake_all: FORCE
+
diff --git a/Telegram/MetaEmoji.xcodeproj/qt_preprocess.mak b/Telegram/MetaEmoji.xcodeproj/qt_preprocess.mak
new file mode 100644
index 000000000..7ac849028
--- /dev/null
+++ b/Telegram/MetaEmoji.xcodeproj/qt_preprocess.mak
@@ -0,0 +1,70 @@
+#############################################################################
+# Makefile for building: ../Mac/DebugEmoji/MetaEmoji.app/Contents/MacOS/MetaEmoji
+# Generated by qmake (3.0) (Qt 5.3.0)
+# Project: MetaEmoji.pro
+# Template: app
+# Command: /usr/local/Qt-5.3.0/bin/qmake -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
+#############################################################################
+
+MAKEFILE = project.pbxproj
+
+MOC = /usr/local/Qt-5.3.0/bin/moc
+UIC =
+LEX = flex
+LEXFLAGS =
+YACC = yacc
+YACCFLAGS = -d
+DEFINES = -D_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
+INCPATH = -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui -I../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore -I../../Libraries/QtStatic/qtbase/include -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -IGeneratedFiles/Debug -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers
+DEL_FILE = rm -f
+MOVE = mv -f
+
+IMAGES =
+PARSERS =
+preprocess: $(PARSERS) compilers
+clean preprocess_clean: parser_clean compiler_clean
+
+parser_clean:
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+check: first
+
+compilers: GeneratedFiles/Debug/moc_genemoji.cpp
+compiler_objective_c_make_all:
+compiler_objective_c_clean:
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_moc_header_make_all: GeneratedFiles/Debug/moc_genemoji.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) GeneratedFiles/Debug/moc_genemoji.cpp
+GeneratedFiles/Debug/moc_genemoji.cpp: ../../Libraries/QtStatic/qtbase/include/QtCore/QMap \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QVector \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QFile \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QFileInfo \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QBuffer \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QDir \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QRegularExpression \
+ ../../Libraries/QtStatic/qtbase/include/QtGui/QImage \
+ ../../Libraries/QtStatic/qtbase/include/QtGui/QPixmap \
+ ../../Libraries/QtStatic/qtbase/include/QtGui/QPainter \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QTextStream \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QString \
+ ../../Libraries/QtStatic/qtbase/include/QtCore/QCoreApplication \
+ ../../Libraries/QtStatic/qtbase/include/QtGui/QGuiApplication \
+ SourceFiles/_other/genemoji.h
+ /usr/local/Qt-5.3.0/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I/usr/local/Qt-5.3.0/include/QtGui/5.3.0/QtGui -I/usr/local/Qt-5.3.0/include/QtCore/5.3.0/QtCore -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/backward -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/5.1/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include SourceFiles/_other/genemoji.h -o GeneratedFiles/Debug/moc_genemoji.cpp
+
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_rez_source_make_all:
+compiler_rez_source_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean
+
diff --git a/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm b/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm
new file mode 100644
index 000000000..11ad1d63a
--- /dev/null
+++ b/Telegram/_qt_5_3_0_patch/qtbase/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -0,0 +1,1778 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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 Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qcocoawindow.h"
+#include "qcocoaintegration.h"
+#include "qnswindowdelegate.h"
+#include "qcocoaautoreleasepool.h"
+#include "qcocoaeventdispatcher.h"
+#include "qcocoaglcontext.h"
+#include "qcocoahelpers.h"
+#include "qcocoanativeinterface.h"
+#include "qnsview.h"
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+
+#include
+
+enum {
+ defaultWindowWidth = 160,
+ defaultWindowHeight = 160
+};
+
+static bool isMouseEvent(NSEvent *ev)
+{
+ switch ([ev type]) {
+ case NSLeftMouseDown:
+ case NSLeftMouseUp:
+ case NSRightMouseDown:
+ case NSRightMouseUp:
+ case NSMouseMoved:
+ case NSLeftMouseDragged:
+ case NSRightMouseDragged:
+ return true;
+ default:
+ return false;
+ }
+}
+
+@interface NSWindow (CocoaWindowCategory)
+- (NSRect) legacyConvertRectFromScreen:(NSRect) rect;
+@end
+
+@implementation NSWindow (CocoaWindowCategory)
+- (NSRect) legacyConvertRectFromScreen:(NSRect) rect
+{
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
+ return [self convertRectFromScreen: rect];
+ }
+#endif
+ NSRect r = rect;
+ r.origin = [self convertScreenToBase:rect.origin];
+ return r;
+}
+@end
+
+
+@implementation QNSWindowHelper
+
+@synthesize window = _window;
+@synthesize platformWindow = _platformWindow;
+@synthesize grabbingMouse = _grabbingMouse;
+@synthesize releaseOnMouseUp = _releaseOnMouseUp;
+
+- (id)initWithNSWindow:(QCocoaNSWindow *)window platformWindow:(QCocoaWindow *)platformWindow
+{
+ self = [super init];
+ if (self) {
+ _window = window;
+ _platformWindow = platformWindow;
+
+ _window.delegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:_platformWindow];
+
+ // Prevent Cocoa from releasing the window on close. Qt
+ // handles the close event asynchronously and we want to
+ // make sure that m_nsWindow stays valid until the
+ // QCocoaWindow is deleted by Qt.
+ [_window setReleasedWhenClosed:NO];
+ }
+
+ return self;
+}
+
+- (void)handleWindowEvent:(NSEvent *)theEvent
+{
+ QCocoaWindow *pw = self.platformWindow;
+ if (pw && pw->m_forwardWindow) {
+ if (theEvent.type == NSLeftMouseUp || theEvent.type == NSLeftMouseDragged) {
+ QNSView *forwardView = pw->m_qtView;
+ if (theEvent.type == NSLeftMouseUp) {
+ [forwardView mouseUp:theEvent];
+ pw->m_forwardWindow = 0;
+ } else {
+ [forwardView mouseDragged:theEvent];
+ }
+ }
+
+ if (!pw->m_isNSWindowChild && theEvent.type == NSLeftMouseDown) {
+ pw->m_forwardWindow = 0;
+ }
+ }
+
+ if (theEvent.type == NSLeftMouseDown) {
+ self.grabbingMouse = YES;
+ } else if (theEvent.type == NSLeftMouseUp) {
+ self.grabbingMouse = NO;
+ if (self.releaseOnMouseUp) {
+ [self detachFromPlatformWindow];
+ [self.window release];
+ return;
+ }
+ }
+
+ // The call to -[NSWindow sendEvent] may result in the window being deleted
+ // (e.g., when closing the window by pressing the title bar close button).
+ [self retain];
+ [self.window superSendEvent:theEvent];
+ bool windowStillAlive = self.window != nil; // We need to read before releasing
+ [self release];
+ if (!windowStillAlive)
+ return;
+
+ if (!self.window.delegate)
+ return; // Already detached, pending NSAppKitDefined event
+
+ if (pw && pw->frameStrutEventsEnabled() && pw->m_synchedWindowState != Qt::WindowMinimized && isMouseEvent(theEvent)) {
+ NSPoint loc = [theEvent locationInWindow];
+ NSRect windowFrame = [self.window legacyConvertRectFromScreen:[self.window frame]];
+ NSRect contentFrame = [[self.window contentView] frame];
+ if (NSMouseInRect(loc, windowFrame, NO) &&
+ !NSMouseInRect(loc, contentFrame, NO))
+ {
+ QNSView *contentView = (QNSView *)pw->contentView();
+ [contentView handleFrameStrutMouseEvent: theEvent];
+ }
+ }
+}
+
+- (void)detachFromPlatformWindow
+{
+ [self.window.delegate release];
+ self.window.delegate = nil;
+}
+
+- (void)clearWindow
+{
+ _window = nil;
+}
+
+- (void)dealloc
+{
+ _window = nil;
+ _platformWindow = 0;
+ [super dealloc];
+}
+
+@end
+
+@implementation QNSWindow
+
+@synthesize helper = _helper;
+
+- (id)initWithContentRect:(NSRect)contentRect
+ styleMask:(NSUInteger)windowStyle
+ qPlatformWindow:(QCocoaWindow *)qpw
+{
+ self = [super initWithContentRect:contentRect
+ styleMask:windowStyle
+ backing:NSBackingStoreBuffered
+ defer:NO]; // Deferring window creation breaks OpenGL (the GL context is
+ // set up before the window is shown and needs a proper window)
+
+ if (self) {
+ _helper = [[QNSWindowHelper alloc] initWithNSWindow:self platformWindow:qpw];
+ }
+ return self;
+}
+
+- (BOOL)canBecomeKeyWindow
+{
+ // Prevent child NSWindows from becoming the key window in
+ // order keep the active apperance of the top-level window.
+ QCocoaWindow *pw = self.helper.platformWindow;
+ if (!pw || pw->m_isNSWindowChild)
+ return NO;
+
+ // The default implementation returns NO for title-bar less windows,
+ // override and return yes here to make sure popup windows such as
+ // the combobox popup can become the key window.
+ return YES;
+}
+
+- (BOOL)canBecomeMainWindow
+{
+ BOOL canBecomeMain = YES; // By default, windows can become the main window
+
+ // Windows with a transient parent (such as combobox popup windows)
+ // cannot become the main window:
+ QCocoaWindow *pw = self.helper.platformWindow;
+ if (!pw || pw->m_isNSWindowChild || pw->window()->transientParent())
+ canBecomeMain = NO;
+
+ return canBecomeMain;
+}
+
+- (void) sendEvent: (NSEvent*) theEvent
+{
+ [self.helper handleWindowEvent:theEvent];
+}
+
+- (void)superSendEvent:(NSEvent *)theEvent
+{
+ [super sendEvent:theEvent];
+}
+
+- (void)closeAndRelease
+{
+ [self close];
+
+ QCocoaIntegration::instance()->setWindow(self, 0);
+
+ if (self.helper.grabbingMouse) {
+ self.helper.releaseOnMouseUp = YES;
+ } else {
+ [self.helper detachFromPlatformWindow];
+ [self release];
+ }
+}
+
+- (void)dealloc
+{
+ [_helper clearWindow];
+ [_helper release];
+ _helper = nil;
+ [super dealloc];
+}
+
+@end
+
+@implementation QNSPanel
+
+@synthesize helper = _helper;
+
+- (id)initWithContentRect:(NSRect)contentRect
+ styleMask:(NSUInteger)windowStyle
+ qPlatformWindow:(QCocoaWindow *)qpw
+{
+ self = [super initWithContentRect:contentRect
+ styleMask:windowStyle
+ backing:NSBackingStoreBuffered
+ defer:NO]; // Deferring window creation breaks OpenGL (the GL context is
+ // set up before the window is shown and needs a proper window)
+
+ if (self) {
+ _helper = [[QNSWindowHelper alloc] initWithNSWindow:self platformWindow:qpw];
+ }
+ return self;
+}
+
+- (BOOL)canBecomeKeyWindow
+{
+ QCocoaWindow *pw = self.helper.platformWindow;
+ if (!pw)
+ return NO;
+
+ // Only tool or dialog windows should become key:
+ Qt::WindowType type = pw->window()->type();
+ if (type == Qt::Tool || type == Qt::Dialog)
+ return YES;
+
+ return NO;
+}
+
+- (void) sendEvent: (NSEvent*) theEvent
+{
+ [self.helper handleWindowEvent:theEvent];
+}
+
+- (void)superSendEvent:(NSEvent *)theEvent
+{
+ [super sendEvent:theEvent];
+}
+
+- (void)closeAndRelease
+{
+ [self.helper detachFromPlatformWindow];
+ [self close];
+ QCocoaIntegration::instance()->setWindow(self, 0);
+ [self release];
+}
+
+- (void)dealloc
+{
+ [_helper clearWindow];
+ [_helper release];
+ _helper = nil;
+ [super dealloc];
+}
+
+@end
+
+const int QCocoaWindow::NoAlertRequest = -1;
+
+QCocoaWindow::QCocoaWindow(QWindow *tlw)
+ : QPlatformWindow(tlw)
+ , m_contentView(nil)
+ , m_qtView(nil)
+ , m_nsWindow(0)
+ , m_forwardWindow(0)
+ , m_contentViewIsEmbedded(false)
+ , m_contentViewIsToBeEmbedded(false)
+ , m_parentCocoaWindow(0)
+ , m_isNSWindowChild(false)
+ , m_effectivelyMaximized(false)
+ , m_synchedWindowState(Qt::WindowActive)
+ , m_windowModality(Qt::NonModal)
+ , m_windowUnderMouse(false)
+ , m_inConstructor(true)
+ , m_glContext(0)
+ , m_menubar(0)
+ , m_windowCursor(0)
+ , m_hasModalSession(false)
+ , m_frameStrutEventsEnabled(false)
+ , m_geometryUpdateExposeAllowed(false)
+ , m_isExposed(false)
+ , m_registerTouchCount(0)
+ , m_resizableTransientParent(false)
+ , m_hiddenByClipping(false)
+ , m_hiddenByAncestor(false)
+ , m_alertRequest(NoAlertRequest)
+ , monitor(nil)
+ , m_drawContentBorderGradient(false)
+ , m_topContentBorderThickness(0)
+ , m_bottomContentBorderThickness(0)
+ , m_normalGeometry(QRect(0,0,-1,-1))
+{
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug() << "QCocoaWindow::QCocoaWindow" << this;
+#endif
+ QCocoaAutoReleasePool pool;
+
+ if (tlw->type() == Qt::ForeignWindow) {
+ NSView *foreignView = (NSView *)WId(tlw->property("_q_foreignWinId").value());
+ setContentView(foreignView);
+ } else {
+ m_qtView = [[QNSView alloc] initWithQWindow:tlw platformWindow:this];
+ m_contentView = m_qtView;
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ // Enable high-dpi OpenGL for retina displays. Enabling has the side
+ // effect that Cocoa will start calling glViewport(0, 0, width, height),
+ // overriding any glViewport calls in application code. This is usually not a
+ // problem, except if the appilcation wants to have a "custom" viewport.
+ // (like the hellogl example)
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7
+ && tlw->supportsOpenGL()) {
+ BOOL enable = qt_mac_resolveOption(YES, tlw, "_q_mac_wantsBestResolutionOpenGLSurface",
+ "QT_MAC_WANTS_BEST_RESOLUTION_OPENGL_SURFACE");
+ [m_contentView setWantsBestResolutionOpenGLSurface:enable];
+ }
+#endif
+ BOOL enable = qt_mac_resolveOption(NO, tlw, "_q_mac_wantsLayer",
+ "QT_MAC_WANTS_LAYER");
+ [m_contentView setWantsLayer:enable];
+ }
+ setGeometry(tlw->geometry());
+ recreateWindow(parent());
+ tlw->setGeometry(geometry());
+ if (tlw->isTopLevel())
+ setWindowIcon(tlw->icon());
+ m_inConstructor = false;
+}
+
+QCocoaWindow::~QCocoaWindow()
+{
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug() << "QCocoaWindow::~QCocoaWindow" << this;
+#endif
+
+ if (QCocoaIntegration *ci = QCocoaIntegration::instance())
+ ci->setWindow(m_nsWindow, 0);
+
+ QCocoaAutoReleasePool pool;
+ [m_nsWindow setContentView:nil];
+ [m_nsWindow.helper detachFromPlatformWindow];
+ if (m_isNSWindowChild) {
+ if (m_parentCocoaWindow)
+ m_parentCocoaWindow->removeChildWindow(this);
+ } else if (parent()) {
+ [m_contentView removeFromSuperview];
+ } else if (m_qtView) {
+ [[NSNotificationCenter defaultCenter] removeObserver:m_qtView
+ name:nil object:m_nsWindow];
+ }
+
+ foreach (QCocoaWindow *child, m_childWindows) {
+ [m_nsWindow removeChildWindow:child->m_nsWindow];
+ child->m_parentCocoaWindow = 0;
+ }
+
+ [m_contentView release];
+ [m_nsWindow release];
+ [m_windowCursor release];
+}
+
+QSurfaceFormat QCocoaWindow::format() const
+{
+ return window()->requestedFormat();
+}
+
+void QCocoaWindow::setGeometry(const QRect &rectIn)
+{
+ QRect rect = rectIn;
+ // This means it is a call from QWindow::setFramePosition() and
+ // the coordinates include the frame (size is still the contents rectangle).
+ if (qt_window_private(const_cast(window()))->positionPolicy
+ == QWindowPrivate::WindowFrameInclusive) {
+ const QMargins margins = frameMargins();
+ rect.moveTopLeft(rect.topLeft() + QPoint(margins.left(), margins.top()));
+ }
+ if (geometry() == rect)
+ return;
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug() << "QCocoaWindow::setGeometry" << this << rect;
+#endif
+ setCocoaGeometry(rect);
+}
+
+QRect QCocoaWindow::geometry() const
+{
+ // QWindows that are embedded in a NSView hiearchy may be considered
+ // top-level from Qt's point of view but are not from Cocoa's point
+ // of view. Embedded QWindows get global (screen) geometry.
+ if (m_contentViewIsEmbedded) {
+ NSPoint windowPoint = [m_contentView convertPoint:NSMakePoint(0, 0) toView:nil];
+ NSPoint screenPoint = [[m_contentView window] convertBaseToScreen:windowPoint]; // ### use convertRectToScreen after 10.6 removal
+ QPoint position = qt_mac_flipPoint(screenPoint).toPoint();
+ QSize size = qt_mac_toQRect([m_contentView bounds]).size();
+ return QRect(position, size);
+ }
+
+ return QPlatformWindow::geometry();
+}
+
+void QCocoaWindow::setCocoaGeometry(const QRect &rect)
+{
+ QCocoaAutoReleasePool pool;
+
+ if (m_contentViewIsEmbedded) {
+ QPlatformWindow::setGeometry(rect);
+ return;
+ }
+
+ if (m_isNSWindowChild) {
+ QPlatformWindow::setGeometry(rect);
+ NSWindow *parentNSWindow = m_parentCocoaWindow->m_nsWindow;
+ NSRect parentWindowFrame = [parentNSWindow contentRectForFrameRect:parentNSWindow.frame];
+ clipWindow(parentWindowFrame);
+
+ // call this here: updateGeometry in qnsview.mm is a no-op for this case
+ QWindowSystemInterface::handleGeometryChange(window(), rect);
+ QWindowSystemInterface::handleExposeEvent(window(), rect);
+ } else if (m_nsWindow) {
+ NSRect bounds = qt_mac_flipRect(rect);
+ [m_nsWindow setFrame:[m_nsWindow frameRectForContentRect:bounds] display:YES animate:NO];
+ } else {
+ [m_contentView setFrame : NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height())];
+ }
+
+ if (!m_qtView)
+ QPlatformWindow::setGeometry(rect);
+
+ // will call QPlatformWindow::setGeometry(rect) during resize confirmation (see qnsview.mm)
+}
+
+void QCocoaWindow::clipChildWindows()
+{
+ foreach (QCocoaWindow *childWindow, m_childWindows) {
+ childWindow->clipWindow(m_nsWindow.frame);
+ }
+}
+
+void QCocoaWindow::clipWindow(const NSRect &clipRect)
+{
+ if (!m_isNSWindowChild)
+ return;
+
+ NSRect clippedWindowRect = NSZeroRect;
+ if (!NSIsEmptyRect(clipRect)) {
+ NSRect windowFrame = qt_mac_flipRect(QRect(window()->mapToGlobal(QPoint(0, 0)), geometry().size()));
+ clippedWindowRect = NSIntersectionRect(windowFrame, clipRect);
+ // Clipping top/left offsets the content. Move it back.
+ NSPoint contentViewOffset = NSMakePoint(qMax(CGFloat(0), NSMinX(clippedWindowRect) - NSMinX(windowFrame)),
+ qMax(CGFloat(0), NSMaxY(windowFrame) - NSMaxY(clippedWindowRect)));
+ [m_contentView setBoundsOrigin:contentViewOffset];
+ }
+
+ if (NSIsEmptyRect(clippedWindowRect)) {
+ if (!m_hiddenByClipping) {
+ // We dont call hide() here as we will recurse further down
+ [m_nsWindow orderOut:nil];
+ m_hiddenByClipping = true;
+ }
+ } else {
+ [m_nsWindow setFrame:clippedWindowRect display:YES animate:NO];
+ if (m_hiddenByClipping) {
+ m_hiddenByClipping = false;
+ if (!m_hiddenByAncestor) {
+ [m_nsWindow orderFront:nil];
+ m_parentCocoaWindow->reinsertChildWindow(this);
+ }
+ }
+ }
+
+ // recurse
+ foreach (QCocoaWindow *childWindow, m_childWindows) {
+ childWindow->clipWindow(clippedWindowRect);
+ }
+}
+
+void QCocoaWindow::hide(bool becauseOfAncestor)
+{
+ bool visible = [m_nsWindow isVisible];
+
+ if (!m_hiddenByAncestor && !visible) // Already explicitly hidden
+ return;
+ if (m_hiddenByAncestor && becauseOfAncestor) // Trying to hide some child again
+ return;
+
+ m_hiddenByAncestor = becauseOfAncestor;
+
+ if (!visible) // Could have been clipped before
+ return;
+
+ foreach (QCocoaWindow *childWindow, m_childWindows)
+ childWindow->hide(true);
+
+ [m_nsWindow orderOut:nil];
+}
+
+void QCocoaWindow::show(bool becauseOfAncestor)
+{
+ if ([m_nsWindow isVisible])
+ return;
+
+ if (m_parentCocoaWindow && ![m_parentCocoaWindow->m_nsWindow isVisible]) {
+ m_hiddenByAncestor = true; // Parent still hidden, don't show now
+ } else if ((becauseOfAncestor == m_hiddenByAncestor) // Was NEITHER explicitly hidden
+ && !m_hiddenByClipping) { // ... NOR clipped
+ if (m_isNSWindowChild) {
+ m_hiddenByAncestor = false;
+ setCocoaGeometry(window()->geometry());
+ }
+ if (!m_hiddenByClipping) { // setCocoaGeometry() can change the clipping status
+ [m_nsWindow orderFront:nil];
+ if (m_isNSWindowChild)
+ m_parentCocoaWindow->reinsertChildWindow(this);
+ foreach (QCocoaWindow *childWindow, m_childWindows)
+ childWindow->show(true);
+ }
+ }
+}
+
+void QCocoaWindow::setVisible(bool visible)
+{
+ if (m_isNSWindowChild && m_hiddenByClipping)
+ return;
+
+ QCocoaAutoReleasePool pool;
+ QCocoaWindow *parentCocoaWindow = 0;
+ if (window()->transientParent())
+ parentCocoaWindow = static_cast(window()->transientParent()->handle());
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug() << "QCocoaWindow::setVisible" << window() << visible;
+#endif
+ if (visible) {
+ // We need to recreate if the modality has changed as the style mask will need updating
+ if (m_windowModality != window()->modality())
+ recreateWindow(parent());
+ if (parentCocoaWindow) {
+ // The parent window might have moved while this window was hidden,
+ // update the window geometry if there is a parent.
+ setGeometry(window()->geometry());
+
+ // Register popup windows so that the parent window can close them when needed.
+ if (window()->type() == Qt::Popup || window()->type() == Qt::ToolTip) {
+ // qDebug() << "transientParent and popup" << window()->type() << Qt::Popup << (window()->type() & Qt::Popup);
+ parentCocoaWindow->m_activePopupWindow = window();
+ }
+
+ if (window()->type() == Qt::Popup) {
+ // QTBUG-30266: a window should not be resizable while a transient popup is open
+ // Since this isn't a native popup, the window manager doesn't close the popup when you click outside
+ NSUInteger parentStyleMask = [parentCocoaWindow->m_nsWindow styleMask];
+ if ((m_resizableTransientParent = (parentStyleMask & NSResizableWindowMask))
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ && QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7
+ && !([parentCocoaWindow->m_nsWindow styleMask] & NSFullScreenWindowMask)
+#endif
+ )
+ [parentCocoaWindow->m_nsWindow setStyleMask:parentStyleMask & ~NSResizableWindowMask];
+ }
+
+ }
+
+ // This call is here to handle initial window show correctly:
+ // - top-level windows need to have backing store content ready when the
+ // window is shown, sendin the expose event here makes that more likely.
+ // - QNSViews for child windows are initialy not hidden and won't get the
+ // viewDidUnhide message.
+ exposeWindow();
+
+ if (m_nsWindow) {
+ QWindowSystemInterface::flushWindowSystemEvents();
+
+ // setWindowState might have been called while the window was hidden and
+ // will not change the NSWindow state in that case. Sync up here:
+ syncWindowState(window()->windowState());
+
+ if (window()->windowState() != Qt::WindowMinimized) {
+ if ((window()->modality() == Qt::WindowModal
+ || window()->type() == Qt::Sheet)
+ && parentCocoaWindow) {
+ // show the window as a sheet
+ [NSApp beginSheet:m_nsWindow modalForWindow:parentCocoaWindow->m_nsWindow modalDelegate:nil didEndSelector:nil contextInfo:nil];
+ } else if (window()->modality() != Qt::NonModal) {
+ // show the window as application modal
+ QCocoaEventDispatcher *cocoaEventDispatcher = qobject_cast(QGuiApplication::instance()->eventDispatcher());
+ Q_ASSERT(cocoaEventDispatcher != 0);
+ QCocoaEventDispatcherPrivate *cocoaEventDispatcherPrivate = static_cast(QObjectPrivate::get(cocoaEventDispatcher));
+ cocoaEventDispatcherPrivate->beginModalSession(window());
+ m_hasModalSession = true;
+ } else if ([m_nsWindow canBecomeKeyWindow]) {
+ [m_nsWindow makeKeyAndOrderFront:nil];
+ foreach (QCocoaWindow *childWindow, m_childWindows)
+ childWindow->show(true);
+ } else {
+ show();
+ }
+
+ // We want the events to properly reach the popup, dialog, and tool
+ if ((window()->type() == Qt::Popup || window()->type() == Qt::Dialog || window()->type() == Qt::Tool)
+ && [m_nsWindow isKindOfClass:[NSPanel class]]) {
+ [(NSPanel *)m_nsWindow setWorksWhenModal:YES];
+ if (!(parentCocoaWindow && window()->transientParent()->isActive()) && window()->type() == Qt::Popup) {
+ monitor = [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDownMask|NSRightMouseDownMask|NSOtherMouseDown handler:^(NSEvent *) {
+ QWindowSystemInterface::handleMouseEvent(window(), QPointF(-1, -1), QPointF(window()->framePosition() - QPointF(1, 1)), Qt::LeftButton);
+ }];
+ }
+ }
+ }
+ }
+ // In some cases, e.g. QDockWidget, the content view is hidden before moving to its own
+ // Cocoa window, and then shown again. Therefore, we test for the view being hidden even
+ // if it's attached to an NSWindow.
+ if ([m_contentView isHidden])
+ [m_contentView setHidden:NO];
+ } else {
+ // qDebug() << "close" << this;
+ if (m_glContext)
+ m_glContext->windowWasHidden();
+ QCocoaEventDispatcher *cocoaEventDispatcher = qobject_cast(QGuiApplication::instance()->eventDispatcher());
+ QCocoaEventDispatcherPrivate *cocoaEventDispatcherPrivate = 0;
+ if (cocoaEventDispatcher)
+ cocoaEventDispatcherPrivate = static_cast(QObjectPrivate::get(cocoaEventDispatcher));
+ if (m_nsWindow) {
+ if (m_hasModalSession) {
+ if (cocoaEventDispatcherPrivate)
+ cocoaEventDispatcherPrivate->endModalSession(window());
+ m_hasModalSession = false;
+ } else {
+ if ([m_nsWindow isSheet])
+ [NSApp endSheet:m_nsWindow];
+ }
+
+ hide();
+ if (m_nsWindow == [NSApp keyWindow]
+ && !(cocoaEventDispatcherPrivate && cocoaEventDispatcherPrivate->currentModalSession())) {
+ // Probably because we call runModalSession: outside [NSApp run] in QCocoaEventDispatcher
+ // (e.g., when show()-ing a modal QDialog instead of exec()-ing it), it can happen that
+ // the current NSWindow is still key after being ordered out. Then, after checking we
+ // don't have any other modal session left, it's safe to make the main window key again.
+ NSWindow *mainWindow = [NSApp mainWindow];
+ if (mainWindow && [mainWindow canBecomeKeyWindow])
+ [mainWindow makeKeyWindow];
+ }
+ } else {
+ [m_contentView setHidden:YES];
+ }
+ if (monitor && window()->type() == Qt::Popup) {
+ [NSEvent removeMonitor:monitor];
+ monitor = nil;
+ }
+ if (parentCocoaWindow && window()->type() == Qt::Popup) {
+ parentCocoaWindow->m_activePopupWindow = 0;
+ if (m_resizableTransientParent
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ && QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7
+ && !([parentCocoaWindow->m_nsWindow styleMask] & NSFullScreenWindowMask)
+#endif
+ )
+ // QTBUG-30266: a window should not be resizable while a transient popup is open
+ [parentCocoaWindow->m_nsWindow setStyleMask:[parentCocoaWindow->m_nsWindow styleMask] | NSResizableWindowMask];
+ }
+ }
+}
+
+NSInteger QCocoaWindow::windowLevel(Qt::WindowFlags flags)
+{
+ Qt::WindowType type = static_cast(int(flags & Qt::WindowType_Mask));
+
+ NSInteger windowLevel = NSNormalWindowLevel;
+
+ if (type == Qt::Tool)
+ windowLevel = NSFloatingWindowLevel;
+ else if ((type & Qt::Popup) == Qt::Popup)
+ windowLevel = NSPopUpMenuWindowLevel;
+
+ // StayOnTop window should appear above Tool windows.
+ if (flags & Qt::WindowStaysOnTopHint)
+ windowLevel = NSModalPanelWindowLevel;
+ // Tooltips should appear above StayOnTop windows.
+ if (type == Qt::ToolTip)
+ windowLevel = NSScreenSaverWindowLevel;
+
+ // Any "special" window should be in at least the same level as its parent.
+ if (type != Qt::Window) {
+ const QWindow * const transientParent = window()->transientParent();
+ const QCocoaWindow * const transientParentWindow = transientParent ? static_cast(transientParent->handle()) : 0;
+ if (transientParentWindow)
+ windowLevel = qMax([transientParentWindow->m_nsWindow level], windowLevel);
+ }
+
+ return windowLevel;
+}
+
+NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
+{
+ Qt::WindowType type = static_cast(int(flags & Qt::WindowType_Mask));
+ NSInteger styleMask = NSBorderlessWindowMask;
+ if (flags & Qt::FramelessWindowHint)
+ return styleMask;
+ if ((type & Qt::Popup) == Qt::Popup) {
+ if (!windowIsPopupType(type))
+ styleMask = (NSUtilityWindowMask | NSResizableWindowMask | NSClosableWindowMask |
+ NSMiniaturizableWindowMask | NSTitledWindowMask);
+ } else {
+ if (type == Qt::Window && !(flags & Qt::CustomizeWindowHint)) {
+ styleMask = (NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask);
+ } else if (type == Qt::Dialog) {
+ if (flags & Qt::CustomizeWindowHint) {
+ if (flags & Qt::WindowMaximizeButtonHint)
+ styleMask = NSResizableWindowMask;
+ if (flags & Qt::WindowTitleHint)
+ styleMask |= NSTitledWindowMask;
+ if (flags & Qt::WindowCloseButtonHint)
+ styleMask |= NSClosableWindowMask;
+ if (flags & Qt::WindowMinimizeButtonHint)
+ styleMask |= NSMiniaturizableWindowMask;
+ } else {
+ styleMask = NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask;
+ }
+ } else {
+ if (flags & Qt::WindowMaximizeButtonHint)
+ styleMask |= NSResizableWindowMask;
+ if (flags & Qt::WindowTitleHint)
+ styleMask |= NSTitledWindowMask;
+ if (flags & Qt::WindowCloseButtonHint)
+ styleMask |= NSClosableWindowMask;
+ if (flags & Qt::WindowMinimizeButtonHint)
+ styleMask |= NSMiniaturizableWindowMask;
+ }
+ }
+
+ if (m_drawContentBorderGradient)
+ styleMask |= NSTexturedBackgroundWindowMask;
+
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug("windowStyleMask of '%s': flags %X -> styleMask %lX", qPrintable(window()->title()), (int)flags, styleMask);
+#endif
+ return styleMask;
+}
+
+void QCocoaWindow::setWindowShadow(Qt::WindowFlags flags)
+{
+ bool keepShadow = !(flags & Qt::NoDropShadowWindowHint);
+ [m_nsWindow setHasShadow:(keepShadow ? YES : NO)];
+}
+
+void QCocoaWindow::setWindowZoomButton(Qt::WindowFlags flags)
+{
+ // Disable the zoom (maximize) button for fixed-sized windows and customized
+ // no-WindowMaximizeButtonHint windows. From a Qt perspective it migth be expected
+ // that the button would be removed in the latter case, but disabling it is more
+ // in line with the platform style guidelines.
+ bool fixedSizeNoZoom = (window()->minimumSize().isValid() && window()->maximumSize().isValid()
+ && window()->minimumSize() == window()->maximumSize());
+ bool customizeNoZoom = ((flags & Qt::CustomizeWindowHint) && !(flags & Qt::WindowMaximizeButtonHint));
+ [[m_nsWindow standardWindowButton:NSWindowZoomButton] setEnabled:!(fixedSizeNoZoom || customizeNoZoom)];
+}
+
+void QCocoaWindow::setWindowFlags(Qt::WindowFlags flags)
+{
+ if (m_nsWindow && !m_isNSWindowChild) {
+ NSUInteger styleMask = windowStyleMask(flags);
+ NSInteger level = this->windowLevel(flags);
+ [m_nsWindow setStyleMask:styleMask];
+ [m_nsWindow setLevel:level];
+ setWindowShadow(flags);
+ if (!(styleMask & NSBorderlessWindowMask)) {
+ setWindowTitle(window()->title());
+ }
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
+ Qt::WindowType type = window()->type();
+ if ((type & Qt::Popup) != Qt::Popup && (type & Qt::Dialog) != Qt::Dialog) {
+ NSWindowCollectionBehavior behavior = [m_nsWindow collectionBehavior];
+ if (flags & Qt::WindowFullscreenButtonHint)
+ behavior |= NSWindowCollectionBehaviorFullScreenPrimary;
+ else
+ behavior &= ~NSWindowCollectionBehaviorFullScreenPrimary;
+ [m_nsWindow setCollectionBehavior:behavior];
+ }
+ }
+#endif
+ setWindowZoomButton(flags);
+ }
+
+ m_windowFlags = flags;
+}
+
+void QCocoaWindow::setWindowState(Qt::WindowState state)
+{
+ if (window()->isVisible())
+ syncWindowState(state); // Window state set for hidden windows take effect when show() is called.
+}
+
+void QCocoaWindow::setWindowTitle(const QString &title)
+{
+ QCocoaAutoReleasePool pool;
+ if (!m_nsWindow)
+ return;
+
+ CFStringRef windowTitle = QCFString::toCFStringRef(title);
+ [m_nsWindow setTitle: const_cast(reinterpret_cast(windowTitle))];
+ CFRelease(windowTitle);
+}
+
+void QCocoaWindow::setWindowFilePath(const QString &filePath)
+{
+ QCocoaAutoReleasePool pool;
+ if (!m_nsWindow)
+ return;
+
+ QFileInfo fi(filePath);
+ [m_nsWindow setRepresentedFilename: fi.exists() ? QCFString::toNSString(filePath) : @""];
+}
+
+void QCocoaWindow::setWindowIcon(const QIcon &icon)
+{
+ QCocoaAutoReleasePool pool;
+
+ NSButton *iconButton = [m_nsWindow standardWindowButton:NSWindowDocumentIconButton];
+ if (iconButton == nil) {
+ if (icon.isNull())
+ return;
+ NSString *title = QCFString::toNSString(window()->title());
+ [m_nsWindow setRepresentedURL:[NSURL fileURLWithPath:title]];
+ iconButton = [m_nsWindow standardWindowButton:NSWindowDocumentIconButton];
+ }
+ if (icon.isNull()) {
+ [iconButton setImage:nil];
+ } else {
+ QPixmap pixmap = icon.pixmap(QSize(22, 22));
+ NSImage *image = static_cast(qt_mac_create_nsimage(pixmap));
+ [iconButton setImage:image];
+ [image release];
+ }
+}
+
+void QCocoaWindow::setAlertState(bool enabled)
+{
+ if (m_alertRequest == NoAlertRequest && enabled) {
+ m_alertRequest = [NSApp requestUserAttention:NSCriticalRequest];
+ } else if (m_alertRequest != NoAlertRequest && !enabled) {
+ [NSApp cancelUserAttentionRequest:m_alertRequest];
+ m_alertRequest = NoAlertRequest;
+ }
+}
+
+bool QCocoaWindow::isAlertState() const
+{
+ return m_alertRequest != NoAlertRequest;
+}
+
+void QCocoaWindow::raise()
+{
+ //qDebug() << "raise" << this;
+ // ### handle spaces (see Qt 4 raise_sys in qwidget_mac.mm)
+ if (!m_nsWindow)
+ return;
+ if (m_isNSWindowChild) {
+ QList &siblings = m_parentCocoaWindow->m_childWindows;
+ siblings.removeOne(this);
+ siblings.append(this);
+ if (m_hiddenByClipping)
+ return;
+ }
+ if ([m_nsWindow isVisible]) {
+ if (m_isNSWindowChild) {
+ // -[NSWindow orderFront:] doesn't work with attached windows.
+ // The only solution is to remove and add the child window.
+ // This will place it on top of all the other NSWindows.
+ NSWindow *parentNSWindow = m_parentCocoaWindow->m_nsWindow;
+ [parentNSWindow removeChildWindow:m_nsWindow];
+ [parentNSWindow addChildWindow:m_nsWindow ordered:NSWindowAbove];
+ } else {
+ [m_nsWindow orderFront: m_nsWindow];
+ ProcessSerialNumber psn;
+ GetCurrentProcess(&psn);
+ SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
+ }
+ }
+}
+
+void QCocoaWindow::lower()
+{
+ if (!m_nsWindow)
+ return;
+ if (m_isNSWindowChild) {
+ QList &siblings = m_parentCocoaWindow->m_childWindows;
+ siblings.removeOne(this);
+ siblings.prepend(this);
+ if (m_hiddenByClipping)
+ return;
+ }
+ if ([m_nsWindow isVisible]) {
+ if (m_isNSWindowChild) {
+ // -[NSWindow orderBack:] doesn't work with attached windows.
+ // The only solution is to remove and add all the child windows except this one.
+ // This will keep the current window at the bottom while adding the others on top of it,
+ // hopefully in the same order (this is not documented anywhere in the Cocoa documentation).
+ NSWindow *parentNSWindow = m_parentCocoaWindow->m_nsWindow;
+ NSArray *children = [parentNSWindow.childWindows copy];
+ for (NSWindow *child in children)
+ if (m_nsWindow != child) {
+ [parentNSWindow removeChildWindow:child];
+ [parentNSWindow addChildWindow:child ordered:NSWindowAbove];
+ }
+ } else {
+ [m_nsWindow orderBack: m_nsWindow];
+ }
+ }
+}
+
+bool QCocoaWindow::isExposed() const
+{
+ return m_isExposed;
+}
+
+bool QCocoaWindow::isOpaque() const
+{
+ bool translucent = (window()->format().alphaBufferSize() > 0
+ || window()->opacity() < 1
+ || (m_qtView && [m_qtView hasMask]));
+ return !translucent;
+}
+
+void QCocoaWindow::propagateSizeHints()
+{
+ QCocoaAutoReleasePool pool;
+ if (!m_nsWindow)
+ return;
+
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug() << "QCocoaWindow::propagateSizeHints" << this;
+ qDebug() << " min/max " << window()->minimumSize() << window()->maximumSize();
+ qDebug() << "size increment" << window()->sizeIncrement();
+ qDebug() << " basesize" << window()->baseSize();
+ qDebug() << " geometry" << geometry();
+#endif
+
+ // Set the minimum content size.
+ const QSize minimumSize = window()->minimumSize();
+ if (!minimumSize.isValid()) // minimumSize is (-1, -1) when not set. Make that (0, 0) for Cocoa.
+ [m_nsWindow setContentMinSize : NSMakeSize(0.0, 0.0)];
+ [m_nsWindow setContentMinSize : NSMakeSize(minimumSize.width(), minimumSize.height())];
+
+ // Set the maximum content size.
+ const QSize maximumSize = window()->maximumSize();
+ [m_nsWindow setContentMaxSize : NSMakeSize(maximumSize.width(), maximumSize.height())];
+
+ // The window may end up with a fixed size; in this case the zoom button should be disabled.
+ setWindowZoomButton(m_windowFlags);
+
+ // sizeIncrement is observed to take values of (-1, -1) and (0, 0) for windows that should be
+ // resizable and that have no specific size increment set. Cocoa expects (1.0, 1.0) in this case.
+ if (!window()->sizeIncrement().isEmpty())
+ [m_nsWindow setResizeIncrements : qt_mac_toNSSize(window()->sizeIncrement())];
+ else
+ [m_nsWindow setResizeIncrements : NSMakeSize(1.0, 1.0)];
+
+ QRect rect = geometry();
+ QSize baseSize = window()->baseSize();
+ if (!baseSize.isNull() && baseSize.isValid()) {
+ [m_nsWindow setFrame:NSMakeRect(rect.x(), rect.y(), baseSize.width(), baseSize.height()) display:YES];
+ }
+}
+
+void QCocoaWindow::setOpacity(qreal level)
+{
+ if (m_nsWindow) {
+ [m_nsWindow setAlphaValue:level];
+ [m_nsWindow setOpaque: isOpaque()];
+ }
+}
+
+void QCocoaWindow::setMask(const QRegion ®ion)
+{
+ if (m_nsWindow)
+ [m_nsWindow setBackgroundColor:[NSColor clearColor]];
+
+ [m_qtView setMaskRegion:®ion];
+ [m_nsWindow setOpaque: isOpaque()];
+}
+
+bool QCocoaWindow::setKeyboardGrabEnabled(bool grab)
+{
+ if (!m_nsWindow)
+ return false;
+
+ if (grab && ![m_nsWindow isKeyWindow])
+ [m_nsWindow makeKeyWindow];
+ else if (!grab && [m_nsWindow isKeyWindow])
+ [m_nsWindow resignKeyWindow];
+ return true;
+}
+
+bool QCocoaWindow::setMouseGrabEnabled(bool grab)
+{
+ if (!m_nsWindow)
+ return false;
+
+ if (grab && ![m_nsWindow isKeyWindow])
+ [m_nsWindow makeKeyWindow];
+ else if (!grab && [m_nsWindow isKeyWindow])
+ [m_nsWindow resignKeyWindow];
+ return true;
+}
+
+WId QCocoaWindow::winId() const
+{
+ return WId(m_contentView);
+}
+
+void QCocoaWindow::setParent(const QPlatformWindow *parentWindow)
+{
+ // recreate the window for compatibility
+ bool unhideAfterRecreate = parentWindow && !m_contentViewIsToBeEmbedded && ![m_contentView isHidden];
+ recreateWindow(parentWindow);
+ if (unhideAfterRecreate)
+ [m_contentView setHidden:NO];
+ setCocoaGeometry(geometry());
+}
+
+NSView *QCocoaWindow::contentView() const
+{
+ return m_contentView;
+}
+
+void QCocoaWindow::setContentView(NSView *contentView)
+{
+ // Remove and release the previous content view
+ [m_contentView removeFromSuperview];
+ [m_contentView release];
+
+ // Insert and retain the new content view
+ [contentView retain];
+ m_contentView = contentView;
+ m_qtView = 0; // The new content view is not a QNSView.
+ recreateWindow(parent()); // Adds the content view to parent NSView
+}
+
+QNSView *QCocoaWindow::qtView() const
+{
+ return m_qtView;
+}
+
+NSWindow *QCocoaWindow::nativeWindow() const
+{
+ return m_nsWindow;
+}
+
+void QCocoaWindow::setEmbeddedInForeignView(bool embedded)
+{
+ m_contentViewIsToBeEmbedded = embedded;
+ // Release any previosly created NSWindow.
+ [m_nsWindow closeAndRelease];
+ m_nsWindow = 0;
+}
+
+void QCocoaWindow::windowWillMove()
+{
+ // Close any open popups on window move
+ if (m_activePopupWindow) {
+ QWindowSystemInterface::handleCloseEvent(m_activePopupWindow);
+ QWindowSystemInterface::flushWindowSystemEvents();
+ m_activePopupWindow = 0;
+ }
+}
+
+void QCocoaWindow::windowDidMove()
+{
+ if (m_isNSWindowChild)
+ return;
+
+ [m_qtView updateGeometry];
+}
+
+void QCocoaWindow::windowDidResize()
+{
+ if (!m_nsWindow)
+ return;
+
+ if (m_isNSWindowChild)
+ return;
+
+ clipChildWindows();
+ [m_qtView updateGeometry];
+}
+
+void QCocoaWindow::windowDidEndLiveResize()
+{
+ if (m_synchedWindowState == Qt::WindowMaximized && ![m_nsWindow isZoomed]) {
+ m_effectivelyMaximized = false;
+ [m_qtView notifyWindowStateChanged:Qt::WindowNoState];
+ }
+}
+
+bool QCocoaWindow::windowShouldClose()
+{
+ bool accepted = false;
+ QWindowSystemInterface::handleCloseEvent(window(), &accepted);
+ QWindowSystemInterface::flushWindowSystemEvents();
+ return accepted;
+}
+
+void QCocoaWindow::setSynchedWindowStateFromWindow()
+{
+ if (QWindow *w = window())
+ m_synchedWindowState = w->windowState();
+}
+
+bool QCocoaWindow::windowIsPopupType(Qt::WindowType type) const
+{
+ if (type == Qt::Widget)
+ type = window()->type();
+ if (type == Qt::Tool)
+ return false; // Qt::Tool has the Popup bit set but isn't, at least on Mac.
+
+ return ((type & Qt::Popup) == Qt::Popup);
+}
+
+void QCocoaWindow::setCurrentContext(QCocoaGLContext *context)
+{
+ m_glContext = context;
+}
+
+QCocoaGLContext *QCocoaWindow::currentContext() const
+{
+ return m_glContext;
+}
+
+void QCocoaWindow::recreateWindow(const QPlatformWindow *parentWindow)
+{
+ bool wasNSWindowChild = m_isNSWindowChild;
+ m_isNSWindowChild = parentWindow && (window()->property("_q_platform_MacUseNSWindow").toBool());
+ bool needsNSWindow = m_isNSWindowChild || !parentWindow;
+
+ QCocoaWindow *oldParentCocoaWindow = m_parentCocoaWindow;
+ m_parentCocoaWindow = const_cast(static_cast(parentWindow));
+ if (m_parentCocoaWindow && m_isNSWindowChild) {
+ QWindow *parentQWindow = m_parentCocoaWindow->window();
+ if (!parentQWindow->property("_q_platform_MacUseNSWindow").toBool()) {
+ parentQWindow->setProperty("_q_platform_MacUseNSWindow", QVariant(true));
+ m_parentCocoaWindow->recreateWindow(m_parentCocoaWindow->m_parentCocoaWindow);
+ }
+ }
+
+ bool usesNSPanel = [m_nsWindow isKindOfClass:[QNSPanel class]];
+
+ // No child QNSWindow should notify its QNSView
+ if (m_nsWindow && m_qtView && m_parentCocoaWindow && !oldParentCocoaWindow)
+ [[NSNotificationCenter defaultCenter] removeObserver:m_qtView
+ name:nil object:m_nsWindow];
+
+ // Remove current window (if any)
+ if ((m_nsWindow && !needsNSWindow) || (usesNSPanel != shouldUseNSPanel())) {
+ [m_nsWindow closeAndRelease];
+ if (wasNSWindowChild && oldParentCocoaWindow)
+ oldParentCocoaWindow->removeChildWindow(this);
+ m_nsWindow = 0;
+ }
+
+ if (needsNSWindow) {
+ bool noPreviousWindow = m_nsWindow == 0;
+ if (noPreviousWindow)
+ m_nsWindow = createNSWindow();
+
+ // Only non-child QNSWindows should notify their QNSViews
+ // (but don't register more than once).
+ if (m_qtView && (noPreviousWindow || (wasNSWindowChild && !m_isNSWindowChild)))
+ [[NSNotificationCenter defaultCenter] addObserver:m_qtView
+ selector:@selector(windowNotification:)
+ name:nil // Get all notifications
+ object:m_nsWindow];
+
+ if (oldParentCocoaWindow) {
+ if (!m_isNSWindowChild || oldParentCocoaWindow != m_parentCocoaWindow)
+ oldParentCocoaWindow->removeChildWindow(this);
+ m_forwardWindow = oldParentCocoaWindow;
+ }
+
+ setNSWindow(m_nsWindow);
+ }
+
+ if (m_contentViewIsToBeEmbedded) {
+ // An embedded window doesn't have its own NSWindow.
+ } else if (!parentWindow) {
+ // QPlatformWindow subclasses must sync up with QWindow on creation:
+ propagateSizeHints();
+ setWindowFlags(window()->flags());
+ setWindowTitle(window()->title());
+ setWindowState(window()->windowState());
+ } else if (m_isNSWindowChild) {
+ m_nsWindow.styleMask = NSBorderlessWindowMask;
+ m_nsWindow.hasShadow = NO;
+ m_nsWindow.level = NSNormalWindowLevel;
+ NSWindowCollectionBehavior collectionBehavior =
+ NSWindowCollectionBehaviorManaged | NSWindowCollectionBehaviorIgnoresCycle;
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
+ collectionBehavior |= NSWindowCollectionBehaviorFullScreenAuxiliary;
+ m_nsWindow.animationBehavior = NSWindowAnimationBehaviorNone;
+ }
+#endif
+ m_nsWindow.collectionBehavior = collectionBehavior;
+ setCocoaGeometry(window()->geometry());
+
+ QList &siblings = m_parentCocoaWindow->m_childWindows;
+ if (siblings.contains(this)) {
+ if (!m_hiddenByClipping)
+ m_parentCocoaWindow->reinsertChildWindow(this);
+ } else {
+ if (!m_hiddenByClipping)
+ [m_parentCocoaWindow->m_nsWindow addChildWindow:m_nsWindow ordered:NSWindowAbove];
+ siblings.append(this);
+ }
+ } else {
+ // Child windows have no NSWindow, link the NSViews instead.
+ [m_parentCocoaWindow->m_contentView addSubview : m_contentView];
+ QRect rect = window()->geometry();
+ // Prevent setting a (0,0) window size; causes opengl context
+ // "Invalid Drawable" warnings.
+ if (rect.isNull())
+ rect.setSize(QSize(1, 1));
+ NSRect frame = NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height());
+ [m_contentView setFrame:frame];
+ [m_contentView setHidden: YES];
+ }
+
+ const qreal opacity = qt_window_private(window())->opacity;
+ if (!qFuzzyCompare(opacity, qreal(1.0)))
+ setOpacity(opacity);
+
+ // top-level QWindows may have an attached NSToolBar, call
+ // update function which will attach to the NSWindow.
+ if (!parentWindow)
+ updateNSToolbar();
+}
+
+void QCocoaWindow::reinsertChildWindow(QCocoaWindow *child)
+{
+ int childIndex = m_childWindows.indexOf(child);
+ Q_ASSERT(childIndex != -1);
+
+ for (int i = childIndex; i < m_childWindows.size(); i++) {
+ NSWindow *nsChild = m_childWindows[i]->m_nsWindow;
+ if (i != childIndex)
+ [m_nsWindow removeChildWindow:nsChild];
+ [m_nsWindow addChildWindow:nsChild ordered:NSWindowAbove];
+ }
+}
+
+void QCocoaWindow::requestActivateWindow()
+{
+ NSWindow *window = [m_contentView window];
+ [ window makeFirstResponder : m_contentView ];
+ [ window makeKeyWindow ];
+}
+
+bool QCocoaWindow::shouldUseNSPanel()
+{
+ Qt::WindowType type = window()->type();
+
+ return !m_isNSWindowChild &&
+ ((type & Qt::Popup) == Qt::Popup || (type & Qt::Dialog) == Qt::Dialog);
+}
+
+QCocoaNSWindow * QCocoaWindow::createNSWindow()
+{
+ QCocoaAutoReleasePool pool;
+
+ QRect rect = initialGeometry(window(), window()->geometry(), defaultWindowWidth, defaultWindowHeight);
+ NSRect frame = qt_mac_flipRect(rect);
+
+ Qt::WindowType type = window()->type();
+ Qt::WindowFlags flags = window()->flags();
+
+ NSUInteger styleMask;
+ if (m_isNSWindowChild) {
+ styleMask = NSBorderlessWindowMask;
+ } else {
+ styleMask = windowStyleMask(flags);
+ }
+ QCocoaNSWindow *createdWindow = 0;
+
+ // Use NSPanel for popup-type windows. (Popup, Tool, ToolTip, SplashScreen)
+ // and dialogs
+ if (shouldUseNSPanel()) {
+ QNSPanel *window;
+ window = [[QNSPanel alloc] initWithContentRect:frame
+ styleMask: styleMask
+ qPlatformWindow:this];
+ if ((type & Qt::Popup) == Qt::Popup)
+ [window setHasShadow:YES];
+
+ [window setHidesOnDeactivate:(type & Qt::Tool) == Qt::Tool];
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
+ // Make popup winows show on the same desktop as the parent full-screen window.
+ [window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary];
+
+ if ((type & Qt::Popup) == Qt::Popup)
+ [window setAnimationBehavior:NSWindowAnimationBehaviorUtilityWindow];
+ }
+#endif
+ createdWindow = window;
+ } else {
+ QNSWindow *window;
+ window = [[QNSWindow alloc] initWithContentRect:frame
+ styleMask: styleMask
+ qPlatformWindow:this];
+ createdWindow = window;
+ }
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if ([createdWindow respondsToSelector:@selector(setRestorable:)])
+ [createdWindow setRestorable: NO];
+#endif
+
+ NSInteger level = windowLevel(flags);
+ [createdWindow setLevel:level];
+
+ if (window()->format().alphaBufferSize() > 0) {
+ [createdWindow setBackgroundColor:[NSColor clearColor]];
+ [createdWindow setOpaque:NO];
+ }
+
+ m_windowModality = window()->modality();
+
+ applyContentBorderThickness(createdWindow);
+
+ QCocoaIntegration::instance()->setWindow(createdWindow, this);
+
+ return createdWindow;
+}
+
+void QCocoaWindow::setNSWindow(QCocoaNSWindow *window)
+{
+ if (window.contentView != m_contentView) {
+ [m_contentView setPostsFrameChangedNotifications: NO];
+ [window setContentView:m_contentView];
+ [m_contentView setPostsFrameChangedNotifications: YES];
+ }
+}
+
+void QCocoaWindow::removeChildWindow(QCocoaWindow *child)
+{
+ m_childWindows.removeOne(child);
+ [m_nsWindow removeChildWindow:child->m_nsWindow];
+}
+
+// Returns the current global screen geometry for the nswindow associated with this window.
+QRect QCocoaWindow::windowGeometry() const
+{
+ if (!m_nsWindow || m_isNSWindowChild)
+ return geometry();
+
+ NSRect rect = [m_nsWindow frame];
+ QPlatformScreen *onScreen = QPlatformScreen::platformScreenForWindow(window());
+ int flippedY = onScreen->geometry().height() - rect.origin.y - rect.size.height; // account for nswindow inverted y.
+ QRect qRect = QRect(rect.origin.x, flippedY, rect.size.width, rect.size.height);
+ return qRect;
+}
+
+// Returns a pointer to the parent QCocoaWindow for this window, or 0 if there is none.
+QCocoaWindow *QCocoaWindow::parentCocoaWindow() const
+{
+ if (window() && window()->transientParent()) {
+ return static_cast(window()->transientParent()->handle());
+ }
+ return 0;
+}
+
+// Syncs the NSWindow minimize/maximize/fullscreen state with the current QWindow state
+void QCocoaWindow::syncWindowState(Qt::WindowState newState)
+{
+ if (!m_nsWindow)
+ return;
+ // if content view width or height is 0 then the window animations will crash so
+ // do nothing except set the new state
+ NSRect contentRect = [contentView() frame];
+ if (contentRect.size.width <= 0 || contentRect.size.height <= 0) {
+ qWarning() << Q_FUNC_INFO << "invalid window content view size, check your window geometry";
+ m_synchedWindowState = newState;
+ return;
+ }
+
+ Qt::WindowState predictedState = newState;
+
+ if ((m_synchedWindowState & Qt::WindowMinimized) != (newState & Qt::WindowMinimized)) {
+ if (newState & Qt::WindowMinimized) {
+ [m_nsWindow performMiniaturize : m_nsWindow];
+ } else {
+ [m_nsWindow deminiaturize : m_nsWindow];
+ }
+ }
+
+ if ((m_synchedWindowState & Qt::WindowMaximized) != (newState & Qt::WindowMaximized) || (m_effectivelyMaximized && newState == Qt::WindowNoState)) {
+ if ((m_synchedWindowState & Qt::WindowFullScreen) == (newState & Qt::WindowFullScreen)) {
+ [m_nsWindow zoom : m_nsWindow]; // toggles
+ m_effectivelyMaximized = !m_effectivelyMaximized;
+ } else if (!(newState & Qt::WindowMaximized)) {
+ // it would be nice to change the target geometry that toggleFullScreen will animate toward
+ // but there is no known way, so the maximized state is not possible at this time
+ predictedState = static_cast(static_cast(newState) | Qt::WindowMaximized);
+ m_effectivelyMaximized = true;
+ }
+ }
+
+ if ((m_synchedWindowState & Qt::WindowFullScreen) != (newState & Qt::WindowFullScreen)) {
+ bool fakeFullScreen = true;
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
+ if (window()->flags() & Qt::WindowFullscreenButtonHint) {
+ fakeFullScreen = false;
+ if (m_effectivelyMaximized && m_synchedWindowState == Qt::WindowFullScreen)
+ predictedState = Qt::WindowMaximized;
+ [m_nsWindow toggleFullScreen : m_nsWindow];
+ }
+ }
+#endif
+ if (fakeFullScreen) {
+ if (newState & Qt::WindowFullScreen) {
+ QScreen *screen = window()->screen();
+ if (screen) {
+ if (m_normalGeometry.width() < 0) {
+ m_oldWindowFlags = m_windowFlags;
+ window()->setFlags(window()->flags() | Qt::FramelessWindowHint);
+ m_normalGeometry = windowGeometry();
+ setGeometry(screen->geometry());
+ m_presentationOptions = [NSApp presentationOptions];
+ [NSApp setPresentationOptions : m_presentationOptions | NSApplicationPresentationAutoHideMenuBar | NSApplicationPresentationAutoHideDock];
+ }
+ }
+ } else {
+ window()->setFlags(m_oldWindowFlags);
+ setGeometry(m_normalGeometry);
+ m_normalGeometry.setRect(0, 0, -1, -1);
+ [NSApp setPresentationOptions : m_presentationOptions];
+ }
+ }
+ }
+
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug() << "QCocoaWindow::syncWindowState" << newState << "actual" << predictedState << "was" << m_synchedWindowState << "effectively maximized" << m_effectivelyMaximized;
+#endif
+
+ // New state is now the current synched state
+ m_synchedWindowState = predictedState;
+}
+
+bool QCocoaWindow::setWindowModified(bool modified)
+{
+ if (!m_nsWindow)
+ return false;
+ [m_nsWindow setDocumentEdited:(modified?YES:NO)];
+ return true;
+}
+
+void QCocoaWindow::setMenubar(QCocoaMenuBar *mb)
+{
+ m_menubar = mb;
+}
+
+QCocoaMenuBar *QCocoaWindow::menubar() const
+{
+ return m_menubar;
+}
+
+void QCocoaWindow::setWindowCursor(NSCursor *cursor)
+{
+ // This function is called (via QCocoaCursor) by Qt to set
+ // the cursor for this window. It can be called for a window
+ // that is not currenly under the mouse pointer (for example
+ // for a popup window.) Qt expects the set cursor to "stick":
+ // it should be accociated with the window until a different
+ // cursor is set.
+ if (m_windowCursor != cursor) {
+ [m_windowCursor release];
+ m_windowCursor = [cursor retain];
+ }
+
+ // Use the built in cursor rect API if the QCocoaWindow has a NSWindow.
+ // Othervise, set the cursor if this window is under the mouse. In
+ // this case QNSView::cursorUpdate will set the cursor as the pointer
+ // moves.
+ if (m_nsWindow && m_qtView) {
+ [m_nsWindow invalidateCursorRectsForView : m_qtView];
+ } else {
+ if (m_windowUnderMouse)
+ [cursor set];
+ }
+}
+
+void QCocoaWindow::registerTouch(bool enable)
+{
+ m_registerTouchCount += enable ? 1 : -1;
+ if (enable && m_registerTouchCount == 1)
+ [m_contentView setAcceptsTouchEvents:YES];
+ else if (m_registerTouchCount == 0)
+ [m_contentView setAcceptsTouchEvents:NO];
+}
+
+void QCocoaWindow::setContentBorderThickness(int topThickness, int bottomThickness)
+{
+ m_topContentBorderThickness = topThickness;
+ m_bottomContentBorderThickness = bottomThickness;
+ bool enable = (topThickness > 0 || bottomThickness > 0);
+ m_drawContentBorderGradient = enable;
+
+ applyContentBorderThickness(m_nsWindow);
+}
+
+void QCocoaWindow::registerContentBorderArea(quintptr identifier, int upper, int lower)
+{
+ m_contentBorderAreas.insert(identifier, BorderRange(identifier, upper, lower));
+ applyContentBorderThickness(m_nsWindow);
+}
+
+void QCocoaWindow::setContentBorderAreaEnabled(quintptr identifier, bool enable)
+{
+ m_enabledContentBorderAreas.insert(identifier, enable);
+ applyContentBorderThickness(m_nsWindow);
+}
+
+void QCocoaWindow::setContentBorderEnabled(bool enable)
+{
+ m_drawContentBorderGradient = enable;
+ applyContentBorderThickness(m_nsWindow);
+}
+
+void QCocoaWindow::applyContentBorderThickness(NSWindow *window)
+{
+ if (!window)
+ return;
+
+ if (!m_drawContentBorderGradient) {
+ [window setStyleMask:[window styleMask] & ~NSTexturedBackgroundWindowMask];
+ return;
+ }
+
+ // Find consecutive registered border areas, starting from the top.
+ QList ranges = m_contentBorderAreas.values();
+ std::sort(ranges.begin(), ranges.end());
+ int effectiveTopContentBorderThickness = m_topContentBorderThickness;
+ foreach (BorderRange range, ranges) {
+ // Skip disiabled ranges (typically hidden tool bars)
+ if (!m_enabledContentBorderAreas.value(range.identifier, false))
+ continue;
+
+ // Is this sub-range adjacent to or overlaping the
+ // existing total border area range? If so merge
+ // it into the total range,
+ if (range.upper <= (effectiveTopContentBorderThickness + 1))
+ effectiveTopContentBorderThickness = qMax(effectiveTopContentBorderThickness, range.lower);
+ else
+ break;
+ }
+
+ int effectiveBottomContentBorderThickness = m_bottomContentBorderThickness;
+
+ [window setStyleMask:[window styleMask] | NSTexturedBackgroundWindowMask];
+
+ [window setContentBorderThickness:effectiveTopContentBorderThickness forEdge:NSMaxYEdge];
+ [window setAutorecalculatesContentBorderThickness:NO forEdge:NSMaxYEdge];
+
+ [window setContentBorderThickness:effectiveBottomContentBorderThickness forEdge:NSMinYEdge];
+ [window setAutorecalculatesContentBorderThickness:NO forEdge:NSMinYEdge];
+}
+
+void QCocoaWindow::updateNSToolbar()
+{
+ if (!m_nsWindow)
+ return;
+
+ NSToolbar *toolbar = QCocoaIntegration::instance()->toolbar(window());
+
+ if ([m_nsWindow toolbar] == toolbar)
+ return;
+
+ [m_nsWindow setToolbar: toolbar];
+ [m_nsWindow setShowsToolbarButton:YES];
+}
+
+bool QCocoaWindow::testContentBorderAreaPosition(int position) const
+{
+ return m_nsWindow && m_drawContentBorderGradient &&
+ 0 <= position && position < [m_nsWindow contentBorderThicknessForEdge: NSMaxYEdge];
+}
+
+qreal QCocoaWindow::devicePixelRatio() const
+{
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) {
+ NSWindow* window = [m_contentView window];
+ if (window) {
+ return qreal([window backingScaleFactor]);
+ } else {
+ return 1.0;
+ }
+ } else
+#endif
+ {
+ return 1.0;
+ }
+}
+
+// Returns whether the window can be expose, which it can
+// if it is on screen and has a valid geometry.
+bool QCocoaWindow::isWindowExposable()
+{
+ QSize size = geometry().size();
+ bool validGeometry = (size.width() > 0 && size.height() > 0);
+ bool validScreen = ([[m_contentView window] screen] != 0);
+ bool nonHiddenSuperView = ![[m_contentView superview] isHidden];
+ return (validGeometry && validScreen && nonHiddenSuperView);
+}
+
+// Exposes the window by posting an expose event to QWindowSystemInterface
+void QCocoaWindow::exposeWindow()
+{
+ m_geometryUpdateExposeAllowed = true;
+
+ if (!isWindowExposable())
+ return;
+
+ if (!m_isExposed) {
+ m_isExposed = true;
+ m_exposedGeometry = geometry();
+ m_exposedDevicePixelRatio = devicePixelRatio();
+ QWindowSystemInterface::handleExposeEvent(window(), QRegion(geometry()));
+ }
+}
+
+// Obscures the window by posting an empty expose event to QWindowSystemInterface
+void QCocoaWindow::obscureWindow()
+{
+ if (m_isExposed) {
+ m_geometryUpdateExposeAllowed = false;
+ m_isExposed = false;
+ QWindowSystemInterface::handleExposeEvent(window(), QRegion());
+ }
+}
+
+// Updates window geometry by posting an expose event to QWindowSystemInterface
+void QCocoaWindow::updateExposedGeometry()
+{
+ // updateExposedGeometry is not allowed to send the initial expose. If you want
+ // that call exposeWindow();
+ if (!m_geometryUpdateExposeAllowed)
+ return;
+
+ if (!isWindowExposable())
+ return;
+
+ if (m_exposedGeometry == geometry() && m_exposedDevicePixelRatio == devicePixelRatio())
+ return;
+
+ m_isExposed = true;
+ m_exposedGeometry = geometry();
+ m_exposedDevicePixelRatio = devicePixelRatio();
+ QWindowSystemInterface::handleExposeEvent(window(), QRegion(geometry()));
+}
+
+QWindow *QCocoaWindow::childWindowAt(QPoint windowPoint)
+{
+ QWindow *targetWindow = window();
+ foreach (QObject *child, targetWindow->children())
+ if (QWindow *childWindow = qobject_cast(child))
+ if (QPlatformWindow *handle = childWindow->handle())
+ if (handle->isExposed() && childWindow->geometry().contains(windowPoint))
+ targetWindow = static_cast(handle)->childWindowAt(windowPoint - childWindow->position());
+
+ return targetWindow;
+}
+
+QMargins QCocoaWindow::frameMargins() const
+{
+ NSRect frameW = [m_nsWindow frame];
+ NSRect frameC = [m_nsWindow contentRectForFrameRect:frameW];
+
+ return QMargins(frameW.origin.x - frameC.origin.x,
+ (frameW.origin.y + frameW.size.height) - (frameC.origin.y + frameC.size.height),
+ (frameW.origin.x + frameW.size.width) - (frameC.origin.x + frameC.size.width),
+ frameC.origin.y - frameW.origin.y);
+}
+
+void QCocoaWindow::setFrameStrutEventsEnabled(bool enabled)
+{
+ m_frameStrutEventsEnabled = enabled;
+}
diff --git a/Telegram/metaemoji_plugin_import.cpp b/Telegram/metaemoji_plugin_import.cpp
new file mode 100644
index 000000000..7c0d09542
--- /dev/null
+++ b/Telegram/metaemoji_plugin_import.cpp
@@ -0,0 +1,13 @@
+// This file is autogenerated by qmake. It imports static plugin classes for
+// static plugins specified using QTPLUGIN and QT_PLUGIN_CLASS. variables.
+#include
+Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
+Q_IMPORT_PLUGIN(QDDSPlugin)
+Q_IMPORT_PLUGIN(QICNSPlugin)
+Q_IMPORT_PLUGIN(QICOPlugin)
+Q_IMPORT_PLUGIN(QJp2Plugin)
+Q_IMPORT_PLUGIN(QMngPlugin)
+Q_IMPORT_PLUGIN(QTgaPlugin)
+Q_IMPORT_PLUGIN(QTiffPlugin)
+Q_IMPORT_PLUGIN(QWbmpPlugin)
+Q_IMPORT_PLUGIN(QWebpPlugin)