diff --git a/include/wx/html/htmlwin.h b/include/wx/html/htmlwin.h
index c455fdde06..2560670927 100644
--- a/include/wx/html/htmlwin.h
+++ b/include/wx/html/htmlwin.h
@@ -253,13 +253,18 @@ protected:
#if wxUSE_CLIPBOARD
// Convert selection to text:
- wxString SelectionToText();
+ wxString SelectionToText() { return DoSelectionToText(m_selection); }
+
+ // Converts current page to text:
+ wxString ToText();
// Automatic scrolling during selection:
void StopAutoScrolling();
#endif // wxUSE_CLIPBOARD
protected:
+ wxString DoSelectionToText(wxHtmlSelection *sel);
+
// This is pointer to the first cell in parsed data. (Note: the first cell
// is usually top one = all other cells are sub-cells of this one)
wxHtmlContainerCell *m_Cell;
diff --git a/src/html/htmlwin.cpp b/src/html/htmlwin.cpp
index 8e988da39e..85a1662126 100644
--- a/src/html/htmlwin.cpp
+++ b/src/html/htmlwin.cpp
@@ -728,19 +728,19 @@ bool wxHtmlWindow::IsSelectionEnabled() const
#if wxUSE_CLIPBOARD
-wxString wxHtmlWindow::SelectionToText()
+wxString wxHtmlWindow::DoSelectionToText(wxHtmlSelection *sel)
{
- if ( !m_selection )
+ if ( !sel )
return wxEmptyString;
wxClientDC dc(this);
- const wxHtmlCell *end = m_selection->GetToCell();
+ const wxHtmlCell *end = sel->GetToCell();
wxString text;
- wxHtmlTerminalCellsInterator i(m_selection->GetFromCell(), end);
+ wxHtmlTerminalCellsInterator i(sel->GetFromCell(), end);
if ( i )
{
- text << i->ConvertToText(m_selection);
+ text << i->ConvertToText(sel);
++i;
}
const wxHtmlCell *prev = *i;
@@ -748,13 +748,25 @@ wxString wxHtmlWindow::SelectionToText()
{
if ( prev->GetParent() != i->GetParent() )
text << _T('\n');
- text << i->ConvertToText(*i == end ? m_selection : NULL);
+ text << i->ConvertToText(*i == end ? sel : NULL);
prev = *i;
++i;
}
return text;
}
+wxString wxHtmlWindow::ToText()
+{
+ if (m_Cell)
+ {
+ wxHtmlSelection sel;
+ sel.Set(m_Cell->GetFirstTerminal(), m_Cell->GetLastTerminal());
+ return DoSelectionToText(&sel);
+ }
+ else
+ return wxEmptyString;
+}
+
#endif // wxUSE_CLIPBOARD
bool wxHtmlWindow::CopySelection(ClipboardType t)