Forbid setting hints for multi-line text controls.
This doesn't work anyhow, so make it explicit by asserting if an attempt to do it is made. And document this. Also add a test of SetHint() to the text sample to verify it still works. Closes #14456. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
52ae1e9018
commit
7dd65e5abe
@ -734,6 +734,9 @@ public:
|
||||
wxTextEntry::SetValue(value);
|
||||
}
|
||||
|
||||
// wxTextEntry overrides
|
||||
virtual bool SetHint(const wxString& hint);
|
||||
|
||||
// wxWindow overrides
|
||||
virtual wxVisualAttributes GetDefaultAttributes() const
|
||||
{
|
||||
|
@ -456,6 +456,10 @@ public:
|
||||
currently you should avoid calling methods such as WriteText() or
|
||||
Replace() when using hints and the text control is empty.
|
||||
|
||||
@remarks Hints can only be used for single line text controls,
|
||||
native multi-line text controls don't support hints under any
|
||||
platform and hence wxWidgets doesn't provide them neither.
|
||||
|
||||
@since 2.9.0
|
||||
*/
|
||||
virtual bool SetHint(const wxString& hint);
|
||||
|
@ -1077,8 +1077,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
|
||||
m_readonly = new MyTextCtrl( this, wxID_ANY, wxT("Read only"),
|
||||
wxPoint(10,90), wxSize(140,wxDefaultCoord), wxTE_READONLY );
|
||||
|
||||
m_limited = new MyTextCtrl(this, wxID_ANY, wxT("Max 8 ch"),
|
||||
m_limited = new MyTextCtrl(this, wxID_ANY, "",
|
||||
wxPoint(10, 130), wxSize(140, wxDefaultCoord));
|
||||
m_limited->SetHint("Max 8 ch");
|
||||
m_limited->SetMaxLength(8);
|
||||
|
||||
// multi line text controls
|
||||
|
@ -1139,6 +1139,18 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event)
|
||||
return handled;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Other miscellaneous stuff
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
bool wxTextCtrlBase::SetHint(const wxString& hint)
|
||||
{
|
||||
wxCHECK_MSG( IsSingleLine(), false,
|
||||
wxS("Hints can only be set for single line text controls") );
|
||||
|
||||
return wxTextEntry::SetHint(hint);
|
||||
}
|
||||
|
||||
// do the window-specific processing after processing the update event
|
||||
void wxTextCtrlBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user