Ctrl+mouse wheel changes zoom factor in print preview (patch 1230919)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-07-28 22:20:06 +00:00
parent 62f864c32c
commit fb6efdf277
3 changed files with 52 additions and 1 deletions

View File

@@ -567,6 +567,9 @@ BEGIN_EVENT_TABLE(wxPreviewCanvas, wxScrolledWindow)
EVT_PAINT(wxPreviewCanvas::OnPaint)
EVT_CHAR(wxPreviewCanvas::OnChar)
EVT_SYS_COLOUR_CHANGED(wxPreviewCanvas::OnSysColourChanged)
#if wxUSE_MOUSEWHEEL
EVT_MOUSEWHEEL(wxPreviewCanvas::OnMouseWheel)
#endif
END_EVENT_TABLE()
// VZ: the current code doesn't refresh properly without
@@ -669,6 +672,50 @@ void wxPreviewCanvas::OnChar(wxKeyEvent &event)
}
}
#if wxUSE_MOUSEWHEEL
void wxPreviewCanvas::OnMouseWheel(wxMouseEvent& event)
{
wxPreviewControlBar *
controlBar = wxStaticCast(GetParent(), wxPreviewFrame)->GetControlBar();
if ( controlBar )
{
if ( event.ControlDown() && event.GetWheelRotation() != 0 )
{
int currentZoom = controlBar->GetZoomControl();
int delta;
if ( currentZoom < 100 )
delta = 5;
else if ( currentZoom <= 120 )
delta = 10;
else
delta = 50;
if ( event.GetWheelRotation() > 0 )
delta = -delta;
int newZoom = currentZoom + delta;
if ( newZoom < 10 )
newZoom = 10;
if ( newZoom > 200 )
newZoom = 200;
if ( newZoom != currentZoom )
{
controlBar->SetZoomControl(newZoom);
m_printPreview->SetZoom(newZoom);
Refresh();
}
return;
}
}
event.Skip();
}
#endif // wxUSE_MOUSEWHEEL
//----------------------------------------------------------------------------
// wxPreviewControlBar
//----------------------------------------------------------------------------