git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63827
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
-#if wxOSX_USE_COCOA_OR_CARBON
bool wxApp::CallOnInit()
{
wxMacAutoreleasePool autoreleasepool;
bool wxApp::CallOnInit()
{
wxMacAutoreleasePool autoreleasepool;
return wxAppBase::ProcessIdle();
}
return wxAppBase::ProcessIdle();
}
-#if wxOSX_USE_COCOA_OR_CARBON
-
int wxApp::OnRun()
{
wxMacAutoreleasePool pool;
return wxAppBase::OnRun();
}
int wxApp::OnRun()
{
wxMacAutoreleasePool pool;
return wxAppBase::OnRun();
}
-#else
-
-// iPhone version in utils.mm
-
-#endif
-
#if wxOSX_USE_CARBON
bool wxApp::DoInitGui()
{
#if wxOSX_USE_CARBON
bool wxApp::DoInitGui()
{
-- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender;
+- (void)applicationWillFinishLaunching:(NSApplication *)sender;
+
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender;
- (BOOL)application:(NSApplication *)sender printFile:(NSString *)filename;
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;
- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender;
- (BOOL)application:(NSApplication *)sender printFile:(NSString *)filename;
-- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
- withReplyEvent:(NSAppleEventDescriptor *)replyEvent;
+ withReplyEvent:(NSAppleEventDescriptor *)replyEvent;
+
+- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender;
+- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
+- (void)applicationWillTerminate:(NSApplication *)sender;
@end
@implementation wxNSAppController
@end
@implementation wxNSAppController
-- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
-{
- wxUnusedVar(sender);
- // let wx do this, not cocoa
- return NO;
+- (void)applicationWillFinishLaunching:(NSApplication *)application {
+ wxUnusedVar(application);
+ wxTheApp->OnInit();
}
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;
}
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;
+- (BOOL)applicationShouldHandleReopen:(NSApplication *)sender hasVisibleWindows:(BOOL)flag
+{
+ wxUnusedVar(flag);
+ wxUnusedVar(sender);
+ wxTheApp->MacReopenApp() ;
+ return NO;
+}
+
+- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
+ withReplyEvent:(NSAppleEventDescriptor *)replyEvent
+{
+ wxUnusedVar(replyEvent);
+ NSString* url = [[event descriptorAtIndex:1] stringValue];
+ wxCFStringRef cf(wxCFRetain(url));
+ wxTheApp->MacOpenURL(cf.AsString()) ;
+}
+
/*
Allowable return values are:
NSTerminateNow - it is ok to proceed with termination
/*
Allowable return values are:
NSTerminateNow - it is ok to proceed with termination
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
wxUnusedVar(sender);
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
wxUnusedVar(sender);
- wxWindow* win = wxTheApp->GetTopWindow() ;
- if ( win )
- {
- wxCommandEvent exitEvent(wxEVT_COMMAND_MENU_SELECTED, wxApp::s_macExitMenuItemId);
- if (!win->GetEventHandler()->ProcessEvent(exitEvent))
- win->Close(true) ;
- }
- else
- {
- wxTheApp->ExitMainLoop() ;
- }
- return NSTerminateCancel;
+ wxCloseEvent event;
+ wxTheApp->OnQueryEndSession(event);
+ if ( event.GetVeto() )
+ return NSTerminateCancel;
+
+ return NSTerminateNow;
-- (BOOL)applicationShouldHandleReopen:(NSApplication *)sender hasVisibleWindows:(BOOL)flag
+- (void)applicationWillTerminate:(NSApplication *)application {
+ wxUnusedVar(application);
+ wxCloseEvent event;
+ event.SetCanVeto(false);
+ wxTheApp->OnEndSession(event);
+}
+
+- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
- wxTheApp->MacReopenApp() ;
+ // let wx do this, not cocoa
-- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event
- withReplyEvent:(NSAppleEventDescriptor *)replyEvent
-{
- wxUnusedVar(replyEvent);
- NSString* url = [[event descriptorAtIndex:1] stringValue];
- wxCFStringRef cf(wxCFRetain(url));
- wxTheApp->MacOpenURL(cf.AsString()) ;
-}
+bool wxApp::CallOnInit()
+{
+ if ( sm_isEmbedded )
+ return OnInit();
+
+ return true;
+}
+
bool wxApp::DoInitGui()
{
wxMacAutoreleasePool pool;
bool wxApp::DoInitGui()
{
wxMacAutoreleasePool pool;
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:controller andSelector:@selector(handleGetURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:controller andSelector:@selector(handleGetURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
- [NSApp finishLaunching];