Revision: 3194
http://skim-app.svn.sourceforge.net/skim-app/?rev=3194&view=rev
Author: hofman
Date: 2007-11-11 02:42:50 -0800 (Sun, 11 Nov 2007)
Log Message:
-----------
Check system version at startup.
Modified Paths:
--------------
trunk/main.m
Modified: trunk/main.m
===================================================================
--- trunk/main.m 2007-11-11 01:27:17 UTC (rev 3193)
+++ trunk/main.m 2007-11-11 10:42:50 UTC (rev 3194)
@@ -9,8 +9,45 @@
//
#import <Cocoa/Cocoa.h>
+#import <Carbon/Carbon.h>
int main(int argc, char *argv[])
{
+ // Runtime check for system version
+ // - uses Carbon dialog since we don't have NSApp yet
+ // - uses Gestalt so we can check for a specific minor version (if it gets
this far, anyway)
+ // - Gestalt header says to read a plist, but mailing lists (and Ali Ozer)
say to avoid that
+ long version;
+ OSStatus err = Gestalt(gestaltSystemVersion, &version);
+
+ if (noErr != err || version < 0x00001040) {
+ DialogRef alert;
+
+ // pool required for NSLocalizedString
+ NSAutoreleasePool *pool = [NSAutoreleasePool new];
+
+ AlertStdCFStringAlertParamRec alertParamRec = {
+ kStdCFStringAlertVersionOne,
+ TRUE,
+ FALSE,
+ (CFStringRef)NSLocalizedString(@"Quit", @""),
+ NULL, // cancel button text
+ NULL, // other button text
+ kAlertStdAlertOKButton,
+ kAlertStdAlertCancelButton,
+ kWindowDefaultPosition,
+ 0
+ };
+
+ err = CreateStandardAlert(kAlertStopAlert,
(CFStringRef)NSLocalizedString(@"Unsupported System Version", @""),
(CFStringRef)NSLocalizedString(@"This version of Skim requires Mac OS X 10.4 or
greater to run.", @""), &alertParamRec, &alert);
+ DialogItemIndex idx;
+
+ if (noErr == err) {
+ // this will dispose of the alert (not that a leak is a big deal
at this point)
+ err = RunStandardAlert(alert, NULL, &idx);
+ }
+ [pool release];
+ return err;
+ }
return NSApplicationMain(argc, (const char **) argv);
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit