fix warnings about hiding virtual wxGraphicsContext::DrawText() overloads by using different names for the implementation functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -57,70 +57,70 @@ class WXDLLIMPEXP_FWD_CORE wxGraphicsPathData;
|
|||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsObject : public wxObject
|
class WXDLLIMPEXP_CORE wxGraphicsObject : public wxObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsObject() ;
|
wxGraphicsObject();
|
||||||
wxGraphicsObject( wxGraphicsRenderer* renderer ) ;
|
wxGraphicsObject( wxGraphicsRenderer* renderer );
|
||||||
virtual ~wxGraphicsObject() ;
|
virtual ~wxGraphicsObject();
|
||||||
|
|
||||||
bool IsNull() const ;
|
bool IsNull() const;
|
||||||
|
|
||||||
// returns the renderer that was used to create this instance, or NULL if it has not been initialized yet
|
// returns the renderer that was used to create this instance, or NULL if it has not been initialized yet
|
||||||
wxGraphicsRenderer* GetRenderer() const ;
|
wxGraphicsRenderer* GetRenderer() const;
|
||||||
wxGraphicsObjectRefData* GetGraphicsData() const ;
|
wxGraphicsObjectRefData* GetGraphicsData() const;
|
||||||
protected :
|
protected:
|
||||||
virtual wxObjectRefData* CreateRefData() const;
|
virtual wxObjectRefData* CreateRefData() const;
|
||||||
virtual wxObjectRefData* CloneRefData(const wxObjectRefData* data) const;
|
virtual wxObjectRefData* CloneRefData(const wxObjectRefData* data) const;
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsObject)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsObject)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsPen : public wxGraphicsObject
|
class WXDLLIMPEXP_CORE wxGraphicsPen : public wxGraphicsObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsPen() {}
|
wxGraphicsPen() {}
|
||||||
virtual ~wxGraphicsPen() {}
|
virtual ~wxGraphicsPen() {}
|
||||||
private :
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsPen)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsPen)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsPen) wxNullGraphicsPen;
|
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsPen) wxNullGraphicsPen;
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsBrush : public wxGraphicsObject
|
class WXDLLIMPEXP_CORE wxGraphicsBrush : public wxGraphicsObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsBrush() {}
|
wxGraphicsBrush() {}
|
||||||
virtual ~wxGraphicsBrush() {}
|
virtual ~wxGraphicsBrush() {}
|
||||||
private :
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsBrush)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsBrush)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsBrush) wxNullGraphicsBrush;
|
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsBrush) wxNullGraphicsBrush;
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsFont : public wxGraphicsObject
|
class WXDLLIMPEXP_CORE wxGraphicsFont : public wxGraphicsObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsFont() {}
|
wxGraphicsFont() {}
|
||||||
virtual ~wxGraphicsFont() {}
|
virtual ~wxGraphicsFont() {}
|
||||||
private :
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsFont)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsFont)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsFont) wxNullGraphicsFont;
|
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsFont) wxNullGraphicsFont;
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsBitmap : public wxGraphicsObject
|
class WXDLLIMPEXP_CORE wxGraphicsBitmap : public wxGraphicsObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsBitmap() {}
|
wxGraphicsBitmap() {}
|
||||||
virtual ~wxGraphicsBitmap() {}
|
virtual ~wxGraphicsBitmap() {}
|
||||||
private :
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsBitmap)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsBitmap)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsBitmap) wxNullGraphicsBitmap;
|
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsBitmap) wxNullGraphicsBitmap;
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsMatrix : public wxGraphicsObject
|
class WXDLLIMPEXP_CORE wxGraphicsMatrix : public wxGraphicsObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsMatrix() {}
|
wxGraphicsMatrix() {}
|
||||||
|
|
||||||
virtual ~wxGraphicsMatrix() {}
|
virtual ~wxGraphicsMatrix() {}
|
||||||
@@ -178,15 +178,15 @@ public :
|
|||||||
wxGraphicsMatrixData* GetMatrixData()
|
wxGraphicsMatrixData* GetMatrixData()
|
||||||
{ return (wxGraphicsMatrixData*) GetRefData(); }
|
{ return (wxGraphicsMatrixData*) GetRefData(); }
|
||||||
|
|
||||||
private :
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsMatrix)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsMatrix)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsMatrix) wxNullGraphicsMatrix;
|
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsMatrix) wxNullGraphicsMatrix;
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsPath : public wxGraphicsObject
|
class WXDLLIMPEXP_CORE wxGraphicsPath : public wxGraphicsObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsPath() {}
|
wxGraphicsPath() {}
|
||||||
virtual ~wxGraphicsPath() {}
|
virtual ~wxGraphicsPath() {}
|
||||||
|
|
||||||
@@ -203,21 +203,21 @@ public :
|
|||||||
void AddLineToPoint( const wxPoint2DDouble& p);
|
void AddLineToPoint( const wxPoint2DDouble& p);
|
||||||
|
|
||||||
// adds a cubic Bezier curve from the current point, using two control points and an end point
|
// adds a cubic Bezier curve from the current point, using two control points and an end point
|
||||||
virtual void AddCurveToPoint( wxDouble cx1, wxDouble cy1, wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y ) ;
|
virtual void AddCurveToPoint( wxDouble cx1, wxDouble cy1, wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y );
|
||||||
void AddCurveToPoint( const wxPoint2DDouble& c1, const wxPoint2DDouble& c2, const wxPoint2DDouble& e);
|
void AddCurveToPoint( const wxPoint2DDouble& c1, const wxPoint2DDouble& c2, const wxPoint2DDouble& e);
|
||||||
|
|
||||||
// adds another path
|
// adds another path
|
||||||
virtual void AddPath( const wxGraphicsPath& path );
|
virtual void AddPath( const wxGraphicsPath& path );
|
||||||
|
|
||||||
// closes the current sub-path
|
// closes the current sub-path
|
||||||
virtual void CloseSubpath() ;
|
virtual void CloseSubpath();
|
||||||
|
|
||||||
// gets the last point of the current path, (0,0) if not yet set
|
// gets the last point of the current path, (0,0) if not yet set
|
||||||
virtual void GetCurrentPoint( wxDouble* x, wxDouble* y) const;
|
virtual void GetCurrentPoint( wxDouble* x, wxDouble* y) const;
|
||||||
wxPoint2DDouble GetCurrentPoint() const;
|
wxPoint2DDouble GetCurrentPoint() const;
|
||||||
|
|
||||||
// adds an arc of a circle centering at (x,y) with radius (r) from startAngle to endAngle
|
// adds an arc of a circle centering at (x,y) with radius (r) from startAngle to endAngle
|
||||||
virtual void AddArc( wxDouble x, wxDouble y, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise ) ;
|
virtual void AddArc( wxDouble x, wxDouble y, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise );
|
||||||
void AddArc( const wxPoint2DDouble& c, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise);
|
void AddArc( const wxPoint2DDouble& c, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -235,7 +235,7 @@ public :
|
|||||||
virtual void AddCircle( wxDouble x, wxDouble y, wxDouble r );
|
virtual void AddCircle( wxDouble x, wxDouble y, wxDouble r );
|
||||||
|
|
||||||
// appends a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2), also a straight line from (current) to (x1,y1)
|
// appends a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2), also a straight line from (current) to (x1,y1)
|
||||||
virtual void AddArcToPoint( wxDouble x1, wxDouble y1 , wxDouble x2, wxDouble y2, wxDouble r ) ;
|
virtual void AddArcToPoint( wxDouble x1, wxDouble y1 , wxDouble x2, wxDouble y2, wxDouble r );
|
||||||
|
|
||||||
// appends an ellipse
|
// appends an ellipse
|
||||||
virtual void AddEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h);
|
virtual void AddEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h);
|
||||||
@@ -264,9 +264,9 @@ public :
|
|||||||
wxGraphicsPathData* GetPathData()
|
wxGraphicsPathData* GetPathData()
|
||||||
{ return (wxGraphicsPathData*) GetRefData(); }
|
{ return (wxGraphicsPathData*) GetRefData(); }
|
||||||
|
|
||||||
private :
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsPath)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsPath)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsPath) wxNullGraphicsPath;
|
extern WXDLLIMPEXP_DATA_CORE(wxGraphicsPath) wxNullGraphicsPath;
|
||||||
|
|
||||||
@@ -278,23 +278,23 @@ public:
|
|||||||
|
|
||||||
virtual ~wxGraphicsContext();
|
virtual ~wxGraphicsContext();
|
||||||
|
|
||||||
static wxGraphicsContext* Create( const wxWindowDC& dc) ;
|
static wxGraphicsContext* Create( const wxWindowDC& dc);
|
||||||
static wxGraphicsContext * Create( const wxMemoryDC& dc) ;
|
static wxGraphicsContext * Create( const wxMemoryDC& dc);
|
||||||
#if wxUSE_PRINTING_ARCHITECTURE
|
#if wxUSE_PRINTING_ARCHITECTURE
|
||||||
static wxGraphicsContext * Create( const wxPrinterDC& dc) ;
|
static wxGraphicsContext * Create( const wxPrinterDC& dc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static wxGraphicsContext* CreateFromNative( void * context ) ;
|
static wxGraphicsContext* CreateFromNative( void * context );
|
||||||
|
|
||||||
static wxGraphicsContext* CreateFromNativeWindow( void * window ) ;
|
static wxGraphicsContext* CreateFromNativeWindow( void * window );
|
||||||
|
|
||||||
static wxGraphicsContext* Create( wxWindow* window ) ;
|
static wxGraphicsContext* Create( wxWindow* window );
|
||||||
|
|
||||||
// create a context that can be used for measuring texts only, no drawing allowed
|
// create a context that can be used for measuring texts only, no drawing allowed
|
||||||
static wxGraphicsContext * Create();
|
static wxGraphicsContext * Create();
|
||||||
|
|
||||||
// begin a new document (relevant only for printing / pdf etc) if there is a progress dialog, message will be shown
|
// begin a new document (relevant only for printing / pdf etc) if there is a progress dialog, message will be shown
|
||||||
virtual bool StartDoc( const wxString& message ) ;
|
virtual bool StartDoc( const wxString& message );
|
||||||
|
|
||||||
// done with that document (relevant only for printing / pdf etc)
|
// done with that document (relevant only for printing / pdf etc)
|
||||||
virtual void EndDoc();
|
virtual void EndDoc();
|
||||||
@@ -350,7 +350,7 @@ public:
|
|||||||
virtual void Clip( wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0;
|
virtual void Clip( wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0;
|
||||||
|
|
||||||
// resets the clipping to original extent
|
// resets the clipping to original extent
|
||||||
virtual void ResetClip() = 0 ;
|
virtual void ResetClip() = 0;
|
||||||
|
|
||||||
// returns the native context
|
// returns the native context
|
||||||
virtual void * GetNativeContext() = 0;
|
virtual void * GetNativeContext() = 0;
|
||||||
@@ -359,7 +359,7 @@ public:
|
|||||||
virtual int GetLogicalFunction() const { return m_logicalFunction; }
|
virtual int GetLogicalFunction() const { return m_logicalFunction; }
|
||||||
|
|
||||||
// sets the current logical function, returns true if it supported
|
// sets the current logical function, returns true if it supported
|
||||||
virtual bool SetLogicalFunction(int function) ;
|
virtual bool SetLogicalFunction(int function);
|
||||||
|
|
||||||
// returns the size of the graphics context in device coordinates
|
// returns the size of the graphics context in device coordinates
|
||||||
virtual void GetSize( wxDouble* width, wxDouble* height);
|
virtual void GetSize( wxDouble* width, wxDouble* height);
|
||||||
@@ -428,13 +428,20 @@ public:
|
|||||||
// text
|
// text
|
||||||
//
|
//
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y ) = 0;
|
void DrawText( const wxString &str, wxDouble x, wxDouble y )
|
||||||
|
{ DoDrawText(str, x, y); }
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle );
|
void DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle )
|
||||||
|
{ DoDrawRotatedText(str, x, y, angle); }
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y, const wxGraphicsBrush& backgroundBrush ) ;
|
void DrawText( const wxString &str, wxDouble x, wxDouble y,
|
||||||
|
const wxGraphicsBrush& backgroundBrush )
|
||||||
|
{ DoDrawFilledText(str, x, y, backgroundBrush); }
|
||||||
|
|
||||||
|
void DrawText( const wxString &str, wxDouble x, wxDouble y,
|
||||||
|
wxDouble angle, const wxGraphicsBrush& backgroundBrush )
|
||||||
|
{ DoDrawRotatedFilledText(str, x, y, angle, backgroundBrush); }
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle, const wxGraphicsBrush& backgroundBrush );
|
|
||||||
|
|
||||||
virtual void GetTextExtent( const wxString &text, wxDouble *width, wxDouble *height,
|
virtual void GetTextExtent( const wxString &text, wxDouble *width, wxDouble *height,
|
||||||
wxDouble *descent, wxDouble *externalLeading ) const = 0;
|
wxDouble *descent, wxDouble *externalLeading ) const = 0;
|
||||||
@@ -483,14 +490,27 @@ public:
|
|||||||
// helper to determine if a 0.5 offset should be applied for the drawing operation
|
// helper to determine if a 0.5 offset should be applied for the drawing operation
|
||||||
virtual bool ShouldOffset() const { return false; }
|
virtual bool ShouldOffset() const { return false; }
|
||||||
|
|
||||||
protected :
|
protected:
|
||||||
|
|
||||||
wxGraphicsPen m_pen;
|
wxGraphicsPen m_pen;
|
||||||
wxGraphicsBrush m_brush;
|
wxGraphicsBrush m_brush;
|
||||||
wxGraphicsFont m_font;
|
wxGraphicsFont m_font;
|
||||||
int m_logicalFunction;
|
int m_logicalFunction;
|
||||||
|
|
||||||
private :
|
private:
|
||||||
|
// implementations of overloaded public functions: we use different names
|
||||||
|
// for them to avoid the virtual function hiding problems in the derived
|
||||||
|
// classes
|
||||||
|
virtual void DoDrawText(const wxString& str, wxDouble x, wxDouble y) = 0;
|
||||||
|
virtual void DoDrawRotatedText(const wxString& str, wxDouble x, wxDouble y,
|
||||||
|
wxDouble angle);
|
||||||
|
virtual void DoDrawFilledText(const wxString& str, wxDouble x, wxDouble y,
|
||||||
|
const wxGraphicsBrush& backgroundBrush);
|
||||||
|
virtual void DoDrawRotatedFilledText(const wxString& str,
|
||||||
|
wxDouble x, wxDouble y,
|
||||||
|
wxDouble angle,
|
||||||
|
const wxGraphicsBrush& backgroundBrush);
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(wxGraphicsContext)
|
DECLARE_NO_COPY_CLASS(wxGraphicsContext)
|
||||||
DECLARE_ABSTRACT_CLASS(wxGraphicsContext)
|
DECLARE_ABSTRACT_CLASS(wxGraphicsContext)
|
||||||
};
|
};
|
||||||
@@ -503,10 +523,10 @@ private :
|
|||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsFigure : public wxGraphicsObject
|
class WXDLLIMPEXP_CORE wxGraphicsFigure : public wxGraphicsObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsFigure(wxGraphicsRenderer* renderer) ;
|
wxGraphicsFigure(wxGraphicsRenderer* renderer);
|
||||||
|
|
||||||
virtual ~wxGraphicsFigure() ;
|
virtual ~wxGraphicsFigure();
|
||||||
|
|
||||||
void SetPath( wxGraphicsMatrix* matrix );
|
void SetPath( wxGraphicsMatrix* matrix );
|
||||||
|
|
||||||
@@ -521,12 +541,12 @@ public :
|
|||||||
// returns the transformation matrix of this object, may be null if there is no transformation necessary
|
// returns the transformation matrix of this object, may be null if there is no transformation necessary
|
||||||
wxGraphicsMatrix* GetMatrix() { return m_matrix; }
|
wxGraphicsMatrix* GetMatrix() { return m_matrix; }
|
||||||
|
|
||||||
private :
|
private:
|
||||||
wxGraphicsMatrix* m_matrix;
|
wxGraphicsMatrix* m_matrix;
|
||||||
wxGraphicsPath* m_path;
|
wxGraphicsPath* m_path;
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxGraphicsFigure)
|
DECLARE_DYNAMIC_CLASS(wxGraphicsFigure)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -538,7 +558,7 @@ private :
|
|||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGraphicsRenderer : public wxObject
|
class WXDLLIMPEXP_CORE wxGraphicsRenderer : public wxObject
|
||||||
{
|
{
|
||||||
public :
|
public:
|
||||||
wxGraphicsRenderer() {}
|
wxGraphicsRenderer() {}
|
||||||
|
|
||||||
virtual ~wxGraphicsRenderer() {}
|
virtual ~wxGraphicsRenderer() {}
|
||||||
@@ -547,10 +567,10 @@ public :
|
|||||||
|
|
||||||
// Context
|
// Context
|
||||||
|
|
||||||
virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc) = 0 ;
|
virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc) = 0;
|
||||||
virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0 ;
|
virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0;
|
||||||
#if wxUSE_PRINTING_ARCHITECTURE
|
#if wxUSE_PRINTING_ARCHITECTURE
|
||||||
virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc) = 0 ;
|
virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc) = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0;
|
virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0;
|
||||||
@@ -573,9 +593,9 @@ public :
|
|||||||
|
|
||||||
// Paints
|
// Paints
|
||||||
|
|
||||||
virtual wxGraphicsPen CreatePen(const wxPen& pen) = 0 ;
|
virtual wxGraphicsPen CreatePen(const wxPen& pen) = 0;
|
||||||
|
|
||||||
virtual wxGraphicsBrush CreateBrush(const wxBrush& brush ) = 0 ;
|
virtual wxGraphicsBrush CreateBrush(const wxBrush& brush ) = 0;
|
||||||
|
|
||||||
// sets the brush to a linear gradient, starting at (x1,y1) with color c1 to (x2,y2) with color c2
|
// sets the brush to a linear gradient, starting at (x1,y1) with color c1 to (x2,y2) with color c2
|
||||||
virtual wxGraphicsBrush CreateLinearGradientBrush( wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
virtual wxGraphicsBrush CreateLinearGradientBrush( wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
|
||||||
@@ -598,10 +618,10 @@ public :
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
private :
|
private:
|
||||||
DECLARE_NO_COPY_CLASS(wxGraphicsRenderer)
|
DECLARE_NO_COPY_CLASS(wxGraphicsRenderer)
|
||||||
DECLARE_ABSTRACT_CLASS(wxGraphicsRenderer)
|
DECLARE_ABSTRACT_CLASS(wxGraphicsRenderer)
|
||||||
} ;
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -613,7 +613,11 @@ void wxGraphicsContext::DrawPath( const wxGraphicsPath& path, int fillStyle )
|
|||||||
StrokePath( path );
|
StrokePath( path );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle )
|
void
|
||||||
|
wxGraphicsContext::DoDrawRotatedText(const wxString &str,
|
||||||
|
wxDouble x,
|
||||||
|
wxDouble y,
|
||||||
|
wxDouble angle)
|
||||||
{
|
{
|
||||||
Translate(x,y);
|
Translate(x,y);
|
||||||
Rotate( -angle );
|
Rotate( -angle );
|
||||||
@@ -622,7 +626,11 @@ void wxGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDouble y, w
|
|||||||
Translate(-x,-y);
|
Translate(-x,-y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDouble y, const wxGraphicsBrush& backgroundBrush )
|
void
|
||||||
|
wxGraphicsContext::DoDrawFilledText(const wxString &str,
|
||||||
|
wxDouble x,
|
||||||
|
wxDouble y,
|
||||||
|
const wxGraphicsBrush& backgroundBrush)
|
||||||
{
|
{
|
||||||
wxGraphicsBrush formerBrush = m_brush;
|
wxGraphicsBrush formerBrush = m_brush;
|
||||||
wxGraphicsPen formerPen = m_pen;
|
wxGraphicsPen formerPen = m_pen;
|
||||||
@@ -644,7 +652,11 @@ void wxGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDouble y, c
|
|||||||
SetPen( formerPen );
|
SetPen( formerPen );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle, const wxGraphicsBrush& backgroundBrush )
|
void
|
||||||
|
wxGraphicsContext::DoDrawRotatedFilledText(const wxString &str,
|
||||||
|
wxDouble x, wxDouble y,
|
||||||
|
wxDouble angle,
|
||||||
|
const wxGraphicsBrush& backgroundBrush)
|
||||||
{
|
{
|
||||||
wxGraphicsBrush formerBrush = m_brush;
|
wxGraphicsBrush formerBrush = m_brush;
|
||||||
wxGraphicsPen formerPen = m_pen;
|
wxGraphicsPen formerPen = m_pen;
|
||||||
|
@@ -311,8 +311,6 @@ private :
|
|||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxCairoContext : public wxGraphicsContext
|
class WXDLLIMPEXP_CORE wxCairoContext : public wxGraphicsContext
|
||||||
{
|
{
|
||||||
DECLARE_NO_COPY_CLASS(wxCairoContext)
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
wxCairoContext( wxGraphicsRenderer* renderer, const wxWindowDC& dc );
|
wxCairoContext( wxGraphicsRenderer* renderer, const wxWindowDC& dc );
|
||||||
wxCairoContext( wxGraphicsRenderer* renderer, const wxMemoryDC& dc );
|
wxCairoContext( wxGraphicsRenderer* renderer, const wxMemoryDC& dc );
|
||||||
@@ -370,7 +368,6 @@ public:
|
|||||||
virtual void PushState();
|
virtual void PushState();
|
||||||
virtual void PopState();
|
virtual void PopState();
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y);
|
|
||||||
virtual void GetTextExtent( const wxString &str, wxDouble *width, wxDouble *height,
|
virtual void GetTextExtent( const wxString &str, wxDouble *width, wxDouble *height,
|
||||||
wxDouble *descent, wxDouble *externalLeading ) const;
|
wxDouble *descent, wxDouble *externalLeading ) const;
|
||||||
virtual void GetPartialTextExtents(const wxString& text, wxArrayDouble& widths) const;
|
virtual void GetPartialTextExtents(const wxString& text, wxArrayDouble& widths) const;
|
||||||
@@ -378,7 +375,11 @@ public:
|
|||||||
private:
|
private:
|
||||||
void Init(cairo_t *context);
|
void Init(cairo_t *context);
|
||||||
|
|
||||||
|
virtual void DoDrawText( const wxString &str, wxDouble x, wxDouble y );
|
||||||
|
|
||||||
cairo_t* m_context;
|
cairo_t* m_context;
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxCairoContext)
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -1390,20 +1391,23 @@ void wxCairoContext::DrawIcon( const wxIcon &icon, wxDouble x, wxDouble y, wxDou
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxCairoContext::DrawText( const wxString &str, wxDouble x, wxDouble y )
|
void wxCairoContext::DoDrawText(const wxString& str, wxDouble x, wxDouble y)
|
||||||
{
|
{
|
||||||
wxCHECK_RET( !m_font.IsNull(), wxT("wxCairoContext::DrawText - no valid font set") );
|
wxCHECK_RET( !m_font.IsNull(),
|
||||||
|
wxT("wxCairoContext::DrawText - no valid font set") );
|
||||||
|
|
||||||
if ( str.empty())
|
if ( str.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef __WXGTK__
|
|
||||||
const wxCharBuffer data = str.utf8_str();
|
const wxCharBuffer data = str.utf8_str();
|
||||||
if ( !data )
|
if ( !data )
|
||||||
return;
|
return;
|
||||||
size_t datalen = strlen(data);
|
|
||||||
((wxCairoFontData*)m_font.GetRefData())->Apply(this);
|
((wxCairoFontData*)m_font.GetRefData())->Apply(this);
|
||||||
|
|
||||||
|
#ifdef __WXGTK__
|
||||||
|
size_t datalen = strlen(data);
|
||||||
|
|
||||||
PangoLayout *layout = pango_cairo_create_layout (m_context);
|
PangoLayout *layout = pango_cairo_create_layout (m_context);
|
||||||
pango_layout_set_font_description( layout, ((wxCairoFontData*)m_font.GetRefData())->GetFont());
|
pango_layout_set_font_description( layout, ((wxCairoFontData*)m_font.GetRefData())->GetFont());
|
||||||
pango_layout_set_text(layout, data, datalen);
|
pango_layout_set_text(layout, data, datalen);
|
||||||
@@ -1412,15 +1416,13 @@ void wxCairoContext::DrawText( const wxString &str, wxDouble x, wxDouble y )
|
|||||||
|
|
||||||
g_object_unref (layout);
|
g_object_unref (layout);
|
||||||
#else
|
#else
|
||||||
((wxCairoFontData*)m_font.GetRefData())->Apply(this);
|
|
||||||
// Cairo's x,y for drawing text is at the baseline, so we need to adjust
|
// Cairo's x,y for drawing text is at the baseline, so we need to adjust
|
||||||
// the position we move to by the ascent.
|
// the position we move to by the ascent.
|
||||||
cairo_font_extents_t fe;
|
cairo_font_extents_t fe;
|
||||||
cairo_font_extents(m_context, &fe);
|
cairo_font_extents(m_context, &fe);
|
||||||
cairo_move_to(m_context, x, y+fe.ascent);
|
cairo_move_to(m_context, x, y+fe.ascent);
|
||||||
|
|
||||||
const wxWX2MBbuf buf(str.mb_str(wxConvUTF8));
|
cairo_show_text(m_context, data);
|
||||||
cairo_show_text(m_context,buf);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -323,7 +323,6 @@ public:
|
|||||||
virtual void PushState();
|
virtual void PushState();
|
||||||
virtual void PopState();
|
virtual void PopState();
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y);
|
|
||||||
virtual void GetTextExtent( const wxString &str, wxDouble *width, wxDouble *height,
|
virtual void GetTextExtent( const wxString &str, wxDouble *width, wxDouble *height,
|
||||||
wxDouble *descent, wxDouble *externalLeading ) const;
|
wxDouble *descent, wxDouble *externalLeading ) const;
|
||||||
virtual void GetPartialTextExtents(const wxString& text, wxArrayDouble& widths) const;
|
virtual void GetPartialTextExtents(const wxString& text, wxArrayDouble& widths) const;
|
||||||
@@ -334,6 +333,11 @@ private:
|
|||||||
void Init();
|
void Init();
|
||||||
void SetDefaults();
|
void SetDefaults();
|
||||||
|
|
||||||
|
virtual void DoDrawText(const wxString& str, wxDouble x, wxDouble y)
|
||||||
|
{ DoDrawFilledText(str, x, y, wxNullGraphicsBrush); }
|
||||||
|
virtual void DoDrawFilledText(const wxString& str, wxDouble x, wxDouble y,
|
||||||
|
const wxGraphicsBrush& backgroundBrush);
|
||||||
|
|
||||||
Graphics* m_context;
|
Graphics* m_context;
|
||||||
GraphicsStates m_stateStack;
|
GraphicsStates m_stateStack;
|
||||||
GraphicsState m_state1;
|
GraphicsState m_state1;
|
||||||
@@ -1270,16 +1274,31 @@ void wxGDIPlusContext::DrawIcon( const wxIcon &icon, wxDouble x, wxDouble y, wxD
|
|||||||
DeleteObject(iconInfo.hbmMask);
|
DeleteObject(iconInfo.hbmMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGDIPlusContext::DrawText( const wxString &str, wxDouble x, wxDouble y )
|
void wxGDIPlusContext::DoDrawFilledText(const wxString& str,
|
||||||
|
wxDouble x, wxDouble y,
|
||||||
|
const wxGraphicsBrush& brush)
|
||||||
{
|
{
|
||||||
wxCHECK_RET( !m_font.IsNull(), wxT("wxGDIPlusContext::DrawText - no valid font set") );
|
wxCHECK_RET( !m_font.IsNull(),
|
||||||
|
wxT("wxGDIPlusContext::DrawText - no valid font set") );
|
||||||
|
|
||||||
if ( str.IsEmpty())
|
if ( str.IsEmpty())
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
wxWCharBuffer s = str.wc_str( *wxConvUI );
|
const wxGDIPlusFontData * const
|
||||||
m_context->DrawString( s , -1 , ((wxGDIPlusFontData*)m_font.GetRefData())->GetGDIPlusFont() ,
|
fontData = (wxGDIPlusFontData *)m_font.GetRefData();
|
||||||
PointF( x , y ) , StringFormat::GenericTypographic() , ((wxGDIPlusFontData*)m_font.GetRefData())->GetGDIPlusBrush() );
|
const wxGDIPlusBrushData * const
|
||||||
|
brushData = (wxGDIPlusBrushData *)m_brush.GetRefData();
|
||||||
|
|
||||||
|
m_context->DrawString
|
||||||
|
(
|
||||||
|
str.wc_str(*wxConvUI), // string to draw, always Unicode
|
||||||
|
-1, // length: string is NUL-terminated
|
||||||
|
fontData->GetGDIPlusFont(),
|
||||||
|
PointF(x, y),
|
||||||
|
StringFormat::GenericTypographic(),
|
||||||
|
brushData ? brushData->GetGDIPlusBrush()
|
||||||
|
: fontData->GetGDIPlusBrush()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGDIPlusContext::GetTextExtent( const wxString &str, wxDouble *width, wxDouble *height,
|
void wxGDIPlusContext::GetTextExtent( const wxString &str, wxDouble *width, wxDouble *height,
|
||||||
|
@@ -1364,10 +1364,6 @@ public:
|
|||||||
// text
|
// text
|
||||||
//
|
//
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y );
|
|
||||||
|
|
||||||
virtual void DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle );
|
|
||||||
|
|
||||||
virtual void GetTextExtent( const wxString &text, wxDouble *width, wxDouble *height,
|
virtual void GetTextExtent( const wxString &text, wxDouble *width, wxDouble *height,
|
||||||
wxDouble *descent, wxDouble *externalLeading ) const;
|
wxDouble *descent, wxDouble *externalLeading ) const;
|
||||||
|
|
||||||
@@ -1390,6 +1386,9 @@ public:
|
|||||||
private:
|
private:
|
||||||
void EnsureIsValid();
|
void EnsureIsValid();
|
||||||
|
|
||||||
|
virtual void DoDrawText( const wxString &str, wxDouble x, wxDouble y );
|
||||||
|
virtual void DoDrawRotatedText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle );
|
||||||
|
|
||||||
CGContextRef m_cgContext;
|
CGContextRef m_cgContext;
|
||||||
#if wxOSX_USE_CARBON
|
#if wxOSX_USE_CARBON
|
||||||
WindowRef m_windowRef;
|
WindowRef m_windowRef;
|
||||||
@@ -1944,7 +1943,7 @@ void wxMacCoreGraphicsContext::PopState()
|
|||||||
CGContextRestoreGState( m_cgContext );
|
CGContextRestoreGState( m_cgContext );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMacCoreGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDouble y )
|
void wxMacCoreGraphicsContext::DoDrawText( const wxString &str, wxDouble x, wxDouble y )
|
||||||
{
|
{
|
||||||
wxCHECK_RET( !m_font.IsNull(), wxT("wxMacCoreGraphicsContext::DrawText - no valid font set") );
|
wxCHECK_RET( !m_font.IsNull(), wxT("wxMacCoreGraphicsContext::DrawText - no valid font set") );
|
||||||
|
|
||||||
@@ -2000,7 +1999,9 @@ void wxMacCoreGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDoub
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMacCoreGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle )
|
void wxMacCoreGraphicsContext::DoDrawRotatedText(const wxString &str,
|
||||||
|
wxDouble x, wxDouble y,
|
||||||
|
wxDouble angle)
|
||||||
{
|
{
|
||||||
wxCHECK_RET( !m_font.IsNull(), wxT("wxMacCoreGraphicsContext::DrawText - no valid font set") );
|
wxCHECK_RET( !m_font.IsNull(), wxT("wxMacCoreGraphicsContext::DrawText - no valid font set") );
|
||||||
|
|
||||||
@@ -2099,7 +2100,7 @@ void wxMacCoreGraphicsContext::DrawText( const wxString &str, wxDouble x, wxDoub
|
|||||||
#endif
|
#endif
|
||||||
#if wxOSX_USE_IPHONE
|
#if wxOSX_USE_IPHONE
|
||||||
// default implementation takes care of rotation and calls non rotated DrawText afterwards
|
// default implementation takes care of rotation and calls non rotated DrawText afterwards
|
||||||
wxGraphicsContext::DrawText( str, x, y, angle );
|
wxGraphicsContext::DoDrawRotatedText( str, x, y, angle );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user