// Created: 13.11.97
// RCS-ID: $Id$
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
// ctor
// ----
wxOwnerDrawn::wxOwnerDrawn(const wxString& str,
- bool bCheckable, bool WXUNUSED(bMenuItem))
+ bool bCheckable, bool bMenuItem)
: m_strName(str)
{
#if defined(__WXMSW__) && defined(__WIN32__) && defined(SM_CXMENUCHECK)
ms_nLastMarginWidth = nm.iMenuWidth;
}
- wxNativeFontInfo info;
- memcpy(&info.lf, &nm.lfMenuFont, sizeof(LOGFONT));
- m_font.Create(info);
+ 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;
// add space at the end of the menu for the submenu expansion arrow
// this will also allow offsetting the accel string from the right edge
- *pwidth += GetDefaultMarginWidth()*1.5;
+ *pwidth += (size_t) (GetDefaultMarginWidth() * 1.5);
// JACS: items still look too tightly packed, so adding 5 pixels.
(*pheight) = (*pheight) + 5;
// get drawn embossed? How can we tell DrawState that we don't want the
// embossing?
-#if defined(__WIN32__) && !defined(__SC__) && !defined(__TWIN32__)
+#if defined(__WIN32__) && !defined(__SYMANTEC__) && !defined(__TWIN32__)
#define O_DRAW_NATIVE_API // comments below explain why I use it
#endif
SIZE sizeRect;
GetTextExtentPoint32(hdc,strMenuText.c_str(), strMenuText.Length(),&sizeRect);
- ::DrawState(hdc, NULL, NULL,
+ ::DrawState(hdc, NULL, NULL,
(LPARAM)strMenuText.c_str(), strMenuText.length(),
- x, rc.y+((rc.GetHeight()-sizeRect.cy)/2.0)-1, // centre text vertically
+ x, rc.y+( (int) ((rc.GetHeight()-sizeRect.cy)/2.0) )-1, // centre text vertically
rc.GetWidth()-GetMarginWidth(), sizeRect.cy,
DST_PREFIXTEXT |
(((st & wxODDisabled) && !(st & wxODSelected)) ? DSS_DISABLED : 0));
{
// right align accel string with right edge of menu ( offset by the margin width )
::SetTextAlign(hdc, TA_RIGHT);
- ::DrawState(hdc, NULL, NULL,
+ ::DrawState(hdc, NULL, NULL,
(LPARAM)m_strAccel.c_str(), m_strAccel.length(),
- rc.GetWidth()-(GetMarginWidth()), rc.y+(rc.GetHeight()-sizeRect.cy)/2.0,
+ rc.GetWidth()-(GetMarginWidth()), rc.y+(int) ((rc.GetHeight()-sizeRect.cy)/2.0),
rc.GetWidth()-GetMarginWidth(), sizeRect.cy,
DST_TEXT |
(((st & wxODDisabled) && !(st & wxODSelected)) ? DSS_DISABLED : 0));