1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/gtk/private/textmeasure.h
3 // Purpose: wxGTK-specific declaration of wxTextMeasure class
4 // Author: Manuel Martin
7 // Copyright: (c) 1997-2012 wxWidgets team
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_GTK_PRIVATE_TEXTMEASURE_H_
12 #define _WX_GTK_PRIVATE_TEXTMEASURE_H_
14 // ----------------------------------------------------------------------------
16 // ----------------------------------------------------------------------------
18 class WXDLLIMPEXP_FWD_CORE wxWindowDCImpl
;
20 class wxTextMeasure
: public wxTextMeasureBase
23 wxEXPLICIT
wxTextMeasure(const wxDC
*dc
, const wxFont
*font
= NULL
)
24 : wxTextMeasureBase(dc
, font
)
29 wxEXPLICIT
wxTextMeasure(const wxWindow
*win
, const wxFont
*font
= NULL
)
30 : wxTextMeasureBase(win
, font
)
36 // Common part of both ctors.
39 virtual void BeginMeasuring();
40 virtual void EndMeasuring();
42 virtual void DoGetTextExtent(const wxString
& string
,
45 wxCoord
*descent
= NULL
,
46 wxCoord
*externalLeading
= NULL
);
48 virtual bool DoGetPartialTextExtents(const wxString
& text
,
52 // This class is only used for DC text measuring with GTK+ 2 as GTK+ 3 uses
53 // Cairo and not Pango for this. However it's still used even with GTK+ 3
54 // for window text measuring, so the context and the layout are still
57 wxWindowDCImpl
*m_wdc
;
59 PangoContext
*m_context
;
60 PangoLayout
*m_layout
;
62 wxDECLARE_NO_COPY_CLASS(wxTextMeasure
);
65 #endif // _WX_GTK_PRIVATE_TEXTMEASURE_H_