From c282ec44024689f736f76772a3ffd1fccf4b7d07 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 26 Sep 2007 12:18:00 +0000 Subject: [PATCH] compilation fixes for wxGTK1 after wxTextEntry changes (unit test still fails, Replace() generates 2 events instead of 1...) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk1/combobox.h | 1 + src/gtk1/combobox.cpp | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/include/wx/gtk1/combobox.h b/include/wx/gtk1/combobox.h index e46402b839..13b7b24c55 100644 --- a/include/wx/gtk1/combobox.h +++ b/include/wx/gtk1/combobox.h @@ -94,6 +94,7 @@ public: wxString GetValue() const; void SetValue(const wxString& value); + void WriteText(const wxString& value); void Copy(); void Cut(); diff --git a/src/gtk1/combobox.cpp b/src/gtk1/combobox.cpp index d6f65e2af7..27a72b2bcb 100644 --- a/src/gtk1/combobox.cpp +++ b/src/gtk1/combobox.cpp @@ -618,13 +618,24 @@ void wxComboBox::SetValue( const wxString& value ) wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") ); GtkWidget *entry = GTK_COMBO(m_widget)->entry; - wxString tmp; - if (!value.IsNull()) tmp = value; - gtk_entry_set_text( GTK_ENTRY(entry), wxGTK_CONV( tmp ) ); + gtk_entry_set_text( GTK_ENTRY(entry), wxGTK_CONV( value ) ); InvalidateBestSize(); } +void wxComboBox::WriteText(const wxString& value) +{ + wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") ); + + GtkWidget *entry = GTK_COMBO(m_widget)->entry; + GtkEditable * const edit = GTK_EDITABLE(entry); + + gtk_editable_delete_selection(edit); + gint len = gtk_editable_get_position(edit); + gtk_editable_insert_text(edit, wxGTK_CONV(value), -1, &len); + gtk_editable_set_position(edit, len); +} + void wxComboBox::Copy() { wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") ); -- 2.45.2