X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5276b0a53cef4815230e39b54d2ecda14f72cbd1..931d6a47c32a5b4c283243cb553ce71ee2b535d5:/src/common/gdicmn.cpp diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp index cc9045fbe0..2928d1dd80 100644 --- a/src/common/gdicmn.cpp +++ b/src/common/gdicmn.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart // Modified by: // Created: 01/02/97 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -253,7 +252,7 @@ wxRect operator*(const wxRect& r1, const wxRect& r2) } wxRealPoint::wxRealPoint(const wxPoint& pt) - : x(pt.x), y(pt.y) + : x(pt.x), y(pt.y) { } @@ -499,7 +498,7 @@ wxColour *wxColourDatabase::FindColour(const wxString& name) static wxColour s_col; s_col = Find(name); - if ( !s_col.Ok() ) + if ( !s_col.IsOk() ) return NULL; return new wxColour(s_col); @@ -655,7 +654,19 @@ const wxFont* wxStockGDI::GetFont(Item item) font = new wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); break; case FONT_SMALL: - font = new wxFont(GetFont(FONT_NORMAL)->GetPointSize() - 2, wxSWISS, wxNORMAL, wxNORMAL); + font = new wxFont(GetFont(FONT_NORMAL)->GetPointSize() + // Using the font 2 points smaller than the normal one + // results in font so small as to be unreadable under MSW. + // We might want to actually use -1 under the other + // platforms too but for now be conservative and keep -2 + // there for compatibility with the old behaviour as the + // small font seems to be readable enough there as it is. +#ifdef __WXMSW__ + - 1, +#else + - 2, +#endif + wxSWISS, wxNORMAL, wxNORMAL); break; case FONT_SWISS: font = new wxFont(GetFont(FONT_NORMAL)->GetPointSize(), wxSWISS, wxNORMAL, wxNORMAL); @@ -768,7 +779,7 @@ wxPen *wxPenList::FindOrCreatePen (const wxColour& colour, int width, wxPenStyle wxPen* pen = NULL; wxPen penTmp(colour, width, style); - if (penTmp.Ok()) + if (penTmp.IsOk()) { pen = new wxPen(penTmp); list.Append(pen); @@ -790,7 +801,7 @@ wxBrush *wxBrushList::FindOrCreateBrush (const wxColour& colour, wxBrushStyle st wxBrush* brush = NULL; wxBrush brushTmp(colour, style); - if (brushTmp.Ok()) + if (brushTmp.IsOk()) { brush = new wxBrush(brushTmp); list.Append(brush); @@ -807,6 +818,17 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize, const wxString& facename, wxFontEncoding encoding) { + // In all ports but wxOSX, the effective family of a font created using + // wxFONTFAMILY_DEFAULT is wxFONTFAMILY_SWISS so this is what we need to + // use for comparison. + // + // In wxOSX the original wxFONTFAMILY_DEFAULT seems to be kept and it uses + // a different font than wxFONTFAMILY_SWISS anyhow so we just preserve it. +#ifndef __WXOSX__ + if ( family == wxFONTFAMILY_DEFAULT ) + family = wxFONTFAMILY_SWISS; +#endif // !__WXOSX__ + wxFont *font; wxList::compatibility_iterator node; for (node = list.GetFirst(); node; node = node->GetNext()) @@ -818,18 +840,7 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize, font->GetWeight () == weight && font->GetUnderlined () == underline ) { - wxFontFamily fontFamily = (wxFontFamily)font->GetFamily(); - -#if defined(__WXGTK__) - // under GTK the default family is wxSWISS, so looking for a font - // with wxDEFAULT family should return a wxSWISS one instead of - // creating a new one - bool same = (fontFamily == family) || - (fontFamily == wxFONTFAMILY_SWISS && family == wxFONTFAMILY_DEFAULT); -#else // !GTK - // VZ: but why elsewhere do we require an exact match? mystery... - bool same = fontFamily == family; -#endif // GTK/!GTK + bool same = font->GetFamily() == family; // empty facename matches anything at all: this is bad because // depending on which fonts are already created, we might get back @@ -860,7 +871,7 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize, // font not found, create the new one font = NULL; wxFont fontTmp(pointSize, family, style, weight, underline, facename, encoding); - if (fontTmp.Ok()) + if (fontTmp.IsOk()) { font = new wxFont(fontTmp); list.Append(font);