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:
Ove Kaaven
1999-04-14 19:56:54 +00:00
parent 16bcc879d9
commit a69f7aa823
2 changed files with 9 additions and 2 deletions

View File

@@ -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); \
\ \

View File

@@ -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