/////////////////////////////////////////////////////////////////////////////
-// Name: dcprint.cpp
+// Name: src/os2/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"
-#ifndef WX_PRECOMP
-#endif
-#include "wx/string.h"
-#include "wx/log.h"
-#include "wx/window.h"
-#include "wx/os2/private.h"
-#include "wx/dcprint.h"
-#include "math.h"
+#if wxUSE_PRINTING_ARCHITECTURE
-#if !USE_SHARED_LIBRARY
-IMPLEMENT_CLASS(wxPrinterDC, wxDC)
-#endif
+#include "wx/dcprint.h"
#define INCL_DEV
#define INCL_GPI
#define INCL_PM
#include<os2.h>
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/math.h"
+ #include "wx/string.h"
+ #include "wx/log.h"
+ #include "wx/window.h"
+#endif
+
+#include "wx/os2/private.h"
+
+IMPLEMENT_CLASS(wxPrinterDC, wxDC)
+
+
// 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);
+ DEVOPENSTRUC vDevOpen = { (char*)rsDeviceName.wx_str()
+ ,(char*)rsDriverName.wx_str()
+ ,NULL
+ ,NULL
+ ,NULL
+ ,NULL
+ ,NULL
+ ,NULL
+ ,NULL
+ };
+
+ m_isInteractive = bInteractive;
+
+ if (!rsFile.IsNull() && !rsFile.empty())
+ m_printData.SetFilename(rsFile);
/*
Implement PM's version of this
if ( PrintDlg( &pd ) != 0 )
{
m_hDC = (WXHDC) pd.hDC;
- m_ok = TRUE;
+ m_ok = true;
}
else
{
- m_ok = FALSE;
+ m_ok = false;
return;
}
-
- // m_dontDelete = TRUE;
}
else
#endif
*/
- if ((!driver_name.IsNull() && driver_name != T("")) &&
- (!device_name.IsNull() && device_name != T("")) &&
- (!file.IsNull() && file != T("")))
+ if ( !rsDriverName.empty() &&
+ !rsDeviceName.empty() &&
+ !rsFile.empty() )
{
- m_hDC = (WXHDC) ::DevOpenDC( hab
+ m_hDC = (WXHDC) ::DevOpenDC( vHabmain
,OD_QUEUED
,"*"
,5L
- ,(PDEVOPENDATA)&devOpen
+ ,(PDEVOPENDATA)&vDevOpen
,NULLHANDLE
);
- m_ok = m_hDC ? TRUE: FALSE;
+ m_ok = m_hDC ? true: false;
}
else
{
- wxPrintData printData;
- printData.SetOrientation(orientation);
- m_hDC = wxGetPrinterDC(printData);
- m_ok = m_hDC ? TRUE: FALSE;
+ wxPrintData vPrintData;
+
+ vPrintData.SetOrientation(nOrientation);
+ m_hDC = wxGetPrinterDC(vPrintData);
+ m_ok = m_hDC ? true: false;
}
if (m_hDC)
}
SetBrush(*wxBLACK_BRUSH);
SetPen(*wxBLACK_PEN);
-}
+} // end of wxPrinterDC::wxPrinterDC
-wxPrinterDC::wxPrinterDC(const wxPrintData& printData)
+wxPrinterDC::wxPrinterDC( const wxPrintData& rPrintData )
{
- m_printData = printData;
-
- m_isInteractive = FALSE;
-
- m_hDC = wxGetPrinterDC(printData);
+ m_printData = rPrintData;
+ m_isInteractive = false;
+ 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_ok = TRUE;
+ m_isInteractive = false;
+ 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& WXUNUSED(rsMessage))
{
/* TODO: PM's implementation
DOCINFO docinfo;
wxString filename(m_printData.GetFilename());
- if (filename.IsEmpty())
+ if (filename.empty())
docinfo.lpszOutput = NULL;
else
docinfo.lpszOutput = (const wxChar *) filename;
#endif
if (!m_hDC)
- return FALSE;
+ return false;
int ret =
#ifndef __WIN32__
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);
-}
+ 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
+
+wxRect wxPrinterDC::GetPaperRect()
+{
+ // Use page rect if we can't get paper rect.
+ wxCoord w, h;
+ GetSize(&w, &h);
+ return wxRect(0, 0, w, h);
}
+#if 0
// Returns default device and port names
-static bool wxGetDefaultDeviceName(wxString& deviceName, wxString& portName)
+static bool wxGetDefaultDeviceName( wxString& rsDeviceName, wxString& rsPortName )
{
- deviceName = "";
+ rsDeviceName = wxEmptyString;
/*
LPDEVNAMES lpDevNames;
LPSTR lpszDriverName;
if (pd.hDevNames)
GlobalFree(pd.hDevNames);
- return FALSE;
+ return false;
}
if (pd.hDevNames)
GlobalFree(pd.hDevMode);
pd.hDevMode=NULL;
}
- return ( deviceName != T("") );
+ return !deviceName.empty();
*/
- return(TRUE);
-}
+ return true;
+} // end of wxGetDefaultDeviceName
+#endif
// Gets an HDC for the specified printer configuration
-WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& printDataConst)
+WXHDC WXDLLEXPORT wxGetPrinterDC( const wxPrintData& WXUNUSED(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.empty())
deviceName = (wxChar*) NULL;
else
deviceName = WXSTRINGCAST devNameStr;
if ( hDevMode )
lpDevMode = (DEVMODE*) GlobalLock(hDevMode);
- if (devNameStr == T(""))
+ if (devNameStr.empty())
{
// 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 WXUNUSED(vX),
+ wxCoord WXUNUSED(vY),
+ bool WXUNUSED(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 WXUNUSED(vXdest),
+ wxCoord WXUNUSED(vYdest),
+ wxCoord WXUNUSED(vWidth),
+ wxCoord WXUNUSED(vHeight),
+ wxDC* WXUNUSED(pSource),
+ wxCoord WXUNUSED(vXsrc),
+ wxCoord WXUNUSED(vYsrc),
+ int WXUNUSED(nRop),
+ bool WXUNUSED(bUseMask),
+ wxCoord WXUNUSED(xsrcMask),
+ wxCoord WXUNUSED(ysrcMask) )
+{
+ bool bSuccess = true;
+
+ // TODO:
+
+ return bSuccess;
+} // end of wxPrintDC::DoBlit
+#endif //wxUSE_PRINTING_ARCHITECTURE