git @ Cat's Eye Technologies linapple / master src / gui-osx / AlertHooks.m
master

Tree @master (Download .tar.gz)

AlertHooks.m @masterraw · history · blame

/*
  Hatari - AlertHooks.m

  This file is distributed under the GNU General Public License, version 2
  or at your option any later version. Read the file gpl.txt for details.

  Hooked alerts, to be used instead of SDL alert windows

  June 2006, Sébastien Molines - Created
*/

#import <Cocoa/Cocoa.h>
#import "AlertHooks.h"
#import "Shared.h"


/*-----------------------------------------------------------------------*/
/* Displays a Cocoa alert                                                */
/*************************************************************************/

int HookedAlertNotice(const char* szMessage)
{
	NSString *message ;
	NSRange  cantTOS, firstPv, lastPv ;

    
	message = [NSString stringWithCString:szMessage encoding:NSASCIIStringEncoding] ;
	//NSLog(@"Notice: %@", message ) ;
	cantTOS = [message rangeOfString:@"Can not load TOS file:"] ;
	firstPv = [message rangeOfString:@"'"] ;
	lastPv = [message rangeOfString:@"'" options:NSBackwardsSearch] ;

	if ((cantTOS.location == NSNotFound) || (firstPv.location==lastPv.location))                    // traitement normal
		return ([NSApp myAlerte:NSInformationalAlertStyle Txt:nil firstB:localize(@"Ok") alternateB:localize(@"Cancel") otherB:nil informativeTxt:message ] == NSAlertDefaultReturn );
	else																							// traitement can not load
		return ([NSApp myAlerte:NSCriticalAlertStyle Txt:nil firstB:localize(@"Ok") alternateB:nil otherB:nil informativeTxt:localize(@"Can not load TOS file:") ]  == NSAlertDefaultReturn) ;
}

/*-----------------------------------------------------------------------*/
/*
  Displays a Cocoa alert with a choice (OK and Cancel buttons)
*/
int HookedAlertQuery(const char* szMessage)
{
	NSString *message ;

	message = localize([NSString stringWithCString:szMessage encoding:NSASCIIStringEncoding]) ;
	return  [NSApp myAlerte:NSInformationalAlertStyle Txt:nil firstB:localize(@"Ok") alternateB:localize(@"Cancel")
        otherB:nil informativeTxt:message ] ;
}