2012-10-17 18:35:49 -04:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: wx/gtk/private/textmeasure.h
|
|
|
|
// Purpose: wxGTK-specific declaration of wxTextMeasure class
|
|
|
|
// Author: Manuel Martin
|
2012-10-27 08:27:48 -04:00
|
|
|
// Created: 2012-10-05
|
2012-10-17 18:35:49 -04:00
|
|
|
// Copyright: (c) 1997-2012 wxWidgets team
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef _WX_GTK_PRIVATE_TEXTMEASURE_H_
|
|
|
|
#define _WX_GTK_PRIVATE_TEXTMEASURE_H_
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// wxTextMeasure
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
class WXDLLIMPEXP_FWD_CORE wxWindowDCImpl;
|
|
|
|
|
|
|
|
class wxTextMeasure : public wxTextMeasureBase
|
|
|
|
{
|
|
|
|
public:
|
2016-08-30 04:44:32 -04:00
|
|
|
explicit wxTextMeasure(const wxDC *dc, const wxFont *font = NULL)
|
2012-10-17 18:35:49 -04:00
|
|
|
: wxTextMeasureBase(dc, font)
|
|
|
|
{
|
|
|
|
Init();
|
|
|
|
}
|
|
|
|
|
2016-08-30 04:44:32 -04:00
|
|
|
explicit wxTextMeasure(const wxWindow *win, const wxFont *font = NULL)
|
2012-10-17 18:35:49 -04:00
|
|
|
: wxTextMeasureBase(win, font)
|
|
|
|
{
|
|
|
|
Init();
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
// Common part of both ctors.
|
|
|
|
void Init();
|
|
|
|
|
2016-12-14 16:23:04 -05:00
|
|
|
virtual void BeginMeasuring() wxOVERRIDE;
|
|
|
|
virtual void EndMeasuring() wxOVERRIDE;
|
2012-10-17 18:35:49 -04:00
|
|
|
|
|
|
|
virtual void DoGetTextExtent(const wxString& string,
|
|
|
|
wxCoord *width,
|
|
|
|
wxCoord *height,
|
|
|
|
wxCoord *descent = NULL,
|
2016-12-14 16:23:04 -05:00
|
|
|
wxCoord *externalLeading = NULL) wxOVERRIDE;
|
2012-10-17 18:35:49 -04:00
|
|
|
|
|
|
|
virtual bool DoGetPartialTextExtents(const wxString& text,
|
|
|
|
wxArrayInt& widths,
|
2016-12-14 16:23:04 -05:00
|
|
|
double scaleX) wxOVERRIDE;
|
2012-10-17 18:35:49 -04:00
|
|
|
|
|
|
|
// This class is only used for DC text measuring with GTK+ 2 as GTK+ 3 uses
|
|
|
|
// Cairo and not Pango for this. However it's still used even with GTK+ 3
|
|
|
|
// for window text measuring, so the context and the layout are still
|
|
|
|
// needed.
|
|
|
|
#ifndef __WXGTK3__
|
|
|
|
wxWindowDCImpl *m_wdc;
|
|
|
|
#endif // GTK+ < 3
|
|
|
|
PangoContext *m_context;
|
|
|
|
PangoLayout *m_layout;
|
|
|
|
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxTextMeasure);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _WX_GTK_PRIVATE_TEXTMEASURE_H_
|