projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BCC compilation fix
[wxWidgets.git]
/
src
/
gtk1
/
font.cpp
diff --git
a/src/gtk1/font.cpp
b/src/gtk1/font.cpp
index 8735f843f7a2c0571a87a100dda62d2bac96150f..20ce420439feb3648729277fab624059568ffbd4 100644
(file)
--- a/
src/gtk1/font.cpp
+++ b/
src/gtk1/font.cpp
@@
-3,7
+3,7
@@
// Purpose:
// Author: Robert Roebling
// Id: $Id$
// Purpose:
// Author: Robert Roebling
// Id: $Id$
-// Copyright: (c) 1998 Robert Roebling
, Julian Smart and Markus Holzem
+// Copyright: (c) 1998 Robert Roebling
and Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
@@
-15,10
+15,13
@@
// headers
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
-#if
def __GNUG__
+#if
defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "font.h"
#endif
#pragma implementation "font.h"
#endif
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
#include "wx/font.h"
#include "wx/fontutil.h"
#include "wx/cmndata.h"
#include "wx/font.h"
#include "wx/fontutil.h"
#include "wx/cmndata.h"
@@
-233,6
+236,11
@@
void wxFontRefData::InitFromNative()
// init fields
m_faceName = wxGTK_CONV_BACK( pango_font_description_get_family( desc ) );
// init fields
m_faceName = wxGTK_CONV_BACK( pango_font_description_get_family( desc ) );
+ // Pango sometimes needs to have a size
+ int pango_size = pango_font_description_get_size( desc );
+ if (pango_size == 0)
+ pango_font_description_set_size( desc, 12 * PANGO_SCALE);
+
m_pointSize = pango_font_description_get_size( desc ) / PANGO_SCALE;
switch (pango_font_description_get_style( desc ))
m_pointSize = pango_font_description_get_size( desc ) / PANGO_SCALE;
switch (pango_font_description_get_style( desc ))
@@
-773,16
+781,21
@@
bool wxFont::GetNoAntiAliasing()
return M_FONTDATA->m_noAA;
}
return M_FONTDATA->m_noAA;
}
-wxNativeFontInfo *wxFont::GetNativeFontInfo() const
+
const
wxNativeFontInfo *wxFont::GetNativeFontInfo() const
{
wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
#ifndef __WXGTK20__
{
wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
#ifndef __WXGTK20__
- if ( M_FONTDATA->m_nativeFontInfo.GetXFontName().empty() )
+ if ( !M_FONTDATA->HasNativeFont() )
+ {
+ // NB: this call has important side-effect: it not only finds
+ // GdkFont representation, it also initializes m_nativeFontInfo
+ // by calling its SetXFontName method
GetInternalFont();
GetInternalFont();
+ }
#endif
#endif
- return
new wxNativeFontInfo
(M_FONTDATA->m_nativeFontInfo);
+ return
&
(M_FONTDATA->m_nativeFontInfo);
}
bool wxFont::IsFixedWidth() const
}
bool wxFont::IsFixedWidth() const
@@
-930,7
+943,7
@@
GdkFont *wxFont::GetInternalFont( float scale ) const
if ( !font )
{
// do we have the XLFD?
if ( !font )
{
// do we have the XLFD?
- if ( M_FONTDATA->HasNativeFont() )
+ if (
int_scale == 100 &&
M_FONTDATA->HasNativeFont() )
{
font = wxLoadFont(M_FONTDATA->m_nativeFontInfo.GetXFontName());
}
{
font = wxLoadFont(M_FONTDATA->m_nativeFontInfo.GetXFontName());
}
@@
-947,10
+960,10
@@
GdkFont *wxFont::GetInternalFont( float scale ) const
M_FONTDATA->m_faceName,
M_FONTDATA->m_encoding,
&xfontname);
M_FONTDATA->m_faceName,
M_FONTDATA->m_encoding,
&xfontname);
- if ( font )
- {
+ // NB: wxFont::GetNativeFontInfo relies on this
+ // side-effect of GetInternalFont
+ if ( int_scale == 100 )
M_FONTDATA->m_nativeFontInfo.SetXFontName(xfontname);
M_FONTDATA->m_nativeFontInfo.SetXFontName(xfontname);
- }
}
}
}
}