2010-02-02 04:07:02 +03:00
|
|
|
#include <Carbon/Carbon.h>
|
2010-03-26 01:02:45 +03:00
|
|
|
#include <QApplication>
|
2010-02-02 04:07:02 +03:00
|
|
|
#include "MainWindow.h"
|
|
|
|
|
|
|
|
extern "C" {
|
|
|
|
OSErr eventHandler(const AppleEvent *ev, AppleEvent *reply, SRefCon refcon);
|
|
|
|
}
|
|
|
|
|
|
|
|
OSErr eventHandler(const AppleEvent *, AppleEvent *, SRefCon )
|
|
|
|
{
|
|
|
|
// FIXME: Ugly hack; just using the first MainWindow we can find
|
|
|
|
MainWindow *mainwin = NULL;
|
|
|
|
foreach (QWidget *w, QApplication::topLevelWidgets()) {
|
|
|
|
mainwin = qobject_cast<MainWindow*>(w);
|
|
|
|
if (mainwin) break;
|
|
|
|
}
|
|
|
|
if (mainwin) {
|
2013-05-28 09:25:03 +04:00
|
|
|
mainwin->actionReloadRenderCSG();
|
2010-02-02 04:07:02 +03:00
|
|
|
}
|
|
|
|
return noErr;
|
|
|
|
}
|
|
|
|
|
|
|
|
void installAppleEventHandlers()
|
|
|
|
{
|
|
|
|
// Reload handler
|
|
|
|
OSErr err = AEInstallEventHandler('SCAD', 'relo', NewAEEventHandlerUPP(eventHandler), 0, true);
|
|
|
|
require_noerr(err, CantInstallAppleEventHandler);
|
|
|
|
return;
|
|
|
|
|
|
|
|
CantInstallAppleEventHandler:
|
|
|
|
fprintf(stderr, "AEInstallEventHandler() failed: %d\n", err); ;
|
|
|
|
}
|