mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 04:03:56 +00:00
Regedit enhancements
1. Implemented the ability to select existing favorites 2. Created dialog resources for adding favorites, removing favorites, and the find dialog svn path=/trunk/; revision=19472
This commit is contained in:
parent
9d7f11c6ec
commit
ce6551a393
5 changed files with 114 additions and 15 deletions
|
@ -370,15 +370,50 @@ BEGIN
|
|||
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
|
||||
END
|
||||
|
||||
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
|
||||
IDD_ADDFAVORITES DIALOG DISCARDABLE 0, 0, 186, 46
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Dialog"
|
||||
CAPTION "Add to Favorites"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,130,24,50,14
|
||||
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
|
||||
LTEXT "&Favorite Name:",IDC_STATIC,7,7,70,10
|
||||
EDITTEXT IDC_FAVORITENAME,7,26,110,13,ES_AUTOHSCROLL
|
||||
END
|
||||
|
||||
IDD_REMOVEFAVORITES DIALOG DISCARDABLE 0, 0, 164, 135
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Remove Favorites"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,107,114,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,7,114,50,14
|
||||
CONTROL "List1",IDC_FAVORITESLIST,"SysListView32",LVS_LIST |
|
||||
WS_BORDER | WS_TABSTOP,7,20,150,90
|
||||
LTEXT "Select Favorite(s):",IDC_STATIC,7,7,99,12
|
||||
END
|
||||
|
||||
IDD_FIND DIALOG DISCARDABLE 0, 0, 254, 82
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Find"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Find Next",IDOK,197,7,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,197,24,50,14
|
||||
GROUPBOX "Look at",IDC_STATIC,7,25,63,51
|
||||
LTEXT "Fi&nd what:",IDC_STATIC,7,8,37,10
|
||||
EDITTEXT IDD_FINDWHAT,47,7,142,13,ES_AUTOHSCROLL
|
||||
CONTROL "&Keys",IDC_LOOKAT_KEYS,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,14,36,35,8
|
||||
CONTROL "&Values",IDC_LOOKAT_VALUES,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,14,48,36,8
|
||||
CONTROL "&Data",IDC_LOOKAT_DATA,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,14,60,42,8
|
||||
CONTROL "Match &whole string only",IDC_MATCHSTRING,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,83,32,94,13
|
||||
CONTROL "Match &case",IDC_MATCHCASE,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,83,48,90,12
|
||||
END
|
||||
|
||||
/*
|
||||
* TEXTINCLUDE
|
||||
|
|
|
@ -37,6 +37,10 @@
|
|||
* Global and Local Variables:
|
||||
*/
|
||||
|
||||
#define FAVORITES_MENU_POSITION 3
|
||||
|
||||
static TCHAR s_szFavoritesRegKey[] = _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit\\Favorites");
|
||||
|
||||
static BOOL bInMenuLoop = FALSE; /* Tells us if we are in the menu loop */
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -79,13 +83,12 @@ static void OnInitMenu(HWND hWnd)
|
|||
DWORD dwIndex, cbValueName, cbValueData, dwType;
|
||||
TCHAR szValueName[256];
|
||||
BYTE abValueData[256];
|
||||
int nFavoriteMenuPos = 3;
|
||||
static int s_nFavoriteMenuSubPos = -1;
|
||||
HMENU hMenu;
|
||||
BOOL bDisplayedAny = FALSE;
|
||||
|
||||
/* Find Favorites menu and clear it out */
|
||||
hMenu = GetSubMenu(GetMenu(hWnd), nFavoriteMenuPos);
|
||||
hMenu = GetSubMenu(GetMenu(hWnd), FAVORITES_MENU_POSITION);
|
||||
if (!hMenu)
|
||||
goto done;
|
||||
if (s_nFavoriteMenuSubPos < 0)
|
||||
|
@ -98,7 +101,7 @@ static void OnInitMenu(HWND hWnd)
|
|||
;
|
||||
}
|
||||
|
||||
lResult = RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit\\Favorites"), &hKey);
|
||||
lResult = RegOpenKey(HKEY_CURRENT_USER, s_szFavoritesRegKey, &hKey);
|
||||
if (lResult != ERROR_SUCCESS)
|
||||
goto done;
|
||||
|
||||
|
@ -115,7 +118,7 @@ static void OnInitMenu(HWND hWnd)
|
|||
AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);
|
||||
bDisplayedAny = TRUE;
|
||||
}
|
||||
AppendMenu(hMenu, MF_GRAYED, 0, szValueName);
|
||||
AppendMenu(hMenu, 0, ID_FAVORITES_MIN + GetMenuItemCount(hMenu), szValueName);
|
||||
}
|
||||
dwIndex++;
|
||||
}
|
||||
|
@ -524,6 +527,28 @@ BOOL PrintRegistryHive(HWND hWnd, LPTSTR path)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void ChooseFavorite(LPCTSTR pszFavorite)
|
||||
{
|
||||
HKEY hKey = NULL;
|
||||
TCHAR szFavoritePath[512];
|
||||
DWORD cbData, dwType;
|
||||
|
||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, s_szFavoritesRegKey, 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
|
||||
goto done;
|
||||
|
||||
cbData = (sizeof(szFavoritePath) / sizeof(szFavoritePath[0])) - 1;
|
||||
memset(szFavoritePath, 0, sizeof(szFavoritePath));
|
||||
if (RegQueryValueEx(hKey, pszFavorite, NULL, &dwType, (LPBYTE) szFavoritePath, &cbData) != ERROR_SUCCESS)
|
||||
goto done;
|
||||
|
||||
if (dwType == REG_SZ)
|
||||
SelectNode(g_pChildWnd->hTreeWnd, szFavoritePath);
|
||||
|
||||
done:
|
||||
if (hKey)
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
BOOL CopyKeyName(HWND hWnd, HKEY hRootKey, LPCTSTR keyName)
|
||||
{
|
||||
BOOL bClipboardOpened = FALSE;
|
||||
|
@ -962,7 +987,31 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
CreateNewKey(g_pChildWnd->hTreeWnd, TreeView_GetSelection(g_pChildWnd->hTreeWnd));
|
||||
break;
|
||||
default:
|
||||
result = FALSE;
|
||||
if ((LOWORD(wParam) >= ID_FAVORITES_MIN) && (LOWORD(wParam) <= ID_FAVORITES_MAX))
|
||||
{
|
||||
HMENU hMenu;
|
||||
MENUITEMINFO mii;
|
||||
TCHAR szFavorite[512];
|
||||
|
||||
hMenu = GetSubMenu(GetMenu(hWnd), FAVORITES_MENU_POSITION);
|
||||
|
||||
memset(&mii, 0, sizeof(mii));
|
||||
mii.cbSize = sizeof(mii);
|
||||
mii.fMask = MIIM_TYPE;
|
||||
mii.fType = MFT_STRING;
|
||||
mii.dwTypeData = szFavorite;
|
||||
mii.cch = sizeof(szFavorite) / sizeof(szFavorite[0]);
|
||||
|
||||
if (GetMenuItemInfo(hMenu, LOWORD(wParam) - ID_FAVORITES_MIN, TRUE, &mii))
|
||||
{
|
||||
ChooseFavorite(szFavorite);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result = FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if(hKey)
|
||||
|
|
|
@ -76,7 +76,6 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
|
|||
BOOL AclUiAvailable;
|
||||
HMENU hEditMenu;
|
||||
TCHAR szBuffer[256];
|
||||
LPCTSTR s;
|
||||
|
||||
WNDCLASSEX wcFrame = {
|
||||
sizeof(WNDCLASSEX),
|
||||
|
@ -168,10 +167,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
|
|||
_T("LastKey"),
|
||||
szBuffer, sizeof(szBuffer) / sizeof(szBuffer[0])) == ERROR_SUCCESS)
|
||||
{
|
||||
s = szBuffer;
|
||||
if (!_tcsncmp(s, _T("My Computer\\"), 12))
|
||||
s += 12;
|
||||
SelectNode(g_pChildWnd->hTreeWnd, s);
|
||||
SelectNode(g_pChildWnd->hTreeWnd, szBuffer);
|
||||
}
|
||||
|
||||
ShowWindow(hFrameWnd, nCmdShow);
|
||||
|
|
|
@ -37,12 +37,14 @@
|
|||
#define IDR_REGEDIT_MENU 130
|
||||
#define IDD_EXPORTRANGE 131
|
||||
#define IDI_OPEN_FILE 132
|
||||
#define IDD_DIALOG2 132
|
||||
#define IDI_CLOSED_FILE 133
|
||||
#define IDI_ROOT 134
|
||||
#define IDI_STRING 135
|
||||
#define IDI_BIN 136
|
||||
#define IDR_POPUP_MENUS 137
|
||||
#define IDD_ADDFAVORITES 138
|
||||
#define IDD_REMOVEFAVORITES 139
|
||||
#define IDD_FIND 140
|
||||
#define IDC_LICENSE_EDIT 1029
|
||||
#define ID_REGISTRY_EXIT 32770
|
||||
#define ID_FAVOURITES_ADDTOFAVOURITES 32772
|
||||
|
@ -188,4 +190,17 @@
|
|||
#define IDC_EXPORT_BRANCH 2009
|
||||
#define IDC_EXPORT_BRANCH_TEXT 2010
|
||||
|
||||
|
||||
#define IDC_FAVORITENAME 2011
|
||||
#define IDC_FAVORITESLIST 2012
|
||||
#define IDD_FINDWHAT 2013
|
||||
#define IDC_LOOKAT_KEYS 2014
|
||||
#define IDC_LOOKAT_VALUES 2015
|
||||
#define IDC_LOOKAT_DATA 2016
|
||||
#define IDC_MATCHSTRING 2017
|
||||
#define IDC_MATCHCASE 2018
|
||||
|
||||
#define ID_FAVORITES_MIN 2100
|
||||
#define ID_FAVORITES_MAX 2999
|
||||
|
||||
#define IDC_STATIC -1
|
||||
|
|
|
@ -598,6 +598,10 @@ BOOL SelectNode(HWND hwndTV, LPCTSTR keyPath)
|
|||
LPCTSTR s;
|
||||
TVITEM tvi;
|
||||
|
||||
/* Total no-good hack */
|
||||
if (!_tcsncmp(keyPath, _T("My Computer\\"), 12))
|
||||
keyPath += 12;
|
||||
|
||||
hRoot = TreeView_GetRoot(hwndTV);
|
||||
hItem = hRoot;
|
||||
|
||||
|
|
Loading…
Reference in a new issue