fill in flags parameter of HitTest() for all book controls; added new wxNB_HITTEST_ONPAGE bit

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-06-14 15:54:24 +00:00
parent 6dcf9888aa
commit d0a84b6338
11 changed files with 173 additions and 26 deletions

View File

@@ -309,6 +309,39 @@ void wxToolbook::Realize()
DoSize();
}
int wxToolbook::HitTest(const wxPoint& pt, long *flags) const
{
int pagePos = wxNOT_FOUND;
if ( flags )
*flags = wxNB_HITTEST_NOWHERE;
// convert from wxToolbook coordinates to wxToolBar ones
const wxToolBarBase * const tbar = GetToolBar();
const wxPoint tbarPt = tbar->ScreenToClient(ClientToScreen(pt));
// is the point over the toolbar?
if ( wxRect(tbar->GetSize()).Inside(tbarPt) )
{
const wxToolBarToolBase * const
tool = tbar->FindToolForPosition(tbarPt.x, tbarPt.y);
if ( tool )
{
pagePos = tbar->GetToolPos(tool->GetId());
if ( flags )
*flags = wxNB_HITTEST_ONICON | wxNB_HITTEST_ONLABEL;
}
}
else // not over the toolbar
{
if ( flags && GetPageRect().Inside(pt) )
*flags |= wxNB_HITTEST_ONPAGE;
}
return pagePos;
}
void wxToolbook::OnIdle(wxIdleEvent& event)
{
if (m_needsRealizing)