#include "wx/dcclient.h"
-class WXDLLEXPORT wxMemoryDC: public wxPaintDC
+class WXDLLEXPORT wxMemoryDC: public wxPaintDC, public wxMemoryDCBase
{
DECLARE_DYNAMIC_CLASS(wxMemoryDC)
- public:
- wxMemoryDC( const wxBitmap& bitmap = wxNullBitmap );
+public:
+ wxMemoryDC() { Init(); }
+ wxMemoryDC(wxBitmap& bitmap) { Init(); SelectObject(bitmap); }
wxMemoryDC( wxDC *dc ); // Create compatible DC
virtual ~wxMemoryDC(void);
- virtual void SelectObject( const wxBitmap& bitmap );
- wxBitmap GetSelectedObject() { return m_selected ; }
+
+ const wxBitmap& GetSelectedBitmap() const { return m_selected; }
+ wxBitmap GetSelectedBitmap() { return m_selected; }
+
+ wxBitmap GetSelectedObject() { return GetSelectedBitmap() ; }
protected:
virtual void DoGetSize( int *width, int *height ) const;
+ virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const
+ { return subrect == NULL ? GetSelectedBitmap() : GetSelectedBitmap().GetSubBitmap(*subrect); }
+ virtual void DoSelect(const wxBitmap& bitmap);
+
+private:
+ void Init();
- private:
wxBitmap m_selected;
};