summaryrefslogtreecommitdiff
path: root/win/Bmpmenu.cpp
diff options
context:
space:
mode:
authorleo2004-11-19 19:51:14 +0000
committerleo2004-11-19 19:51:14 +0000
commit7a4d9fd9e4c0b651c64c912b1d42c9f38fef2a2b (patch)
tree0d8fe8298577580d94d1e7f0e327fa49847ec880 /win/Bmpmenu.cpp
parent0f5654b264e729918f48fc4c95aba636d673ed3a (diff)
Added support for custom user shortcut keys.
git-svn-id: http://svn.leocad.org/trunk@363 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'win/Bmpmenu.cpp')
-rw-r--r--win/Bmpmenu.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/win/Bmpmenu.cpp b/win/Bmpmenu.cpp
index 44f2742..2f0864e 100644
--- a/win/Bmpmenu.cpp
+++ b/win/Bmpmenu.cpp
@@ -1375,3 +1375,38 @@ HBITMAP CBMPMenu::LoadSysColorBitmap(int nResourceId)
return NULL;
return AfxLoadSysColorBitmap(hInst, hRsrc, FALSE);
}
+
+BOOL CBMPMenu::ChangeMenuItemShortcut(const char *Shortcut, UINT nID)
+{
+ int nLoc;
+ CBMPMenuData *mdata;
+
+ // Find the old CBMPMenuData structure:
+ CBMPMenu *psubmenu = FindMenuOption(nID,nLoc);
+ if (psubmenu && nLoc >= 0)
+ mdata = psubmenu->m_MenuList[nLoc];
+ else
+ return false;
+ ASSERT(mdata);
+
+ CString OldText = mdata->GetString();
+ nLoc = OldText.Find('\t');
+
+ // Remove old shortcut text
+ if (nLoc > 0)
+ OldText = OldText.Left(nLoc);
+
+ if (Shortcut)
+ {
+ OldText += '\t';
+ OldText += Shortcut;
+ }
+#ifdef UNICODE
+ mdata->SetWideString((LPCTSTR)OldText);//SK: modified for dynamic allocation
+#else
+ mdata->SetAnsiString(OldText);
+#endif
+
+ return (CMenu::ModifyMenu(nID,mdata->nFlags,nID,(LPCTSTR)mdata));
+}
+