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
This commit is contained in:
Václav Slavík
2007-05-30 13:55:09 +00:00
parent 6e5f6c7c60
commit 6256849fdf
3 changed files with 8 additions and 12 deletions

View File

@@ -34,12 +34,12 @@
extern const gchar *wx_pango_version_check(int major, int minor, int micro); extern const gchar *wx_pango_version_check(int major, int minor, int micro);
#if wxUSE_UNICODE #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_ENC(s, enc) wxGTK_CONV((s))
#define wxGTK_CONV_FONT(s, font) wxGTK_CONV((s)) #define wxGTK_CONV_FONT(s, font) wxGTK_CONV((s))
#define wxGTK_CONV_SYS(s) 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_ENC(s, enc) wxGTK_CONV_BACK(s)
#define wxGTK_CONV_BACK_FONT(s, font) 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) #define wxGTK_CONV_BACK_SYS(s) wxGTK_CONV_BACK(s)

View File

@@ -955,16 +955,12 @@ wxString wxTextCtrl::GetValue() const
gtk_text_buffer_get_end_iter( m_buffer, &end ); gtk_text_buffer_get_end_iter( m_buffer, &end );
wxGtkString text(gtk_text_buffer_get_text(m_buffer, &start, &end, true)); wxGtkString text(gtk_text_buffer_get_text(m_buffer, &start, &end, true));
const wxWxCharBuffer buf = wxGTK_CONV_BACK(text); return wxGTK_CONV_BACK(text);
if ( buf )
tmp = buf;
} }
else else
{ {
const gchar *text = gtk_entry_get_text( GTK_ENTRY(m_text) ); const gchar *text = gtk_entry_get_text( GTK_ENTRY(m_text) );
const wxWxCharBuffer buf = wxGTK_CONV_BACK( text ); return wxGTK_CONV_BACK(text);
if ( buf )
tmp = buf;
} }
return tmp; return tmp;

View File

@@ -1136,8 +1136,8 @@ gtk_wxwindow_commit_cb (GtkIMContext *context,
event.SetEventObject( window ); event.SetEventObject( window );
} }
const wxWxCharBuffer data(wxGTK_CONV_BACK_SYS(str)); const wxString data(wxGTK_CONV_BACK_SYS(str));
if( !data ) if( data.empty() )
return; return;
bool ret = false; bool ret = false;
@@ -1147,7 +1147,7 @@ gtk_wxwindow_commit_cb (GtkIMContext *context,
while (parent && !parent->IsTopLevel()) while (parent && !parent->IsTopLevel())
parent = parent->GetParent(); parent = parent->GetParent();
for( const wxChar* pstr = data; *pstr; pstr++ ) for( wxString::const_iterator pstr = data.begin(); pstr != data.end(); ++pstr )
{ {
#if wxUSE_UNICODE #if wxUSE_UNICODE
event.m_uniChar = *pstr; event.m_uniChar = *pstr;
@@ -1155,7 +1155,7 @@ gtk_wxwindow_commit_cb (GtkIMContext *context,
event.m_keyCode = *pstr < 256 ? event.m_uniChar : 0; event.m_keyCode = *pstr < 256 ? event.m_uniChar : 0;
wxLogTrace(TRACE_KEYS, _T("IM sent character '%c'"), event.m_uniChar); wxLogTrace(TRACE_KEYS, _T("IM sent character '%c'"), event.m_uniChar);
#else #else
event.m_keyCode = *pstr; event.m_keyCode = (char)*pstr;
#endif // wxUSE_UNICODE #endif // wxUSE_UNICODE
// To conform to the docs we need to translate Ctrl-alpha // To conform to the docs we need to translate Ctrl-alpha