• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/include/wx/mac/corefoundation/
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: cfstring.h 40283 2006-07-24 18:01:39Z VZ $
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__
111