// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "font.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#endif
#ifndef WX_PRECOMP
- #include "wx/setup.h"
#include "wx/list.h"
#include "wx/utils.h"
#include "wx/app.h"
// constructors
wxFontRefData()
{
- Init(-1, wxSize(0, 0), FALSE, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL,
- wxFONTWEIGHT_NORMAL, FALSE, wxEmptyString,
+ Init(-1, wxSize(0,0), false, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL,
+ wxFONTWEIGHT_NORMAL, false, wxEmptyString,
wxFONTENCODING_DEFAULT);
}
Init(info, hFont);
}
- wxFontRefData(const wxFontRefData& data)
+ wxFontRefData(const wxFontRefData& data) : wxGDIRefData()
{
if ( data.m_nativeFontInfoOk )
{
return m_nativeFontInfoOk ? m_nativeFontInfo.GetPixelSize()
: m_pixelSize;
}
-
+
bool IsUsingSizeInPixels() const
{
- return m_nativeFontInfoOk ? TRUE : m_sizeUsingPixels;
+ return m_nativeFontInfoOk ? true : m_sizeUsingPixels;
}
int GetFamily() const
else
{
m_pointSize = pointSize;
- m_sizeUsingPixels = FALSE;
+ m_sizeUsingPixels = false;
}
}
else
{
m_pixelSize = pixelSize;
- m_sizeUsingPixels = TRUE;
+ m_sizeUsingPixels = true;
}
}
void wxNativeFontInfo::SetPointSize(int pointsize)
{
-#if wxFONT_SIZE_COMPATIBILITY
- // Incorrect, but compatible with old wxWidgets behaviour
- lf.lfHeight = (pointSize*ppInch)/72;
-#else // wxFONT_SIZE_COMPATIBILITY
// FIXME: using the screen here results in incorrect font size calculation
// for printing!
const int ppInch = ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
lf.lfHeight = -(int)((pointsize*((double)ppInch)/72.0) + 0.5);
-#endif // wxFONT_SIZE_COMPATIBILITY/!wxFONT_SIZE_COMPATIBILITY
}
void wxNativeFontInfo::SetPixelSize(const wxSize& pixelSize)
lf.lfUnderline = underlined;
}
-void wxNativeFontInfo::SetFaceName(wxString facename)
+void wxNativeFontInfo::SetFaceName(const wxString& facename)
{
wxStrncpy(lf.lfFaceName, facename, WXSIZEOF(lf.lfFaceName));
}
void wxNativeFontInfo::SetFamily(wxFontFamily family)
{
- int ff_family;
+ BYTE ff_family;
wxString facename;
switch ( family )
case wxDEFAULT:
default:
+ {
+ // We want Windows 2000 or later to have new fonts even MS Shell Dlg
+ // is returned as default GUI font for compatibility
+ int verMaj;
ff_family = FF_SWISS;
- facename = _T("MS Sans Serif");
+ if(wxGetOsVersion(&verMaj) == wxWINDOWS_NT && verMaj >= 5)
+ facename = _T("MS Shell Dlg 2");
+ else
+ facename = _T("MS Shell Dlg");
+ }
}
- lf.lfPitchAndFamily = DEFAULT_PITCH | ff_family;
+ lf.lfPitchAndFamily = (BYTE)(DEFAULT_PITCH) | ff_family;
if ( !wxStrlen(lf.lfFaceName) )
{
}
}
- lf.lfCharSet = info.charset;
+ lf.lfCharSet = (BYTE)info.charset;
}
bool wxNativeFontInfo::FromString(const wxString& s)
// wxFont
// ----------------------------------------------------------------------------
-void wxFont::Init()
-{
-}
-
bool wxFont::Create(const wxNativeFontInfo& info, WXHFONT hFont)
{
UnRef();
{
// the two low-order bits specify the pitch of the font, the rest is
// family
- BYTE pitch = M_FONTDATA->GetNativeFontInfo().
- lf.lfPitchAndFamily & PITCH_MASK;
+ BYTE pitch =
+ (BYTE)(M_FONTDATA->GetNativeFontInfo().lf.lfPitchAndFamily & PITCH_MASK);
return pitch == FIXED_PITCH;
}
return wxFontBase::IsFixedWidth();
}
-