fix push/pop mechanism after r58786; add a few notes about the stack mechanism both in the docs and in the public header (see #10733)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2009-04-24 21:14:59 +00:00
parent 48e8f217bc
commit 30800ba5e4
3 changed files with 21 additions and 9 deletions

View File

@@ -191,22 +191,25 @@ wxArrayInt wxStatusBarBase::CalculateAbsWidths(wxCoord widthTotal) const
void wxStatusBarBase::PushStatusText(const wxString& text, int number)
{
// save current status text in the stack
m_panes[number].m_arrStack.push_back(GetStatusText(number));
// save the new text (in non-ellipsized form) in the stack
m_panes[number].m_arrStack.push_back(text);
SetStatusText(text, number);
// update current status text (eventually also in the native control)
// update current status text (which will possibly be ellipsized)
// also in the native control
}
void wxStatusBarBase::PopStatusText(int number)
{
wxASSERT_MSG(m_panes[number].m_arrStack.GetCount() == 1,
wxASSERT_MSG(m_panes[number].m_arrStack.GetCount() >= 1,
"can't pop any further string");
wxString text = m_panes[number].m_arrStack.back();
m_panes[number].m_arrStack.pop_back(); // also remove it from the stack
// the top of the stack is the status text currently shown in the native control;
// remove it
m_panes[number].m_arrStack.pop_back();
// restore the popped status text in the pane
// restore the previous status text in the native control
const wxString& text = m_panes[number].m_arrStack.back();
SetStatusText(text, number);
}