Add a new private wxTextMeasure class implementing methods for measuring text and move the often duplicated (but not always identically) code for doing the same from wxDC and wxWindow into it. Currently this class is only really implemented in wxMSW and wxGTK. Also extend the test for text measuring functions and rename it to MeasuringTextTestCase from MeasuringContextTestCase as it's not wxGC-specific any more. Closes #14705. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
41 lines
1.5 KiB
C++
41 lines
1.5 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/generic/private/textmeasure.h
|
|
// Purpose: Generic wxTextMeasure declaration.
|
|
// Author: Vadim Zeitlin
|
|
// Created: 2012-10-17
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) 1997-2012 wxWidgets team
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GENERIC_PRIVATE_TEXTMEASURE_H_
|
|
#define _WX_GENERIC_PRIVATE_TEXTMEASURE_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxTextMeasure for the platforms without native support.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class wxTextMeasure : public wxTextMeasureBase
|
|
{
|
|
public:
|
|
wxTextMeasure(const wxDC *dc, const wxFont *font)
|
|
: wxTextMeasureBase(dc, font) {}
|
|
wxTextMeasure(const wxWindow *win, const wxFont *font)
|
|
: wxTextMeasureBase(win, font) {}
|
|
|
|
protected:
|
|
virtual void DoGetTextExtent(const wxString& string,
|
|
wxCoord *width,
|
|
wxCoord *height,
|
|
wxCoord *descent = NULL,
|
|
wxCoord *externalLeading = NULL);
|
|
|
|
virtual bool DoGetPartialTextExtents(const wxString& text,
|
|
wxArrayInt& widths,
|
|
double scaleX);
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxTextMeasure);
|
|
};
|
|
|
|
#endif // _WX_GENERIC_PRIVATE_TEXTMEASURE_H_
|