More helpful Unicode stuff.
Conversion classes are now: wxConv_libc (standard mbstowcs/wcstombs) wxConv_file (usually same as above, but I think some Asian locales use different encoding systems on the filenames than on the contents of the files) wxConv_UTF7 (7-bit Unicode encoding (similar to BASE64), for email etc, not implemented yet) wxConv_UTF8 (8-bit Unicode encoding, not implemented yet, just uses mbstowcs/wcstombs, which just happens to be UTF-8 in glibc2) wxConv_gdk (gdk_mbstowcs/gdk_wcstombs, not too useful) wxConv_local (current 8-bit character set, from LANG env var) wxConv_current: pointer to conversion class. Points by default to wxConv_local, but it's meant to be able to be redirected by the user (and wxGTK can point it at wxConv_UTF8 if it manages to set the UTF-8 locale). mbc_str() returns mb_str(*wxConv_current) for convenience. I will use mbc_str() in my upcoming wxGTK adaption. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -58,7 +58,7 @@ void name::Empty() \
|
|||||||
\
|
\
|
||||||
void name::Remove(size_t uiIndex) \
|
void name::Remove(size_t uiIndex) \
|
||||||
{ \
|
{ \
|
||||||
wxCHECK_RET( uiIndex < Count(), "bad index in " #name "::Remove()" ); \
|
wxCHECK_RET( uiIndex < Count(), _T("bad index in " #name "::Remove()") ); \
|
||||||
\
|
\
|
||||||
delete (T*)wxBaseArray::Item(uiIndex); \
|
delete (T*)wxBaseArray::Item(uiIndex); \
|
||||||
\
|
\
|
||||||
|
@@ -216,10 +216,11 @@ WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConv_UTF8)) wxConv_UTF8;
|
|||||||
WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConv_gdk)) wxConv_gdk;
|
WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConv_gdk)) wxConv_gdk;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
class wxCharacterSet;
|
||||||
class WXDLLEXPORT wxCSConv : public wxMBConv
|
class WXDLLEXPORT wxCSConv : public wxMBConv
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
wxChar *data;
|
wxCharacterSet *cset;
|
||||||
public:
|
public:
|
||||||
wxCSConv(const wxChar *charset);
|
wxCSConv(const wxChar *charset);
|
||||||
virtual ~wxCSConv(void);
|
virtual ~wxCSConv(void);
|
||||||
@@ -227,6 +228,10 @@ class WXDLLEXPORT wxCSConv : public wxMBConv
|
|||||||
virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;
|
virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
WXDLLEXPORT_DATA(extern wxCSConv) wxConv_local;
|
||||||
|
|
||||||
|
WXDLLEXPORT_DATA(extern wxMBConv *) wxConv_current;
|
||||||
|
|
||||||
// filenames are multibyte on Unix and probably widechar on Windows?
|
// filenames are multibyte on Unix and probably widechar on Windows?
|
||||||
#ifdef __UNIX__
|
#ifdef __UNIX__
|
||||||
#define wxMBFILES 1
|
#define wxMBFILES 1
|
||||||
@@ -450,6 +455,8 @@ public:
|
|||||||
const wxWCharBuffer wc_str(wxMBConv& conv) const { return conv.cMB2WC(m_pchData); }
|
const wxWCharBuffer wc_str(wxMBConv& conv) const { return conv.cMB2WC(m_pchData); }
|
||||||
const wxChar* fn_str() const { return m_pchData; }
|
const wxChar* fn_str() const { return m_pchData; }
|
||||||
#endif
|
#endif
|
||||||
|
// for convenience
|
||||||
|
const wxWX2MBbuf mbc_str() const { return mb_str(*wxConv_current); }
|
||||||
|
|
||||||
// overloaded assignment
|
// overloaded assignment
|
||||||
// from another wxString
|
// from another wxString
|
||||||
|
Reference in New Issue
Block a user