]> git.saurik.com Git - wxWidgets.git/blob - include/wx/mac/corefoundation/cfstring.h
don't use untyped wxList in wxXmlResource
[wxWidgets.git] / include / wx / mac / corefoundation / cfstring.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/mac/corefoundation/cfstring.h
3 // Purpose: wxMacCFStringHolder 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 // RCS-ID: $Id$
8 // Copyright: (c) Stefan Csomor
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef __WX_CFSTRINGHOLDER_H__
13 #define __WX_CFSTRINGHOLDER_H__
14
15 #ifdef __DARWIN__
16 #include <CoreFoundation/CFString.h>
17 #else
18 #include <CFString.h>
19 #endif
20
21 #include "wx/fontenc.h"
22
23 class WXDLLIMPEXP_BASE wxString;
24
25 void wxMacConvertNewlines13To10( char * data ) ;
26 void wxMacConvertNewlines10To13( char * data ) ;
27 void wxMacConvertNewlines13To10( wxString *data ) ;
28 void wxMacConvertNewlines10To13( wxString *data ) ;
29
30 #if wxUSE_UNICODE
31 void wxMacConvertNewlines13To10( wxChar * data ) ;
32 void wxMacConvertNewlines10To13( wxChar * data ) ;
33 #endif
34
35 wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
36 wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
37 void wxMacWakeUp() ;
38
39 class wxMacCFStringHolder
40 {
41 public:
42 wxMacCFStringHolder()
43 : m_cfs(NULL) , m_release(false)
44 {
45 }
46
47 wxMacCFStringHolder(const wxString &str,
48 wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
49 : m_cfs(NULL) , m_release(false)
50 {
51 Assign( str , encoding ) ;
52 }
53
54 wxMacCFStringHolder(CFStringRef ref , bool release = true )
55 : m_cfs(ref) , m_release(release)
56 {
57 }
58
59 ~wxMacCFStringHolder()
60 {
61 Release() ;
62 }
63
64 CFStringRef Detach()
65 {
66 CFStringRef retval = m_cfs ;
67 m_release = false ;
68 m_cfs = NULL ;
69 return retval ;
70 }
71
72 void Release()
73 {
74 if ( m_release && m_cfs)
75 CFRelease( m_cfs ) ;
76 m_cfs = NULL ;
77 }
78
79 void Assign(const wxString &str,
80 wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
81
82 operator CFStringRef () const { return m_cfs; }
83 wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
84
85 private:
86
87 CFStringRef m_cfs;
88 bool m_release ;
89
90 DECLARE_NO_COPY_CLASS( wxMacCFStringHolder )
91 } ;
92
93 // corresponding class for holding UniChars (native unicode characters)
94
95 class wxMacUniCharBuffer
96 {
97 public :
98 wxMacUniCharBuffer( const wxString &str ) ;
99
100 ~wxMacUniCharBuffer() ;
101
102 UniChar* GetBuffer() ;
103
104 UniCharCount GetChars() ;
105
106 private :
107 UniChar* m_ubuf ;
108 UniCharCount m_chars ;
109 };
110 #endif //__WXCFSTRINGHOLDER_H__