/////////////////////////////////////////////////////////////////////////////
-// Name: mac/corefoundation/utilsexc_base.cpp
+// Name: src/osx/core/utilsexc_base.cpp
// Purpose: wxMacLaunch
// Author: Ryan Norton
// Modified by:
// Created: 2005-06-21
-// RCS-ID: $Id$
// Copyright: (c) Ryan Norton
// Licence: wxWindows licence
// Notes: Source was originally in utilsexc_cf.cpp,1.6 then moved
// More WX Includes
#include "wx/filename.h"
-#include "wx/mac/corefoundation/cfstring.h"
+#include "wx/osx/core/cfstring.h"
+#include "wx/osx/core/private.h"
// Default path style
#define kDefaultPathStyle kCFURLPOSIXPathStyle
+#if wxUSE_SOCKETS
+// global pointer which lives in the base library, set from the net one (see
+// sockosx.cpp) and used from the GUI code (see utilsexc_cf.cpp) -- ugly but
+// needed hack, see the above-mentioned files for more information
+class wxSocketManager;
+extern WXDLLIMPEXP_BASE wxSocketManager *wxOSXSocketManagerCF;
+wxSocketManager *wxOSXSocketManagerCF = NULL;
+#endif // wxUSE_SOCKETS
+
+#if ( !wxUSE_GUI && !wxOSX_USE_IPHONE ) || wxOSX_USE_COCOA_OR_CARBON
+
+// have a fast version for mac code that returns the version as a return value
+
+long UMAGetSystemVersion()
+{
+ static SInt32 sUMASystemVersion = 0 ;
+ if ( sUMASystemVersion == 0 )
+ {
+ verify_noerr(Gestalt(gestaltSystemVersion, &sUMASystemVersion));
+ }
+ return sUMASystemVersion ;
+}
+
+// our OS version is the same in non GUI and GUI cases
+wxOperatingSystemId wxGetOsVersion(int *majorVsn, int *minorVsn)
+{
+ // This returns 10 and 6 for OS X 10.6, consistent with behaviour on
+ // other platforms.
+ SInt32 maj, min;
+ Gestalt(gestaltSystemVersionMajor, &maj);
+ Gestalt(gestaltSystemVersionMinor, &min);
+
+ if ( majorVsn != NULL )
+ *majorVsn = maj;
+
+ if ( minorVsn != NULL )
+ *minorVsn = min;
+
+#if 0
+ SInt32 theSystem;
+ Gestalt(gestaltSystemVersion, &theSystem);
+
+ if ( majorVsn != NULL )
+ *majorVsn = (theSystem >> 8);
+
+ if ( minorVsn != NULL )
+ *minorVsn = (theSystem & 0xFF);
+#endif
+ return wxOS_MAC_OSX_DARWIN;
+}
+
+#include <sys/utsname.h>
+
+wxString wxGetOsDescription()
+{
+ struct utsname name;
+ uname(&name);
+ return wxString::Format(wxT("Mac OS X (%s %s %s)"),
+ wxString::FromAscii(name.sysname).c_str(),
+ wxString::FromAscii(name.release).c_str(),
+ wxString::FromAscii(name.machine).c_str());
+}
+
//===========================================================================
// IMPLEMENTATION
//===========================================================================
// Loop through command line arguments to the bundle,
// turn them into CFURLs and then put them in cfaFiles
// For use to launch services call
- for( ; *argv != NULL ; ++argv)
- {
+ for( ; *argv != NULL ; ++argv)
+ {
// Check for '<' as this will ring true for
// CFURLCreateWithString but is generally not considered
// typical on mac but is usually passed here from wxExecute
// Add the valid CFURL to the argument array and then
// release it as the CFArray adds a ref count to it
- CFArrayAppendValue(
- cfaFiles,
- cfurlCurrentFile
- );
- CFRelease(cfurlCurrentFile); // array has retained it
- }
+ CFArrayAppendValue(
+ cfaFiles,
+ cfurlCurrentFile
+ );
+ CFRelease(cfurlCurrentFile); // array has retained it
+ }
// Create a LSLaunchURLSpec for use with LSOpenFromURLSpec
// Note that there are several flag options (launchFlags) such
return true ;
}
+#endif // wxOSX_USE_COCOA_OR_CARBON