#include "wx/module.h"
#include "wx/fontutil.h"
+#ifdef __WXWINCE__ // for SM_CXCURSOR and SM_CYCURSOR
+#include "wx/msw/wince/missing.h"
+#endif // __WXWINCE__
+
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
// all Windows version, for the other ones we have to check
bool useDefault;
- // none of the is supported under Win16 anyhow
-#ifdef __WIN32__
int verMaj, verMin;
wxGetOsVersion(&verMaj, &verMin);
if ( verMaj < 4 )
}
}
}
-#else
- useDefault = TRUE;
-#endif // __WIN32__
if ( useDefault )
{
if ( !hasCol )
{
+#ifdef __WXWINCE__
+ colSys = ::GetSysColor(index|SYS_COLOR_INDEX_FLAG);
+#else
colSys = ::GetSysColor(index);
+#endif
}
return wxRGBToColour(colSys);
wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
{
// 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);
static const int gs_metricsMap[] =
{
-1, // wxSystemMetric enums start at 1, so give a dummy value for pos 0.
-#ifdef __WIN32__
+#if defined(__WIN32__) && !defined(__WXWINCE__)
SM_CMOUSEBUTTONS,
#else
-1,
SM_CXEDGE,
SM_CYEDGE,
#else
- -1, -1, -1, -1
+ -1, -1, -1, -1,
#endif
SM_CXHSCROLL,
SM_CYHSCROLL,
+#ifdef SM_CXHTHUMB
SM_CXHTHUMB,
+#else
+ -1,
+#endif
SM_CXICON,
SM_CYICON,
SM_CXICONSPACING,
SM_CYICONSPACING,
+#ifdef SM_CXHTHUMB
SM_CXMIN,
SM_CYMIN,
+#else
+ -1, -1,
+#endif
SM_CXSCREEN,
SM_CYSCREEN,
SM_CXSMICON,
SM_CYSMICON,
#else
- -1, -1, -1, -1
+ -1, -1, -1, -1,
#endif
SM_CYHSCROLL,
SM_CXVSCROLL,
SM_CXVSCROLL,
SM_CYVSCROLL,
+#ifdef SM_CYVTHUMB
SM_CYVTHUMB,
+#else
+ -1,
+#endif
SM_CYCAPTION,
SM_CYMENU,
#if defined(__WIN32__) && defined(SM_NETWORK)
#else
-1,
#endif
+#ifdef SM_PENWINDOWS
SM_PENWINDOWS,
+#else
+ -1,
+#endif
#if defined(__WIN32__) && defined(SM_SHOWSOUNDS)
SM_SHOWSOUNDS,
#else
-1,
#endif
+#ifdef SM_SWAPBUTTON
SM_SWAPBUTTON,
+#else
+ -1
+#endif
};
// Get a system metric, e.g. scrollbar size
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