X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6aa55ce7277b3b5bd6da84a741d0270367678ab0..2ebcd5f5fd47cd16915ff3b08c0253f79a1d2220:/src/common/cmndata.cpp?ds=sidebyside diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index fdb6f88075..387b2c7f93 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -37,17 +37,20 @@ #include "wx/gdicmn.h" #include "wx/cmndata.h" - -#include "wx/paper.h" +#include "wx/log.h" // For compatibility #if (defined(__WXMOTIF__) || defined(__WXGTK__)) && wxUSE_POSTSCRIPT #define wxCOMPATIBILITY_WITH_PRINTSETUPDATA 1 #endif -#if wxCOMPATIBILITY_WITH_PRINTSETUPDATA - #include "wx/generic/dcpsg.h" -#endif +#if wxUSE_PRINTING_ARCHITECTURE + #include "wx/paper.h" + + #if wxCOMPATIBILITY_WITH_PRINTSETUPDATA + #include "wx/generic/dcpsg.h" + #endif +#endif // wxUSE_PRINTING_ARCHITECTURE #ifdef __WXMSW__ #include @@ -58,6 +61,11 @@ #include #endif // Win16 + #ifdef __WXWINE__ + #include + #include + #endif + #if defined(__WATCOMC__) || defined(__SC__) || defined(__SALFORDC__) #include #include @@ -65,9 +73,11 @@ #endif // MSW #if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject) - IMPLEMENT_DYNAMIC_CLASS(wxPrintDialogData, wxObject) - IMPLEMENT_DYNAMIC_CLASS(wxPageSetupDialogData, wxObject) + #if wxUSE_PRINTING_ARCHITECTURE + IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject) + IMPLEMENT_DYNAMIC_CLASS(wxPrintDialogData, wxObject) + IMPLEMENT_DYNAMIC_CLASS(wxPageSetupDialogData, wxObject) + #endif // wxUSE_PRINTING_ARCHITECTURE IMPLEMENT_DYNAMIC_CLASS(wxFontData, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject) #endif @@ -162,6 +172,7 @@ void wxFontData::operator=(const wxFontData& data) maxSize = data.maxSize; } +#if wxUSE_PRINTING_ARCHITECTURE // ---------------------------------------------------------------------------- // Print data // ---------------------------------------------------------------------------- @@ -198,58 +209,62 @@ wxPrintData::wxPrintData() wxPrintData::wxPrintData(const wxPrintData& printData) { +#ifdef __WXMSW__ + m_devMode = NULL; +#endif + (*this) = printData; } wxPrintData::~wxPrintData() { #ifdef __WXMSW__ - HGLOBAL hDevMode = (HGLOBAL) m_devMode; + HGLOBAL hDevMode = (HGLOBAL)(DWORD) m_devMode; if (hDevMode ) GlobalFree(hDevMode); #endif } -#ifdef __WXMSW__ +#if defined(__WXMSW__) // && defined(__WIN32__) +#ifdef __WIN32__ static wxString wxGetPrintDlgError() { DWORD err = CommDlgExtendedError(); - wxString msg = "Unknown"; + wxString msg = _T("Unknown"); switch (err) { - case CDERR_FINDRESFAILURE: msg = "CDERR_FINDRESFAILURE"; break; - case CDERR_INITIALIZATION: msg = "CDERR_INITIALIZATION"; break; - case CDERR_LOADRESFAILURE: msg = "CDERR_LOADRESFAILURE"; break; - case CDERR_LOADSTRFAILURE: msg = "CDERR_LOADSTRFAILURE"; break; - case CDERR_LOCKRESFAILURE: msg = "CDERR_LOCKRESFAILURE"; break; - case CDERR_MEMALLOCFAILURE: msg = "CDERR_MEMALLOCFAILURE"; break; - case CDERR_MEMLOCKFAILURE: msg = "CDERR_MEMLOCKFAILURE"; break; - case CDERR_NOHINSTANCE: msg = "CDERR_NOHINSTANCE"; break; - case CDERR_NOHOOK: msg = "CDERR_NOHOOK"; break; - case CDERR_NOTEMPLATE: msg = "CDERR_NOTEMPLATE"; break; - case CDERR_STRUCTSIZE: msg = "CDERR_STRUCTSIZE"; break; - case PDERR_RETDEFFAILURE: msg = "PDERR_RETDEFFAILURE"; break; - case PDERR_PRINTERNOTFOUND: msg = "PDERR_PRINTERNOTFOUND"; break; - case PDERR_PARSEFAILURE: msg = "PDERR_PARSEFAILURE"; break; - case PDERR_NODEVICES: msg = "PDERR_NODEVICES"; break; - case PDERR_NODEFAULTPRN: msg = "PDERR_NODEFAULTPRN"; break; - case PDERR_LOADDRVFAILURE: msg = "PDERR_LOADDRVFAILURE"; break; - case PDERR_INITFAILURE: msg = "PDERR_INITFAILURE"; break; - case PDERR_GETDEVMODEFAIL: msg = "PDERR_GETDEVMODEFAIL"; break; - case PDERR_DNDMMISMATCH: msg = "PDERR_DNDMMISMATCH"; break; - case PDERR_DEFAULTDIFFERENT: msg = "PDERR_DEFAULTDIFFERENT"; break; - case PDERR_CREATEICFAILURE: msg = "PDERR_CREATEICFAILURE"; break; + case CDERR_FINDRESFAILURE: msg = _T("CDERR_FINDRESFAILURE"); break; + case CDERR_INITIALIZATION: msg = _T("CDERR_INITIALIZATION"); break; + case CDERR_LOADRESFAILURE: msg = _T("CDERR_LOADRESFAILURE"); break; + case CDERR_LOADSTRFAILURE: msg = _T("CDERR_LOADSTRFAILURE"); break; + case CDERR_LOCKRESFAILURE: msg = _T("CDERR_LOCKRESFAILURE"); break; + case CDERR_MEMALLOCFAILURE: msg = _T("CDERR_MEMALLOCFAILURE"); break; + case CDERR_MEMLOCKFAILURE: msg = _T("CDERR_MEMLOCKFAILURE"); break; + case CDERR_NOHINSTANCE: msg = _T("CDERR_NOHINSTANCE"); break; + case CDERR_NOHOOK: msg = _T("CDERR_NOHOOK"); break; + case CDERR_NOTEMPLATE: msg = _T("CDERR_NOTEMPLATE"); break; + case CDERR_STRUCTSIZE: msg = _T("CDERR_STRUCTSIZE"); break; + case PDERR_RETDEFFAILURE: msg = _T("PDERR_RETDEFFAILURE"); break; + case PDERR_PRINTERNOTFOUND: msg = _T("PDERR_PRINTERNOTFOUND"); break; + case PDERR_PARSEFAILURE: msg = _T("PDERR_PARSEFAILURE"); break; + case PDERR_NODEVICES: msg = _T("PDERR_NODEVICES"); break; + case PDERR_NODEFAULTPRN: msg = _T("PDERR_NODEFAULTPRN"); break; + case PDERR_LOADDRVFAILURE: msg = _T("PDERR_LOADDRVFAILURE"); break; + case PDERR_INITFAILURE: msg = _T("PDERR_INITFAILURE"); break; + case PDERR_GETDEVMODEFAIL: msg = _T("PDERR_GETDEVMODEFAIL"); break; + case PDERR_DNDMMISMATCH: msg = _T("PDERR_DNDMMISMATCH"); break; + case PDERR_DEFAULTDIFFERENT: msg = _T("PDERR_DEFAULTDIFFERENT"); break; + case PDERR_CREATEICFAILURE: msg = _T("PDERR_CREATEICFAILURE"); break; default: break; } return msg; } - - +#endif void wxPrintData::ConvertToNative() { - HGLOBAL hDevMode = (HGLOBAL) m_devMode; + HGLOBAL hDevMode = (HGLOBAL)(DWORD) m_devMode; if (!hDevMode) { // Use PRINTDLG as a way of creating a DEVMODE object @@ -282,8 +297,9 @@ void wxPrintData::ConvertToNative() GlobalFree(pd->hDevNames); pd->hDevMode = NULL; pd->hDevNames = NULL; -#ifdef __WXDEBUG__ - wxString str("Printing error: "); + +#if defined(__WXDEBUG__) && defined(__WIN32__) + wxString str(_T("Printing error: ")); str += wxGetPrintDlgError(); wxLogDebug(str); #endif @@ -295,7 +311,7 @@ void wxPrintData::ConvertToNative() pd->hDevNames = NULL; hDevMode = pd->hDevMode; - m_devMode = (void*) hDevMode; + m_devMode = (void*)(long) hDevMode; pd->hDevMode = NULL; } @@ -308,13 +324,17 @@ void wxPrintData::ConvertToNative() //// Orientation +#ifndef __WXWINE__ devMode->dmOrientation = m_printOrientation; +#endif devMode->dmFields = DM_ORIENTATION; //// Collation +#ifndef __WIN16__ devMode->dmCollate = (m_printCollate ? DMCOLLATE_TRUE : DMCOLLATE_FALSE); devMode->dmFields |= DM_COLLATE; +#endif //// Number of copies @@ -323,7 +343,7 @@ void wxPrintData::ConvertToNative() //// Printer name - if (m_printerName != "") + if (m_printerName != _T("")) { // TODO: make this Unicode compatible int len = wxMin(31, m_printerName.Len()); @@ -342,6 +362,7 @@ void wxPrintData::ConvertToNative() devMode->dmFields |= DM_COLOR; +#ifndef __WXWINE__ //// Paper size if (m_paperId == wxPAPER_NONE) @@ -363,6 +384,7 @@ void wxPrintData::ConvertToNative() } } } +#endif //// Duplex @@ -413,7 +435,7 @@ void wxPrintData::ConvertToNative() void wxPrintData::ConvertFromNative() { - HGLOBAL hDevMode = (HGLOBAL) m_devMode; + HGLOBAL hDevMode = (HGLOBAL)(DWORD) m_devMode; if (!hDevMode) return; @@ -422,13 +444,16 @@ void wxPrintData::ConvertFromNative() { DEVMODE *devMode = (DEVMODE*) GlobalLock(hDevMode); +#ifndef __WXWINE__ //// Orientation if (devMode->dmFields & DM_ORIENTATION) m_printOrientation = devMode->dmOrientation; +#endif //// Collation +#ifndef __WIN16__ if (devMode->dmFields & DM_COLLATE) { if (devMode->dmCollate == DMCOLLATE_TRUE) @@ -436,6 +461,7 @@ void wxPrintData::ConvertFromNative() else m_printCollate = FALSE; } +#endif //// Number of copies @@ -473,6 +499,7 @@ void wxPrintData::ConvertFromNative() else m_colour = TRUE; +#ifndef __WXWINE__ //// Paper size if (devMode->dmFields & DM_PAPERSIZE) @@ -489,7 +516,7 @@ void wxPrintData::ConvertFromNative() else { // Shouldn't really get here - wxFAIL_MSG("Couldn't find paper size in paper database."); + wxFAIL_MSG(_T("Couldn't find paper size in paper database.")); m_paperId = wxPAPER_NONE; m_paperSize.x = 0; @@ -499,7 +526,7 @@ void wxPrintData::ConvertFromNative() else { // Shouldn't really get here - wxFAIL_MSG("Paper database wasn't initialized in wxPrintData::ConvertFromNative."); + wxFAIL_MSG(_T("Paper database wasn't initialized in wxPrintData::ConvertFromNative.")); m_paperId = wxPAPER_NONE; m_paperSize.x = 0; @@ -515,13 +542,13 @@ void wxPrintData::ConvertFromNative() else { // Shouldn't really get here - wxFAIL_MSG("Couldn't find paper size from DEVMODE."); + wxFAIL_MSG(_T("Couldn't find paper size from DEVMODE.")); m_paperSize.x = 0; m_paperSize.y = 0; m_paperId = wxPAPER_NONE; } - +#endif //// Duplex @@ -650,6 +677,7 @@ wxPrintDialogData::wxPrintDialogData() m_printAllPages = FALSE; m_printCollate = FALSE; m_printToFile = FALSE; + m_printSelection = FALSE; m_printEnableSelection = FALSE; m_printEnablePageNumbers = TRUE; m_printEnablePrintToFile = TRUE; @@ -675,6 +703,7 @@ wxPrintDialogData::wxPrintDialogData(const wxPrintData& printData) m_printAllPages = FALSE; m_printCollate = FALSE; m_printToFile = FALSE; + m_printSelection = FALSE; m_printEnableSelection = FALSE; m_printEnablePageNumbers = TRUE; m_printEnablePrintToFile = TRUE; @@ -711,8 +740,8 @@ void wxPrintDialogData::ConvertToNative() #ifdef __GNUWIN32__ pd->lStructSize = 66 ; #else -#endif pd->lStructSize = sizeof(PRINTDLG); +#endif pd->hwndOwner = (HWND)NULL; pd->hDevMode = NULL; // Will be created by PrintDlg pd->hDevNames = NULL; // Ditto @@ -728,11 +757,11 @@ void wxPrintDialogData::ConvertToNative() GlobalFree(pd->hDevMode); } - pd->hDevMode = (HGLOBAL) m_printData.GetNativeData(); + pd->hDevMode = (HGLOBAL)(DWORD) m_printData.GetNativeData(); m_printData.SetNativeData((void*) NULL); - wxASSERT_MSG( (pd->hDevMode), "hDevMode must be non-NULL in ConvertToNative!"); + wxASSERT_MSG( (pd->hDevMode), _T("hDevMode must be non-NULL in ConvertToNative!")); pd->hDC = (HDC) NULL; pd->nFromPage = (UINT)m_printFromPage; @@ -762,6 +791,8 @@ void wxPrintDialogData::ConvertToNative() if ( m_printAllPages ) pd->Flags |= PD_ALLPAGES; + if ( m_printAllPages ) + pd->Flags |= PD_SELECTION; if ( m_printCollate ) pd->Flags |= PD_COLLATE; if ( m_printToFile ) @@ -790,9 +821,9 @@ void wxPrintDialogData::ConvertFromNative() if (m_printData.GetNativeData()) { // Make sure we don't leak memory - GlobalFree((HGLOBAL) m_printData.GetNativeData()); + GlobalFree((HGLOBAL)(DWORD) m_printData.GetNativeData()); } - m_printData.SetNativeData((void*) pd->hDevMode); + m_printData.SetNativeData((void*)(long) pd->hDevMode); pd->hDevMode = NULL; } @@ -807,6 +838,7 @@ void wxPrintDialogData::ConvertFromNative() m_printNoCopies = pd->nCopies ; m_printAllPages = ((pd->Flags & PD_ALLPAGES) == PD_ALLPAGES); + m_printSelection = ((pd->Flags & PD_SELECTION) == PD_SELECTION); m_printCollate = ((pd->Flags & PD_COLLATE) == PD_COLLATE); m_printToFile = ((pd->Flags & PD_PRINTTOFILE) == PD_PRINTTOFILE); m_printEnablePrintToFile = ((pd->Flags & PD_DISABLEPRINTTOFILE) != PD_DISABLEPRINTTOFILE); @@ -854,6 +886,7 @@ void wxPrintDialogData::operator=(const wxPrintDialogData& data) m_printAllPages = data.m_printAllPages; m_printCollate = data.m_printCollate; m_printToFile = data.m_printToFile; + m_printSelection = data.m_printSelection; m_printEnableSelection = data.m_printEnableSelection; m_printEnablePageNumbers = data.m_printEnablePageNumbers; m_printEnableHelp = data.m_printEnableHelp; @@ -986,12 +1019,11 @@ void wxPageSetupDialogData::ConvertToNative() pd->hDevMode = NULL; } - pd->hDevMode = (HGLOBAL) m_printData.GetNativeData(); m_printData.SetNativeData((void*) NULL); - wxASSERT_MSG( (pd->hDevMode), "hDevMode must be non-NULL in ConvertToNative!"); + wxASSERT_MSG( (pd->hDevMode), _T("hDevMode must be non-NULL in ConvertToNative!")); // pd->hDevMode = GlobalAlloc(GMEM_MOVEABLE, sizeof(DEVMODE)); @@ -1131,8 +1163,8 @@ void wxPageSetupDialogData::SetPaperSize(wxPaperSize id) void wxPageSetupDialogData::CalculateIdFromPaperSize() { wxASSERT_MSG( (wxThePrintPaperDatabase != (wxPrintPaperDatabase*) NULL), - "wxThePrintPaperDatabase should not be NULL. " - "Do not create global print dialog data objects." ); + _T("wxThePrintPaperDatabase should not be NULL. " + "Do not create global print dialog data objects.") ); wxSize sz = GetPaperSize(); @@ -1147,8 +1179,8 @@ void wxPageSetupDialogData::CalculateIdFromPaperSize() void wxPageSetupDialogData::CalculatePaperSizeFromId() { wxASSERT_MSG( (wxThePrintPaperDatabase != (wxPrintPaperDatabase*) NULL), - "wxThePrintPaperDatabase should not be NULL. " - "Do not create global print dialog data objects." ); + _T("wxThePrintPaperDatabase should not be NULL. " + "Do not create global print dialog data objects.") ); wxSize sz = wxThePrintPaperDatabase->GetSize(m_printData.GetPaperId()); @@ -1160,3 +1192,4 @@ void wxPageSetupDialogData::CalculatePaperSizeFromId() } } +#endif // wxUSE_PRINTING_ARCHITECTURE