// Created: 26.10.99
// RCS-ID: $Id$
// Copyright: (c) wxWindows team
-// Licence: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// wxMenuItem
// ----------------------------------------------------------------------------
+wxMenuItemBase::wxMenuItemBase(wxMenu *parentMenu,
+ int id,
+ const wxString& text,
+ const wxString& help,
+ wxItemKind kind,
+ wxMenu *subMenu)
+ : m_text(text),
+ m_help(help)
+{
+ wxASSERT_MSG( parentMenu != NULL, wxT("menuitem should have a menu") );
+
+ m_parentMenu = parentMenu;
+ m_subMenu = subMenu;
+ m_isEnabled = TRUE;
+ m_isChecked = FALSE;
+ m_id = id;
+ m_kind = kind;
+}
+
wxMenuItemBase::~wxMenuItemBase()
{
delete m_subMenu;
else {
if ( current.Len() == 1 ) {
// it's a letter
- keyCode = wxToupper(current[0U]);
+ keyCode = current[0U];
+
+ // Only call wxToupper if control, alt, or shift is held down,
+ // otherwise lower case accelerators won't work.
+ if (accelFlags != wxACCEL_NORMAL) {
+ keyCode = wxToupper(keyCode);
+ }
}
else {
// is it a function key?
else if ( current == wxT("INSERT") ) {
keyCode = WXK_INSERT;
}
-#if 0
+ else if ( current == wxT("ENTER") || current == wxT("RETURN") ) {
+ keyCode = WXK_RETURN;
+ }
else if ( current == wxT("PGUP") ) {
- keyCode = VK_PRIOR;
+ keyCode = WXK_PRIOR;
}
else if ( current == wxT("PGDN") ) {
- keyCode = VK_NEXT;
+ keyCode = WXK_NEXT;
+ }
+ else if ( current == wxT("LEFT") ) {
+ keyCode = WXK_LEFT;
+ }
+ else if ( current == wxT("RIGHT") ) {
+ keyCode = WXK_RIGHT;
+ }
+ else if ( current == wxT("UP") ) {
+ keyCode = WXK_UP;
+ }
+ else if ( current == wxT("DOWN") ) {
+ keyCode = WXK_DOWN;
+ }
+ else if ( current == wxT("HOME") ) {
+ keyCode = WXK_HOME;
+ }
+ else if ( current == wxT("END") ) {
+ keyCode = WXK_END;
+ }
+ else if ( current == wxT("SPACE") ) {
+ keyCode = WXK_SPACE;
+ }
+ else if ( current == wxT("TAB") ) {
+ keyCode = WXK_TAB;
}
-#endif
else
{
wxLogDebug(wxT("Unrecognized accel key '%s', accel string ignored."),
(wxMenuItem::GetLabelFromText(title2) == label) )
{
// found
- return (int)i;
+ return (int)i;
}
}