X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/891daf8c1ed66bd9396fb9e4eb9f15da85823c9a..550f38d74380256da7bfcb961d40ff86f677f77e:/src/common/prntbase.cpp diff --git a/src/common/prntbase.cpp b/src/common/prntbase.cpp index 0dd2488919..a2cf649620 100644 --- a/src/common/prntbase.cpp +++ b/src/common/prntbase.cpp @@ -54,14 +54,13 @@ #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 #ifdef __WXMSW__ - #include "wx/msw/private.h" - #include - + #include "wx/msw/wrapcdlg.h" #ifndef __WIN32__ #include #endif @@ -134,7 +133,7 @@ wxPrintPreviewBase *wxNativePrintFactory::CreatePrintPreview( wxPrintout *previe #endif } -wxPrintDialogBase *wxNativePrintFactory::CreatePrintDialog( wxWindow *parent, +wxPrintDialogBase *wxNativePrintFactory::CreatePrintDialog( wxWindow *parent, wxPrintDialogData *data ) { #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) @@ -146,7 +145,7 @@ wxPrintDialogBase *wxNativePrintFactory::CreatePrintDialog( wxWindow *parent, #endif } -wxPrintDialogBase *wxNativePrintFactory::CreatePrintDialog( wxWindow *parent, +wxPrintDialogBase *wxNativePrintFactory::CreatePrintDialog( wxWindow *parent, wxPrintData *data ) { #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) @@ -158,7 +157,7 @@ wxPrintDialogBase *wxNativePrintFactory::CreatePrintDialog( wxWindow *parent, #endif } -wxPageSetupDialogBase *wxNativePrintFactory::CreatePageSetupDialog( wxWindow *parent, +wxPageSetupDialogBase *wxNativePrintFactory::CreatePageSetupDialog( wxWindow *parent, wxPageSetupDialogData *data ) { #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) @@ -183,10 +182,10 @@ bool wxNativePrintFactory::HasPrintSetupDialog() // the printer from the wxPrintDialog anyway. return true; #endif - + } -wxDialog *wxNativePrintFactory::CreatePrintSetupDialog( wxWindow *parent, +wxDialog *wxNativePrintFactory::CreatePrintSetupDialog( wxWindow *parent, wxPrintData *data ) { #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) @@ -209,7 +208,7 @@ wxDialog *wxNativePrintFactory::CreatePrintSetupDialog( wxWindow *parent, bool wxNativePrintFactory::HasOwnPrintToFile() { // Only relevant for PostScript and here the - // setup dialog provides no "print to file" + // setup dialog provides no "print to file" // option. In the GNOME setup dialog, the // setup dialog has its own print to file. return false; @@ -224,7 +223,7 @@ bool wxNativePrintFactory::HasPrinterLine() wxString wxNativePrintFactory::CreatePrinterLine() { // Only relevant for PostScript for now - + // We should query "lpstat -d" here return _("Generic PostScript"); } @@ -232,13 +231,13 @@ wxString wxNativePrintFactory::CreatePrinterLine() bool wxNativePrintFactory::HasStatusLine() { // Only relevant for PostScript for now - return true; + return true; } wxString wxNativePrintFactory::CreateStatusLine() { // Only relevant for PostScript for now - + // We should query "lpstat -r" or "lpstat -p" here return _("Ready"); } @@ -248,7 +247,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 @@ -261,8 +260,8 @@ wxPrintNativeDataBase *wxNativePrintFactory::CreatePrintNativeData() IMPLEMENT_ABSTRACT_CLASS(wxPrintNativeDataBase, wxObject) wxPrintNativeDataBase::wxPrintNativeDataBase() -{ - m_ref = 1; +{ + m_ref = 1; } //---------------------------------------------------------------------------- @@ -275,7 +274,7 @@ public: wxPrintFactoryModule() {} bool OnInit() { return true; } void OnExit() { wxPrintFactory::SetPrintFactory( NULL ); } - + private: DECLARE_DYNAMIC_CLASS(wxPrintFactoryModule) }; @@ -386,7 +385,7 @@ wxPrintDialogData& wxPrinter::GetPrintDialogData() const IMPLEMENT_ABSTRACT_CLASS(wxPrintDialogBase, wxDialog) wxPrintDialogBase::wxPrintDialogBase(wxWindow *parent, - wxWindowID id, + wxWindowID id, const wxString &title, const wxPoint &pos, const wxSize &size, @@ -444,7 +443,7 @@ wxDC *wxPrintDialog::GetPrintDC() IMPLEMENT_ABSTRACT_CLASS(wxPageSetupDialogBase, wxDialog) wxPageSetupDialogBase::wxPageSetupDialogBase(wxWindow *parent, - wxWindowID id, + wxWindowID id, const wxString &title, const wxPoint &pos, const wxSize &size, @@ -568,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 @@ -670,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 //---------------------------------------------------------------------------- @@ -1006,7 +1052,7 @@ void wxPreviewFrame::CreateControlBar() if (m_printPreview->GetPrintoutForPrinting()) buttons |= wxPREVIEW_PRINT; - m_controlBar = new wxPreviewControlBar(m_printPreview, buttons, this, wxPoint(0, 0), wxSize(400, 40)); + m_controlBar = new wxPreviewControlBar(m_printPreview, buttons, this, wxPoint(0,0), wxSize(400, 40)); m_controlBar->CreateButtons(); }