BEGIN_EVENT_TABLE(wxPreviewControlBar, wxPanel)
EVT_BUTTON(wxID_PREVIEW_CLOSE, wxPreviewControlBar::OnWindowClose)
EVT_BUTTON(wxID_PREVIEW_PRINT, wxPreviewControlBar::OnPrint)
- EVT_BUTTON(wxID_PREVIEW_PREVIOUS, wxPreviewControlBar::OnPrevious)
- EVT_BUTTON(wxID_PREVIEW_NEXT, wxPreviewControlBar::OnNext)
+ EVT_BUTTON(wxID_PREVIEW_PREVIOUS, wxPreviewControlBar::OnPreviousButton)
+ EVT_BUTTON(wxID_PREVIEW_NEXT, wxPreviewControlBar::OnNextButton)
+ EVT_CHAR(wxPreviewControlBar::OnChar)
EVT_CHOICE(wxID_PREVIEW_ZOOM, wxPreviewControlBar::OnZoom)
EVT_PAINT(wxPreviewControlBar::OnPaint)
END_EVENT_TABLE()
preview->Print(TRUE);
}
-void wxPreviewControlBar::OnNext(wxCommandEvent& WXUNUSED(event))
+void wxPreviewControlBar::OnChar(wxKeyEvent &event)
+{
+ switch(event.KeyCode())
+ {
+ case WXK_NEXT:
+ OnNext(); break;
+ case WXK_PRIOR:
+ OnPrevious(); break;
+ default:
+ event.Skip();
+ }
+}
+
+void wxPreviewControlBar::OnNext(void)
{
wxPrintPreviewBase *preview = GetPrintPreview();
if (preview)
}
}
-void wxPreviewControlBar::OnPrevious(wxCommandEvent& WXUNUSED(event))
+void wxPreviewControlBar::OnPrevious(void)
{
wxPrintPreviewBase *preview = GetPrintPreview();
if (preview)
int wxPreviewControlBar::GetZoomControl()
{
wxChar buf[20];
- if (m_zoomControl && (m_zoomControl->GetStringSelection() != _T("")))
+ if (m_zoomControl && (m_zoomControl->GetStringSelection() != wxT("")))
{
wxStrcpy(buf, m_zoomControl->GetStringSelection());
buf[wxStrlen(buf) - 1] = 0;
*/
BEGIN_EVENT_TABLE(wxPreviewFrame, wxFrame)
-EVT_CLOSE(wxPreviewFrame::OnCloseWindow)
+ EVT_CLOSE(wxPreviewFrame::OnCloseWindow)
END_EVENT_TABLE()
wxPreviewFrame::wxPreviewFrame(wxPrintPreviewBase *preview, wxFrame *parent, const wxString& title,
m_leftMargin = 40;
m_pageWidth = 0;
m_pageHeight = 0;
+ m_printingPrepared = FALSE;
- printout->OnPreparePrinting();
+ // Too soon! Moved to RenderPage.
+ // printout->OnPreparePrinting();
// Get some parameters from the printout, if defined
int selFrom, selTo;
m_previewPrintout->SetDC(&memoryDC);
m_previewPrintout->SetPageSizePixels(m_pageWidth, m_pageHeight);
+ // Need to delay OnPreparePrinting until here, so we have enough information.
+ if (!m_printingPrepared)
+ {
+ m_previewPrintout->OnPreparePrinting();
+ m_printingPrepared = TRUE;
+ }
+
m_previewPrintout->OnBeginPrinting();
if (!m_previewPrintout->OnBeginDocument(m_printDialogData.GetFromPage(), m_printDialogData.GetToPage()))