#endif
#endif // __WXMSW__
-#if !USE_SHARED_LIBRARY
IMPLEMENT_CLASS(wxPrinterBase, wxObject)
IMPLEMENT_ABSTRACT_CLASS(wxPrintout, wxObject)
IMPLEMENT_CLASS(wxPreviewCanvas, wxWindow)
EVT_PAINT(wxPreviewCanvas::OnPaint)
EVT_SYS_COLOUR_CHANGED(wxPreviewCanvas::OnSysColourChanged)
END_EVENT_TABLE()
-#endif
/*
* Printer
wxPaintDC dc(this);
PrepareDC( dc );
+/*
+#ifdef __WXGTK__
+ if (!GetUpdateRegion().IsEmpty())
+ dc.SetClippingRegion( GetUpdateRegion() );
+#endif
+*/
+
if (m_printPreview)
{
m_printPreview->PaintPage(this, dc);
if (m_buttonFlags & wxPREVIEW_PREVIOUS)
{
- m_previousPageButton = new wxButton(this, wxID_PREVIEW_PREVIOUS, "<<", wxPoint(x, y),
+ m_previousPageButton = new wxButton(this, wxID_PREVIEW_PREVIOUS, wxT("<<"), wxPoint(x, y),
wxSize(buttonWidth, buttonHeight));
x += gap + buttonWidth;
}
if (m_buttonFlags & wxPREVIEW_NEXT)
{
- m_nextPageButton = new wxButton(this, wxID_PREVIEW_NEXT, ">>",
+ m_nextPageButton = new wxButton(this, wxID_PREVIEW_NEXT, wxT(">>"),
wxPoint(x, y), wxSize(buttonWidth, buttonHeight));
x += gap + buttonWidth;
}
"120%", "150%", "200%"
};
- m_zoomControl = new wxChoice(this, wxID_PREVIEW_ZOOM,
- wxPoint(x, y), wxSize(100, -1));
-
- // Yes, this look stupid, but this is because gcc gives up otherwise.
int n = WXSIZEOF(choices);
- for ( int i = 0; i < n; i++ )
- m_zoomControl->Append(choices[i]);
-
+
+ wxString* strings = new wxString[n];
+ int i;
+ for (i = 0; i < n; i++ )
+ strings[i] = choices[i];
+
+ m_zoomControl = new wxChoice(this, wxID_PREVIEW_ZOOM,
+ wxPoint(x, y),
+ wxSize(100, -1),
+ n,
+ strings
+ );
+ delete[] strings;
+
SetZoomControl(m_printPreview->GetZoom());
}
{
char buf[20];
sprintf(buf, "%d%%", zoom);
+// Someone is calling methods that do no exist in wxChoice!! So I'll just comment out for VA for now
if (m_zoomControl)
m_zoomControl->SetStringSelection(buf);
}
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;
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;
if (!m_previewCanvas)
{
- wxMessageBox(_("wxPrintPreviewBase::RenderPage: must use wxPrintPreviewBase::SetCanvas to let me know about the canvas!"),
- _("Print Preview Failure"), wxOK);
+ wxFAIL_MSG(_T("wxPrintPreviewBase::RenderPage: must use "
+ "wxPrintPreviewBase::SetCanvas to let me "
+ "know about the canvas!"));
+
return FALSE;
}
m_previewCanvas->GetSize(&canvasWidth, &canvasHeight);
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()))
m_previewBitmap = NULL;
}
-
if (m_previewCanvas)
{
RenderPage(m_currentPage);
+ ((wxScrolledWindow *) m_previewCanvas)->Scroll(0, 0);
m_previewCanvas->Clear();
m_previewCanvas->Refresh();
}