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

@@ -16,6 +16,7 @@ All (GUI):
- Added wxXmlResource::Unload().
- Possibility of modeless wxWizard dialog (with presentation in sample).
- Fixed a rare crash due to malformed HTML in wxHTML (Xavier Nodet).
- Ctrl+mouse wheel changes zoom factor in print preview (Zbigniew Zag<61>rski)
wxMSW:

View File

@@ -313,11 +313,14 @@ public:
void OnPaint(wxPaintEvent& event);
void OnChar(wxKeyEvent &event);
// Responds to colour changes
void OnSysColourChanged(wxSysColourChangedEvent& event);
private:
#if wxUSE_MOUSEWHEEL
void OnMouseWheel(wxMouseEvent& event);
#endif // wxUSE_MOUSEWHEEL
wxPrintPreviewBase* m_printPreview;
DECLARE_CLASS(wxPreviewCanvas)

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
//----------------------------------------------------------------------------