- size_t wxOwnerDrawn::ms_nDefaultMarginWidth = GetSystemMetrics(SM_CXMENUCHECK);
-#else // # what is the reasonable default?
- size_t wxOwnerDrawn::ms_nDefaultMarginWidth = 15;
+ // get the default menu height and font from the system
+ NONCLIENTMETRICS nm;
+ nm.cbSize = sizeof (NONCLIENTMETRICS);
+ SystemParametersInfo (SPI_GETNONCLIENTMETRICS,0,&nm,0);
+ m_nMinHeight = nm.iMenuHeight;
+
+ // nm.iMenuWidth is the system default for the width of
+ // menu icons and checkmarks
+ if (ms_nDefaultMarginWidth == 0)
+ {
+ ms_nDefaultMarginWidth = nm.iMenuWidth;
+ ms_nLastMarginWidth = nm.iMenuWidth;
+ }
+
+ if (bMenuItem)
+ {
+ static wxFont menu_font;
+ if (!menu_font.Ok())
+ {
+ // create menu font
+ wxNativeFontInfo info;
+ memcpy(&info.lf, &nm.lfMenuFont, sizeof(LOGFONT));
+ menu_font.Create(info);
+ }
+
+ m_font = menu_font;
+ }
+ else
+ {
+ m_font = *wxNORMAL_FONT;
+ }
+#else
+ // windows clean install default
+ m_nMinHeight = 18;
+
+ if (ms_nDefaultMarginWidth == 0)
+ {
+ ms_nDefaultMarginWidth = 18;
+ ms_nLastMarginWidth = 18;
+ }
+ if (wxNORMAL_FONT)
+ m_font = *wxNORMAL_FONT;