regedit[2/3]: add option to export only a specified branch
Mikołaj Zalewski
mikolaj at zalewski.pl
Tue Oct 3 03:07:34 CDT 2006
I've also renamed the IDD_DIALOG1 to IDD_EXPORT_TEMPALTE and removed it
from other languages so that they use the English version (instead of
the empty template) until the resource is translated
-------------- next part --------------
diff --git a/programs/regedit/Bg.rc b/programs/regedit/Bg.rc
index f7ae2a5..73d3fad 100644
--- a/programs/regedit/Bg.rc
+++ b/programs/regedit/Bg.rc
@@ -292,13 +292,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/Cs.rc b/programs/regedit/Cs.rc
index 3a46c6a..54bf5da 100644
--- a/programs/regedit/Cs.rc
+++ b/programs/regedit/Cs.rc
@@ -254,13 +254,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/De.rc b/programs/regedit/De.rc
index fe80da8..030ab2c 100644
--- a/programs/regedit/De.rc
+++ b/programs/regedit/De.rc
@@ -308,13 +308,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/En.rc b/programs/regedit/En.rc
index ba07a8f..3908ce8 100644
--- a/programs/regedit/En.rc
+++ b/programs/regedit/En.rc
@@ -207,6 +207,17 @@ BEGIN
DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP
END
+IDD_EXPORT_TEMPLATE DIALOG DISCARDABLE 50, 50, 278, 54
+STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
+ WS_BORDER
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "&Export registry", IDC_EXPORT_BASE, 6, 6, 266, 42, WS_GROUP
+ AUTORADIOBUTTON "&All", IDC_EXPORT_ALL, 12, 15, 244, 12
+ AUTORADIOBUTTON "&Selected branch:", IDC_EXPORT_SELECTED, 12, 30, 70, 12
+ EDITTEXT IDC_EXPORT_PATH, 82, 30, 184, 12
+END
+
IDD_FIND DIALOG DISCARDABLE 22, 17, 210, 85
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Find"
@@ -386,13 +397,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/Es.rc b/programs/regedit/Es.rc
index 61e2e76..bd8e0aa 100644
--- a/programs/regedit/Es.rc
+++ b/programs/regedit/Es.rc
@@ -249,13 +249,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Diálogo"
diff --git a/programs/regedit/Fr.rc b/programs/regedit/Fr.rc
index 81b12b4..24b1376 100644
--- a/programs/regedit/Fr.rc
+++ b/programs/regedit/Fr.rc
@@ -319,13 +319,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Boîte de dialogue"
diff --git a/programs/regedit/Hu.rc b/programs/regedit/Hu.rc
index 611a7da..c35f629 100644
--- a/programs/regedit/Hu.rc
+++ b/programs/regedit/Hu.rc
@@ -257,13 +257,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialógus"
diff --git a/programs/regedit/It.rc b/programs/regedit/It.rc
index d4ff631..d7d1542 100644
--- a/programs/regedit/It.rc
+++ b/programs/regedit/It.rc
@@ -302,13 +302,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialogo"
diff --git a/programs/regedit/Ja.rc b/programs/regedit/Ja.rc
index 22b5153..4a38d3b 100644
--- a/programs/regedit/Ja.rc
+++ b/programs/regedit/Ja.rc
@@ -250,13 +250,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 9, "MS UI Gothic"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "_CAO"
diff --git a/programs/regedit/Ko.rc b/programs/regedit/Ko.rc
index 2ca2f2c..494cda0 100644
--- a/programs/regedit/Ko.rc
+++ b/programs/regedit/Ko.rc
@@ -324,13 +324,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "´ëÈ»óÀÚ"
diff --git a/programs/regedit/Nl.rc b/programs/regedit/Nl.rc
index 738be48..969c2b6 100644
--- a/programs/regedit/Nl.rc
+++ b/programs/regedit/Nl.rc
@@ -302,13 +302,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/No.rc b/programs/regedit/No.rc
index 0028256..66c306d 100644
--- a/programs/regedit/No.rc
+++ b/programs/regedit/No.rc
@@ -318,13 +318,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/Pl.rc b/programs/regedit/Pl.rc
index 5f98953..1b87bdd 100644
--- a/programs/regedit/Pl.rc
+++ b/programs/regedit/Pl.rc
@@ -318,13 +318,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/Pt.rc b/programs/regedit/Pt.rc
index 938f05d..1ac5422 100644
--- a/programs/regedit/Pt.rc
+++ b/programs/regedit/Pt.rc
@@ -431,16 +431,6 @@ END
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
-
-LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/Ru.rc b/programs/regedit/Ru.rc
index e1fb4b5..704f0d5 100644
--- a/programs/regedit/Ru.rc
+++ b/programs/regedit/Ru.rc
@@ -178,13 +178,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Äèàëîã"
diff --git a/programs/regedit/Si.rc b/programs/regedit/Si.rc
index 0654eb7..bd12835 100644
--- a/programs/regedit/Si.rc
+++ b/programs/regedit/Si.rc
@@ -178,13 +178,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
diff --git a/programs/regedit/Tr.rc b/programs/regedit/Tr.rc
index 6ba6896..ed90d8f 100644
--- a/programs/regedit/Tr.rc
+++ b/programs/regedit/Tr.rc
@@ -302,13 +302,6 @@ END
* Dialog
*/
-IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
- WS_BORDER
-FONT 8, "MS Shell Dlg"
-BEGIN
-END
-
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ýletiþim Kutusu"
diff --git a/programs/regedit/framewnd.c b/programs/regedit/framewnd.c
index f4b3c39..bb05ea4 100644
--- a/programs/regedit/framewnd.c
+++ b/programs/regedit/framewnd.c
@@ -239,18 +239,46 @@ static BOOL CheckCommDlgError(HWND hWnd)
return TRUE;
}
+static void ExportRegistryFile_StoreSelection(HWND hdlg, OPENFILENAME *pOpenFileName)
+{
+ if (IsDlgButtonChecked(hdlg, IDC_EXPORT_SELECTED))
+ {
+ INT len = SendDlgItemMessage(hdlg, IDC_EXPORT_PATH, WM_GETTEXTLENGTH, 0, 0);
+ pOpenFileName->lCustData = (LPARAM)HeapAlloc(GetProcessHeap(), 0, (len+1)*sizeof(TCHAR));
+ SendDlgItemMessage(hdlg, IDC_EXPORT_PATH, WM_GETTEXT, len+1, pOpenFileName->lCustData);
+ }
+ else
+ pOpenFileName->lCustData = (LPARAM)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(TCHAR));
+}
+
static UINT_PTR CALLBACK ExportRegistryFile_OFNHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
{
- OPENFILENAME* pOpenFileName;
- OFNOTIFY* pOfNotify;
+ static OPENFILENAME* pOpenFileName;
+ OFNOTIFY *pOfNotify;
+ LPTSTR path;
switch (uiMsg) {
case WM_INITDIALOG:
pOpenFileName = (OPENFILENAME*)lParam;
break;
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDC_EXPORT_PATH && HIWORD(wParam) == EN_UPDATE)
+ CheckRadioButton(hdlg, IDC_EXPORT_ALL, IDC_EXPORT_SELECTED, IDC_EXPORT_SELECTED);
+ break;
case WM_NOTIFY:
pOfNotify = (OFNOTIFY*)lParam;
- if (pOfNotify->hdr.code == CDN_INITDONE) {}
+ switch (pOfNotify->hdr.code)
+ {
+ case CDN_INITDONE:
+ path = GetItemFullPath(g_pChildWnd->hTreeWnd, NULL, FALSE);
+ SendDlgItemMessage(hdlg, IDC_EXPORT_PATH, WM_SETTEXT, 0, (LPARAM)path);
+ HeapFree(GetProcessHeap(), 0, path);
+ CheckRadioButton(hdlg, IDC_EXPORT_ALL, IDC_EXPORT_SELECTED, IDC_EXPORT_ALL);
+ break;
+ case CDN_FILEOK:
+ ExportRegistryFile_StoreSelection(hdlg, pOpenFileName);
+ break;
+ }
break;
default:
break;
@@ -312,13 +340,13 @@ static BOOL ExportRegistryFile(HWND hWnd
InitOpenFileName(hWnd, &ofn);
LoadString(hInst, IDS_FILEDIALOG_EXPORT_TITLE, title, COUNT_OF(title));
ofn.lpstrTitle = title;
- /* ofn.lCustData = ;*/
- ofn.Flags = OFN_ENABLETEMPLATE | OFN_EXPLORER | OFN_HIDEREADONLY;
+ ofn.lCustData = 0;
+ ofn.Flags = OFN_ENABLETEMPLATE | OFN_ENABLEHOOK | OFN_EXPLORER | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
ofn.lpfnHook = ExportRegistryFile_OFNHookProc;
- ofn.lpTemplateName = MAKEINTRESOURCE(IDD_DIALOG1);
+ ofn.lpTemplateName = MAKEINTRESOURCE(IDD_EXPORT_TEMPLATE);
if (GetSaveFileName(&ofn)) {
BOOL result;
- result = export_registry_key(ofn.lpstrFile, ExportKeyPath);
+ result = export_registry_key(ofn.lpstrFile, (LPTSTR)ofn.lCustData);
if (!result) {
/*printf("Can't open file \"%s\"\n", ofn.lpstrFile);*/
return FALSE;
diff --git a/programs/regedit/resource.h b/programs/regedit/resource.h
index 80a11e7..a563297 100644
--- a/programs/regedit/resource.h
+++ b/programs/regedit/resource.h
@@ -36,7 +36,7 @@ #define IDI_SMALL
#define IDC_REGEDIT 109
#define IDC_REGEDIT_FRAME 110
#define IDR_REGEDIT_MENU 130
-#define IDD_DIALOG1 131
+#define IDD_EXPORT_TEMPLATE 131
#define IDI_OPEN_FILE 132
#define IDD_DIALOG2 132
#define IDI_CLOSED_FILE 133
@@ -145,4 +145,9 @@ #define IDC_FIND_VALUES
#define IDC_FIND_CONTENT 2007
#define IDC_FIND_WHOLE 2008
+#define IDC_EXPORT_BASE 100
+#define IDC_EXPORT_ALL 101
+#define IDC_EXPORT_SELECTED 102
+#define IDC_EXPORT_PATH 103
+
#define IDC_STATIC -1
--
1.4.2.1
More information about the wine-patches
mailing list