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:
@@ -16,6 +16,7 @@ All (GUI):
|
|||||||
- Added wxXmlResource::Unload().
|
- Added wxXmlResource::Unload().
|
||||||
- Possibility of modeless wxWizard dialog (with presentation in sample).
|
- Possibility of modeless wxWizard dialog (with presentation in sample).
|
||||||
- Fixed a rare crash due to malformed HTML in wxHTML (Xavier Nodet).
|
- 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:
|
wxMSW:
|
||||||
|
|
||||||
|
@@ -313,11 +313,14 @@ public:
|
|||||||
|
|
||||||
void OnPaint(wxPaintEvent& event);
|
void OnPaint(wxPaintEvent& event);
|
||||||
void OnChar(wxKeyEvent &event);
|
void OnChar(wxKeyEvent &event);
|
||||||
|
|
||||||
// Responds to colour changes
|
// Responds to colour changes
|
||||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
#if wxUSE_MOUSEWHEEL
|
||||||
|
void OnMouseWheel(wxMouseEvent& event);
|
||||||
|
#endif // wxUSE_MOUSEWHEEL
|
||||||
|
|
||||||
wxPrintPreviewBase* m_printPreview;
|
wxPrintPreviewBase* m_printPreview;
|
||||||
|
|
||||||
DECLARE_CLASS(wxPreviewCanvas)
|
DECLARE_CLASS(wxPreviewCanvas)
|
||||||
|
@@ -567,6 +567,9 @@ BEGIN_EVENT_TABLE(wxPreviewCanvas, wxScrolledWindow)
|
|||||||
EVT_PAINT(wxPreviewCanvas::OnPaint)
|
EVT_PAINT(wxPreviewCanvas::OnPaint)
|
||||||
EVT_CHAR(wxPreviewCanvas::OnChar)
|
EVT_CHAR(wxPreviewCanvas::OnChar)
|
||||||
EVT_SYS_COLOUR_CHANGED(wxPreviewCanvas::OnSysColourChanged)
|
EVT_SYS_COLOUR_CHANGED(wxPreviewCanvas::OnSysColourChanged)
|
||||||
|
#if wxUSE_MOUSEWHEEL
|
||||||
|
EVT_MOUSEWHEEL(wxPreviewCanvas::OnMouseWheel)
|
||||||
|
#endif
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
// VZ: the current code doesn't refresh properly without
|
// 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
|
// wxPreviewControlBar
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user