+
+#if (wxUSE_UNICODE == 1) && (SIZEOF_WCHAR_T == 4)
+
+TECObjectRef s_TECUnicode32To16 = NULL ;
+TECObjectRef s_TECUnicode16To32 = NULL ;
+
+class wxMacUnicodeConverters
+{
+public :
+ wxMacUnicodeConverters() ;
+ ~wxMacUnicodeConverters() ;
+} ;
+
+wxMacUnicodeConverters guard ;
+
+wxMacUnicodeConverters::wxMacUnicodeConverters()
+{
+ OSStatus status = noErr ;
+ TextEncoding kUnicode32 = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
+ TextEncoding kUnicode16 = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
+
+ status = TECCreateConverter(&s_TECUnicode16To32,
+ kUnicode16,
+ kUnicode32);
+ status = TECCreateConverter(&s_TECUnicode32To16,
+ kUnicode32,
+ kUnicode16);
+}
+
+wxMacUnicodeConverters::~wxMacUnicodeConverters()
+{
+ OSStatus status = noErr ;
+ status = TECDisposeConverter(s_TECUnicode32To16);
+ status = TECDisposeConverter(s_TECUnicode16To32);
+}
+#endif