Adding wxDC::GetHandle for wxOSX-cocoa and wxOSX-carbon

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2012-07-28 19:31:03 +00:00
parent 5ed53483fe
commit 9eefb5c14a
7 changed files with 40 additions and 0 deletions

View File

@@ -283,6 +283,8 @@ public:
return NULL;
}
virtual void* GetHandle() const = 0;
// query dimension, colour deps, resolution
virtual void DoGetSize(int *width, int *height) const = 0;
@@ -787,6 +789,9 @@ public:
wxWindow *GetWindow() const
{ return m_pimpl->GetWindow(); }
void *GetHandle() const
{ return m_pimpl->GetHandle(); }
bool IsOk() const
{ return m_pimpl && m_pimpl->IsOk(); }

View File

@@ -109,6 +109,8 @@ public:
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);

View File

@@ -66,6 +66,9 @@ public:
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; }

View File

@@ -96,6 +96,8 @@ public:
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
{

View File

@@ -94,6 +94,8 @@ public:
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);

View File

@@ -1535,6 +1535,22 @@ public:
//@}
/**
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);

View File

@@ -433,6 +433,16 @@ void wxGCDCImpl::ComputeScaleAndOrigin()
}
}
void* wxGCDCImpl::GetHandle() const
{
void* cgctx = NULL;
wxGraphicsContext* gc = GetGraphicsContext();
if (gc) {
cgctx = gc->GetNativeContext();
}
return cgctx;
}
void wxGCDCImpl::SetPalette( const wxPalette& WXUNUSED(palette) )
{