// Purpose: wxTextMeasure implementation for wxGTK
// Author: Manuel Martin
// Created: 2012-10-05
-// RCS-ID: $Id:
// Copyright: (c) 1997-2012 wxWidgets team
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
void wxTextMeasure::Init()
{
- wxASSERT_MSG( m_font, wxT("wxTextMeasure needs a valid wxFont") );
-
m_context = NULL;
m_layout = NULL;
if ( m_layout )
{
pango_layout_set_font_description(m_layout,
- m_font->GetNativeFontInfo()->description);
+ GetFont().GetNativeFontInfo()->description);
}
}
{
if ( !m_context )
{
- *width =
- *height = 0;
+ if ( width )
+ *width = 0;
+
+ if ( height )
+ *height = 0;
return;
}
// Set layout's text
- const wxCharBuffer dataUTF8 = wxGTK_CONV_FONT(string, *m_font);
- if ( !dataUTF8 )
+ const wxCharBuffer dataUTF8 = wxGTK_CONV_FONT(string, GetFont());
+ if ( !dataUTF8 && !string.empty() )
{
// hardly ideal, but what else can we do if conversion failed?
wxLogLastError(wxT("GetTextExtent"));
bool wxTextMeasure::DoGetPartialTextExtents(const wxString& text,
wxArrayInt& widths,
- double WXUNUSED(scaleX))
+ double scaleX)
{
+ if ( !m_layout )
+ return wxTextMeasureBase::DoGetPartialTextExtents(text, widths, scaleX);
+
// Set layout's text
- const wxCharBuffer dataUTF8 = wxGTK_CONV_FONT(text, *m_font);
+ const wxCharBuffer dataUTF8 = wxGTK_CONV_FONT(text, GetFont());
if ( !dataUTF8 )
{
// hardly ideal, but what else can we do if conversion failed?