2005-07-24 20:47:42 +00:00
# include < AppKit / AppKit . h >
/ *
* This file contains objective C
* Apple uses objective C instead of plain C to interact with OS specific / native functions
*
* Note : TrueLight ' s crosscompiler can handle this , but it likely needs a manual modification for each change in this file .
* To insure that the crosscompiler still works , let him try any changes before they are committed
* /
2006-01-06 21:27:44 +00:00
# ifdef WITH_SDL
2005-07-24 20:47:42 +00:00
void ShowMacDialog ( const char * title , const char * message , const char * buttonLabel )
{
NSRunAlertPanel ( [ NSString stringWithCString : title ] , [ NSString stringWithCString : message ] , [ NSString stringWithCString : buttonLabel ] , nil , nil ) ;
}
2006-01-06 21:27:44 +00:00
# elif defined WITH_COCOA
void CocoaDialog ( const char * title , const char * message , const char * buttonLabel ) ;
void ShowMacDialog ( const char * title , const char * message , const char * buttonLabel )
{
CocoaDialog ( title , message , buttonLabel ) ;
}
# else
void ShowMacDialog ( const char * title , const char * message , const char * buttonLabel )
{
fprintf ( stderr , "%s: %s\n" , title , message ) ;
}
# endif
2005-07-28 21:47:41 +00:00
void ShowMacAssertDialog ( const char * function , const char * file , const int line , const char * expression )
{
2005-12-10 11:16:45 +00:00
const char * buffer =
2005-07-28 21:47:41 +00:00
[ [ NSString stringWithFormat : @ "An assertion has failed and OpenTTD must quit.\n%s in %s (line %d)\n\" % s \ "\n\nYou should report this error the OpenTTD developers if you think you found a bug." ,
2005-12-10 23:03:59 +00:00
function , file , line , expression ] cString ] ;
2005-07-28 21:47:41 +00:00
NSLog ( @ "%s" , buffer ) ;
ShowMacDialog ( "Assertion Failed" , buffer , "Quit" ) ;
2005-12-10 11:16:45 +00:00
2005-07-28 21:47:41 +00:00
// abort so that a debugger has a chance to notice
abort ( ) ;
}