return NULL;
}
+ virtual void* GetHandle() const = 0;
+
// query dimension, colour deps, resolution
virtual void DoGetSize(int *width, int *height) const = 0;
wxWindow *GetWindow() const
{ return m_pimpl->GetWindow(); }
+ void *GetHandle() const
+ { return m_pimpl->GetHandle(); }
+
bool IsOk() const
{ return m_pimpl && m_pimpl->IsOk(); }
wxGraphicsContext* GetGraphicsContext() const { return m_graphicContext; }
virtual void SetGraphicsContext( wxGraphicsContext* ctx );
+ virtual void* GetHandle() const;
+
// the true implementations
virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
wxFloodFillStyle style = wxFLOOD_SURFACE);
virtual void SetLogicalFunction(wxRasterOperationMode function)
{ m_dc.SetLogicalFunction(function); }
+ virtual void* GetHandle() const
+ { return m_dc.GetHandle(); }
+
protected:
// returns x and y if not mirroring or y and x if mirroring
wxCoord GetX(wxCoord x, wxCoord y) const { return m_mirror ? y : x; }
virtual void SetFont(const wxFont& font);
virtual void SetPen(const wxPen& pen);
+ virtual void* GetHandle() const { return NULL; }
+
private:
virtual bool DoGetPixel(wxCoord, wxCoord, wxColour *) const
{
virtual int GetResolution() const;
virtual wxRect GetPaperRect() const;
+ virtual void* GetHandle() const { return NULL; }
+
protected:
bool DoFloodFill(wxCoord x1, wxCoord y1, const wxColour &col,
wxFloodFillStyle style = wxFLOOD_SURFACE);
//@}
+ /**
+ Returns a value that can be used as a handle to the native drawing
+ context, if this wxDC has something that could be thought of in that
+ way. (Not all of them do.)
+
+ For example, on Windows the return value is an HDC, on OSX it is a
+ CGContextRef and on wxGTK it will be a GdkDrawable. If the DC is a
+ wxGCDC then the return value will be the value returned from
+ wxGraphicsContext::GetNativeContext. A value of NULL is returned if
+ the DC does not have anything that fits the handle concept.
+
+ @since 2.9.5
+ */
+ void* GetHandle() const;
+
+
void SetLogicalScale(double x, double y);
void GetLogicalScale(double *x, double *y) const;
void SetLogicalOrigin(wxCoord x, wxCoord y);
}
}
+void* wxGCDCImpl::GetHandle() const
+{
+ void* cgctx = NULL;
+ wxGraphicsContext* gc = GetGraphicsContext();
+ if (gc) {
+ cgctx = gc->GetNativeContext();
+ }
+ return cgctx;
+}
+
void wxGCDCImpl::SetPalette( const wxPalette& WXUNUSED(palette) )
{