X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03dede4dc15796ab5e3e49ef597ebbc461227bca..1ec4e9c2b72a01a7ba7da569e0f8d04a81aaba10:/interface/wx/textentry.h diff --git a/interface/wx/textentry.h b/interface/wx/textentry.h index b1b6a5d5cf..89fdaf5541 100644 --- a/interface/wx/textentry.h +++ b/interface/wx/textentry.h @@ -8,6 +8,13 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// + +/** + wxTextPos is a position in the text +*/ +typedef long wxTextPos; + + /** @class wxTextEntry @@ -204,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(). + + 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. - 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. + 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 */ @@ -413,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. @@ -440,9 +463,13 @@ 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 void SetHint(const wxString& hint); + virtual bool SetHint(const wxString& hint); /** Returns the current hint string.