void CExtMiniDockFrameWnd::OnCancelMode() { CMiniDockFrameWnd::OnCancelMode(); CExtPopupMenuWnd::CancelMenuTracking(); ASSERT( !CExtPopupMenuWnd::IsMenuTracking() ); if( _ResizingIsInProgress() ) _ResizingEnd(); }
void CExtMiniDockFrameWnd::OnRButtonDown(UINT nFlags, CPoint point) { if( _ResizingIsInProgress() ) { _ResizingEnd(); return; } CMiniDockFrameWnd::OnRButtonDown(nFlags, point); }
void CExtMiniDockFrameWnd::OnCaptureChanged(CWnd *pWnd) { if( _ResizingIsInProgress() && pWnd != this ) { _ResizingEnd(); return; } CMiniDockFrameWnd::OnCaptureChanged(pWnd); }
void CExtMiniDockFrameWnd::OnNcLButtonUp(UINT nHitTest, CPoint point) { if( _ResizingIsInProgress() ) { _ResizingEnd(); return; } if( CExtControlBar::_DraggingGetBar() != NULL ) return; CRect rcBarWnd; GetWindowRect( &rcBarWnd ); CPoint ptDevOffset = -rcBarWnd.TopLeft(); CPoint ptWnd( point + ptDevOffset ); CExtControlBar * pExtBar = GetControlBarExt(); if( pExtBar != NULL && pExtBar->m_bNcAreaBtnTracking ) { INT nCountOfNcButtons = pExtBar->NcButtons_GetCount(); for( INT nBtn = 0; nBtn < nCountOfNcButtons; nBtn++ ) { CExtBarNcAreaButton * pBtn = pExtBar->NcButtons_GetAt( nBtn ); if( !pBtn->OnQueryVisibility() ) continue; if( pBtn->OnNcAreaClicked( ptWnd ) ) return; } // for( INT nBtn = 0; nBtn < nCountOfNcButtons; nBtn++ ) return; } // if( pExtBar != NULL && pExtBar->m_bNcAreaBtnTracking ) if( m_rcBtnHideBar.PtInRect( ptWnd ) ) { CControlBar * pBar = GetControlBar(); if( pBar == NULL ) return; ASSERT_VALID( pBar ); GetParentFrame()-> ShowControlBar( pBar, FALSE, FALSE ); return; } CMiniDockFrameWnd::OnNcLButtonUp(nHitTest, point); }
void CExtMiniDockFrameWnd::OnNcRButtonDown(UINT nHitTest, CPoint point) { if( _ResizingIsInProgress() ) { _ResizingEnd(); return; } if( nHitTest == HTCAPTION ) { CExtControlBar * pExtBar = GetControlBarExt(); if( pExtBar != NULL ) { pExtBar->_ContextMenuTrack(); return; } // if( pExtBar != NULL ) } // if( nHitTest == HTCAPTION ) CMiniDockFrameWnd::OnNcRButtonDown(nHitTest,point); }
void CExtMiniDockFrameWnd::_ResizingStart( UINT nHitTest, const CPoint & point ) { #ifdef _USRDLL // If this is a DLL, need to set up MFC state AFX_MANAGE_STATE(AfxGetStaticModuleState()); #endif ASSERT( m_nResizingMode == HTNOWHERE ); ASSERT( IsWindowVisible() ); CExtPopupMenuWnd::CancelMenuTracking(); CExtControlBar * pExtBar = GetControlBarExt(); ASSERT_VALID( pExtBar ); if( ( ! pExtBar->IsShowContentWhenDragging() ) // || pExtBar->m_bFixedMode ) { m_nResizingMode = HTNOWHERE; pExtBar->m_pDockContext->StartResize(nHitTest, point); return; } switch( nHitTest ) { case HTLEFT: case HTRIGHT: case HTTOP: case HTTOPLEFT: case HTTOPRIGHT: case HTBOTTOM: case HTBOTTOMLEFT: case HTBOTTOMRIGHT: m_nResizingMode = nHitTest; break; default: return; } // switch( nHitTest ) #ifdef _DEBUG int nPos = 1; CControlBar * pDebugDummyBar = NULL; while( pDebugDummyBar == NULL && nPos < m_wndDockBar.m_arrBars.GetSize() ) pDebugDummyBar = reinterpret_cast<CExtDockBar&> (m_wndDockBar). GetDockedControlBar(nPos++); ASSERT(pDebugDummyBar != NULL); ASSERT_KINDOF(CExtControlBar, pDebugDummyBar); ASSERT(pDebugDummyBar->m_pDockContext != NULL); // CBRS_SIZE_DYNAMIC toolbars cannot have the CBRS_FLOAT_MULTI style ASSERT((m_wndDockBar.m_dwStyle & CBRS_FLOAT_MULTI) == 0); #endif // _DEBUG ASSERT( pExtBar == pDebugDummyBar ); ASSERT(pExtBar->m_pDockContext != NULL); if( !pExtBar->m_bFixedMode ) ModifyStyle(__REMOVED_NONFIXMODE_STYLES, 0); BringWindowToTop(); SetCapture(); GetWindowRect( &m_rcWndResizingStart ); while( m_nResizingMode != HTNOWHERE ) { ::WaitMessage(); MSG msg; // Process all the messages in the message queue while( PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) ) { bool bStop = false; switch( msg.message ) { case WM_ACTIVATEAPP: case WM_COMMAND: bStop = true; break; default: if( WM_KEYFIRST <= msg.message && msg.message <= WM_KEYLAST ) bStop = true; break; } // switch( msg.message ) if( (!bStop) && GetCapture() != this ) bStop = true; if( bStop ) { _ResizingEnd(); return; } if( !AfxGetApp()->PumpMessage() ) { PostQuitMessage(0); return; // Signal WM_QUIT received } // if( !AfxGetApp()->PumpMessage() ) } // while( PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) ) LONG lIdle = 0; while( AfxGetApp()->OnIdle(lIdle++) ); } // while( m_nResizingMode != HTNOWHERE ) }
void CExtMiniDockFrameWnd::OnNcRButtonDown(UINT nHitTest, CPoint point) { if( _ResizingIsInProgress() ) { _ResizingEnd(); return; } if( nHitTest == HTCAPTION ) { #if (!defined __EXT_MFC_NO_CUSTOMIZE) CExtCustomizeSite * pSite = CExtCustomizeSite::GetCustomizeSite( m_hWnd ); if( pSite != NULL && pSite->IsCustomizeMode() ) return; #endif // (!defined __EXT_MFC_NO_CUSTOMIZE) if( CExtControlBar::FindHelpMode(this) ) return; CExtControlBar * pExtBar = GetControlBarExt(); if( pExtBar != NULL ) { ASSERT_VALID( pExtBar ); CFrameWnd * pFrame = pExtBar->_GetDockingFrameImpl(); ASSERT_VALID( pFrame ); CPoint point; if( ! ::GetCursorPos(&point) ) return; HWND hWndTrack = pFrame-> /*pExtBar->GetOwner()->*/ GetSafeHwnd(); ASSERT( hWndTrack != NULL && ::IsWindow(hWndTrack) ); CExtPopupMenuWnd * pPopup = new CExtPopupMenuWnd; VERIFY( pPopup->CreatePopupMenu(hWndTrack) ); if( ! CExtDockBar::_ConstructDockSiteControlBarPopupMenu( pFrame, pPopup, CExtControlBar::POPUP_MENU_EVENT_DATA::__PMED_MINIFRAME_NC_CTX, pExtBar, WM_NCRBUTTONDOWN, NULL ) ) { delete pPopup; return; } if( pPopup->ItemGetCount() == 0 ) { delete pPopup; return; } //::SetFocus( hWndTrack ); if( ! pPopup->TrackPopupMenu( TPMX_OWNERDRAW_FIXED, point.x, point.y ) ) { delete pPopup; } return; } // if( pExtBar != NULL ) } // if( nHitTest == HTCAPTION ) CMiniDockFrameWnd::OnNcRButtonDown(nHitTest,point); }