X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e273151278d28cceefe6eee8c49bc6915306805d..2e14066008229145e2da7b9f05a478ce38631f83:/src/palmos/dcmemory.cpp diff --git a/src/palmos/dcmemory.cpp b/src/palmos/dcmemory.cpp index 062505e206..13bf45b0c2 100644 --- a/src/palmos/dcmemory.cpp +++ b/src/palmos/dcmemory.cpp @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "dcmemory.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,68 +24,70 @@ #pragma hdrstop #endif +#include "wx/dcmemory.h" +#include "wx/palmos/dcmemory.h" + #ifndef WX_PRECOMP #include "wx/utils.h" #include "wx/log.h" #endif -#include "wx/dcmemory.h" - // ---------------------------------------------------------------------------- -// wxWin macros +// wxMemoryDCImpl // ---------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxMemoryDC -// ---------------------------------------------------------------------------- +IMPLEMENT_ABSTRACT_CLASS(wxMemoryDCImpl, wxPalmDCImpl) -wxMemoryDC::wxMemoryDC() +wxMemoryDCImpl::wxMemoryDCImpl( wxMemoryDC *owner ) + : wxPalmDCImpl( owner ) { + CreateCompatible(NULL); + Init(); } -wxMemoryDC::wxMemoryDC(wxDC *dc) +wxMemoryDCImpl::wxMemoryDCImpl( wxMemoryDC *owner, wxBitmap& bitmap ) + : wxPalmDCImpl( owner ) { + CreateCompatible(NULL); + Init(); + DoSelect(bitmap); } -void wxMemoryDC::Init() +wxMemoryDCImpl::wxMemoryDCImpl( wxMemoryDC *owner, wxDC *dc ) + : wxPalmDCImpl( owner ) { + wxCHECK_RET( dc, wxT("NULL dc in wxMemoryDC ctor") ); + + CreateCompatible(dc); + + Init(); } -bool wxMemoryDC::CreateCompatible(wxDC *dc) +void wxMemoryDCImpl::Init() { - return false; } -void wxMemoryDC::SelectObject(const wxBitmap& bitmap) +bool wxMemoryDCImpl::CreateCompatible(wxDC *dc) { + wxDCImpl *impl = dc ? dc->GetImpl() : NULL ; + wxPalmDCImpl *msw_impl = wxDynamicCast( impl, wxPalmDCImpl ); + if ( dc && !msw_impl) + { + m_ok = false; + return false; + } + + return false; } -void wxMemoryDC::DoGetSize(int *width, int *height) const +void wxMemoryDCImpl::DoSelect( const wxBitmap& bitmap ) { } -// the rest of this file deals with drawing rectangles workaround, disabled by -// default - -#define wxUSE_MEMORY_DC_DRAW_RECTANGLE 0 - -#if wxUSE_MEMORY_DC_DRAW_RECTANGLE - -// For some reason, drawing a rectangle on a memory DC has problems. -// Use this substitute if we can. -static void wxDrawRectangle(wxDC& dc, wxCoord x, wxCoord y, wxCoord width, wxCoord height) +void wxMemoryDCImpl::DoGetSize(int *width, int *height) const { } -#endif // wxUSE_MEMORY_DC_DRAW_RECTANGLE - -void wxMemoryDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) +wxBitmap wxMemoryDCImpl::DoGetAsBitmap(const wxRect* subrect) const { } -