64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/msw/private/textmeasure.h
 | 
						|
// Purpose:     wxMSW-specific declaration of wxTextMeasure class
 | 
						|
// Author:      Manuel Martin
 | 
						|
// Created:     2012-10-05
 | 
						|
// Copyright:   (c) 1997-2012 wxWidgets team
 | 
						|
// Licence:     wxWindows licence
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_MSW_PRIVATE_TEXTMEASURE_H_
 | 
						|
#define _WX_MSW_PRIVATE_TEXTMEASURE_H_
 | 
						|
 | 
						|
#include "wx/msw/wrapwin.h"
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// wxTextMeasure for MSW.
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
class wxTextMeasure : public wxTextMeasureBase
 | 
						|
{
 | 
						|
public:
 | 
						|
    explicit wxTextMeasure(const wxDC *dc, const wxFont *font = NULL)
 | 
						|
        : wxTextMeasureBase(dc, font)
 | 
						|
    {
 | 
						|
        Init();
 | 
						|
    }
 | 
						|
 | 
						|
    explicit wxTextMeasure(const wxWindow *win, const wxFont *font = NULL)
 | 
						|
        : wxTextMeasureBase(win, font)
 | 
						|
    {
 | 
						|
        Init();
 | 
						|
    }
 | 
						|
 | 
						|
protected:
 | 
						|
    void Init();
 | 
						|
 | 
						|
    virtual void BeginMeasuring() wxOVERRIDE;
 | 
						|
    virtual void EndMeasuring() wxOVERRIDE;
 | 
						|
 | 
						|
    virtual void DoGetTextExtent(const wxString& string,
 | 
						|
                               wxCoord *width,
 | 
						|
                               wxCoord *height,
 | 
						|
                               wxCoord *descent = NULL,
 | 
						|
                               wxCoord *externalLeading = NULL) wxOVERRIDE;
 | 
						|
 | 
						|
    virtual bool DoGetPartialTextExtents(const wxString& text,
 | 
						|
                                         wxArrayInt& widths,
 | 
						|
                                         double scaleX) wxOVERRIDE;
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    // We use either the HDC of the provided wxDC or an HDC created for our
 | 
						|
    // window.
 | 
						|
    HDC m_hdc;
 | 
						|
 | 
						|
    // If we change the font in BeginMeasuring(), we restore it to the old one
 | 
						|
    // in EndMeasuring().
 | 
						|
    HFONT m_hfontOld;
 | 
						|
 | 
						|
    wxDECLARE_NO_COPY_CLASS(wxTextMeasure);
 | 
						|
};
 | 
						|
 | 
						|
#endif // _WX_MSW_PRIVATE_TEXTMEASURE_H_
 |