]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/mac/corefoundation/cfstring.h
Updated wxPallete information.
[wxWidgets.git] / include / wx / mac / corefoundation / cfstring.h
... / ...
CommitLineData
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
23class WXDLLIMPEXP_BASE wxString;
24
25void wxMacConvertNewlines13To10( char * data ) ;
26void wxMacConvertNewlines10To13( char * data ) ;
27void wxMacConvertNewlines13To10( wxString *data ) ;
28void wxMacConvertNewlines10To13( wxString *data ) ;
29
30#if wxUSE_UNICODE
31void wxMacConvertNewlines13To10( wxChar * data ) ;
32void wxMacConvertNewlines10To13( wxChar * data ) ;
33#endif
34
35wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
36wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
37void wxMacWakeUp() ;
38
39class wxMacCFStringHolder
40{
41public:
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
85private:
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
95class wxMacUniCharBuffer
96{
97public :
98 wxMacUniCharBuffer( const wxString &str ) ;
99
100 ~wxMacUniCharBuffer() ;
101
102 UniChar* GetBuffer() ;
103
104 UniCharCount GetChars() ;
105
106private :
107 UniChar* m_ubuf ;
108 UniCharCount m_chars ;
109};
110#endif //__WXCFSTRINGHOLDER_H__