X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/489468feaa08b8f504735eecca522fb8d0f825d2..eea4d01c65f9b29baa1193db762b4c6b8144af24:/src/osx/core/utilsexc_base.cpp diff --git a/src/osx/core/utilsexc_base.cpp b/src/osx/core/utilsexc_base.cpp index 377b2464be..84f8a0e3a3 100644 --- a/src/osx/core/utilsexc_base.cpp +++ b/src/osx/core/utilsexc_base.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mac/corefoundation/utilsexc_base.cpp +// Name: src/osx/core/utilsexc_base.cpp // Purpose: wxMacLaunch // Author: Ryan Norton // Modified by: @@ -39,11 +39,81 @@ // 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 + +extern bool WXDLLEXPORT wxIsDebuggerRunning() +{ + // TODO : try to find out ... + return false; +} + +#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 + +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 //=========================================================================== @@ -134,8 +204,8 @@ bool wxMacLaunch(char **argv) // 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 @@ -187,12 +257,12 @@ bool wxMacLaunch(char **argv) // 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 @@ -227,3 +297,4 @@ bool wxMacLaunch(char **argv) return true ; } +#endif // wxOSX_USE_COCOA_OR_CARBON