X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e8dff1b3c128f4c883385dda5afc7f715b48029..d8088f27c5abb19a1f4a99cf9064bfb85181b657:/interface/wx/textentry.h diff --git a/interface/wx/textentry.h b/interface/wx/textentry.h index d31506f1c0..89fdaf5541 100644 --- a/interface/wx/textentry.h +++ b/interface/wx/textentry.h @@ -211,19 +211,28 @@ public: This is defined as the zero based index of the character position to the right of the insertion point. For example, if the insertion point - is at the end of the single-line text control, it is equal to both - GetLastPosition() and @c "GetValue().Length()" (but notice that the latter - equality is not necessarily true for multiline edit controls which may - use multiple new line characters). + is at the end of the single-line text control, it is equal to + GetLastPosition(). - The following code snippet safely returns the character at the insertion - point or the zero character if the point is at the end of the control. + Notice that insertion position is, in general, different from the index + of the character the cursor position at in the string returned by + GetValue(). While this is always the case for the single line controls, + multi-line controls can use two characters @c "\\r\\n" as line + separator (this is notably the case under MSW) meaning that indices in + the control and its string value are offset by 1 for every line. + + Hence to correctly get the character at the current cursor position, + taking into account that there can be none if the cursor is at the end + of the string, you could do the following: @code - char GetCurrentChar(wxTextCtrl *tc) { - if (tc->GetInsertionPoint() == tc->GetLastPosition()) - return '\0'; - return tc->GetValue[tc->GetInsertionPoint()]; + wxString GetCurrentChar(wxTextCtrl *tc) + { + long pos = tc->GetInsertionPoint(); + if ( pos == tc->GetLastPosition() ) + return wxString(); + + return tc->GetRange(pos, pos + 1); } @endcode */ @@ -420,6 +429,13 @@ public: */ virtual void SelectAll(); + /** + Deselects selected text in the control. + + @since 2.9.5 + */ + virtual void SelectNone(); + /** Sets a hint shown in an empty unfocused text control. @@ -447,6 +463,10 @@ public: currently you should avoid calling methods such as WriteText() or Replace() when using hints and the text control is empty. + @remarks Hints can only be used for single line text controls, + native multi-line text controls don't support hints under any + platform and hence wxWidgets doesn't provide them neither. + @since 2.9.0 */ virtual bool SetHint(const wxString& hint);