// // Intercept WM_SETCURSOR to change the mouse cursor. // BOOL CChartViewer::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { if (m_isOnPlotArea) { switch (m_mouseUsage) { case Chart::MouseUsageZoomIn: if (canZoomIn(m_zoomDirection)) ::SetCursor(getZoomInCursor()); else ::SetCursor(getNoZoomCursor()); return TRUE; case Chart::MouseUsageZoomOut: if (canZoomOut(m_zoomDirection)) ::SetCursor(getZoomOutCursor()); else ::SetCursor(getNoZoomCursor()); return TRUE; } } if (m_isClickable) { // Hand cursor = IDC_HAND = 32649 HCURSOR h = AfxGetApp()->LoadStandardCursor(MAKEINTRESOURCE(32649)); if (NULL != h) ::SetCursor(h); return TRUE; } return CStatic::OnSetCursor(pWnd, nHitTest, message); }
void ImageWidget::emitZoomStateChanged() { emit canZoomInChanged(canZoomIn()); emit canZoomOutChanged(canZoomOut()); emit magnificationChanged(m_magnification); emit autoImageResizeChanged(m_flagAutoImageResize); }
void ImageWidget::zoomOut() { if (canZoomOut()) { setAutoImageResize(false); zoom(m_magnification * 0.5); } }
// // Mouse left button up event. // void CChartViewer::OnLButtonUp(UINT nFlags, CPoint point) { mouse_state=true; if (m_isPlotAreaMouseDown) { // Release the mouse capture. ReleaseCapture(); m_isPlotAreaMouseDown = false; setRectVisible(false); bool hasUpdate = false; switch (m_mouseUsage) { case Chart::MouseUsageZoomIn : if (canZoomIn(m_zoomDirection)) { if (isDrag(m_zoomDirection, point)) // Zoom to the drag selection rectangle. hasUpdate = zoomTo(m_zoomDirection, m_plotAreaMouseDownXPos, m_plotAreaMouseDownYPos, point.x, point.y); else // User just click on a point. Zoom-in around the mouse cursor position. hasUpdate = zoomAt(m_zoomDirection, point.x, point.y, m_zoomInRatio); } break; case Chart::MouseUsageZoomOut: // Zoom out around the mouse cursor position. if (canZoomOut(m_zoomDirection)) hasUpdate = zoomAt(m_zoomDirection, point.x, point.y, m_zoomOutRatio); break; default : if (m_isDragScrolling) // Drag to scroll. We can update the image map now as scrolling has finished. updateViewPort(false, true); else // Is not zooming or scrolling, so is just a normal click event. GetParent()->SendMessage(WM_COMMAND, MAKEWPARAM(GetDlgCtrlID(), BN_CLICKED), (LPARAM)m_hWnd); break; } m_isDragScrolling = false; if (hasUpdate) // View port has changed - update it. updateViewPort(true, true); } CStatic::OnLButtonUp(nFlags, point); }
bool DisplayOptions::zoomOut() { if ( !canZoomOut() ) return false; _magnification = allowedMagnifications[ closestIndex() - 1 ]; return true; }
void ItemView::updateZoomActions() { action("view_zoom_in")->setEnabled(canZoomIn()); action("view_zoom_out")->setEnabled(canZoomOut()); action("view_actual_size")->setEnabled(m_zoomLevel != 1.0); }