/////////////////////////////////////////////////////////////////////////////
// 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<os2.h>
+
#ifndef WX_PRECOMP
+#include "wx/app.h"
#endif
#include "wx/string.h"
#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<os2.h>
// 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 != T(""))
- 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
else
#endif
*/
- if ((!driver_name.IsNull() && driver_name != T("")) &&
- (!device_name.IsNull() && device_name != T("")) &&
- (!file.IsNull() && file != T("")))
+ 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;
}
}
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;
if (ret <= 0)
{
DWORD lastError = GetLastError();
- wxLogDebug(T("wxDC::StartDoc failed with error: %d\n"), lastError);
+ wxLogDebug(wxT("wxDC::StartDoc failed with error: %d\n"), lastError);
}
#endif
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;
GlobalFree(pd.hDevMode);
pd.hDevMode=NULL;
}
- return ( deviceName != T("") );
+ 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();
wxChar* deviceName;
wxChar* portName = (wxChar*) NULL; // Obsolete in WIN32
- if (devNameStr == T(""))
+ if (devNameStr == wxT(""))
deviceName = (wxChar*) NULL;
else
deviceName = WXSTRINGCAST devNameStr;
if ( hDevMode )
lpDevMode = (DEVMODE*) GlobalLock(hDevMode);
- if (devNameStr == T(""))
+ if (devNameStr == wxT(""))
{
// Retrieve the default device name
wxString portName;
bool ret = wxGetDefaultDeviceName(devNameStr, portName);
- wxASSERT_MSG( ret, T("Could not get default device name.") );
+ wxASSERT_MSG( ret, wxT("Could not get default device name.") );
deviceName = WXSTRINGCAST devNameStr;
}
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
+)
+{
+ bool bSuccess = TRUE;
+
+ // TODO:
+
+ return bSuccess;
+} // end of wxPrintDC::DoBlit
+
+#endif //wxUSE_PRINTING_ARCHITECTURE