wxID_TREEBOOKTREEVIEW,
wxDefaultPosition,
wxDefaultSize,
- wxBORDER_SIMPLE |
+#ifndef __WXMSW__
+ wxBORDER_SIMPLE | // On wxMSW this produces a black border which is wrong
+#endif
wxTR_DEFAULT_STYLE |
wxTR_HIDE_ROOT |
wxTR_SINGLE
);
+ GetTreeCtrl()->SetQuickBestSize(false); // do full size calculation
GetTreeCtrl()->AddRoot(wxEmptyString); // label doesn't matter, it's hidden
#ifdef __WXMSW__
DoUpdateSelection(bSelect, pagePos);
- m_bookctrl->InvalidateBestSize();
-
return true;
}
wxTreeItemId newId = tree->AppendItem(parentId, text, imageId);
+ tree->InvalidateBestSize();
+
if ( !newId.IsOk() )
{
(void)wxBookCtrlBase::DoRemovePage(newPos);
DoUpdateSelection(bSelect, newPos);
- m_bookctrl->InvalidateBestSize();
-
return true;
}
tree->DeleteChildren( pageId );
tree->Delete( pageId );
- tree->InvalidateBestSize();
return oldPage;
}
// find the next page suitable to be shown: the first (grand)child
// of this one with a non-NULL associated page
wxTreeItemId childId = m_treeIds[pagePos];
- m_actualSelection = pagePos;
+ int actualPagePos = pagePos;
while ( !page && childId.IsOk() )
{
wxTreeItemIdValue cookie;
childId = tree->GetFirstChild( childId, cookie );
if ( childId.IsOk() )
{
- page = wxBookCtrlBase::GetPage(++m_actualSelection);
+ page = wxBookCtrlBase::GetPage(++actualPagePos);
}
}
- wxASSERT_MSG( page, wxT("no page to show found!") );
+ m_actualSelection = page ? actualPagePos : m_selection;
}
if ( page )
- {
- page->SetSize(GetPageRect());
page->Show();
- }
tree->SelectItem(DoInternalGetPage(pagePos));