From 6256849fdf400639670877f1ea628be706029251 Mon Sep 17 00:00:00 2001
From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= <vslavik@fastmail.fm>
Date: Wed, 30 May 2007 13:55:09 +0000
Subject: [PATCH] changed wxGTK_CONV* macros to use utf8_str() and FromUTF8()
 so that we don't do any unnecessary conversions in UTF8 build

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 include/wx/gtk/private.h | 4 ++--
 src/gtk/textctrl.cpp     | 8 ++------
 src/gtk/window.cpp       | 8 ++++----
 3 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/include/wx/gtk/private.h b/include/wx/gtk/private.h
index d19eed94ea..7b83acd3f2 100644
--- a/include/wx/gtk/private.h
+++ b/include/wx/gtk/private.h
@@ -34,12 +34,12 @@
 extern const gchar *wx_pango_version_check(int major, int minor, int micro);
 
 #if wxUSE_UNICODE
-    #define wxGTK_CONV(s) wxConvUTF8.cWX2MB((s))
+    #define wxGTK_CONV(s) s.utf8_str()
     #define wxGTK_CONV_ENC(s, enc) wxGTK_CONV((s))
     #define wxGTK_CONV_FONT(s, font) wxGTK_CONV((s))
     #define wxGTK_CONV_SYS(s) wxGTK_CONV((s))
 
-    #define wxGTK_CONV_BACK(s) wxConvUTF8.cMB2WX((s))
+    #define wxGTK_CONV_BACK(s) wxString::FromUTF8(s)
     #define wxGTK_CONV_BACK_ENC(s, enc) wxGTK_CONV_BACK(s)
     #define wxGTK_CONV_BACK_FONT(s, font) wxGTK_CONV_BACK(s)
     #define wxGTK_CONV_BACK_SYS(s) wxGTK_CONV_BACK(s)
diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp
index d21be8967f..03d093667c 100644
--- a/src/gtk/textctrl.cpp
+++ b/src/gtk/textctrl.cpp
@@ -955,16 +955,12 @@ wxString wxTextCtrl::GetValue() const
         gtk_text_buffer_get_end_iter( m_buffer, &end );
         wxGtkString text(gtk_text_buffer_get_text(m_buffer, &start, &end, true));
 
-        const wxWxCharBuffer buf = wxGTK_CONV_BACK(text);
-        if ( buf )
-            tmp = buf;
+        return wxGTK_CONV_BACK(text);
     }
     else
     {
         const gchar *text = gtk_entry_get_text( GTK_ENTRY(m_text) );
-        const wxWxCharBuffer buf = wxGTK_CONV_BACK( text );
-        if ( buf )
-            tmp = buf;
+        return wxGTK_CONV_BACK(text);
     }
 
     return tmp;
diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp
index cbc1486f6b..7b24565135 100644
--- a/src/gtk/window.cpp
+++ b/src/gtk/window.cpp
@@ -1136,8 +1136,8 @@ gtk_wxwindow_commit_cb (GtkIMContext *context,
         event.SetEventObject( window );
     }
 
-    const wxWxCharBuffer data(wxGTK_CONV_BACK_SYS(str));
-    if( !data )
+    const wxString data(wxGTK_CONV_BACK_SYS(str));
+    if( data.empty() )
         return;
 
     bool ret = false;
@@ -1147,7 +1147,7 @@ gtk_wxwindow_commit_cb (GtkIMContext *context,
     while (parent && !parent->IsTopLevel())
         parent = parent->GetParent();
 
-    for( const wxChar* pstr = data; *pstr; pstr++ )
+    for( wxString::const_iterator pstr = data.begin(); pstr != data.end(); ++pstr )
     {
 #if wxUSE_UNICODE
         event.m_uniChar = *pstr;
@@ -1155,7 +1155,7 @@ gtk_wxwindow_commit_cb (GtkIMContext *context,
         event.m_keyCode = *pstr < 256 ? event.m_uniChar : 0;
         wxLogTrace(TRACE_KEYS, _T("IM sent character '%c'"), event.m_uniChar);
 #else
-        event.m_keyCode = *pstr;
+        event.m_keyCode = (char)*pstr;
 #endif  // wxUSE_UNICODE
 
         // To conform to the docs we need to translate Ctrl-alpha
-- 
2.47.2