X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9804d5404a9607cda3d08ec8225f52f78b78bc72..07aaa1a4b853b64e61c01a9daf8a322d3896c36b:/src/generic/treebkg.cpp diff --git a/src/generic/treebkg.cpp b/src/generic/treebkg.cpp index b93e0b3d89..2bcb1da8dd 100644 --- a/src/generic/treebkg.cpp +++ b/src/generic/treebkg.cpp @@ -60,18 +60,24 @@ BEGIN_EVENT_TABLE(wxTreebook, wxBookCtrlBase) EVT_TREE_SEL_CHANGED (wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeSelectionChange) EVT_TREE_ITEM_EXPANDED (wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeNodeExpandedCollapsed) EVT_TREE_ITEM_COLLAPSED(wxID_TREEBOOKTREEVIEW, wxTreebook::OnTreeNodeExpandedCollapsed) + + WX_EVENT_TABLE_CONTROL_CONTAINER(wxTreebook) END_EVENT_TABLE() // ============================================================================ // wxTreebook implementation // ============================================================================ +WX_DELEGATE_TO_CONTROL_CONTAINER(wxTreebook, wxControl) + // ---------------------------------------------------------------------------- // wxTreebook creation // ---------------------------------------------------------------------------- void wxTreebook::Init() { + m_container.SetContainerWindow(this); + m_selection = m_actualSelection = wxNOT_FOUND; } @@ -89,6 +95,7 @@ wxTreebook::Create(wxWindow *parent, { style |= wxBK_LEFT; } + style |= wxTAB_TRAVERSAL; // no border for this control, it doesn't look nice together with the tree style &= ~wxBORDER_MASK; @@ -644,7 +651,8 @@ int wxTreebook::DoSetSelection(size_t pagePos) else // page change vetoed { // tree selection might have already had changed - tree->SelectItem(DoInternalGetPage(oldSel)); + if ( oldSel != wxNOT_FOUND ) + tree->SelectItem(DoInternalGetPage(oldSel)); } return oldSel; @@ -735,7 +743,7 @@ int wxTreebook::HitTest(wxPoint const & pt, long * flags) const const wxPoint treePt = tree->ScreenToClient(ClientToScreen(pt)); // is it over the tree? - if ( wxRect(tree->GetSize()).Inside(treePt) ) + if ( wxRect(tree->GetSize()).Contains(treePt) ) { int flagsTree; wxTreeItemId id = tree->HitTest(treePt, flagsTree); @@ -761,7 +769,7 @@ int wxTreebook::HitTest(wxPoint const & pt, long * flags) const } else // not over the tree { - if ( flags && GetPageRect().Inside( pt ) ) + if ( flags && GetPageRect().Contains( pt ) ) *flags |= wxBK_HITTEST_ONPAGE; }