X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c958260b3886cb83aa93c7508d0986c6433ce165..e5ee4c908b9dbcf07f0441aa74d8635b7343be4d:/include/wx/encconv.h diff --git a/include/wx/encconv.h b/include/wx/encconv.h index ea44123207..9e67c21141 100644 --- a/include/wx/encconv.h +++ b/include/wx/encconv.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: encconv.h +// Name: wx/encconv.h // Purpose: wxEncodingConverter class for converting between different // font encodings // Author: Vaclav Slavik @@ -7,36 +7,47 @@ // Licence: wxWindows Licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __ENCCONV_H__ -#define __ENCCONV_H__ +#ifndef _WX_ENCCONV_H_ +#define _WX_ENCCONV_H_ #ifdef __GNUG__ #pragma interface "encconv.h" #endif #include "wx/defs.h" -#include "wx/font.h" -#include "wx/dynarray.h" +#if wxUSE_FONTMAP + +#include "wx/object.h" +#include "wx/fontenc.h" +#include "wx/dynarray.h" +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- -enum { +enum +{ wxCONVERT_STRICT, wxCONVERT_SUBSTITUTE }; -enum { +enum +{ wxPLATFORM_CURRENT = -1, - + wxPLATFORM_UNIX = 0, wxPLATFORM_WINDOWS, wxPLATFORM_OS2, - wxPLATFORM_MAC, + wxPLATFORM_MAC }; -WX_DEFINE_ARRAY(wxFontEncoding, wxFontEncodingArray); +// ---------------------------------------------------------------------------- +// types +// ---------------------------------------------------------------------------- +WX_DEFINE_ARRAY(wxFontEncoding, wxFontEncodingArray); //-------------------------------------------------------------------------------- // wxEncodingConverter @@ -47,28 +58,28 @@ WX_DEFINE_ARRAY(wxFontEncoding, wxFontEncodingArray); class WXDLLEXPORT wxEncodingConverter : public wxObject { public: - + wxEncodingConverter(); ~wxEncodingConverter() { if (m_Table) delete[] m_Table; } - + // Initialize convertion. Both output or input encoding may - // be wxFONTENCODING_UNICODE, but only if wxUSE_ENCODING is set to 1. + // be wxFONTENCODING_UNICODE, but only if wxUSE_WCHAR_T is set to 1. // // All subsequent calls to Convert() will interpret it's argument // as a string in input_enc encoding and will output string in // output_enc encoding. // - // You must call this method before calling Convert. You may call + // You must call this method before calling Convert. You may call // it more than once in order to switch to another conversion // // Method affects behaviour of Convert() in case input character // cannot be converted because it does not exist in output encoding: - // wxCONVERT_STRICT -- - // follow behaviour of GNU Recode - just copy unconvertable - // characters to output and don't change them (it's integer + // wxCONVERT_STRICT -- + // follow behaviour of GNU Recode - just copy unconvertable + // characters to output and don't change them (it's integer // value will stay the same) // wxCONVERT_SUBSTITUTE -- - // try some (lossy) substitutions - e.g. replace + // try some (lossy) substitutions - e.g. replace // unconvertable latin capitals with acute by ordinary // capitals, replace en-dash or em-dash by '-' etc. // both modes gurantee that output string will have same length @@ -79,13 +90,19 @@ class WXDLLEXPORT wxEncodingConverter : public wxObject // to Unicode with non-Unicode build of wxWindows or if input // or output encoding is not supported.) bool Init(wxFontEncoding input_enc, wxFontEncoding output_enc, int method = wxCONVERT_STRICT); - + // Convert input string according to settings passed to Init. // Note that you must call Init before using Convert! + void Convert(const char* input, char* output); + void Convert(char* str) { Convert(str, str); } wxString Convert(const wxString& input); - void Convert(const wxChar* input, wxChar* output); - void Convert(wxChar* str) { Convert(str, str); } - + +#if wxUSE_WCHAR_T + void Convert(const char* input, wchar_t* output); + void Convert(const wchar_t* input, char* output); + void Convert(const wchar_t* input, wchar_t* output); + void Convert(wchar_t* str) { Convert(str, str); } +#endif // Return equivalent(s) for given font that are used // under given platform. wxPLATFORM_CURRENT means the plaform // this binary was compiled for @@ -103,8 +120,8 @@ class WXDLLEXPORT wxEncodingConverter : public wxObject // that you loose special chars like quotation marks or em-dashes // but you shouldn't loose any diacritics and language-specific // characters when converting between equivalent encodings). - // - // Convert() method is not limited to converting between + // + // Convert() method is not limited to converting between // equivalent encodings, it can convert between arbitrary // two encodings! // @@ -117,34 +134,22 @@ class WXDLLEXPORT wxEncodingConverter : public wxObject // encoding is native for this platform or not) static wxFontEncodingArray GetPlatformEquivalents(wxFontEncoding enc, int platform = wxPLATFORM_CURRENT); - // Similar to GetPlatformEquivalent, but this one will return ALL + // Similar to GetPlatformEquivalent, but this one will return ALL // equivalent encodings, regardless the platform, including itself. static wxFontEncodingArray GetAllEquivalents(wxFontEncoding enc); private: - - wxChar *m_Table; - bool m_UnicodeInput; - bool m_JustCopy; - -}; - - -#endif // __ENCCONV_H__ - - - - - - - - - - - - - +#if wxUSE_WCHAR_T + wchar_t *m_Table; +#else + char *m_Table; +#endif + bool m_UnicodeInput, m_UnicodeOutput; + bool m_JustCopy; +}; +#endif // wxUSE_FONTMAP +#endif // _WX_ENCCONV_H_