X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b65f16dabd945d95f98809fb78c8d60a08930ac4..3d6c68c1c9688885c64e8033cc6680194e8559dd:/src/msw/textctrl.cpp diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 65eeb8967d..5007bc1d84 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -784,10 +784,12 @@ wxString wxTextCtrl::GetRange(long from, long to) const encoding = font.GetEncoding(); } +#if wxUSE_INTL if ( encoding == wxFONTENCODING_SYSTEM ) { encoding = wxLocale::GetSystemEncoding(); } +#endif // wxUSE_INTL if ( encoding == wxFONTENCODING_SYSTEM ) { @@ -1303,6 +1305,13 @@ void wxTextCtrl::DoSetSelection(long from, long to, int flags) #if wxUSE_RICHEDIT if ( IsRich() ) { + // if from and to are both -1, it means (in wxWidgets) that all text + // should be selected, translate this into Windows convention + if ( (from == -1) && (to == -1) ) + { + from = 0; + } + CHARRANGE range; range.cpMin = from; range.cpMax = to; @@ -2055,15 +2064,12 @@ void wxTextCtrl::OnRedo(wxCommandEvent& WXUNUSED(event)) void wxTextCtrl::OnDelete(wxCommandEvent& WXUNUSED(event)) { - long from, to; - GetSelection(& from, & to); - if (from != -1 && to != -1) - Remove(from, to); + RemoveSelection(); } void wxTextCtrl::OnSelectAll(wxCommandEvent& WXUNUSED(event)) { - SetSelection(-1, -1); + SelectAll(); } void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event) @@ -2093,14 +2099,12 @@ void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event) void wxTextCtrl::OnUpdateDelete(wxUpdateUIEvent& event) { - long from, to; - GetSelection(& from, & to); - event.Enable(from != -1 && to != -1 && from != to && IsEditable()) ; + event.Enable( HasSelection() && IsEditable() ); } void wxTextCtrl::OnUpdateSelectAll(wxUpdateUIEvent& event) { - event.Enable(GetLastPosition() > 0); + event.Enable( !IsEmpty() ); } void wxTextCtrl::OnContextMenu(wxContextMenuEvent& event)