104 lines
3.6 KiB
C++
104 lines
3.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/osx/core/cfstring.h
|
|
// Purpose: wxCFStringRef and other string functions
|
|
// Author: Stefan Csomor
|
|
// Modified by:
|
|
// Created: 2004-10-29 (from code in wx/mac/carbon/private.h)
|
|
// Copyright: (c) Stefan Csomor
|
|
// Licence: wxWindows licence
|
|
// Usage: Darwin (base library)
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __WX_CFSTRINGHOLDER_H__
|
|
#define __WX_CFSTRINGHOLDER_H__
|
|
|
|
#include "wx/dlimpexp.h"
|
|
#include "wx/fontenc.h"
|
|
#include "wx/osx/core/cfref.h"
|
|
|
|
#ifdef WORDS_BIGENDIAN
|
|
#define kCFStringEncodingUTF32Native kCFStringEncodingUTF32BE
|
|
#else
|
|
#define kCFStringEncodingUTF32Native kCFStringEncodingUTF32LE
|
|
#endif
|
|
|
|
class WXDLLIMPEXP_FWD_BASE wxString;
|
|
|
|
WXDLLIMPEXP_BASE wxString wxMacConvertNewlines13To10(const wxString& data);
|
|
WXDLLIMPEXP_BASE wxString wxMacConvertNewlines10To13(const wxString& data);
|
|
|
|
WXDLLIMPEXP_BASE wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
|
|
WXDLLIMPEXP_BASE wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
|
|
WXDLLIMPEXP_BASE void wxMacWakeUp() ;
|
|
|
|
class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef >
|
|
{
|
|
public:
|
|
wxCFStringRef()
|
|
{
|
|
}
|
|
|
|
wxCFStringRef(const wxString &str,
|
|
wxFontEncoding encoding = wxFONTENCODING_DEFAULT) ;
|
|
|
|
#ifdef __OBJC__
|
|
wxCFStringRef(WX_NSString ref)
|
|
: wxCFRef< CFStringRef >((WX_OSX_BRIDGE_RETAINED CFStringRef) ref)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
wxCFStringRef(CFStringRef ref)
|
|
: wxCFRef< CFStringRef >(ref)
|
|
{
|
|
}
|
|
|
|
wxCFStringRef(const wxCFStringRef& otherRef )
|
|
: wxCFRef< CFStringRef >(otherRef)
|
|
{
|
|
}
|
|
|
|
~wxCFStringRef()
|
|
{
|
|
}
|
|
|
|
wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) const;
|
|
|
|
static wxString AsString( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
|
|
static wxString AsStringWithNormalizationFormC( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
|
|
#ifdef __WXMAC__
|
|
static wxString AsString( WX_NSString ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
|
|
static wxString AsStringWithNormalizationFormC( WX_NSString ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
|
|
#endif
|
|
#ifdef __OBJC__
|
|
WX_NSString AsNSString() const { return (WX_OSX_BRIDGE WX_NSString)(CFStringRef) *this; }
|
|
#endif
|
|
private:
|
|
} ;
|
|
|
|
/*! @function wxCFStringRefFromGet
|
|
@abstract Factory function to create wxCFStringRefRef from a CFStringRef obtained from a Get-rule function
|
|
@param p The CFStringRef to retain and create a wxCFStringRefRef from. May be NULL.
|
|
@discussion Unlike the wxCFStringRef raw pointer constructor, this function explicitly retains its
|
|
argument. This can be used for functions ) which return a temporary reference (Get-rule functions).
|
|
*/
|
|
inline wxCFStringRef wxCFStringRefFromGet(CFStringRef p)
|
|
{
|
|
return wxCFStringRef(wxCFRetain(p));
|
|
}
|
|
|
|
#ifdef __WXMAC__
|
|
/*! @function wxCFStringRefFromGet
|
|
@abstract Factory function to create wxCFStringRefRef from a NSString* obtained from a Get-rule function
|
|
@param p The NSString pointer to retain and create a wxCFStringRefRef from. May be NULL.
|
|
@discussion Unlike the wxCFStringRef raw pointer constructor, this function explicitly retains its
|
|
argument. This can be used for functions ) which return a temporary reference (Get-rule functions).
|
|
*/
|
|
inline wxCFStringRef wxCFStringRefFromGet(NSString *p)
|
|
{
|
|
return wxCFStringRefFromGet((WX_OSX_BRIDGE CFStringRef)p);
|
|
}
|
|
#endif
|
|
|
|
#endif //__WXCFSTRINGHOLDER_H__
|