1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/cocoa/dcmemory.h
3// Purpose:     wxMemoryDC class
4// Author:      David Elliott
5// Modified by:
6// Created:     2003/03/16
7// RCS-ID:      $Id: dcmemory.h 42755 2006-10-30 19:41:46Z VZ $
8// Copyright:   (c) 2003 David Elliott
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef __WX_COCOA_DCMEMORY_H__
13#define __WX_COCOA_DCMEMORY_H__
14
15#include "wx/dc.h"
16
17class WXDLLEXPORT wxMemoryDC: public wxDC, public wxMemoryDCBase
18{
19    DECLARE_DYNAMIC_CLASS(wxMemoryDC)
20
21public:
22    wxMemoryDC() { Init(); }
23    wxMemoryDC(wxBitmap& bitmap) { Init(); SelectObject(bitmap); }
24    wxMemoryDC( wxDC *dc ); // Create compatible DC
25    virtual ~wxMemoryDC(void);
26
27    virtual void DoGetSize(int *width, int *height) const;
28    virtual void DoSelect(const wxBitmap& bitmap);
29
30protected:
31    wxBitmap m_selectedBitmap;
32    WX_NSImage m_cocoaNSImage;
33// DC stack
34    virtual bool CocoaLockFocus();
35    virtual bool CocoaUnlockFocus();
36    virtual bool CocoaGetBounds(void *rectData);
37// Blitting
38    virtual bool CocoaDoBlitOnFocusedDC(wxCoord xdest, wxCoord ydest,
39        wxCoord width, wxCoord height, wxCoord xsrc, wxCoord ysrc,
40        int logicalFunc, bool useMask, wxCoord xsrcMask, wxCoord ysrcMask);
41
42private:
43    void Init();
44};
45
46#endif
47    // __WX_COCOA_DCMEMORY_H__
48