X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/223d09f6b523aac674ef9b72a883dfa8d37c5d4e..31e39e3c51f0a14a49ba86a5326e1461ad60dfee:/src/os2/dcprint.cpp diff --git a/src/os2/dcprint.cpp b/src/os2/dcprint.cpp index aa26aac871..77a742cf6c 100644 --- a/src/os2/dcprint.cpp +++ b/src/os2/dcprint.cpp @@ -1,21 +1,24 @@ ///////////////////////////////////////////////////////////////////////////// // Name: dcprint.cpp // Purpose: wxPrinterDC class -// Author: Julian Smart +// Author: David Webster // Modified by: -// Created: 01/02/97 +// Created: 10/14/99 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Copyright: (c) David Webster +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "dcprint.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" + +#define INCL_DEV +#define INCL_GPI +#define INCL_PM +#include + #ifndef WX_PRECOMP +#include "wx/app.h" #endif #include "wx/string.h" @@ -25,35 +28,36 @@ #include "wx/dcprint.h" #include "math.h" -#if !USE_SHARED_LIBRARY +#if wxUSE_PRINTING_ARCHITECTURE + IMPLEMENT_CLASS(wxPrinterDC, wxDC) -#endif -#define INCL_DEV -#define INCL_GPI -#define INCL_PM -#include // This form is deprecated -wxPrinterDC::wxPrinterDC(const wxString& driver_name, const wxString& device_name, const wxString& file, bool interactive, int orientation) +wxPrinterDC::wxPrinterDC( + const wxString& rsDriverName +, const wxString& rsDeviceName +, const wxString& rsFile +, bool bInteractive +, int nOrientation +) { - LONG lType; - HAB hab; - DEVOPENSTRUC devOpen = { (char*)device_name.c_str() - ,(char*)driver_name.c_str() - ,NULL - ,NULL - ,NULL - ,NULL - ,NULL - ,NULL - ,NULL - }; - - m_isInteractive = interactive; - - if (!file.IsNull() && file != wxT("")) - m_printData.SetFilename(file); + LONG lType = 0; + DEVOPENSTRUC vDevOpen = { (char*)rsDeviceName.c_str() + ,(char*)rsDriverName.c_str() + ,NULL + ,NULL + ,NULL + ,NULL + ,NULL + ,NULL + ,NULL + }; + + m_isInteractive = bInteractive; + + if (!rsFile.IsNull() && rsFile != wxT("")) + m_printData.SetFilename(rsFile); /* Implement PM's version of this @@ -90,24 +94,25 @@ wxPrinterDC::wxPrinterDC(const wxString& driver_name, const wxString& device_nam else #endif */ - if ((!driver_name.IsNull() && driver_name != wxT("")) && - (!device_name.IsNull() && device_name != wxT("")) && - (!file.IsNull() && file != wxT(""))) + if ((!rsDriverName.IsNull() && rsDriverName != wxT("")) && + (!rsDeviceName.IsNull() && rsDeviceName != wxT("")) && + (!rsFile.IsNull() && rsFile != wxT(""))) { - m_hDC = (WXHDC) ::DevOpenDC( hab + m_hDC = (WXHDC) ::DevOpenDC( vHabmain ,OD_QUEUED ,"*" ,5L - ,(PDEVOPENDATA)&devOpen + ,(PDEVOPENDATA)&vDevOpen ,NULLHANDLE ); m_ok = m_hDC ? TRUE: FALSE; } else { - wxPrintData printData; - printData.SetOrientation(orientation); - m_hDC = wxGetPrinterDC(printData); + wxPrintData vPrintData; + + vPrintData.SetOrientation(nOrientation); + m_hDC = wxGetPrinterDC(vPrintData); m_ok = m_hDC ? TRUE: FALSE; } @@ -119,46 +124,51 @@ wxPrinterDC::wxPrinterDC(const wxString& driver_name, const wxString& device_nam } SetBrush(*wxBLACK_BRUSH); SetPen(*wxBLACK_PEN); -} +} // end of wxPrinterDC::wxPrinterDC -wxPrinterDC::wxPrinterDC(const wxPrintData& printData) +wxPrinterDC::wxPrinterDC( + const wxPrintData& rPrintData +) { - m_printData = printData; - + m_printData = rPrintData; m_isInteractive = FALSE; - - m_hDC = wxGetPrinterDC(printData); + m_hDC = wxGetPrinterDC(rPrintData); m_ok = (m_hDC != 0); - if (m_hDC) SetMapMode(wxMM_TEXT); - SetBrush(*wxBLACK_BRUSH); SetPen(*wxBLACK_PEN); -} +} // end of wxPrinterDC::wxPrinterDC - -wxPrinterDC::wxPrinterDC(WXHDC theDC) +wxPrinterDC::wxPrinterDC( + WXHDC hTheDC +) { m_isInteractive = FALSE; - - m_hDC = theDC; + m_hDC = hTheDC; m_ok = TRUE; if (m_hDC) { - // int width = GetDeviceCaps(m_hDC, VERTRES); - // int height = GetDeviceCaps(m_hDC, HORZRES); SetMapMode(wxMM_TEXT); } SetBrush(*wxBLACK_BRUSH); SetPen(*wxBLACK_PEN); -} +} // end of wxPrinterDC::wxPrinterDC -wxPrinterDC::~wxPrinterDC(void) +void wxPrinterDC::Init() { -} + if (m_hDC) + { + SetMapMode(wxMM_TEXT); + + SetBrush(*wxBLACK_BRUSH); + SetPen(*wxBLACK_PEN); + } +} // end of wxPrinterDC::Init -bool wxPrinterDC::StartDoc(const wxString& message) +bool wxPrinterDC::StartDoc( + const wxString& rsMessage +) { /* TODO: PM's implementation DOCINFO docinfo; @@ -205,29 +215,32 @@ bool wxPrinterDC::StartDoc(const wxString& message) return (ret > 0); */ return(TRUE); -} +} // end of wxPrinterDC::StartDoc -void wxPrinterDC::EndDoc(void) +void wxPrinterDC::EndDoc() { // if (m_hDC) ::EndDoc((HDC) m_hDC); -} +} // end of wxPrinterDC::EndDoc -void wxPrinterDC::StartPage(void) +void wxPrinterDC::StartPage() { // if (m_hDC) // ::StartPage((HDC) m_hDC); -} +} // end of wxPrinterDC::StartPage -void wxPrinterDC::EndPage(void) +void wxPrinterDC::EndPage() { // if (m_hDC) // ::EndPage((HDC) m_hDC); -} +} // end of wxPrinterDC::EndPage // Returns default device and port names -static bool wxGetDefaultDeviceName(wxString& deviceName, wxString& portName) +static bool wxGetDefaultDeviceName( + wxString& rsDeviceName +, wxString& rsPortName +) { - deviceName = ""; + rsDeviceName = ""; /* LPDEVNAMES lpDevNames; LPSTR lpszDriverName; @@ -281,12 +294,14 @@ static bool wxGetDefaultDeviceName(wxString& deviceName, wxString& portName) return ( deviceName != wxT("") ); */ return(TRUE); -} +} // end of wxGetDefaultDeviceName // Gets an HDC for the specified printer configuration -WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& printDataConst) +WXHDC WXDLLEXPORT wxGetPrinterDC( + const wxPrintData& rPrintDataConst +) { - HDC hDC; + HDC hDC = NULLHANDLE; /* wxPrintData printData = printDataConst; printData.ConvertToNative(); @@ -330,5 +345,44 @@ WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& printDataConst) GlobalUnlock(hDevMode); */ return (WXHDC) hDC; -} +} // end of wxGetPrinterDC + +void wxPrinterDC::DoDrawBitmap( + const wxBitmap& rBmp +, wxCoord vX +, wxCoord vY +, bool bUseMask +) +{ + wxCHECK_RET( rBmp.Ok(), _T("invalid bitmap in wxPrinterDC::DrawBitmap") ); + + int nWidth = rBmp.GetWidth(); + int nHeight = rBmp.GetHeight(); + + // TODO: + +} // end of wxPrinterDC::DoDrawBitmap + +bool wxPrinterDC::DoBlit( + wxCoord vXdest +, wxCoord vYdest +, wxCoord vWidth +, wxCoord vHeight +, wxDC* pSource +, wxCoord vXsrc +, wxCoord vYsrc +, int nRop +, bool bUseMask +, wxCoord xsrcMask +, wxCoord ysrcMask +) +{ + bool bSuccess = TRUE; + + // TODO: + + return bSuccess; +} // end of wxPrintDC::DoBlit + +#endif //wxUSE_PRINTING_ARCHITECTURE