fix state images after changing their style (see #9591)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -680,6 +680,11 @@ void MyFrame::OnToggleAlternateStates(wxCommandEvent& WXUNUSED(event))
|
||||
|
||||
m_treeCtrl->SetAlternateStates(!alternateStates);
|
||||
m_treeCtrl->CreateStateImageList();
|
||||
|
||||
// normal states < alternate states
|
||||
// so we must reset broken states
|
||||
if ( alternateStates )
|
||||
m_treeCtrl->ResetBrokenStateImages();
|
||||
}
|
||||
|
||||
void MyFrame::OnToggleButtons(wxCommandEvent& WXUNUSED(event))
|
||||
@@ -1152,6 +1157,29 @@ void MyTreeCtrl::DoToggleState(const wxTreeItemId& item)
|
||||
}
|
||||
}
|
||||
|
||||
void MyTreeCtrl::DoResetBrokenStateImages(const wxTreeItemId& idParent,
|
||||
wxTreeItemIdValue cookie, int state)
|
||||
{
|
||||
wxTreeItemId id;
|
||||
|
||||
if ( !cookie )
|
||||
id = GetFirstChild(idParent, cookie);
|
||||
else
|
||||
id = GetNextChild(idParent, cookie);
|
||||
|
||||
if ( !id.IsOk() )
|
||||
return;
|
||||
|
||||
int curState = GetItemState(id);
|
||||
if ( curState != wxTREE_ITEMSTATE_NONE && curState > state )
|
||||
SetItemState(id, state);
|
||||
|
||||
if (ItemHasChildren(id))
|
||||
DoResetBrokenStateImages(id, 0, state);
|
||||
|
||||
DoResetBrokenStateImages(idParent, cookie, state);
|
||||
}
|
||||
|
||||
void MyTreeCtrl::LogEvent(const wxChar *name, const wxTreeEvent& event)
|
||||
{
|
||||
wxTreeItemId item = event.GetItem();
|
||||
|
Reference in New Issue
Block a user