65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/gtk/private/textmeasure.h
 | |
| // Purpose:     wxGTK-specific declaration of wxTextMeasure class
 | |
| // Author:      Manuel Martin
 | |
| // Created:     2012-10-05
 | |
| // 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:
 | |
|     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:
 | |
|     // Common part of both ctors.
 | |
|     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;
 | |
| 
 | |
|     // 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_
 |