From: Václav Slavík Date: Mon, 23 Feb 2004 22:38:30 +0000 (+0000) Subject: create wxPrintData instance on demand X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/632783de61f266fcd6b4d63e924530eb958e1b46 create wxPrintData instance on demand git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/html/htmprint.h b/include/wx/html/htmprint.h index d71509834d..1ebf5a728a 100644 --- a/include/wx/html/htmprint.h +++ b/include/wx/html/htmprint.h @@ -237,7 +237,7 @@ public: void SetFonts(wxString normal_face, wxString fixed_face, const int *sizes = 0); // Sets fonts to be used when displaying HTML page. (if size null then default sizes used) - wxPrintData *GetPrintData() {return m_PrintData;} + wxPrintData *GetPrintData(); wxPageSetupDialogData *GetPageSetupData() {return m_PageSetupData;} // return page setting data objects. // (You can set their parameters.) diff --git a/src/html/htmprint.cpp b/src/html/htmprint.cpp index 606cbefdd7..720bde4849 100644 --- a/src/html/htmprint.cpp +++ b/src/html/htmprint.cpp @@ -457,7 +457,7 @@ wxHtmlEasyPrinting::wxHtmlEasyPrinting(const wxString& name, wxWindow *parentWin { m_ParentWindow = parentWindow; m_Name = name; - m_PrintData = new wxPrintData; + m_PrintData = NULL; m_PageSetupData = new wxPageSetupDialogData; m_Headers[0] = m_Headers[1] = m_Footers[0] = m_Footers[1] = wxEmptyString; @@ -477,6 +477,13 @@ wxHtmlEasyPrinting::~wxHtmlEasyPrinting() } +wxPrintData *wxHtmlEasyPrinting::GetPrintData() +{ + if (m_PrintData == NULL) + m_PrintData = new wxPrintData(); + return m_PrintData; +} + bool wxHtmlEasyPrinting::PreviewFile(const wxString &htmlfile) { @@ -525,7 +532,7 @@ bool wxHtmlEasyPrinting::PrintText(const wxString &htmltext, const wxString &bas bool wxHtmlEasyPrinting::DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2) { // Pass two printout objects: for preview, and possible printing. - wxPrintDialogData printDialogData(*m_PrintData); + wxPrintDialogData printDialogData(*GetPrintData()); wxPrintPreview *preview = new wxPrintPreview(printout1, printout2, &printDialogData); if (!preview->Ok()) { @@ -546,7 +553,7 @@ bool wxHtmlEasyPrinting::DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *pr bool wxHtmlEasyPrinting::DoPrint(wxHtmlPrintout *printout) { - wxPrintDialogData printDialogData(*m_PrintData); + wxPrintDialogData printDialogData(*GetPrintData()); wxPrinter printer(&printDialogData); if (!printer.Print(m_ParentWindow, printout, TRUE)) @@ -554,7 +561,7 @@ bool wxHtmlEasyPrinting::DoPrint(wxHtmlPrintout *printout) return FALSE; } - (*m_PrintData) = printer.GetPrintDialogData().GetPrintData(); + (*GetPrintData()) = printer.GetPrintDialogData().GetPrintData(); return TRUE; } @@ -562,31 +569,31 @@ bool wxHtmlEasyPrinting::DoPrint(wxHtmlPrintout *printout) void wxHtmlEasyPrinting::PrinterSetup() { - wxPrintDialogData printDialogData(*m_PrintData); + wxPrintDialogData printDialogData(*GetPrintData()); wxPrintDialog printerDialog(m_ParentWindow, &printDialogData); printerDialog.GetPrintDialogData().SetSetupDialog(TRUE); if (printerDialog.ShowModal() == wxID_OK) - (*m_PrintData) = printerDialog.GetPrintDialogData().GetPrintData(); + (*GetPrintData()) = printerDialog.GetPrintDialogData().GetPrintData(); } void wxHtmlEasyPrinting::PageSetup() { - if (!m_PrintData->Ok()) + if (!GetPrintData()->Ok()) { wxLogError(_("There was a problem during page setup: you may need to set a default printer.")); return; } - m_PageSetupData->SetPrintData(*m_PrintData); + m_PageSetupData->SetPrintData(*GetPrintData()); wxPageSetupDialog pageSetupDialog(m_ParentWindow, m_PageSetupData); if (pageSetupDialog.ShowModal() == wxID_OK) { - (*m_PrintData) = pageSetupDialog.GetPageSetupData().GetPrintData(); + (*GetPrintData()) = pageSetupDialog.GetPageSetupData().GetPrintData(); (*m_PageSetupData) = pageSetupDialog.GetPageSetupData(); } }