From 1daef4a07839185f99fc9907f16cef7ed33baae0 Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Mon, 3 Nov 2008 21:23:57 +0000 Subject: [PATCH] Carlo Bramini (carlo.bramix@libero.it) - Fix the display of Line and Column in the Status Bar and add language resources for this Patch was slightly modified by me to also react on WM_KEYDOWN messages, so that the line/column is already updated, when you're holding down the buttons. (like Windows' notepad does by the way) We still have to keep WM_KEYUP though, otherwise this doesn't work properly when being used with Page Up/Page Down. See issue #3702 for more details. svn path=/trunk/; revision=37176 --- reactos/base/applications/notepad/dialog.c | 19 +++++++------------ .../base/applications/notepad/lang/bg-BG.rc | 1 + .../base/applications/notepad/lang/cs-CZ.rc | 1 + .../base/applications/notepad/lang/da-DK.rc | 1 + .../base/applications/notepad/lang/de-DE.rc | 1 + .../base/applications/notepad/lang/el-GR.rc | 1 + .../base/applications/notepad/lang/en-US.rc | 1 + .../base/applications/notepad/lang/es-ES.rc | 1 + .../base/applications/notepad/lang/eu-ES.rc | 2 +- .../base/applications/notepad/lang/fi-FI.rc | 1 + .../base/applications/notepad/lang/fr-FR.rc | 1 + .../base/applications/notepad/lang/hu-HU.rc | 1 + .../base/applications/notepad/lang/id-ID.rc | 1 + .../base/applications/notepad/lang/it-IT.rc | 1 + .../base/applications/notepad/lang/ja-JP.rc | 1 + .../base/applications/notepad/lang/lt-LT.rc | 1 + .../base/applications/notepad/lang/nl-NL.rc | 1 + .../base/applications/notepad/lang/no-NO.rc | 1 + .../base/applications/notepad/lang/pl-PL.rc | 1 + .../base/applications/notepad/lang/pt-PT.rc | 1 + .../base/applications/notepad/lang/ru-RU.rc | 1 + .../base/applications/notepad/lang/sk-SK.rc | 1 + .../base/applications/notepad/lang/sl-SI.rc | 1 + .../base/applications/notepad/lang/sv-SE.rc | 1 + .../base/applications/notepad/lang/th-TH.rc | 1 + .../base/applications/notepad/lang/uk-UA.rc | 1 + .../base/applications/notepad/lang/zh-CN.rc | 1 + reactos/base/applications/notepad/main.c | 1 + reactos/base/applications/notepad/main.h | 3 +-- .../base/applications/notepad/notepad_res.h | 3 +-- reactos/base/applications/notepad/settings.c | 2 +- 31 files changed, 37 insertions(+), 18 deletions(-) diff --git a/reactos/base/applications/notepad/dialog.c b/reactos/base/applications/notepad/dialog.c index 93be73edd65..b4359743706 100644 --- a/reactos/base/applications/notepad/dialog.c +++ b/reactos/base/applications/notepad/dialog.c @@ -871,19 +871,15 @@ VOID DIALOG_GoTo(VOID) VOID DIALOG_StatusBarUpdateCaretPos(VOID) { - int line; - int col; - int ccol; - POINT point; + int line, col; TCHAR buff[MAX_PATH]; + DWORD dwStart, dwSize; - GetCaretPos(&point); - line = (int) SendMessage(Globals.hEdit, EM_LINEFROMCHAR, (WPARAM)-1, (LPARAM)0); - ccol = (int) SendMessage(Globals.hEdit, EM_CHARFROMPOS, (WPARAM)0, (LPARAM)MAKELPARAM(point.x, point.y)); - ccol = LOWORD(ccol); - col = ccol - (int) SendMessage(Globals.hEdit, EM_LINEINDEX, (WPARAM)line, (LPARAM)0); + SendMessage(Globals.hEdit, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwSize); + line = SendMessage(Globals.hEdit, EM_LINEFROMCHAR, (WPARAM)dwStart, 0); + col = dwStart - SendMessage(Globals.hEdit, EM_LINEINDEX, (WPARAM)line, 0); - _stprintf(buff, TEXT("%S %d, %S %d"), Globals.szStatusBarLine, line+1, Globals.szStatusBarCol, col+1); + _stprintf(buff, Globals.szStatusBarLineCol, line+1, col+1); SendMessage(Globals.hStatusBar, SB_SETTEXT, (WPARAM) SB_SIMPLEID, (LPARAM)buff); } @@ -896,8 +892,7 @@ VOID DIALOG_ViewStatusBar(VOID) if ( !Globals.hStatusBar ) { Globals.hStatusBar = CreateStatusWindow(WS_CHILD | WS_VISIBLE | WS_EX_STATICEDGE, TEXT("test"), Globals.hMainWnd, CMD_STATUSBAR_WND_ID ); - LoadString(Globals.hInstance, STRING_LINE, Globals.szStatusBarLine, MAX_PATH-1); - LoadString(Globals.hInstance, STRING_COLUMN, Globals.szStatusBarCol, MAX_PATH-1); + LoadString(Globals.hInstance, STRING_LINE_COLUMN, Globals.szStatusBarLineCol, MAX_PATH-1); SendMessage(Globals.hStatusBar, SB_SIMPLE, (WPARAM)TRUE, (LPARAM)0); } CheckMenuItem(GetMenu(Globals.hMainWnd), CMD_STATUSBAR, diff --git a/reactos/base/applications/notepad/lang/bg-BG.rc b/reactos/base/applications/notepad/lang/bg-BG.rc index cd46b0999f1..20aa32c5103 100644 --- a/reactos/base/applications/notepad/lang/bg-BG.rc +++ b/reactos/base/applications/notepad/lang/bg-BG.rc @@ -201,4 +201,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Óüèíäîóüñ" STRING_LF, "Þíèêñ" STRING_CR, "Ìàê" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/cs-CZ.rc b/reactos/base/applications/notepad/lang/cs-CZ.rc index e60e3e8b06b..065f051157b 100644 --- a/reactos/base/applications/notepad/lang/cs-CZ.rc +++ b/reactos/base/applications/notepad/lang/cs-CZ.rc @@ -203,4 +203,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/da-DK.rc b/reactos/base/applications/notepad/lang/da-DK.rc index 606c75027cf..44ecfbc917a 100644 --- a/reactos/base/applications/notepad/lang/da-DK.rc +++ b/reactos/base/applications/notepad/lang/da-DK.rc @@ -200,4 +200,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/de-DE.rc b/reactos/base/applications/notepad/lang/de-DE.rc index cd5a9e3d19d..e64bd1c85ab 100644 --- a/reactos/base/applications/notepad/lang/de-DE.rc +++ b/reactos/base/applications/notepad/lang/de-DE.rc @@ -202,4 +202,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Zeile %d, Spalte %d" END diff --git a/reactos/base/applications/notepad/lang/el-GR.rc b/reactos/base/applications/notepad/lang/el-GR.rc index 699a4d1112d..8be10f85472 100644 --- a/reactos/base/applications/notepad/lang/el-GR.rc +++ b/reactos/base/applications/notepad/lang/el-GR.rc @@ -199,4 +199,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/en-US.rc b/reactos/base/applications/notepad/lang/en-US.rc index d5585433031..c4c56075497 100644 --- a/reactos/base/applications/notepad/lang/en-US.rc +++ b/reactos/base/applications/notepad/lang/en-US.rc @@ -201,4 +201,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/es-ES.rc b/reactos/base/applications/notepad/lang/es-ES.rc index 5ce33aafd70..7d55f9992a6 100644 --- a/reactos/base/applications/notepad/lang/es-ES.rc +++ b/reactos/base/applications/notepad/lang/es-ES.rc @@ -203,5 +203,6 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/eu-ES.rc b/reactos/base/applications/notepad/lang/eu-ES.rc index ac22afefc70..819c1db0d30 100644 --- a/reactos/base/applications/notepad/lang/eu-ES.rc +++ b/reactos/base/applications/notepad/lang/eu-ES.rc @@ -179,5 +179,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" - +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/fi-FI.rc b/reactos/base/applications/notepad/lang/fi-FI.rc index 2e9dba23283..13378c43e40 100644 --- a/reactos/base/applications/notepad/lang/fi-FI.rc +++ b/reactos/base/applications/notepad/lang/fi-FI.rc @@ -200,4 +200,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/fr-FR.rc b/reactos/base/applications/notepad/lang/fr-FR.rc index 238190f83a0..0e8eaaac47a 100644 --- a/reactos/base/applications/notepad/lang/fr-FR.rc +++ b/reactos/base/applications/notepad/lang/fr-FR.rc @@ -201,4 +201,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Ligne %d, colonne %d" END diff --git a/reactos/base/applications/notepad/lang/hu-HU.rc b/reactos/base/applications/notepad/lang/hu-HU.rc index 0e32ed520ce..86ba21d0648 100644 --- a/reactos/base/applications/notepad/lang/hu-HU.rc +++ b/reactos/base/applications/notepad/lang/hu-HU.rc @@ -202,4 +202,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/id-ID.rc b/reactos/base/applications/notepad/lang/id-ID.rc index ed089684878..59b5ef7f6a8 100644 --- a/reactos/base/applications/notepad/lang/id-ID.rc +++ b/reactos/base/applications/notepad/lang/id-ID.rc @@ -202,4 +202,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/it-IT.rc b/reactos/base/applications/notepad/lang/it-IT.rc index 2da2f358a38..542f27de158 100644 --- a/reactos/base/applications/notepad/lang/it-IT.rc +++ b/reactos/base/applications/notepad/lang/it-IT.rc @@ -204,4 +204,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Linea %d, colonna %d" END diff --git a/reactos/base/applications/notepad/lang/ja-JP.rc b/reactos/base/applications/notepad/lang/ja-JP.rc index 49cc5fde18d..03536de14b4 100644 --- a/reactos/base/applications/notepad/lang/ja-JP.rc +++ b/reactos/base/applications/notepad/lang/ja-JP.rc @@ -201,4 +201,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows (CR+LF)" STRING_LF, "Unix (LF)" STRING_CR, "Mac (CR)" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/lt-LT.rc b/reactos/base/applications/notepad/lang/lt-LT.rc index 4779b0e56c0..07d0b8d9995 100644 --- a/reactos/base/applications/notepad/lang/lt-LT.rc +++ b/reactos/base/applications/notepad/lang/lt-LT.rc @@ -202,4 +202,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/nl-NL.rc b/reactos/base/applications/notepad/lang/nl-NL.rc index d7cdf9cb164..da4c8ad8108 100644 --- a/reactos/base/applications/notepad/lang/nl-NL.rc +++ b/reactos/base/applications/notepad/lang/nl-NL.rc @@ -198,4 +198,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/no-NO.rc b/reactos/base/applications/notepad/lang/no-NO.rc index 79aaab8cad5..53046579e80 100644 --- a/reactos/base/applications/notepad/lang/no-NO.rc +++ b/reactos/base/applications/notepad/lang/no-NO.rc @@ -201,4 +201,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/pl-PL.rc b/reactos/base/applications/notepad/lang/pl-PL.rc index e267b043c37..a8355ffaed0 100644 --- a/reactos/base/applications/notepad/lang/pl-PL.rc +++ b/reactos/base/applications/notepad/lang/pl-PL.rc @@ -207,4 +207,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/pt-PT.rc b/reactos/base/applications/notepad/lang/pt-PT.rc index 046e481f883..4a5cae4edeb 100644 --- a/reactos/base/applications/notepad/lang/pt-PT.rc +++ b/reactos/base/applications/notepad/lang/pt-PT.rc @@ -200,4 +200,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/ru-RU.rc b/reactos/base/applications/notepad/lang/ru-RU.rc index a4d4d761f6a..9524414d0a6 100644 --- a/reactos/base/applications/notepad/lang/ru-RU.rc +++ b/reactos/base/applications/notepad/lang/ru-RU.rc @@ -200,4 +200,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Ìàêèíòîø" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/sk-SK.rc b/reactos/base/applications/notepad/lang/sk-SK.rc index cdedb92238c..fbf236f2747 100644 --- a/reactos/base/applications/notepad/lang/sk-SK.rc +++ b/reactos/base/applications/notepad/lang/sk-SK.rc @@ -189,4 +189,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/sl-SI.rc b/reactos/base/applications/notepad/lang/sl-SI.rc index 98679e9d614..8c3c3a8cc4f 100644 --- a/reactos/base/applications/notepad/lang/sl-SI.rc +++ b/reactos/base/applications/notepad/lang/sl-SI.rc @@ -198,4 +198,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/sv-SE.rc b/reactos/base/applications/notepad/lang/sv-SE.rc index 127dd6380cd..4b54bbc75ae 100644 --- a/reactos/base/applications/notepad/lang/sv-SE.rc +++ b/reactos/base/applications/notepad/lang/sv-SE.rc @@ -201,4 +201,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/th-TH.rc b/reactos/base/applications/notepad/lang/th-TH.rc index 131075dcca4..bdb359e2ee8 100644 --- a/reactos/base/applications/notepad/lang/th-TH.rc +++ b/reactos/base/applications/notepad/lang/th-TH.rc @@ -193,4 +193,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/uk-UA.rc b/reactos/base/applications/notepad/lang/uk-UA.rc index c24d8cc5bab..11cc7183771 100644 --- a/reactos/base/applications/notepad/lang/uk-UA.rc +++ b/reactos/base/applications/notepad/lang/uk-UA.rc @@ -198,4 +198,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/lang/zh-CN.rc b/reactos/base/applications/notepad/lang/zh-CN.rc index bb2fcf247ca..fe179b729a7 100644 --- a/reactos/base/applications/notepad/lang/zh-CN.rc +++ b/reactos/base/applications/notepad/lang/zh-CN.rc @@ -199,4 +199,5 @@ STRING_UTF8, "UTF-8" STRING_CRLF, "Windows" STRING_LF, "Unix" STRING_CR, "Mac" +STRING_LINE_COLUMN, "Line %d, column %d" END diff --git a/reactos/base/applications/notepad/main.c b/reactos/base/applications/notepad/main.c index 403fae3fece..4b94522ccf3 100644 --- a/reactos/base/applications/notepad/main.c +++ b/reactos/base/applications/notepad/main.c @@ -302,6 +302,7 @@ LRESULT CALLBACK EDIT_WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { + case WM_KEYDOWN: case WM_KEYUP: { switch (wParam) diff --git a/reactos/base/applications/notepad/main.h b/reactos/base/applications/notepad/main.h index 37477bc6afe..180020fdb43 100644 --- a/reactos/base/applications/notepad/main.h +++ b/reactos/base/applications/notepad/main.h @@ -61,8 +61,7 @@ typedef struct TCHAR szMarginRight[MAX_PATH]; TCHAR szHeader[MAX_PATH]; TCHAR szFooter[MAX_PATH]; - TCHAR szStatusBarLine[MAX_PATH]; - TCHAR szStatusBarCol[MAX_PATH]; + TCHAR szStatusBarLineCol[MAX_PATH]; int iEncoding; int iEoln; diff --git a/reactos/base/applications/notepad/notepad_res.h b/reactos/base/applications/notepad/notepad_res.h index 9d6d5cbd1cf..75fe6a67dba 100644 --- a/reactos/base/applications/notepad/notepad_res.h +++ b/reactos/base/applications/notepad/notepad_res.h @@ -101,5 +101,4 @@ #define STRING_CR 0x184 #define STRING_LICENSE 0x185 -#define STRING_LINE 0x186 -#define STRING_COLUMN 0x187 +#define STRING_LINE_COLUMN 0x186 diff --git a/reactos/base/applications/notepad/settings.c b/reactos/base/applications/notepad/settings.c index 12e415939f3..d363c6e1da9 100644 --- a/reactos/base/applications/notepad/settings.c +++ b/reactos/base/applications/notepad/settings.c @@ -112,7 +112,7 @@ void LoadSettings(void) base_length = (GetSystemMetrics(SM_CXSCREEN) > GetSystemMetrics(SM_CYSCREEN))? GetSystemMetrics(SM_CYSCREEN) : GetSystemMetrics(SM_CXSCREEN); - dx = base_length * .95; + dx = (INT)(base_length * .95); dy = dx * 3 / 4; SetRect( &Globals.main_rect, 0, 0, dx, dy ); -- 2.17.1