X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/28a34fc7d0c8598008b080ad4056652a1f1d8754..095b80e2b5120d4c476a834b2017c355fa9afef0:/src/univ/textctrl.cpp?ds=inline diff --git a/src/univ/textctrl.cpp b/src/univ/textctrl.cpp index 44dc03151d..3b15ef1070 100644 --- a/src/univ/textctrl.cpp +++ b/src/univ/textctrl.cpp @@ -487,7 +487,7 @@ struct WXDLLEXPORT wxTextWrappedData : public wxTextMultiLineData // ---------------------------------------------------------------------------- /* - We use custom versions of wxWindows command processor to implement undo/redo + We use custom versions of wxWidgets command processor to implement undo/redo as we want to avoid storing the backpointer to wxTextCtrl in wxCommand itself: this is a waste of memory as all commands in the given command processor always have the same associated wxTextCtrl and so it makes sense @@ -528,6 +528,8 @@ public: virtual bool CanUndo() const; virtual bool Do(wxTextCtrl *text); + virtual bool Do() { return wxTextCtrlCommand::Do(); } + virtual bool Undo() { return wxTextCtrlCommand::Undo(); } virtual bool Undo(wxTextCtrl *text); private: @@ -551,6 +553,8 @@ public: virtual bool CanUndo() const; virtual bool Do(wxTextCtrl *text); + virtual bool Do() { return wxTextCtrlCommand::Do(); } + virtual bool Undo() { return wxTextCtrlCommand::Undo(); } virtual bool Undo(wxTextCtrl *text); private: @@ -1581,6 +1585,11 @@ bool wxTextCtrl::IsEditable() const return m_isEditable && IsEnabled(); } +void wxTextCtrl::MarkDirty() +{ + m_isModified = TRUE; +} + void wxTextCtrl::DiscardEdits() { m_isModified = FALSE; @@ -1639,6 +1648,9 @@ wxString wxTextCtrl::GetLineText(wxTextCoord line) const } else // multiline { + //this is called during DoGetBestSize + if (line == 0 && GetLineCount() == 0) return wxEmptyString ; + wxCHECK_MSG( (size_t)line < GetLineCount(), _T(""), _T("line index out of range") ); @@ -2336,7 +2348,7 @@ wxSize wxTextCtrl::DoGetBestClientSize() const lines = 5; else if ( lines > 10 ) lines = 10; - h *= 10; + h *= lines; } wxRect rectText;