GraphicsPath* m_brushPath;
};
-class WXDLLIMPEXP_CORE wxGDIPlusBitmapData : public wxGraphicsObjectRefData
+class WXDLLIMPEXP_CORE wxGDIPlusBitmapData : public wxGraphicsBitmapData
{
public:
wxGDIPlusBitmapData( wxGraphicsRenderer* renderer, Bitmap* bitmap );
~wxGDIPlusBitmapData ();
virtual Bitmap* GetGDIPlusBitmap() { return m_bitmap; }
+ virtual void* GetNativeBitmap() const { return m_bitmap; }
#if wxUSE_IMAGE
wxImage ConvertToImage() const;
//-----------------------------------------------------------------------------
wxGDIPlusBitmapData::wxGDIPlusBitmapData( wxGraphicsRenderer* renderer, Bitmap* bitmap ) :
- wxGraphicsObjectRefData( renderer ), m_bitmap( bitmap )
+ wxGraphicsBitmapData( renderer ), m_bitmap( bitmap )
{
m_helper = NULL;
}
wxGDIPlusBitmapData::wxGDIPlusBitmapData( wxGraphicsRenderer* renderer,
- const wxBitmap &bmp) : wxGraphicsObjectRefData( renderer )
+ const wxBitmap &bmp) : wxGraphicsBitmapData( renderer )
{
m_bitmap = NULL;
m_helper = NULL;
REAL factorY = m_fontScaleRatio;
- REAL rDescent = ffamily.GetCellDescent(FontStyleRegular) *
- f->GetSize() / ffamily.GetEmHeight(FontStyleRegular);
- REAL rAscent = ffamily.GetCellAscent(FontStyleRegular) *
- f->GetSize() / ffamily.GetEmHeight(FontStyleRegular);
- REAL rHeight = ffamily.GetLineSpacing(FontStyleRegular) *
- f->GetSize() / ffamily.GetEmHeight(FontStyleRegular);
+ // Notice that we must use the real font style or the results would be
+ // incorrect for italic/bold fonts.
+ const INT style = f->GetStyle();
+ const REAL size = f->GetSize();
+ const REAL emHeight = ffamily.GetEmHeight(style);
+ REAL rDescent = ffamily.GetCellDescent(style) * size / emHeight;
+ REAL rAscent = ffamily.GetCellAscent(style) * size / emHeight;
+ REAL rHeight = ffamily.GetLineSpacing(style) * size / emHeight;
if ( height )
*height = rHeight * factorY;