git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45343
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
virtual bool Enable(bool enable = true);
// more readable flag testing methods
- bool IsPassword() const { return (GetWindowStyle() & wxTE_PASSWORD) != 0; }
- bool WrapLines() const
- { return !IsSingleLine() && !(GetWindowStyle() & wxHSCROLL); }
+ bool IsPassword() const { return HasFlag(wxTE_PASSWORD); }
+ bool WrapLines() const { return m_wrapLines; }
// only for wxStdTextCtrlInputHandler
void RefreshSelection();
// flags
bool m_isModified:1,
m_isEditable:1,
- m_hasCaret:1;
+ m_hasCaret:1,
+ m_wrapLines:1; // can't be changed after creation
// the rectangle (in client coordinates) to draw text inside
wxRect m_rectText;
m_isModified = false;
m_isEditable = true;
+ m_wrapLines = false;
m_posLast =
m_curPos =
// create data object for normal multiline or for controls with line
// wrap as needed
if ( style & wxHSCROLL )
+ {
m_data.mdata = new wxTextMultiLineData;
- else
+ }
+ else // we must wrap lines if we don't have horizontal scrollbar
+ {
+ // NB: we can't rely on HasFlag(wxHSCROLL) as the flags can change
+ // later and even wxWindow::Create() itself temporarily resets
+ // wxHSCROLL in wxUniv, so remember that we have a wrapped data
+ // and not just a multi line data in a separate variable
+ m_wrapLines = true;
m_data.wdata = new wxTextWrappedData;
+ }
}
else
{