//--------------------------------------------------------------------------------------- void CBCGPAutoHideToolBar::OnLButtonDown(UINT nFlags, CPoint point) { CBCGPAutoHideButton* pBtn = CBCGPAutoHideToolBar::ButtonFromPoint (point); if (pBtn != NULL) { CBCGPDockingControlBar* pAttachedBar = pBtn->GetAutoHideWindow (); if (pAttachedBar != NULL) { BOOL bActivateOnClick = FALSE; CBCGPDockManager* pDockManager = globalUtils.GetDockManager (GetDockSite ()); if (pDockManager != NULL) { ASSERT_VALID (pDockManager); bActivateOnClick = pDockManager->IsActivateAutoHideBarOnMouseClick(); } if (bActivateOnClick) { pBtn->ShowAttachedWindow(!pAttachedBar->IsWindowVisible()); } pAttachedBar->SetFocus (); } } CBCGPControlBar::OnLButtonDown(nFlags, point); }
//-------------------------------------------------------------------------------// void CBCGPAutoHideToolBar::OnMouseMove(UINT /*nFlags*/, CPoint /*point*/) { CPoint pt; GetCursorPos (&pt); ScreenToClient (&pt); CBCGPAutoHideButton* pBtn = ButtonFromPoint (pt); if (!m_bTracked) { m_bTracked = TRUE; TRACKMOUSEEVENT trackmouseevent; trackmouseevent.cbSize = sizeof(trackmouseevent); trackmouseevent.dwFlags = TME_LEAVE; trackmouseevent.hwndTrack = GetSafeHwnd(); trackmouseevent.dwHoverTime = HOVER_DEFAULT; ::BCGPTrackMouse (&trackmouseevent); } if (pBtn != NULL && !m_bReadyToDisplayAHWnd) { CBCGPDockingControlBar* pAttachedBar = pBtn->GetAutoHideWindow (); ASSERT_VALID (pAttachedBar); if (!pAttachedBar->IsWindowVisible ()) { if (m_nDisplayAHWndTimerID != 0) { KillTimer (m_nDisplayAHWndTimerID); m_nDisplayAHWndTimerID = 0; } BOOL bStartAutoHide = TRUE; CBCGPDockManager* pDockManager = globalUtils.GetDockManager (GetDockSite ()); if (pDockManager != NULL) { ASSERT_VALID (pDockManager); bStartAutoHide = !pDockManager->IsActivateAutoHideBarOnMouseClick(); } if (bStartAutoHide) { m_bReadyToDisplayAHWnd = TRUE; m_nDisplayAHWndTimerID = SetTimer(BCGP_DISPLAY_AHWND_EVENT, m_nShowAHWndDelay, NULL); } } if (m_pHighlightedButton != NULL && m_pHighlightedButton != pBtn) { ASSERT_VALID (m_pHighlightedButton); m_pHighlightedButton->HighlightButton (FALSE); } if (pBtn != m_pHighlightedButton) { pBtn->HighlightButton (TRUE); m_pHighlightedButton = pBtn; UpdateWindow (); Invalidate (); } } }