mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
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 "PowerPC/PowerPC.h"
|
||||
|
||||
#if defined(HAVE_COCOA) && HAVE_COCOA
|
||||
#include "cocoaApp.h"
|
||||
#endif
|
||||
|
||||
#include "BootManager.h"
|
||||
void* g_pCodeWindow = NULL;
|
||||
void* main_frame = NULL;
|
||||
@ -86,11 +90,28 @@ void Host_UpdateStatus()
|
||||
|
||||
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().
|
||||
#if defined(USE_SDL) && USE_SDL
|
||||
#include <SDL.h>
|
||||
#endif
|
||||
int main(int argc, char* argv[])
|
||||
#endif
|
||||
{
|
||||
gengetopt_args_info args_info;
|
||||
|
||||
|
@ -44,13 +44,29 @@ if wxenv['HAVE_WX']:
|
||||
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':
|
||||
exeGUI = env['binary_dir'] + 'Dolphin.app/Contents/MacOS/Dolphin'
|
||||
|
11
Source/Core/DolphinWX/Src/cocoaApp.h
Normal file
11
Source/Core/DolphinWX/Src/cocoaApp.h
Normal file
@ -0,0 +1,11 @@
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
void cocoaCreateApp();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
49
Source/Core/DolphinWX/Src/cocoaApp.m
Normal file
49
Source/Core/DolphinWX/Src/cocoaApp.m
Normal file
@ -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"
|
||||
|
||||
if not env['HAVE_X11']:
|
||||
print name + " must have X11 to be built"
|
||||
Return()
|
||||
if not env['HAVE_COCOA']:
|
||||
print name + " must have X11 to be built"
|
||||
Return()
|
||||
|
||||
if env['GLTEST']:
|
||||
print name + " Doesn't work with testgl"
|
||||
Return()
|
||||
|
||||
|
||||
files = [
|
||||
"PadSimple.cpp",
|
||||
]
|
||||
padenv = env.Clone()
|
||||
|
||||
|
||||
if padenv['HAVE_COCOA']:
|
||||
compileFlags = [
|
||||
'-x',
|
||||
'objective-c++',
|
||||
]
|
||||
|
||||
if padenv['HAVE_WX']:
|
||||
files += [
|
||||
"GUI/ConfigDlg.cpp",
|
||||
|
@ -230,7 +230,6 @@ bool OpenGL_Create(SVideoInitialize &_VideoInitialize, int _iwidth, int _iheight
|
||||
//setup ogl to use double buffering
|
||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||
#elif defined(HAVE_COCOA) && HAVE_COCOA
|
||||
cocoaGLCreateApp();
|
||||
GLWin.width = nBackbufferWidth;
|
||||
GLWin.height = nBackbufferHeight;
|
||||
GLWin.cocoaWin = cocoaGLCreateWindow(GLWin.width, GLWin.height);
|
||||
|
@ -1,52 +1,5 @@
|
||||
#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)
|
||||
{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user