X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/724ebdde8aab56457bd0bbfd5e3a576f90b48590..9a62fa17b1c342b5b1e1bb9b96373e170a9d8b6f:/include/wx/cocoa/string.h?ds=sidebyside diff --git a/include/wx/cocoa/string.h b/include/wx/cocoa/string.h index d9dde29d24..be1067101d 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.mb_str(wxConvUTF8)]; +#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.mb_str(wxConvUTF8)]; +#else return [nsstring initWithCString: wxstring.c_str() length:wxstring.Len()]; +#endif // wxUSE_UNICODE +} + +inline wxString wxStringWithNSString(NSString *nsstring) +{ +#if wxUSE_UNICODE + return wxString([nsstring UTF8String], wxConvUTF8); +#else + return wxString([nsstring lossyCString]); +#endif // wxUSE_UNICODE } #endif // __WX_COCOA_STRING_H__