diff options
| author | Manolo Gouy <Manolo> | 2014-09-13 14:18:34 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2014-09-13 14:18:34 +0000 |
| commit | 6482acf15af45104a25d1bbec49bc51ea1f80d6c (patch) | |
| tree | 7ecd765093787905d5931e550713d514f388ade2 | |
| parent | 952369163f5fcaf1978d4d6b25c84542148a3b63 (diff) | |
Allow compilation with SDK 10.10 and use new API to identify OS version at runtime.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10304 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | src/Fl_cocoa.mm | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 06f801e64..6d1e801dc 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -1401,7 +1401,7 @@ void fl_open_display() { if (need_new_nsapp) [NSApplication sharedApplication]; NSAutoreleasePool *localPool; localPool = [[NSAutoreleasePool alloc] init]; // never released - [NSApp setDelegate:[[FLAppDelegate alloc] init]]; + [(NSApplication*)NSApp setDelegate:[[FLAppDelegate alloc] init]]; if (need_new_nsapp) [NSApp finishLaunching]; // empty the event queue but keep system events for drag&drop of files at launch @@ -3870,9 +3870,17 @@ void *Fl_X::get_carbon_function(const char *function_name) { static int calc_mac_os_version() { int M, m, b = 0; NSAutoreleasePool *localPool = [[NSAutoreleasePool alloc] init]; - NSDictionary * sv = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"]; - const char *s = [[sv objectForKey:@"ProductVersion"] UTF8String]; - sscanf(s, "%d.%d.%d", &M, &m, &b); + if ([NSProcessInfo instancesRespondToSelector:@selector(operatingSystemVersion)]) { + NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion]; + M = version.majorVersion; + m = version.minorVersion; + b = version.patchVersion; + } + else { + NSDictionary * sv = [NSDictionary dictionaryWithContentsOfFile:@"/System/Library/CoreServices/SystemVersion.plist"]; + const char *s = [[sv objectForKey:@"ProductVersion"] UTF8String]; + sscanf(s, "%d.%d.%d", &M, &m, &b); + } [localPool release]; return M*10000 + m*100 + b; } |
