]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/unichar.cpp
split wxchar.h into several smaller headers
[wxWidgets.git] / src / common / unichar.cpp
diff --git a/src/common/unichar.cpp b/src/common/unichar.cpp
new file mode 100644 (file)
index 0000000..5dbe8b0
--- /dev/null
@@ -0,0 +1,53 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/unichar.cpp
+// Purpose:     wxUniChar and wxUniCharRef classes
+// Author:      Vaclav Slavik
+// Created:     2007-03-19
+// RCS-ID:      $Id$
+// Copyright:   (c) 2007 REA Elektronik GmbH
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+// ===========================================================================
+// headers
+// ===========================================================================
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/unichar.h"
+
+// ===========================================================================
+// implementation
+// ===========================================================================
+
+/* static */
+wxUniChar::unicode_type wxUniChar::From8bit(char c)
+{
+    // all supported charsets have the first 128 characters same as ASCII:
+    if ( (unsigned char)c < 0x80 )
+        return c;
+
+    wchar_t buf[2];
+    if ( wxConvLibc.ToWChar(buf, 2, &c, 1) != 2 )
+        return wxT('?'); // FIXME-UTF8: what to use as failure character?
+    return buf[0];
+}
+
+/* static */
+char wxUniChar::To8bit(wxUniChar::unicode_type c)
+{
+    // all supported charsets have the first 128 characters same as ASCII:
+    if ( c < 0x80 )
+        return c;
+
+    wchar_t in = c;
+    char buf[2];
+    if ( wxConvLibc.FromWChar(buf, 2, &in, 1) != 2 )
+        return '?'; // FIXME-UTF8: what to use as failure character?
+    return buf[0];
+}