1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/osx/core/cfstring.h 3 // Purpose: wxCFStringRef and other string functions 4 // Author: Stefan Csomor 5 // Modified by: 6 // Created: 2004-10-29 (from code in wx/mac/carbon/private.h) 7 // Copyright: (c) Stefan Csomor 8 // Licence: wxWindows licence 9 // Usage: Darwin (base library) 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef __WX_CFSTRINGHOLDER_H__ 13 #define __WX_CFSTRINGHOLDER_H__ 14 15 #include <CoreFoundation/CFString.h> 16 17 #include "wx/dlimpexp.h" 18 #include "wx/fontenc.h" 19 #include "wx/osx/core/cfref.h" 20 21 #ifdef WORDS_BIGENDIAN 22 #define kCFStringEncodingUTF32Native kCFStringEncodingUTF32BE 23 #else 24 #define kCFStringEncodingUTF32Native kCFStringEncodingUTF32LE 25 #endif 26 27 class WXDLLIMPEXP_FWD_BASE wxString; 28 29 WXDLLIMPEXP_BASE void wxMacConvertNewlines13To10( wxString *data ) ; 30 WXDLLIMPEXP_BASE void wxMacConvertNewlines10To13( wxString *data ) ; 31 32 WXDLLIMPEXP_BASE void wxMacConvertNewlines13To10( char * data ) ; 33 WXDLLIMPEXP_BASE void wxMacConvertNewlines10To13( char * data ) ; 34 35 WXDLLIMPEXP_BASE wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ; 36 WXDLLIMPEXP_BASE wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ; 37 WXDLLIMPEXP_BASE void wxMacWakeUp() ; 38 39 class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef > 40 { 41 public: wxCFStringRef()42 wxCFStringRef() 43 { 44 } 45 46 wxCFStringRef(const wxString &str, 47 wxFontEncoding encoding = wxFONTENCODING_DEFAULT) ; 48 49 #if wxOSX_USE_COCOA_OR_IPHONE wxCFStringRef(NSString * ref)50 wxCFStringRef(NSString* ref) 51 : wxCFRef< CFStringRef >((CFStringRef) ref) 52 { 53 } 54 #endif 55 wxCFStringRef(CFStringRef ref)56 wxCFStringRef(CFStringRef ref) 57 : wxCFRef< CFStringRef >(ref) 58 { 59 } 60 wxCFStringRef(const wxCFStringRef & otherRef)61 wxCFStringRef(const wxCFStringRef& otherRef ) 62 : wxCFRef< CFStringRef >(otherRef) 63 { 64 } 65 ~wxCFStringRef()66 ~wxCFStringRef() 67 { 68 } 69 70 wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) const; 71 72 static wxString AsString( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; 73 static wxString AsStringWithNormalizationFormC( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; 74 #if wxOSX_USE_COCOA_OR_IPHONE 75 static wxString AsString( NSString* ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; 76 static wxString AsStringWithNormalizationFormC( NSString* ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; 77 #endif 78 79 #if wxOSX_USE_COCOA_OR_IPHONE AsNSString()80 NSString* AsNSString() const { return (NSString*)(CFStringRef) *this; } 81 #endif 82 private: 83 } ; 84 85 // corresponding class for holding UniChars (native unicode characters) 86 87 class WXDLLIMPEXP_BASE wxMacUniCharBuffer 88 { 89 public : 90 wxMacUniCharBuffer( const wxString &str ) ; 91 92 ~wxMacUniCharBuffer() ; 93 94 UniCharPtr GetBuffer() ; 95 96 UniCharCount GetChars() ; 97 98 private : 99 UniCharPtr m_ubuf ; 100 UniCharCount m_chars ; 101 }; 102 #endif //__WXCFSTRINGHOLDER_H__ 103