projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
set click coordinates to (-1, -1) if right mouse button event was generated from...
[wxWidgets.git]
/
src
/
gtk1
/
font.cpp
diff --git
a/src/gtk1/font.cpp
b/src/gtk1/font.cpp
index f62f55b84075f1122ecf561b519a0cb332b40016..6201232e19311e7409fdf5aede3e6d1754f216d5 100644
(file)
--- a/
src/gtk1/font.cpp
+++ b/
src/gtk1/font.cpp
@@
-86,11
+86,6
@@
public:
#endif // GTK 2.0/1.x
}
#endif // GTK 2.0/1.x
}
-#ifndef __WXGTK20__
- // reinitilize the font with the gived XFLD
- void ReInit(const wxString& fontname);
-#endif
-
// setters: all of them also take care to modify m_nativeFontInfo if we
// have it so as to not lose the information not carried by our fields
void SetPointSize(int pointSize);
// setters: all of them also take care to modify m_nativeFontInfo if we
// have it so as to not lose the information not carried by our fields
void SetPointSize(int pointSize);
@@
-102,7
+97,7
@@
public:
void SetEncoding(wxFontEncoding encoding);
void SetNoAntiAliasing( bool no = TRUE ) { m_noAA = no; }
void SetEncoding(wxFontEncoding encoding);
void SetNoAntiAliasing( bool no = TRUE ) { m_noAA = no; }
- bool GetNoAntiAliasing() { return m_noAA; }
+ bool GetNoAntiAliasing()
const
{ return m_noAA; }
// and this one also modifies all the other font data fields
void SetNativeFontInfo(const wxNativeFontInfo& info);
// and this one also modifies all the other font data fields
void SetNativeFontInfo(const wxNativeFontInfo& info);
@@
-241,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 ))
@@
-442,15
+442,6
@@
wxFontRefData::wxFontRefData(const wxString& fontname)
InitFromNative();
}
InitFromNative();
}
-#ifndef __WXGTK20__
-void wxFontRefData::ReInit(const wxString& fontname)
-{
- m_nativeFontInfo.SetXFontName(fontname);
-
- InitFromNative();
-}
-#endif
-
void wxFontRefData::ClearGdkFonts()
{
#ifndef __WXGTK20__
void wxFontRefData::ClearGdkFonts()
{
#ifndef __WXGTK20__
@@
-783,23
+774,28
@@
wxFontEncoding wxFont::GetEncoding() const
return M_FONTDATA->m_encoding;
}
return M_FONTDATA->m_encoding;
}
-bool wxFont::GetNoAntiAliasing()
+bool wxFont::GetNoAntiAliasing()
const
{
wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
return M_FONTDATA->m_noAA;
}
{
wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
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
@@
-947,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());
}
@@
-964,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 )
- {
- M_FONTDATA->ReInit(xfontname);
- }
+ // NB: wxFont::GetNativeFontInfo relies on this
+ // side-effect of GetInternalFont
+ if ( int_scale == 100 )
+ M_FONTDATA->m_nativeFontInfo.SetXFontName(xfontname);
}
}
}
}