// Created: 10/12/99
// RCS-ID: $Id$
// Copyright: (c) David Webster
-// Licence: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#if wxUSE_OWNER_DRAWN
+#include "wx/settings.h"
#include "wx/ownerdrw.h"
#include "wx/menuitem.h"
//
// If we have a valid accel string, then pad out
- // the menu string so the menu and accel string are not
- // placed ontop of eachother.
+ // the menu string so that the menu and accel string are not
+ // placed on top of each other.
if (!m_strAccel.empty() )
{
sStr.Pad(sStr.Length()%8);
if (!m_strAccel.IsEmpty())
{
//
- // Measure the accelerator string, and add it's width to
+ // Measure the accelerator string, and add its width to
// the total item width, plus 16 (Accelerators are right justified,
// with the right edge of the text rectangle 16 pixels left of
// the right edge of the menu)
}
//
- // 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
+ // 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)(*pWidth + GetDefaultMarginWidth() * 1.5);
//
// JACS: items still look too tightly packed, so adding 5 pixels.
}
//
- // Base on the status of the menu item pick the right colors
+ // Based on the status of the menu item, pick the right colors
//
if (eStatus & wxODSelected)
{
- wxColour vCol2("WHITE");
+ wxColour vCol2(wxT("WHITE"));
vColBack.Set( (unsigned char)0
,(unsigned char)0
,(unsigned char)160
// Fall back to default colors if none explicitly specified
//
vRef = ::WinQuerySysColor( HWND_DESKTOP
- ,SYSCLR_MENU // we are using gray for all our window backgrounds in wxWindows
+ ,SYSCLR_MENU // we are using gray for all our window backgrounds in wxWidgets
,0L
);
vColBack.Set( GetRValue(vRef)
//
// Unfortunately, unlike Win32, PM has no owner drawn specific text
// drawing methods like ::DrawState that can cleanly handle accel
- // pneumonics and deal, automatically, with various states, so we have
+ // mnemonics and deal, automatically, with various states, so we have
// to handle them ourselves. Notice Win32 can't handle \t in ownerdrawn
- // strings either. We cannot handle mneumonics either. We display
- // it, though, in hopes we can figure it out some day.
+ // strings either. We cannot handle mnemonics either. We display
+ // them, though, in the hope we can figure them out some day.
//
//
- // Display main text and accel text separately to allign better
+ // Display main text and accel text separately to align better
//
- wxString sTgt = "\t";
+ wxString sTgt = wxT("\t");
wxString sFullString = m_strName; // need to save the original text
wxString sAccel;
- size_t nIndex;
+ int nIndex;
size_t nWidth;
size_t nCharWidth;
size_t nHeight;
- bool bFoundMneumonic = FALSE;
+ bool bFoundMnemonic = FALSE;
bool bFoundAccel = FALSE;
//
}
//
- // Deal with the mneumonic character
+ // Deal with the mnemonic character
//
- sTgt = "~";
+ sTgt = wxT("~");
nIndex = sFullString.Find(sTgt.c_str());
if (nIndex != -1)
{
wxString sTmp = sFullString;
- bFoundMneumonic = TRUE;
+ bFoundMnemonic = TRUE;
sTmp.Remove(nIndex);
rDC.GetTextExtent( sTmp
,(long *)&nWidth
,(long *)&nHeight
);
- sTmp = sFullString[nIndex + 1];
+ sTmp = sFullString[(size_t)(nIndex + 1)];
rDC.GetTextExtent( sTmp
,(long *)&nCharWidth
,(long *)&nHeight
);
- sFullString.Replace(sTgt.c_str(), "", TRUE);
+ sFullString.Replace(sTgt.c_str(), wxEmptyString, TRUE);
}
//
,sFullString.length()
,(PCH)sFullString.c_str()
);
- if (bFoundMneumonic)
+ if (bFoundMnemonic)
{
//
- // Underline the mneumonic -- still won't work, but at least it "looks" right
+ // Underline the mnemonic -- still won't work, but at least it "looks" right
//
wxPen vPen;
POINTL vPntEnd = {nX + nWidth + nCharWidth - 3, rRect.y + 2}; //CharWidth is bit wide
if (eStatus & wxODSelected)
{
- RECT vRectBmp = { rRect.x
- ,rRect.y
- ,rRect.x + GetMarginWidth() - 1
- ,rRect.y + m_nHeight - 1
- };
POINTL vPnt1 = {rRect.x + 1, rRect.y + 3}; // Leave a little background border
POINTL vPnt2 = {rRect.x + GetMarginWidth(), rRect.y + m_nHeight - 3};