added wxGetCCDefaultFont() returning the default icon font

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2004-04-01 00:09:48 +00:00
parent 34040e3126
commit 553c5bcc3a
2 changed files with 69 additions and 23 deletions

View File

@ -47,16 +47,14 @@
inline void wxSetCCUnicodeFormat(HWND hwnd)
{
#ifndef __WXWINCE__
SendMessage(hwnd, CCM_SETUNICODEFORMAT,
#if wxUSE_UNICODE
TRUE
#else
FALSE
#endif
, 0);
#endif
// __WXWINCE__
::SendMessage(hwnd, CCM_SETUNICODEFORMAT, wxUSE_UNICODE, 0);
#endif // __WXWINCE__
}
// Return the default font for the common controls
//
// this is implemented in msw/settings.cpp
extern wxFont wxGetCCDefaultFont();
#endif // _WX_MSW_WRAPCCTL_H_

View File

@ -249,22 +249,13 @@ wxFont wxCreateFontFromStockObject(int index)
wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
{
#ifndef __WXWINCE__
// this one is special: we don't get it from GetStockObject()
if ( index == wxSYS_ICONTITLE_FONT )
{
LOGFONT lf;
SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, 0);
return wxCreateFontFromLogFont(&lf);
}
#endif // __WXWINCE__
// wxWindow ctor calls GetSystemFont(wxSYS_DEFAULT_GUI_FONT) so we're
// called fairly often - this is why we cache this particular font
bool isDefaultRequested = index == wxSYS_DEFAULT_GUI_FONT;
if ( isDefaultRequested && gs_fontDefault )
// called fairly often -- this is why we cache this particular font
const bool isDefaultRequested = index == wxSYS_DEFAULT_GUI_FONT;
if ( isDefaultRequested )
{
return *gs_fontDefault;
if ( gs_fontDefault )
return *gs_fontDefault;
}
wxFont font = wxCreateFontFromStockObject(index);
@ -415,3 +406,60 @@ bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
return FALSE;
}
}
// ----------------------------------------------------------------------------
// function from wx/msw/wrapcctl.h: there is really no other place for it...
// ----------------------------------------------------------------------------
#if wxUSE_LISTCTRL || wxUSE_TREECTRL
extern wxFont wxGetCCDefaultFont()
{
#ifndef __WXWINCE__
// under the systems enumerated below (anything released after Win98), the
// default font used for the common controls seems to be the desktop font
// which is also used for the icon titles and not the stock default GUI
// font
bool useIconFont;
int verMaj, verMin;
switch ( wxGetOsVersion(&verMaj, &verMin) )
{
case wxWIN95:
// 4.10 is Win98
useIconFont = verMin == 4 && verMin >= 10;
break;
case wxWINDOWS_NT:
// 5.0 is Win2k
useIconFont = verMaj >= 5;
break;
default:
useIconFont = false;
}
if ( useIconFont )
{
LOGFONT lf;
if ( ::SystemParametersInfo
(
SPI_GETICONTITLELOGFONT,
sizeof(lf),
&lf,
0
) )
{
return wxFont(wxCreateFontFromLogFont(&lf));
}
else
{
wxLogLastError(_T("SystemParametersInfo(SPI_GETICONTITLELOGFONT"));
}
}
#endif // __WXWINCE__
// fall back to the default font for the normal controls
return wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
}
#endif // wxUSE_LISTCTRL || wxUSE_TREECTRL