X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d0a84b63384ca1c1d8d20581fb56abbd1d826617..e87f080a8809a36b9fd05f5f9b3d8436dac017c3:/src/generic/treebkg.cpp diff --git a/src/generic/treebkg.cpp b/src/generic/treebkg.cpp index fcf10b9d35..066e30edff 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; @@ -728,7 +736,7 @@ int wxTreebook::HitTest(wxPoint const & pt, long * flags) const int pagePos = wxNOT_FOUND; if ( flags ) - *flags = wxNB_HITTEST_NOWHERE; + *flags = wxBK_HITTEST_NOWHERE; // convert from wxTreebook coorindates to wxTreeCtrl ones const wxTreeCtrl * const tree = GetTreeCtrl(); @@ -753,16 +761,16 @@ int wxTreebook::HitTest(wxPoint const & pt, long * flags) const if ( flagsTree & (wxTREE_HITTEST_ONITEMBUTTON | wxTREE_HITTEST_ONITEMICON | wxTREE_HITTEST_ONITEMSTATEICON) ) - *flags |= wxNB_HITTEST_ONICON; + *flags |= wxBK_HITTEST_ONICON; if ( flagsTree & wxTREE_HITTEST_ONITEMLABEL ) - *flags |= wxNB_HITTEST_ONLABEL; + *flags |= wxBK_HITTEST_ONLABEL; } } else // not over the tree { if ( flags && GetPageRect().Inside( pt ) ) - *flags |= wxNB_HITTEST_ONPAGE; + *flags |= wxBK_HITTEST_ONPAGE; } return pagePos;