void wxTextEntry::WriteText(const wxString& value) { GtkEditable * const edit = GetEditable(); // remove the selection if there is one and suppress the text change event // generated by this: we only want to generate one event for this change, // not two { EventsSuppressor noevents(this); gtk_editable_delete_selection(edit); } // insert new text at the cursor position gint len = gtk_editable_get_position(edit); gtk_editable_insert_text ( edit, wxGTK_CONV_FONT(value, GetEditableWindow()->GetFont()), -1, // text: length: compute it using strlen() &len // will be updated to position after the text end ); // and move cursor to the end of new text gtk_editable_set_position(edit, len); }
void wxTextEntry::WriteText(const wxString& str) { wxCHECK_RET( GetTextPeer(), "Must create the control first" ); { EventsSuppressor noevents(this); GetTextPeer()->WriteText( str ); } SendTextUpdatedEventIfAllowed(); }
void wxTextEntry::Clear() { wxCHECK_RET( GetTextPeer(), "Must create the control first" ); { EventsSuppressor noevents(this); GetTextPeer()->Clear(); } SendTextUpdatedEventIfAllowed(); }
void wxTextEntry::Remove(long from, long to) { wxCHECK_RET( GetTextPeer(), "Must create the control first" ); { EventsSuppressor noevents(this); GetTextPeer()->Remove( from , to ); } SendTextUpdatedEventIfAllowed(); }
void wxTextEntry::DoSetValue(const wxString& value, int flags) { if (value != DoGetValue()) { // Use Remove() rather than SelectAll() to avoid unnecessary clipboard // operations, and prevent triggering an apparent bug in GTK which // causes the subsequent WriteText() to append rather than overwrite. { EventsSuppressor noevents(this); Remove(0, -1); } EventsSuppressor noeventsIf(this, !(flags & SetValue_SendEvent)); WriteText(value); } else if (flags & SetValue_SendEvent) SendTextUpdatedEvent(GetEditableWindow()); SetInsertionPoint(0); }