コード例 #1
0
//
// 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);
}
コード例 #2
0
void ImageWidget::emitZoomStateChanged()
{
	emit canZoomInChanged(canZoomIn());
	emit canZoomOutChanged(canZoomOut());
	emit magnificationChanged(m_magnification);
	emit autoImageResizeChanged(m_flagAutoImageResize);
}
コード例 #3
0
void ImageWidget::zoomOut()
{
	if (canZoomOut()) {
		setAutoImageResize(false);
		zoom(m_magnification * 0.5);
	}
}
コード例 #4
0
//
// 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);
}
コード例 #5
0
bool DisplayOptions::zoomOut()
{
	if ( !canZoomOut() ) return false;
	_magnification = allowedMagnifications[ closestIndex() - 1 ];
	return true;
}
コード例 #6
0
ファイル: itemview.cpp プロジェクト: zoltanp/ktechlab-0.3
void ItemView::updateZoomActions() {
	action("view_zoom_in")->setEnabled(canZoomIn());
	action("view_zoom_out")->setEnabled(canZoomOut());
	action("view_actual_size")->setEnabled(m_zoomLevel != 1.0);
}