/*@DISCLAIMER@*/ // $Id$ #import "SheetRunner.h" @interface SheetRunner (PrivateAPI) + (id)defaultRunner; - (int)runSheet:(NSWindow *)sheet modalForWindow:(NSWindow *)docWindow; @end @implementation SheetRunner + (id)defaultRunner { static id defaultRunner = nil; if(defaultRunner == nil) defaultRunner = [[self alloc] init]; return defaultRunner; } + (int)runSheet:(NSWindow *)sheet modalForWindow:(NSWindow *)docWindow { return [[self defaultRunner] runSheet:sheet modalForWindow:docWindow]; } - (int)runSheet:(NSWindow *)sheet modalForWindow:(NSWindow *)docWindow { int rc; [NSApp beginSheet:sheet modalForWindow:docWindow modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:NULL]; rc = [NSApp runModalForWindow:sheet]; [sheet orderOut:self]; return rc; } - (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)context { [NSApp stopModalWithCode:returnCode]; } @end int RunSheetModalForWindow(NSWindow *sheet, NSWindow *window) { return [[SheetRunner defaultRunner] runSheet:sheet modalForWindow:window]; }