У меня есть некоторый код Qt 4.4 / Carbon, который отлично работает для получения событий открытия документа Mac OS X (например, двойной щелчок пользователя на документе, связанном с приложением):
#ifdef Q_OS_MACX
#include <Carbon/Carbon.h>
#endif
MyApplication::MyApplication( int& argc, char** argv )
:QApplication( argc, argv )
{
#ifdef Q_OS_MACX
AEInstallEventHandler( kCoreEventClass, kAEOpenDocuments,
TPApplication::appleEventHandler, 0, false );
#endif
}
MyApplication::~MyApplication()
{
#ifdef Q_OS_MACX
AERemoveEventHandler( kCoreEventClass, kAEOpenDocuments,
TPApplication::appleEventHandler, false );
#endif
}
#ifdef Q_OS_MACX
OSErr
TPApplication::appleEventHandler( const AppleEvent* ae, AppleEvent*, long )
{
// process events
}
#endif
Я хочу перенести этот код наQt 4,7 / Какао.Можно ли по-прежнему вызывать этот код из приложения Qt, основанного на какао, или вместо этого мне нужно вызывать API-интерфейс какао?Или есть более элегантный способ перехвата пользователем двойного щелчка по документу, связанному с приложением, без кода конкретной платформы?