[PATCH 3/4] regedit: Only show the 'Modify' menu items when the listview has focus
Hugh McMaster
hugh.mcmaster at outlook.com
Sun Jun 4 19:58:14 CDT 2017
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/regedit/framewnd.c | 22 +++++++++++++++++++++-
programs/regedit/regedit.rc | 6 +++---
programs/regedit/resource.h | 2 ++
3 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/programs/regedit/framewnd.c b/programs/regedit/framewnd.c
index 7e48513..d3dffdc 100644
--- a/programs/regedit/framewnd.c
+++ b/programs/regedit/framewnd.c
@@ -49,6 +49,7 @@ static WCHAR FileNameBuffer[_MAX_PATH];
static WCHAR FileTitleBuffer[_MAX_PATH];
static WCHAR FilterBuffer[_MAX_PATH];
static WCHAR expandW[32], collapseW[32];
+static WCHAR modifyW[32], modify_binaryW[64];
/*******************************************************************************
* Local module support methods
@@ -198,6 +199,21 @@ static void UpdateMenuItems(HMENU hMenu) {
HeapFree(GetProcessHeap(), 0, keyName);
}
+static void add_remove_modify_menu_items(HMENU hMenu)
+{
+ if (!g_pChildWnd->nFocusPanel)
+ {
+ while (GetMenuItemCount(hMenu) > 9)
+ DeleteMenu(hMenu, 0, MF_BYPOSITION);
+ }
+ else if (GetMenuItemCount(hMenu) < 10)
+ {
+ InsertMenuW(hMenu, 0, MF_BYPOSITION | MF_SEPARATOR, 0, 0);
+ InsertMenuW(hMenu, 0, MF_BYPOSITION | MF_STRING, ID_EDIT_MODIFY_BIN, modify_binaryW);
+ InsertMenuW(hMenu, 0, MF_BYPOSITION | MF_STRING, ID_EDIT_MODIFY, modifyW);
+ }
+}
+
static void add_favourite_key_menu_items(HMENU hMenu)
{
HKEY hkey;
@@ -239,7 +255,9 @@ exit:
static void OnInitMenuPopup(HWND hWnd, HMENU hMenu)
{
- if (hMenu == GetSubMenu(hMenuFrame, ID_FAVORITES_MENU))
+ if (hMenu == GetSubMenu(hMenuFrame, ID_EDIT_MENU))
+ add_remove_modify_menu_items(hMenu);
+ else if (hMenu == GetSubMenu(hMenuFrame, ID_FAVORITES_MENU))
{
while (GetMenuItemCount(hMenu) > 2)
DeleteMenu(hMenu, 2, MF_BYPOSITION);
@@ -1057,6 +1075,8 @@ LRESULT CALLBACK FrameWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
hWnd, NULL, hInst, 0);
LoadStringW(hInst, IDS_EXPAND, expandW, COUNT_OF(expandW));
LoadStringW(hInst, IDS_COLLAPSE, collapseW, COUNT_OF(collapseW));
+ LoadStringW(hInst, IDS_EDIT_MODIFY, modifyW, COUNT_OF(modifyW));
+ LoadStringW(hInst, IDS_EDIT_MODIFY_BIN, modify_binaryW, COUNT_OF(modify_binaryW));
break;
case WM_COMMAND:
if (!_CmdWndProc(hWnd, message, wParam, lParam))
diff --git a/programs/regedit/regedit.rc b/programs/regedit/regedit.rc
index f1c8f9d..2e4d146 100644
--- a/programs/regedit/regedit.rc
+++ b/programs/regedit/regedit.rc
@@ -41,8 +41,6 @@ BEGIN
END
POPUP "&Edit"
BEGIN
- MENUITEM "&Modify...", ID_EDIT_MODIFY
- MENUITEM SEPARATOR
POPUP "&New"
BEGIN
MENUITEM "&Key", ID_EDIT_NEW_KEY
@@ -132,7 +130,7 @@ BEGIN
POPUP ""
BEGIN
MENUITEM "&Modify...", ID_EDIT_MODIFY
- MENUITEM "Modify Binary Data...", ID_EDIT_MODIFY_BIN
+ MENUITEM "Modify &Binary Data...", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Delete\tDel", ID_EDIT_DELETE
MENUITEM "&Rename\tF2", ID_EDIT_RENAME
@@ -229,6 +227,8 @@ STRINGTABLE
BEGIN
IDS_EXPAND "Expand"
IDS_COLLAPSE "Collapse"
+ IDS_EDIT_MODIFY "&Modify..."
+ IDS_EDIT_MODIFY_BIN "Modify &Binary Data..."
END
STRINGTABLE
diff --git a/programs/regedit/resource.h b/programs/regedit/resource.h
index 88ba12d..02f9360 100644
--- a/programs/regedit/resource.h
+++ b/programs/regedit/resource.h
@@ -144,6 +144,8 @@
#define ID_TREE_EXPAND_COLLAPSE 33105
#define IDS_EXPAND 33106
#define IDS_COLLAPSE 33107
+#define IDS_EDIT_MODIFY 33108
+#define IDS_EDIT_MODIFY_BIN 33109
#define IDD_EDIT_STRING 2000
#define IDC_VALUE_NAME 2001
--
2.7.4
More information about the wine-patches
mailing list