+{
+ m_nativeData->m_ref--;
+ if (m_nativeData->m_ref == 0)
+ delete m_nativeData;
+
+#ifdef __WXMAC__
+ delete m_nativePrintData ;
+#endif
+}
+
+
+#ifdef __WXMAC__
+void wxPrintData::ConvertToNative()
+{
+ m_nativePrintData->TransferFrom( this ) ;
+}
+
+void wxPrintData::ConvertFromNative()
+{
+ m_nativePrintData->TransferTo( this ) ;
+}
+#endif
+
+void wxPrintData::operator=(const wxPrintData& data)
+{
+ m_printNoCopies = data.m_printNoCopies;
+ m_printCollate = data.m_printCollate;
+ m_printOrientation = data.m_printOrientation;
+ m_printerName = data.m_printerName;
+ m_colour = data.m_colour;
+ m_duplexMode = data.m_duplexMode;
+ m_printQuality = data.m_printQuality;
+ m_paperId = data.m_paperId;
+ m_paperSize = data.m_paperSize;
+ m_bin = data.m_bin;
+ m_printMode = data.m_printMode;
+
+ m_nativeData = data.GetNativeData();
+ m_nativeData->m_ref++;
+
+#ifdef __WXMAC__
+ m_nativePrintData->CopyFrom( data.m_nativePrintData ) ;
+#endif
+}
+
+// Is this data OK for showing the print dialog?
+bool wxPrintData::Ok() const
+{
+ m_nativeData->TransferFrom( *this );
+
+ return m_nativeData->Ok();
+}
+
+// ----------------------------------------------------------------------------
+// Print dialog data
+// ----------------------------------------------------------------------------
+
+wxPrintDialogData::wxPrintDialogData()
+{
+#ifdef __WXMSW__
+ m_printDlgData = NULL;
+#endif
+ m_printFromPage = 0;
+ m_printToPage = 0;
+ m_printMinPage = 0;
+ m_printMaxPage = 0;
+ m_printNoCopies = 1;
+ m_printAllPages = false;
+ m_printCollate = false;
+ m_printToFile = false;
+ m_printSelection = false;
+ m_printEnableSelection = false;
+ m_printEnablePageNumbers = true;
+
+ wxPrintFactory* factory = wxPrintFactory::GetFactory();
+ m_printEnablePrintToFile = ! factory->HasOwnPrintToFile();
+
+ m_printEnableHelp = false;
+ m_printSetupDialog = false;
+}
+
+wxPrintDialogData::wxPrintDialogData(const wxPrintDialogData& dialogData)
+ : wxObject()