X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/660296aa90ad5ecc98c585cc24567cee8130499a..d23ec02c6ab52f60349601be999bab4cf6acbdc4:/src/common/prntbase.cpp diff --git a/src/common/prntbase.cpp b/src/common/prntbase.cpp index 5a308b4950..7b910540b2 100644 --- a/src/common/prntbase.cpp +++ b/src/common/prntbase.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: prntbase.cpp +// Name: src/common/prntbase.cpp // Purpose: Printing framework base class implementation // Author: Julian Smart // Modified by: @@ -9,11 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "prntbase.h" - #pragma implementation "printdlg.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -54,6 +49,7 @@ #include "wx/msw/printdlg.h" #elif defined(__WXMAC__) #include "wx/mac/printdlg.h" +#include "wx/mac/private/print.h" #else #include "wx/generic/prntdlgg.h" #endif @@ -102,7 +98,7 @@ wxPrinterBase *wxNativePrintFactory::CreatePrinter( wxPrintDialogData *data ) #else return new wxPostScriptPrinter( data ); #endif -}; +} wxPrintPreviewBase *wxNativePrintFactory::CreatePrintPreview( wxPrintout *preview, wxPrintout *printout, wxPrintDialogData *data ) @@ -246,7 +242,7 @@ wxPrintNativeDataBase *wxNativePrintFactory::CreatePrintNativeData() #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) return new wxWindowsPrintNativeData; #elif defined(__WXMAC__) - return new wxMacPrintNativeData; + return new wxMacCarbonPrintData; #else return new wxPostScriptPrintNativeData; #endif @@ -566,6 +562,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 @@ -655,9 +654,9 @@ void wxPreviewCanvas::OnChar(wxKeyEvent &event) switch(event.GetKeyCode()) { - case WXK_NEXT: + case WXK_PAGEDOWN: controlBar->OnNext(); break; - case WXK_PRIOR: + case WXK_PAGEUP: controlBar->OnPrevious(); break; case WXK_HOME: controlBar->OnFirst(); break; @@ -668,6 +667,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 //---------------------------------------------------------------------------- @@ -1093,17 +1136,17 @@ bool wxPrintPreviewBase::SetCurrentPage(int pageNum) } int wxPrintPreviewBase::GetCurrentPage() const - { return m_currentPage; }; + { return m_currentPage; } void wxPrintPreviewBase::SetPrintout(wxPrintout *printout) - { m_previewPrintout = printout; }; + { m_previewPrintout = printout; } wxPrintout *wxPrintPreviewBase::GetPrintout() const - { return m_previewPrintout; }; + { return m_previewPrintout; } wxPrintout *wxPrintPreviewBase::GetPrintoutForPrinting() const - { return m_printPrintout; }; + { return m_printPrintout; } void wxPrintPreviewBase::SetFrame(wxFrame *frame) - { m_previewFrame = frame; }; + { m_previewFrame = frame; } void wxPrintPreviewBase::SetCanvas(wxPreviewCanvas *canvas) - { m_previewCanvas = canvas; }; + { m_previewCanvas = canvas; } wxFrame *wxPrintPreviewBase::GetFrame() const { return m_previewFrame; } wxPreviewCanvas *wxPrintPreviewBase::GetCanvas() const @@ -1470,5 +1513,4 @@ void wxPrintPreview::DetermineScaling() m_pimpl->DetermineScaling(); } - #endif // wxUSE_PRINTING_ARCHITECTURE