Implement wxCheckOsVersion() with NSProccessInfo on OS X.

Since OS X 10.10 NSProcessInfo has a method isOperatingSystemAtLeastVersion: which should be used compare the OS version if necessary.
This commit is contained in:
Tobias Taschner
2015-08-07 15:49:52 +02:00
parent 411027d5b4
commit 3250bae3a2
2 changed files with 24 additions and 2 deletions

View File

@@ -650,6 +650,28 @@ wxOperatingSystemId wxGetOsVersion(int *majorVsn, int *minorVsn)
return wxOS_MAC_OSX_DARWIN; return wxOS_MAC_OSX_DARWIN;
} }
bool wxCheckOsVersion(int majorVsn, int minorVsn)
{
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_10
if ([NSProcessInfo instancesRespondToSelector:@selector(isOperatingSystemAtLeastVersion:)])
{
NSOperatingSystemVersion osVer;
osVer.majorVersion = majorVsn;
osVer.minorVersion = minorVsn;
osVer.patchVersion = 0;
return [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:osVer] != NO;
}
else
#endif
{
int majorCur, minorCur;
wxGetOsVersion(&majorCur, &minorCur);
return majorCur > majorVsn || (majorCur == majorVsn && minorCur >= minorVsn);
}
}
wxString wxGetOsDescription() wxString wxGetOsDescription()
{ {
NSString* osDesc = [NSProcessInfo processInfo].operatingSystemVersionString; NSString* osDesc = [NSProcessInfo processInfo].operatingSystemVersionString;

View File

@@ -1148,8 +1148,6 @@ wxString wxGetOsDescription()
return wxGetCommandOutput(wxT("uname -s -r -m")); return wxGetCommandOutput(wxT("uname -s -r -m"));
} }
#endif // !__DARWIN__
bool wxCheckOsVersion(int majorVsn, int minorVsn) bool wxCheckOsVersion(int majorVsn, int minorVsn)
{ {
int majorCur, minorCur; int majorCur, minorCur;
@@ -1158,6 +1156,8 @@ bool wxCheckOsVersion(int majorVsn, int minorVsn)
return majorCur > majorVsn || (majorCur == majorVsn && minorCur >= minorVsn); return majorCur > majorVsn || (majorCur == majorVsn && minorCur >= minorVsn);
} }
#endif // !__DARWIN__
unsigned long wxGetProcessId() unsigned long wxGetProcessId()
{ {
return (unsigned long)getpid(); return (unsigned long)getpid();