#include "wx/defs.h"
#include "wx/region.h"
+#include "wx/dc.h"
#include "wx/dfb/dfbptr.h"
wxDFB_DECLARE_INTERFACE(IDirectFBSurface);
//-----------------------------------------------------------------------------
-// wxDC
+// wxDFBDCImpl
//-----------------------------------------------------------------------------
-class WXDLLIMPEXP_CORE wxDC : public wxDCBase
+class WXDLLIMPEXP_CORE wxDFBDCImpl : public wxDCImpl
{
public:
- wxDC();
+ // ctors
+ wxDFBDCImpl(wxDC *owner) : wxDCImpl(owner) { m_surface = NULL; }
+ wxDFBDCImpl(wxDC *owner, const wxIDirectFBSurfacePtr& surface)
+ : wxDCImpl(owner)
+ {
+ DFBInit(surface);
+ }
- // Ctor.
- wxDC(const wxIDirectFBSurfacePtr& surface);
+ bool IsOk() const { return m_surface != NULL; }
-public:
// implement base class pure virtuals
// ----------------------------------
wxCoord XLOG2DEVREL(wxCoord x) const { return LogicalToDeviceXRel(x); }
wxCoord YLOG2DEV(wxCoord y) const { return LogicalToDeviceY(y); }
wxCoord YLOG2DEVREL(wxCoord y) const { return LogicalToDeviceYRel(y); }
-
+
// initializes the DC from a surface, must be called if default ctor
// was used
void DFBInit(const wxIDirectFBSurfacePtr& surface);
wxDC *source, wxCoord xsrc, wxCoord ysrc,
int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
- // this is gnarly - we can't even call this function DoSetClippingRegion()
- // because of virtual function hiding
- virtual void DoSetClippingRegionAsRegion(const wxRegion& region);
virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
wxCoord width, wxCoord height);
+ virtual void DoSetDeviceClippingRegion(const wxRegion& region);
virtual void DoGetSize(int *width, int *height) const;
virtual void DoGetSizeMM(int* width, int* height) const;
double m_mm_to_pix_x, m_mm_to_pix_y;
- friend class WXDLLIMPEXP_CORE wxOverlayImpl; // for Init
+ friend class WXDLLIMPEXP_FWD_CORE wxOverlayImpl; // for Init
- DECLARE_DYNAMIC_CLASS(wxDC)
+ DECLARE_ABSTRACT_CLASS(wxDFBDCImpl)
};
#endif // _WX_DFB_DC_H_