#include ".\setlookandfeelpage.h"\r
#include "MessageBox.h"\r
#include "XPTheme.h"\r
+#include "MenuInfo.h"\r
+\r
+extern MenuInfo menuInfo[];\r
+\r
+void InsertMenuItemToList(CListCtrl *list,CImageList *imagelist)\r
+{\r
+ int i=0;\r
+ while(menuInfo[i].command != ShellMenuLastEntry)\r
+ {\r
+ if(menuInfo[i].command != ShellSeparator &&\r
+ menuInfo[i].command != ShellSubMenu &&\r
+ menuInfo[i].command != ShellSubMenuFile &&\r
+ menuInfo[i].command != ShellSubMenuFolder &&\r
+ menuInfo[i].command != ShellSubMenuLink &&\r
+ menuInfo[i].command != ShellSubMenuMultiple)\r
+ {\r
+ HICON hIcon = reinterpret_cast<HICON>(::LoadImage(AfxGetResourceHandle(),\r
+ MAKEINTRESOURCE(menuInfo[i].iconID),IMAGE_ICON, 16, 16, LR_LOADTRANSPARENT ));\r
+\r
+ int nImage = imagelist -> Add(hIcon);\r
+\r
+ CString temp;\r
+ temp.LoadString(menuInfo[i].menuTextID);\r
+ CStringUtils::RemoveAccelerators(temp);\r
+ \r
+ int nIndex = list->GetItemCount();\r
+ list->InsertItem(nIndex,temp,nImage);\r
+ list->SetItemData(nIndex,i);\r
+ }\r
+ i++;\r
+ }\r
+}\r
+\r
+void SetMenuItemCheck(CListCtrl *list, unsigned __int64 mask)\r
+{\r
+ for(int i=0;i<list->GetItemCount();i++)\r
+ {\r
+ int data = list->GetItemData(i);\r
+ \r
+ list->SetCheck(i,(menuInfo[data].menuID & mask) == menuInfo[data].menuID);\r
+ }\r
+}\r
+\r
+unsigned __int64 GetMenuListMask(CListCtrl *list)\r
+{\r
+ unsigned __int64 mask = 0;\r
+\r
+ for(int i=0;i<list->GetItemCount();i++)\r
+ { \r
+ if(list->GetCheck(i))\r
+ {\r
+ int data = list->GetItemData(i);\r
+ mask |= menuInfo[data].menuID ;\r
+ }\r
+ }\r
+ return mask;\r
+}\r
\r
IMPLEMENT_DYNAMIC(CSetLookAndFeelPage, ISettingsPropPage)\r
CSetLookAndFeelPage::CSetLookAndFeelPage()\r
m_imgList.Create(16, 16, ILC_COLOR16 | ILC_MASK, 4, 1);\r
\r
m_bBlock = true;\r
- InsertItem(IDS_MENUCLONE,IDI_CLONE, MENUCLONE);\r
- InsertItem(IDS_MENUSYNC, IDI_RELOCATE, MENUSYNC);\r
- InsertItem(IDS_MENUPULL, IDI_PULL, MENUPULL);\r
- InsertItem(IDS_MENUFETCH, IDI_PULL, MENUFETCH);\r
- InsertItem(IDS_MENUPUSH, IDI_PUSH, MENUPUSH);\r
- InsertItem(IDS_MENUCOMMIT, IDI_COMMIT, MENUCOMMIT);\r
- InsertItem(IDS_MENUDIFF, IDI_DIFF, MENUDIFF);\r
- InsertItem(IDS_MENUPREVDIFF, IDI_DIFF, MENUPREVDIFF);\r
-// InsertItem(IDS_MENUURLDIFF, IDI_DIFF, MENUURLDIFF);\r
- InsertItem(IDS_MENULOG, IDI_LOG, MENULOG);\r
-// InsertItem(IDS_MENUREPOBROWSE, IDI_REPOBROWSE, MENUREPOBROWSE);\r
- InsertItem(IDS_MENUSHOWCHANGED, IDI_SHOWCHANGED, MENUSHOWCHANGED);\r
-// InsertItem(IDS_MENUREVISIONGRAPH, IDI_REVISIONGRAPH, MENUREVISIONGRAPH);\r
- InsertItem(IDS_MENUCONFLICT, IDI_CONFLICT, MENUCONFLICTEDITOR);\r
-// InsertItem(IDS_MENURESOLVE, IDI_RESOLVE, MENURESOLVE);\r
-// InsertItem(IDS_MENUUPDATEEXT, IDI_UPDATE, MENUUPDATEEXT);\r
- InsertItem(IDS_MENURENAME, IDI_RENAME, MENURENAME);\r
- InsertItem(IDS_MENUREMOVE, IDI_DELETE, MENUREMOVE);\r
- InsertItem(IDS_MENUREVERT, IDI_REVERT, MENUREVERT);\r
- InsertItem(IDS_MENUDELUNVERSIONED, IDI_DELUNVERSIONED, MENUDELUNVERSIONED);\r
- InsertItem(IDS_MENUCLEANUP, IDI_CLEANUP, MENUCLEANUP);\r
-// InsertItem(IDS_MENU_LOCK, IDI_LOCK, MENULOCK);\r
-// InsertItem(IDS_MENU_UNLOCK, IDI_UNLOCK, MENUUNLOCK);\r
- InsertItem(IDS_MENUBRANCH, IDI_COPY, MENUCOPY);\r
- InsertItem(IDS_MENUSWITCH, IDI_SWITCH, MENUSWITCH);\r
- InsertItem(IDS_MENUMERGE, IDI_MERGE, MENUMERGE);\r
- InsertItem(IDS_MENUEXPORT, IDI_EXPORT, MENUEXPORT);\r
-// InsertItem(IDS_MENURELOCATE, IDI_RELOCATE, MENURELOCATE);\r
- InsertItem(IDS_MENUCREATEREPOS, IDI_CREATEREPOS, MENUCREATEREPOS);\r
- InsertItem(IDS_MENUADD, IDI_ADD, MENUADD);\r
-// InsertItem(IDS_MENUIMPORT, IDI_IMPORT, MENUIMPORT);\r
- InsertItem(IDS_MENUBLAME, IDI_BLAME, MENUBLAME);\r
- InsertItem(IDS_MENUIGNORE, IDI_IGNORE, MENUIGNORE);\r
- InsertItem(IDS_MENUCREATEPATCH, IDI_CREATEPATCH, MENUCREATEPATCH);\r
- InsertItem(IDS_MENUAPPLYPATCH, IDI_PATCH, MENUAPPLYPATCH);\r
- InsertItem(IDS_MENUPROPERTIES, IDI_PROPERTIES, MENUPROPERTIES);\r
-// InsertItem(IDS_MENUCLIPPASTE, IDI_CLIPPASTE, MENUCLIPPASTE);\r
+ \r
+ InsertMenuItemToList(&m_cMenuList,&m_imgList);\r
+ SetMenuItemCheck(&m_cMenuList,m_topmenu);\r
+\r
m_bBlock = false;\r
\r
m_cMenuList.SetImageList(&m_imgList, LVSIL_SMALL);\r
SetModified(TRUE);\r
if (m_cMenuList.GetItemCount() > 0)\r
{\r
- int i=0;\r
- m_topmenu = 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCLONE : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUSYNC : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUPULL : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUFETCH : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUPUSH : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCOMMIT : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUDIFF : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUPREVDIFF : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUURLDIFF : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENULOG : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUREPOBROWSE : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUSHOWCHANGED : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUREVISIONGRAPH : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCONFLICTEDITOR : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENURESOLVE : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUUPDATEEXT : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENURENAME : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUREMOVE : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUREVERT : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUDELUNVERSIONED : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCLEANUP : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENULOCK : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUUNLOCK : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCOPY : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUSWITCH : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUMERGE : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUEXPORT : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENURELOCATE : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCREATEREPOS : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUADD : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUIMPORT : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUBLAME : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUIGNORE : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCREATEPATCH : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUAPPLYPATCH : 0;\r
- m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUPROPERTIES : 0;\r
-// m_topmenu |= m_cMenuList.GetCheck(i++) ? MENUCLIPPASTE : 0;\r
+ m_topmenu = GetMenuListMask(&m_cMenuList);\r
}\r
*pResult = 0;\r
}\r