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
* /
void ShowMacDialog ( const char * title , const char * message , const char * buttonLabel )
{
NSRunAlertPanel ( [ NSString stringWithCString : title ] , [ NSString stringWithCString : message ] , [ NSString stringWithCString : buttonLabel ] , nil , nil ) ;
}
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 ( ) ;
}