File: programming/cocoa/UKSyntaxColoredTextDocument.zip/UKSyntaxColoredTextDocument/UKTextDocGoToBox.m


#import "UKTextDocGoToBox.h"
 
@implementation UKTextDocGoToBox
 
// -----------------------------------------------------------------------------
//	showGoToSheet:
//		Show the "go to line/character" sheet on the specified window. This will
//		return immediately and you should just ignore its existence until the
//		user closes it, at which point targetDocument will get a goToLine: or
//		goToChar message.
//
//	REVISIONS:
//		2004-05-18	witness	Documented.
// -----------------------------------------------------------------------------
 
-(IBAction) showGoToSheet: (NSWindow*)owner
{
	[[NSApplication sharedApplication] beginSheet:goToPanel modalForWindow:owner modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:nil];
}
 
 
// -----------------------------------------------------------------------------
//	hideGoToSheet:
//		Called by the "Cancel" and "OK" buttons to close the sheet once they're
//		done.
//
//	REVISIONS:
//		2004-05-18	witness	Documented.
// -----------------------------------------------------------------------------
 
-(IBAction) hideGoToSheet: (id)sender
{
	[[NSApplication sharedApplication] endSheet: goToPanel];
}
 
 
// -----------------------------------------------------------------------------
//	sheetDidEnd:
//		Called when endSheet has been called on our sheet to actually unmap
//		the window.
//
//	REVISIONS:
//		2004-05-18	witness	Documented.
// -----------------------------------------------------------------------------
 
-(void) sheetDidEnd: (NSWindow*)sheet returnCode: (int)returnCode contextInfo: (void*)contextInfo
{
	[sheet orderOut: nil];
}
 
 
// -----------------------------------------------------------------------------
//	goToLineOrChar:
//		Button action for the "OK" button. This sends the target document the
//		proper goToLine: or goToChar: message and then calls hideGoToSheet: to
//		close the sheet.
//
//	REVISIONS:
//		2004-05-18	witness	Documented.
// -----------------------------------------------------------------------------
 
-(IBAction) goToLineOrChar:(id)sender
{
	int		num;
	
	num = [lineNumField intValue];
	
	if( [lineCharChooser selectedRow] == 0 )
		[targetDocument goToLine: num];
	else
		[targetDocument goToCharacter: num];
	
	[self hideGoToSheet: sender];
}
 
@end

This code uses the PclZip Zip File reading code, which is subject to the GNU LGPL. It also uses the GeSHi syntax highlighter, subject to the GPL. Ask if you want this for your own web site, it's free.