first step to get cocoa events
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1857 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
d9511addf3
commit
a255ea66cf
|
@ -17,6 +17,10 @@
|
||||||
#include "Thread.h"
|
#include "Thread.h"
|
||||||
#include "PowerPC/PowerPC.h"
|
#include "PowerPC/PowerPC.h"
|
||||||
|
|
||||||
|
#if defined(HAVE_COCOA) && HAVE_COCOA
|
||||||
|
#include "cocoaApp.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "BootManager.h"
|
#include "BootManager.h"
|
||||||
void* g_pCodeWindow = NULL;
|
void* g_pCodeWindow = NULL;
|
||||||
void* main_frame = NULL;
|
void* main_frame = NULL;
|
||||||
|
@ -86,11 +90,28 @@ void Host_UpdateStatus()
|
||||||
|
|
||||||
void Host_SetWiiMoteConnectionState(int _State) {}
|
void Host_SetWiiMoteConnectionState(int _State) {}
|
||||||
|
|
||||||
|
|
||||||
|
//for cocoa we need to hijack the main to get event
|
||||||
|
#if defined(HAVE_COCOA) && HAVE_COCOA
|
||||||
|
int appleMain(int argc, char *argv[]);
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
|
||||||
|
cocoaCreateApp();
|
||||||
|
return appleMain(argc, argv);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int appleMain(int argc, char *argv[])
|
||||||
|
#else
|
||||||
// Include SDL header so it can hijack main().
|
// Include SDL header so it can hijack main().
|
||||||
#if defined(USE_SDL) && USE_SDL
|
#if defined(USE_SDL) && USE_SDL
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#endif
|
#endif
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
gengetopt_args_info args_info;
|
gengetopt_args_info args_info;
|
||||||
|
|
||||||
|
|
|
@ -44,13 +44,29 @@ if wxenv['HAVE_WX']:
|
||||||
libs = [ 'debwx' ] + libs
|
libs = [ 'debwx' ] + libs
|
||||||
|
|
||||||
|
|
||||||
|
if wxenv['HAVE_COCOA']:
|
||||||
|
files += [ 'cocoaApp.m', ]
|
||||||
|
compileFlags = [
|
||||||
|
'-x',
|
||||||
|
'objective-c++',
|
||||||
|
]
|
||||||
|
wxenv.Append(
|
||||||
|
CXXFLAGS = compileFlags,
|
||||||
|
LINKFLAGS = [
|
||||||
|
'-pthread',
|
||||||
|
],
|
||||||
|
LIBS = libs
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
wxenv.Append(
|
||||||
|
LINKFLAGS = [
|
||||||
|
'-pthread',
|
||||||
|
],
|
||||||
|
LIBS = libs
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxenv.Append(
|
|
||||||
LINKFLAGS = [
|
|
||||||
'-pthread',
|
|
||||||
],
|
|
||||||
LIBS = libs
|
|
||||||
)
|
|
||||||
|
|
||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
exeGUI = env['binary_dir'] + 'Dolphin.app/Contents/MacOS/Dolphin'
|
exeGUI = env['binary_dir'] + 'Dolphin.app/Contents/MacOS/Dolphin'
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void cocoaCreateApp();
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,49 @@
|
||||||
|
#import "cocoaApp.h"
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
@implementation NSApplication(i)
|
||||||
|
- (void)appRunning
|
||||||
|
{
|
||||||
|
_running = 1;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface cocoaAppDelegate : NSObject
|
||||||
|
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation cocoaAppDelegate : NSObject
|
||||||
|
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
|
||||||
|
{
|
||||||
|
return NSTerminateCancel;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
void cocoaCreateApp()
|
||||||
|
{
|
||||||
|
ProcessSerialNumber psn;
|
||||||
|
NSAutoreleasePool *pool;
|
||||||
|
|
||||||
|
if (!GetCurrentProcess(&psn)) {
|
||||||
|
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
|
||||||
|
SetFrontProcess(&psn);
|
||||||
|
}
|
||||||
|
|
||||||
|
pool = [[NSAutoreleasePool alloc] init];
|
||||||
|
|
||||||
|
if (NSApp == nil) {
|
||||||
|
[NSApplication sharedApplication];
|
||||||
|
//TODO : Create menu
|
||||||
|
[NSApp finishLaunching];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([NSApp delegate] == nil) {
|
||||||
|
[NSApp setDelegate:[[cocoaAppDelegate alloc] init]];
|
||||||
|
}
|
||||||
|
|
||||||
|
[NSApp appRunning];
|
||||||
|
|
||||||
|
[pool release];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -6,18 +6,27 @@ import sys
|
||||||
name = "Plugin_PadSimple"
|
name = "Plugin_PadSimple"
|
||||||
|
|
||||||
if not env['HAVE_X11']:
|
if not env['HAVE_X11']:
|
||||||
print name + " must have X11 to be built"
|
if not env['HAVE_COCOA']:
|
||||||
Return()
|
print name + " must have X11 to be built"
|
||||||
|
Return()
|
||||||
|
|
||||||
if env['GLTEST']:
|
if env['GLTEST']:
|
||||||
print name + " Doesn't work with testgl"
|
print name + " Doesn't work with testgl"
|
||||||
Return()
|
Return()
|
||||||
|
|
||||||
|
|
||||||
files = [
|
files = [
|
||||||
"PadSimple.cpp",
|
"PadSimple.cpp",
|
||||||
]
|
]
|
||||||
padenv = env.Clone()
|
padenv = env.Clone()
|
||||||
|
|
||||||
|
|
||||||
|
if padenv['HAVE_COCOA']:
|
||||||
|
compileFlags = [
|
||||||
|
'-x',
|
||||||
|
'objective-c++',
|
||||||
|
]
|
||||||
|
|
||||||
if padenv['HAVE_WX']:
|
if padenv['HAVE_WX']:
|
||||||
files += [
|
files += [
|
||||||
"GUI/ConfigDlg.cpp",
|
"GUI/ConfigDlg.cpp",
|
||||||
|
|
|
@ -230,7 +230,6 @@ bool OpenGL_Create(SVideoInitialize &_VideoInitialize, int _iwidth, int _iheight
|
||||||
//setup ogl to use double buffering
|
//setup ogl to use double buffering
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||||
#elif defined(HAVE_COCOA) && HAVE_COCOA
|
#elif defined(HAVE_COCOA) && HAVE_COCOA
|
||||||
cocoaGLCreateApp();
|
|
||||||
GLWin.width = nBackbufferWidth;
|
GLWin.width = nBackbufferWidth;
|
||||||
GLWin.height = nBackbufferHeight;
|
GLWin.height = nBackbufferHeight;
|
||||||
GLWin.cocoaWin = cocoaGLCreateWindow(GLWin.width, GLWin.height);
|
GLWin.cocoaWin = cocoaGLCreateWindow(GLWin.width, GLWin.height);
|
||||||
|
|
|
@ -1,52 +1,5 @@
|
||||||
#import "cocoaGL.h"
|
#import "cocoaGL.h"
|
||||||
|
|
||||||
@implementation NSApplication(i)
|
|
||||||
- (void)appRunning
|
|
||||||
{
|
|
||||||
_running = 1;
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface cocoaAppDelegate : NSObject
|
|
||||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation cocoaAppDelegate : NSObject
|
|
||||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
|
|
||||||
{
|
|
||||||
return NSTerminateCancel;
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
void cocoaGLCreateApp()
|
|
||||||
{
|
|
||||||
ProcessSerialNumber psn;
|
|
||||||
NSAutoreleasePool *pool;
|
|
||||||
|
|
||||||
if (!GetCurrentProcess(&psn)) {
|
|
||||||
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
|
|
||||||
SetFrontProcess(&psn);
|
|
||||||
}
|
|
||||||
|
|
||||||
pool = [[NSAutoreleasePool alloc] init];
|
|
||||||
|
|
||||||
if (NSApp == nil) {
|
|
||||||
[NSApplication sharedApplication];
|
|
||||||
//TODO : Create menu
|
|
||||||
[NSApp finishLaunching];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ([NSApp delegate] == nil) {
|
|
||||||
[NSApp setDelegate:[[cocoaAppDelegate alloc] init]];
|
|
||||||
}
|
|
||||||
|
|
||||||
[NSApp appRunning];
|
|
||||||
|
|
||||||
[pool release];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
NSWindow *cocoaGLCreateWindow(int w,int h)
|
NSWindow *cocoaGLCreateWindow(int w,int h)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue