X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/724ebdde8aab56457bd0bbfd5e3a576f90b48590..d8efd2198ff050ca5a5726bcad0f42692fe872df:/include/wx/cocoa/string.h diff --git a/include/wx/cocoa/string.h b/include/wx/cocoa/string.h index d9dde29d24..e578e0381e 100644 --- a/include/wx/cocoa/string.h +++ b/include/wx/cocoa/string.h @@ -15,16 +15,39 @@ #import #include "wx/string.h" +// FIXME: In unicode mode we are doing the conversion twice. wxString +// converts to UTF-8 and NSString converts from UTF-8. +// One possible optimization is to convert to the wxString internal +// representation which is an unsigned short (unichar) but unfortunately +// there is little documentation on which encoding it uses by default. + // Return an autoreleased NSString inline NSString* wxNSStringWithWxString(const wxString &wxstring) { +#if wxUSE_UNICODE + return [NSString stringWithUTF8String: wxstring.utf8_str()]; +#else return [NSString stringWithCString: wxstring.c_str() length:wxstring.Len()]; +#endif // wxUSE_UNICODE } // Intialize an NSString which has already been allocated inline NSString* wxInitNSStringWithWxString(NSString *nsstring, const wxString &wxstring) { +#if wxUSE_UNICODE + return [nsstring initWithUTF8String: wxstring.utf8_str()]; +#else return [nsstring initWithCString: wxstring.c_str() length:wxstring.Len()]; +#endif // wxUSE_UNICODE +} + +inline wxString wxStringWithNSString(NSString *nsstring) +{ +#if wxUSE_UNICODE + return wxString::FromUTF8Unchecked([nsstring UTF8String]); +#else + return wxString([nsstring lossyCString]); +#endif // wxUSE_UNICODE } #endif // __WX_COCOA_STRING_H__