// Author: David Webster
// Modified by:
// Created: 10/14/99
-// RCS-ID: $Id$
// Copyright: (c) David Webster
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
#include "wx/dcmemory.h"
+#include "wx/os2/dcmemory.h"
#ifndef WX_PRECOMP
#include "wx/utils.h"
#include "wx/os2/private.h"
-IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC)
+IMPLEMENT_ABSTRACT_CLASS(wxMemoryDCImpl, wxPMDCImpl)
/////////////////////////////////////////////////////////////////////////////
// Memory DC
/////////////////////////////////////////////////////////////////////////////
-wxMemoryDC::wxMemoryDC(
- wxDC* pOldDC
-)
+wxMemoryDCImpl::wxMemoryDCImpl( wxMemoryDC *owner )
+ : wxPMDCImpl( owner )
+{
+ CreateCompatible(NULL);
+ Init();
+}
+
+wxMemoryDCImpl::wxMemoryDCImpl( wxMemoryDC *owner, wxBitmap& bitmap )
+ : wxPMDCImpl( owner )
{
+ CreateCompatible(NULL);
+ Init();
+ DoSelect(bitmap);
+}
+
+wxMemoryDCImpl::wxMemoryDCImpl( wxMemoryDC *owner, wxDC *pOldDC)
+ : wxPMDCImpl( owner )
+{
+ wxCHECK_RET( pOldDC, wxT("NULL dc in wxMemoryDC ctor") );
+
CreateCompatible(pOldDC);
Init();
} // end of wxMemoryDC::wxMemoryDC
-void wxMemoryDC::Init()
+void wxMemoryDCImpl::Init()
{
if (m_ok)
{
memset(&m_vRclPaint, 0, sizeof(m_vRclPaint));
} // end of wxMemoryDC::Init
-bool wxMemoryDC::CreateCompatible( wxDC* WXUNUSED(pDC) )
+bool wxMemoryDCImpl::CreateCompatible( wxDC* WXUNUSED(pDC) )
{
HDC hDC;
HPS hPS;
return m_ok;
} // end of wxMemoryDC::CreateCompatible
-void wxMemoryDC::DoSelect(
+void wxMemoryDCImpl::DoSelect(
const wxBitmap& rBitmap
)
{
if (m_hOldBitmap)
{
::GpiSetBitmap(m_hPS, NULLHANDLE);
- if (m_vSelectedBitmap.Ok())
+ if (m_vSelectedBitmap.IsOk())
{
m_vSelectedBitmap.SetSelectedInto(NULL);
m_vSelectedBitmap = wxNullBitmap;
// Check for whether the bitmap is already selected into a device context
//
wxCHECK_RET( !rBitmap.GetSelectedInto() ||
- (rBitmap.GetSelectedInto() == this),
+ (rBitmap.GetSelectedInto() == GetOwner()),
wxT("Bitmap is selected in another wxMemoryDC, delete the first wxMemoryDC or use SelectObject(NULL)") );
WXHBITMAP hBmp = rBitmap.GetHBITMAP();
m_hOldBitmap = (WXHBITMAP)::GpiSetBitmap(m_hPS, NULLHANDLE);
return;
}
- m_vSelectedBitmap.SetSelectedInto(this);
+ m_vSelectedBitmap.SetSelectedInto(GetOwner());
m_hOldBitmap = (WXHBITMAP)::GpiSetBitmap(m_hPS, (HBITMAP)hBmp);
if (m_hOldBitmap == HBM_ERROR)
}
} // end of wxMemoryDC::SelectObject
-void wxMemoryDC::DoGetSize(
+void wxMemoryDCImpl::DoGetSize(
int* pWidth
, int* pHeight
) const
{
- if (!m_vSelectedBitmap.Ok())
+ if (!m_vSelectedBitmap.IsOk())
{
*pWidth = 0;
*pHeight = 0;