Migrated the Mac OS X delegate code to the new API.
This commit is contained in:
parent
c807771092
commit
dff7ed3321
|
@ -24,9 +24,11 @@ func makeAppDelegate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
//export appDelegate_windowShouldClose
|
//export appDelegate_windowShouldClose
|
||||||
func appDelegate_windowShouldClose(win C.id) {
|
func appDelegate_windowShouldClose(win C.id) C.BOOL {
|
||||||
sysData := getSysData(win)
|
sysData := getSysData(win)
|
||||||
sysData.signal()
|
b := false // TODO
|
||||||
|
sysData.close(&b)
|
||||||
|
return toBOOL(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
//export appDelegate_windowDidResize
|
//export appDelegate_windowDidResize
|
||||||
|
@ -42,13 +44,5 @@ func appDelegate_windowDidResize(win C.id) {
|
||||||
//export appDelegate_buttonClicked
|
//export appDelegate_buttonClicked
|
||||||
func appDelegate_buttonClicked(button C.id) {
|
func appDelegate_buttonClicked(button C.id) {
|
||||||
sysData := getSysData(button)
|
sysData := getSysData(button)
|
||||||
sysData.signal()
|
sysData.event()
|
||||||
}
|
|
||||||
|
|
||||||
//export appDelegate_applicationShouldTerminate
|
|
||||||
func appDelegate_applicationShouldTerminate() {
|
|
||||||
// asynchronous so as to return control to the event loop
|
|
||||||
go func() {
|
|
||||||
AppQuit <- struct{}{}
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,8 +63,7 @@ extern NSRect dummyRect;
|
||||||
|
|
||||||
- (BOOL)windowShouldClose:(id)win
|
- (BOOL)windowShouldClose:(id)win
|
||||||
{
|
{
|
||||||
appDelegate_windowShouldClose(win);
|
return appDelegate_windowShouldClose(win);
|
||||||
return NO; // don't close
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)windowDidResize:(NSNotification *)n
|
- (void)windowDidResize:(NSNotification *)n
|
||||||
|
@ -79,8 +78,18 @@ extern NSRect dummyRect;
|
||||||
|
|
||||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)app
|
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)app
|
||||||
{
|
{
|
||||||
appDelegate_applicationShouldTerminate();
|
NSArray *windows;
|
||||||
|
NSUInteger i;
|
||||||
|
|
||||||
|
// try to close all windows
|
||||||
|
windows = [NSApp windows];
|
||||||
|
for (i = 0; i < [windows count]; i++)
|
||||||
|
[[windows objectAtIndex:i] performClose:self];
|
||||||
|
// if any windows are left, cancel
|
||||||
|
if ([[NSApp windows] count] != 0)
|
||||||
return NSTerminateCancel;
|
return NSTerminateCancel;
|
||||||
|
// no windows are left; we're good
|
||||||
|
return NSTerminateNow;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)chan
|
- (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)chan
|
||||||
|
|
Loading…
Reference in New Issue