Move EmptyUndoBuffer() from wxTextEntry to wxTextCtrl

It seems unlikely that we're ever going to need this function in any
other classes inheriting from wxTextEntry (i.e. wxComboBox) and both
existing implementations are for wxTextCtrl only, so define this
function there.

If really necessary, we can always lower it to wxTextEntry later, while
moving it in the other direction wouldn't be easily possible due to
compatibility concerns.

This commit is best viewed with git --color-moved option.
This commit is contained in:
Vadim Zeitlin
2021-08-20 16:42:01 +01:00
parent 1799922d0e
commit adacb5c07e
8 changed files with 22 additions and 22 deletions

View File

@@ -74,6 +74,8 @@ public:
virtual void MarkDirty() wxOVERRIDE;
virtual void DiscardEdits() wxOVERRIDE;
virtual void EmptyUndoBuffer() wxOVERRIDE;
// text control under some platforms supports the text styles: these
// methods apply the given text style to the given selection or to
// set/get the style which will be used for all appended text

View File

@@ -72,8 +72,6 @@ public:
virtual bool CanUndo() const wxOVERRIDE;
virtual bool CanRedo() const wxOVERRIDE;
virtual void EmptyUndoBuffer() wxOVERRIDE;
// Insertion point
virtual void SetInsertionPoint(long pos) wxOVERRIDE;
virtual void SetInsertionPointEnd() wxOVERRIDE;

View File

@@ -574,6 +574,8 @@ public:
DiscardEdits();
}
virtual void EmptyUndoBuffer() { }
// styles handling
// ---------------

View File

@@ -81,8 +81,6 @@ public:
virtual bool CanUndo() const = 0;
virtual bool CanRedo() const = 0;
virtual void EmptyUndoBuffer() { }
// insertion point
// ---------------

View File

@@ -1312,6 +1312,17 @@ public:
*/
virtual void DiscardEdits();
/**
Delete the undo history.
Currently only implemented in wxMSW (for controls using wxTE_RICH2
style only) and wxOSX (for multiline text controls only), does nothing
in the other ports or for the controls not using the appropriate styles.
@since 3.1.6
*/
virtual void EmptyUndoBuffer();
/**
This function inserts into the control the character which would have
been inserted if the given key event had occurred in the text control.

View File

@@ -165,17 +165,6 @@ public:
*/
virtual bool CanUndo() const;
/**
Delete the undo history.
Currently only implemented in wxMSW (for controls using wxTE_RICH2
style only) and wxOSX (for multiline text controls only), does nothing
in the other ports or for the controls not using the appropriate styles.
@since 3.1.6
*/
virtual void EmptyUndoBuffer();
/**
Sets the new text control value.

View File

@@ -259,6 +259,13 @@ void wxTextCtrl::DiscardEdits()
m_dirty = false;
}
void wxTextCtrl::EmptyUndoBuffer()
{
wxCHECK_RET( GetTextPeer(), "Must create the control first" );
GetTextPeer()->EmptyUndoBuffer() ;
}
int wxTextCtrl::GetNumberOfLines() const
{
return GetTextPeer()->GetNumberOfLines() ;

View File

@@ -293,13 +293,6 @@ bool wxTextEntry::CanRedo() const
return GetTextPeer()->CanRedo() ;
}
void wxTextEntry::EmptyUndoBuffer()
{
wxCHECK_RET( GetTextPeer(), "Must create the control first" );
return GetTextPeer()->EmptyUndoBuffer() ;
}
wxTextWidgetImpl * wxTextEntry::GetTextPeer() const
{
wxWindow * const win = const_cast<wxTextEntry *>(this)->GetEditableWindow();