From aed08f7da36d647981a4ade1e861c38081d12b79 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Mon, 21 Jun 2004 07:48:11 +0000 Subject: [PATCH] moved several strings to the application resources svn path=/trunk/; revision=9792 --- reactos/subsys/system/regedit/En.rc | 21 +++++++++++ reactos/subsys/system/regedit/about.c | 4 +- reactos/subsys/system/regedit/childwnd.c | 10 ++++- reactos/subsys/system/regedit/edit.c | 16 ++++++-- reactos/subsys/system/regedit/framewnd.c | 48 +++++++++++++++++++++--- reactos/subsys/system/regedit/listview.c | 44 ++++++++++++++-------- reactos/subsys/system/regedit/resource.h | 14 +++++++ reactos/subsys/system/regedit/treeview.c | 2 +- 8 files changed, 131 insertions(+), 28 deletions(-) diff --git a/reactos/subsys/system/regedit/En.rc b/reactos/subsys/system/regedit/En.rc index 4d697ea7c55..4ec1d5ae346 100644 --- a/reactos/subsys/system/regedit/En.rc +++ b/reactos/subsys/system/regedit/En.rc @@ -260,6 +260,27 @@ BEGIN IDS_MULTI_SZ_EMPTY_STRING "Data of type REG_MULTI_SZ cannot contain empty strings.\nThe empty strings have been removed from the list." END +STRINGTABLE DISCARDABLE +BEGIN + IDS_BINARY_EMPTY "(zero-length binary value)" + IDS_DEFAULT_VALUE_NAME "(Default)" + IDS_VALUE_NOT_SET "(value not set)" + IDS_UNKNOWN_TYPE "Unknown type: (0x%lx)" + IDS_MY_COMPUTER "My Computer" + IDS_IMPORT_REG_FILE "Import Registry File" + IDS_EXPORT_REG_FILE "Export Registry File" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_FLT_REGFILES "Registration Files" + IDS_FLT_REGFILES_FLT "*.reg" + IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4)" + IDS_FLT_REGEDIT4_FLT "*.reg" + IDS_FLT_ALLFILES "All Files (*.*)" + IDS_FLT_ALLFILES_FLT "*.*" +END + /*****************************************************************/ diff --git a/reactos/subsys/system/regedit/about.c b/reactos/subsys/system/regedit/about.c index 67a8d1995a1..6261e6f8272 100644 --- a/reactos/subsys/system/regedit/about.c +++ b/reactos/subsys/system/regedit/about.c @@ -31,5 +31,7 @@ void ShowAboutBox(HWND hWnd) { - ShellAbout(hWnd, _T("Registry Explorer"), _T(""), LoadIcon(hInst, MAKEINTRESOURCE(IDI_REGEDIT))); + TCHAR AppStr[255]; + LoadString(hInst, IDS_APP_TITLE, AppStr, sizeof(AppStr)/sizeof(TCHAR)); + ShellAbout(hWnd, AppStr, _T(""), LoadIcon(hInst, MAKEINTRESOURCE(IDI_REGEDIT))); } diff --git a/reactos/subsys/system/regedit/childwnd.c b/reactos/subsys/system/regedit/childwnd.c index 96619396658..1306c0b9dc6 100644 --- a/reactos/subsys/system/regedit/childwnd.c +++ b/reactos/subsys/system/regedit/childwnd.c @@ -134,15 +134,21 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa switch (message) { case WM_CREATE: - g_pChildWnd = pChildWnd = HeapAlloc(GetProcessHeap(), 0, sizeof(ChildWnd)); + { + TCHAR buffer[MAX_PATH]; + /* load "My Computer" string */ + LoadString(hInst, IDS_MY_COMPUTER, buffer, sizeof(buffer)/sizeof(TCHAR)); + + g_pChildWnd = pChildWnd = HeapAlloc(GetProcessHeap(), 0, sizeof(ChildWnd)); if (!pChildWnd) return 0; - _tcsncpy(pChildWnd->szPath, _T("My Computer"), MAX_PATH); + _tcsncpy(pChildWnd->szPath, buffer, MAX_PATH); pChildWnd->nSplitPos = 250; pChildWnd->hWnd = hWnd; pChildWnd->hTreeWnd = CreateTreeView(hWnd, pChildWnd->szPath, TREE_WINDOW); pChildWnd->hListWnd = CreateListView(hWnd, LIST_WINDOW/*, pChildWnd->szPath*/); SetFocus(pChildWnd->hTreeWnd); break; + } case WM_COMMAND: if (!_CmdWndProc(hWnd, message, wParam, lParam)) { goto def; diff --git a/reactos/subsys/system/regedit/edit.c b/reactos/subsys/system/regedit/edit.c index eb8c6544966..0be559ef4c0 100644 --- a/reactos/subsys/system/regedit/edit.c +++ b/reactos/subsys/system/regedit/edit.c @@ -111,7 +111,9 @@ INT_PTR CALLBACK modify_string_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L } else { - SetDlgItemText(hwndDlg, IDC_VALUE_NAME, _T("(Default)")); + TCHAR buffer[255]; + LoadString(hInst, IDS_DEFAULT_VALUE_NAME, buffer, sizeof(buffer)/sizeof(TCHAR)); + SetDlgItemText(hwndDlg, IDC_VALUE_NAME, buffer); } SetDlgItemText(hwndDlg, IDC_VALUE_DATA, stringValueData); SetFocus(GetDlgItem(hwndDlg, IDC_VALUE_DATA)); @@ -174,7 +176,9 @@ INT_PTR CALLBACK modify_multi_string_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wPa } else { - SetDlgItemText(hwndDlg, IDC_VALUE_NAME, _T("(Default)")); + TCHAR buffer[255]; + LoadString(hInst, IDS_DEFAULT_VALUE_NAME, buffer, sizeof(buffer)/sizeof(TCHAR)); + SetDlgItemText(hwndDlg, IDC_VALUE_NAME, buffer); } SetDlgItemText(hwndDlg, IDC_VALUE_DATA, stringValueData); SetFocus(GetDlgItem(hwndDlg, IDC_VALUE_DATA)); @@ -291,7 +295,9 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP } else { - SetDlgItemText(hwndDlg, IDC_VALUE_NAME, _T("(Default)")); + TCHAR buffer[255]; + LoadString(hInst, IDS_DEFAULT_VALUE_NAME, buffer, sizeof(buffer)/sizeof(TCHAR)); + SetDlgItemText(hwndDlg, IDC_VALUE_NAME, buffer); } CheckRadioButton (hwndDlg, IDC_FORMAT_HEX, IDC_FORMAT_DEC, IDC_FORMAT_HEX); _stprintf (ValueString, _T("%lx"), dwordValueData); @@ -404,7 +410,9 @@ INT_PTR CALLBACK modify_binary_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L } else { - SetDlgItemText(hwndDlg, IDC_VALUE_NAME, _T("(Default)")); + TCHAR buffer[255]; + LoadString(hInst, IDS_DEFAULT_VALUE_NAME, buffer, sizeof(buffer)/sizeof(TCHAR)); + SetDlgItemText(hwndDlg, IDC_VALUE_NAME, buffer); } hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA); HexEdit_LoadBuffer(hwndValue, binValueData, valueDataLen); diff --git a/reactos/subsys/system/regedit/framewnd.c b/reactos/subsys/system/regedit/framewnd.c index 7947a525a31..d8ecce3eacb 100644 --- a/reactos/subsys/system/regedit/framewnd.c +++ b/reactos/subsys/system/regedit/framewnd.c @@ -207,14 +207,48 @@ TCHAR CustomFilterBuffer[MAX_CUSTOM_FILTER_SIZE]; TCHAR FileNameBuffer[_MAX_PATH]; TCHAR FileTitleBuffer[_MAX_PATH]; +typedef struct +{ + UINT DisplayID; + UINT FilterID; +} FILTERPAIR, *PFILTERPAIR; + +void +BuildFilterStrings(TCHAR *Filter, PFILTERPAIR Pairs, int PairCount) +{ + int i, c; + + c = 0; + for(i = 0; i < PairCount; i++) + { + c += LoadString(hInst, Pairs[i].DisplayID, &Filter[c], 255 * sizeof(TCHAR)); + Filter[++c] = '\0'; + c += LoadString(hInst, Pairs[i].FilterID, &Filter[c], 255 * sizeof(TCHAR)); + Filter[++c] = '\0'; + } + Filter[++c] = '\0'; +} + static BOOL InitOpenFileName(HWND hWnd, OPENFILENAME* pofn) { + FILTERPAIR FilterPairs[3]; + static TCHAR Filter[1024]; + memset(pofn, 0, sizeof(OPENFILENAME)); pofn->lStructSize = sizeof(OPENFILENAME); pofn->hwndOwner = hWnd; pofn->hInstance = hInst; - - pofn->lpstrFilter = _T("Registration Files\0*.reg\0Win9x/NT4 Registration Files (REGEDIT4)\0*.reg\0All Files (*.*)\0*.*\0\0"); + + /* create filter string */ + FilterPairs[0].DisplayID = IDS_FLT_REGFILES; + FilterPairs[0].FilterID = IDS_FLT_REGFILES_FLT; + FilterPairs[1].DisplayID = IDS_FLT_REGEDIT4; + FilterPairs[1].FilterID = IDS_FLT_REGEDIT4_FLT; + FilterPairs[2].DisplayID = IDS_FLT_ALLFILES; + FilterPairs[2].FilterID = IDS_FLT_ALLFILES_FLT; + BuildFilterStrings(Filter, FilterPairs, sizeof(FilterPairs) / sizeof(FILTERPAIR)); + + pofn->lpstrFilter = Filter; pofn->lpstrCustomFilter = CustomFilterBuffer; pofn->nMaxCustFilter = MAX_CUSTOM_FILTER_SIZE; pofn->nFilterIndex = 0; @@ -240,9 +274,11 @@ static BOOL InitOpenFileName(HWND hWnd, OPENFILENAME* pofn) static BOOL ImportRegistryFile(HWND hWnd) { OPENFILENAME ofn; + TCHAR Caption[128]; InitOpenFileName(hWnd, &ofn); - ofn.lpstrTitle = _T("Import Registry File"); + LoadString(hInst, IDS_IMPORT_REG_FILE, Caption, sizeof(Caption)/sizeof(TCHAR)); + ofn.lpstrTitle = Caption; /* ofn.lCustData = ;*/ if (GetOpenFileName(&ofn)) { /* FIXME - convert to ascii */ @@ -279,10 +315,12 @@ static BOOL ExportRegistryFile(HWND hWnd) { OPENFILENAME ofn; TCHAR ExportKeyPath[_MAX_PATH]; + TCHAR Caption[128]; ExportKeyPath[0] = _T('\0'); InitOpenFileName(hWnd, &ofn); - ofn.lpstrTitle = _T("Export Registry File"); + LoadString(hInst, IDS_EXPORT_REG_FILE, Caption, sizeof(Caption)/sizeof(TCHAR)); + ofn.lpstrTitle = Caption; /* ofn.lCustData = ;*/ ofn.Flags = OFN_ENABLETEMPLATE + OFN_EXPLORER; ofn.lpfnHook = ImportRegistryFile_OFNHookProc; @@ -557,7 +595,7 @@ LRESULT CALLBACK FrameWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa { switch (message) { case WM_CREATE: - CreateWindowEx(0, szChildClass, _T("regedit child window"), WS_CHILD | WS_VISIBLE, + CreateWindowEx(0, szChildClass, NULL, WS_CHILD | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, (HMENU)0, hInst, 0); break; diff --git a/reactos/subsys/system/regedit/listview.c b/reactos/subsys/system/regedit/listview.c index ea637799225..106930fb589 100644 --- a/reactos/subsys/system/regedit/listview.c +++ b/reactos/subsys/system/regedit/listview.c @@ -201,21 +201,30 @@ static void AddEntryToList(HWND hwndLV, LPTSTR Name, DWORD dwValType, void* ValB } /* lpsRes = convertHexToDWORDStr(lpbData, dwLen); */ break; - case REG_NONE: - case REG_BINARY: { + default: + { unsigned int i; LPBYTE pData = (LPBYTE)ValBuf; - LPTSTR strBinary = HeapAlloc(GetProcessHeap(), 0, dwCount * sizeof(TCHAR) * 3 + 1); - for (i = 0; i < dwCount; i++) - wsprintf( strBinary + i*3, _T("%02X "), pData[i] ); - strBinary[dwCount * 3] = 0; - ListView_SetItemText(hwndLV, index, 2, strBinary); - HeapFree(GetProcessHeap(), 0, strBinary); + LPTSTR strBinary; + if(dwCount > 0) + { + strBinary = HeapAlloc(GetProcessHeap(), 0, (dwCount * sizeof(TCHAR) * 3) + 1); + for (i = 0; i < dwCount; i++) + { + wsprintf( strBinary + i*3, _T("%02X "), pData[i] ); + } + strBinary[dwCount * 3] = 0; + ListView_SetItemText(hwndLV, index, 2, strBinary); + HeapFree(GetProcessHeap(), 0, strBinary); + } + else + { + TCHAR szText[128]; + LoadString(hInst, IDS_BINARY_EMPTY, szText, sizeof(szText)/sizeof(TCHAR)); + ListView_SetItemText(hwndLV, index, 2, szText); + } } break; - default: - ListView_SetItemText(hwndLV, index, 2, _T("(value)")); - break; } } } @@ -281,7 +290,8 @@ static void OnGetDispInfo(NMLVDISPINFO* plvdi) switch (plvdi->item.iSubItem) { case 0: - plvdi->item.pszText = _T("(Default)"); + LoadString(hInst, IDS_DEFAULT_VALUE_NAME, buffer, sizeof(buffer)/sizeof(TCHAR)); + plvdi->item.pszText = buffer; break; case 1: switch (((LINE_INFO*)plvdi->item.lParam)->dwValType) { @@ -318,14 +328,18 @@ static void OnGetDispInfo(NMLVDISPINFO* plvdi) case REG_NONE: plvdi->item.pszText = _T("REG_NONE"); break; - default: - wsprintf(buffer, _T("unknown(0x%lx)"), ((LINE_INFO*)plvdi->item.lParam)->dwValType); + default: { + TCHAR buf2[200]; + LoadString(hInst, IDS_UNKNOWN_TYPE, buf2, sizeof(buf2)/sizeof(TCHAR)); + wsprintf(buffer, buf2, ((LINE_INFO*)plvdi->item.lParam)->dwValType); plvdi->item.pszText = buffer; break; + } } break; case 2: - plvdi->item.pszText = _T("(value not set)"); + LoadString(hInst, IDS_VALUE_NOT_SET, buffer, sizeof(buffer)/sizeof(TCHAR)); + plvdi->item.pszText = buffer; break; case 3: plvdi->item.pszText = _T(""); diff --git a/reactos/subsys/system/regedit/resource.h b/reactos/subsys/system/regedit/resource.h index 6cabef02b58..3fe89997b5f 100644 --- a/reactos/subsys/system/regedit/resource.h +++ b/reactos/subsys/system/regedit/resource.h @@ -111,6 +111,20 @@ #define ID_EDIT_MODIFY_BIN 32840 #define IDS_WARNING 32841 #define IDS_MULTI_SZ_EMPTY_STRING 32842 +#define IDS_BINARY_EMPTY 32843 +#define IDS_DEFAULT_VALUE_NAME 32844 +#define IDS_VALUE_NOT_SET 32845 +#define IDS_UNKNOWN_TYPE 32846 +#define IDS_MY_COMPUTER 32847 +#define IDS_IMPORT_REG_FILE 32848 +#define IDS_EXPORT_REG_FILE 32849 + +#define IDS_FLT_REGFILES 31001 +#define IDS_FLT_REGFILES_FLT 31002 +#define IDS_FLT_REGEDIT4 31003 +#define IDS_FLT_REGEDIT4_FLT 31004 +#define IDS_FLT_ALLFILES 31005 +#define IDS_FLT_ALLFILES_FLT 31006 #define IDD_EDIT_STRING 2000 #define IDC_VALUE_NAME 2001 diff --git a/reactos/subsys/system/regedit/treeview.c b/reactos/subsys/system/regedit/treeview.c index ba4927015b8..7131adb610e 100644 --- a/reactos/subsys/system/regedit/treeview.c +++ b/reactos/subsys/system/regedit/treeview.c @@ -267,7 +267,7 @@ HWND CreateTreeView(HWND hwndParent, LPTSTR pHostName, int id) /* Get the dimensions of the parent window's client area, and create the tree view control. */ GetClientRect(hwndParent, &rcClient); - hwndTV = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, _T("Tree View"), + hwndTV = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, NULL, WS_VISIBLE | WS_CHILD | WS_TABSTOP | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT, 0, 0, rcClient.right, rcClient.bottom, hwndParent, (HMENU)id, hInst, NULL);