+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
+
+ GtkWidget *entry = GTK_COMBO(m_widget)->entry;
+ wxString tmp = wxT("");
+ if (!value.IsNull()) tmp = value;
+ gtk_entry_set_text( GTK_ENTRY(entry), tmp.mbc_str() );
+}
+
+void wxComboBox::Copy()
+{
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
+
+ GtkWidget *entry = GTK_COMBO(m_widget)->entry;
+#if defined(__WXGTK13__) || (GTK_MINOR_VERSION > 0)
+ gtk_editable_copy_clipboard( GTK_EDITABLE(entry) );
+#else
+ gtk_editable_copy_clipboard( GTK_EDITABLE(entry), 0 );
+#endif
+}
+
+void wxComboBox::Cut()
+{
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
+
+ GtkWidget *entry = GTK_COMBO(m_widget)->entry;
+#if defined(__WXGTK13__) || (GTK_MINOR_VERSION > 0)
+ gtk_editable_cut_clipboard( GTK_EDITABLE(entry) );
+#else
+ gtk_editable_cut_clipboard( GTK_EDITABLE(entry), 0 );
+#endif
+}
+
+void wxComboBox::Paste()
+{
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
+
+ GtkWidget *entry = GTK_COMBO(m_widget)->entry;
+#if defined(__WXGTK13__) || (GTK_MINOR_VERSION > 0)
+ gtk_editable_paste_clipboard( GTK_EDITABLE(entry) );
+#else
+ gtk_editable_paste_clipboard( GTK_EDITABLE(entry), 0 );
+#endif
+}
+
+void wxComboBox::SetInsertionPoint( long pos )
+{
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
+
+ GtkWidget *entry = GTK_COMBO(m_widget)->entry;
+ gtk_entry_set_position( GTK_ENTRY(entry), (int)pos );
+}
+
+void wxComboBox::SetInsertionPointEnd()
+{
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
+
+ SetInsertionPoint( -1 );
+}
+
+long wxComboBox::GetInsertionPoint() const
+{
+ GtkWidget *entry = GTK_COMBO(m_widget)->entry;
+ return (long) GTK_EDITABLE(entry)->current_pos;
+}
+
+long wxComboBox::GetLastPosition() const
+{
+ GtkWidget *entry = GTK_COMBO(m_widget)->entry;
+ int pos = GTK_ENTRY(entry)->text_length;
+ return (long) pos-1;
+}