- 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
31 files changed:
VOID DIALOG_StatusBarUpdateCaretPos(VOID)
{
VOID DIALOG_StatusBarUpdateCaretPos(VOID)
{
- int line;
- int col;
- int ccol;
- POINT point;
- 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);
}
SendMessage(Globals.hStatusBar, SB_SETTEXT, (WPARAM) SB_SIMPLEID, (LPARAM)buff);
}
if ( !Globals.hStatusBar )
{
Globals.hStatusBar = CreateStatusWindow(WS_CHILD | WS_VISIBLE | WS_EX_STATICEDGE, TEXT("test"), Globals.hMainWnd, CMD_STATUSBAR_WND_ID );
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,
SendMessage(Globals.hStatusBar, SB_SIMPLE, (WPARAM)TRUE, (LPARAM)0);
}
CheckMenuItem(GetMenu(Globals.hMainWnd), CMD_STATUSBAR,
STRING_CRLF, "Óüèíäîóüñ"
STRING_LF, "Þíèêñ"
STRING_CR, "Ìàê"
STRING_CRLF, "Óüèíäîóüñ"
STRING_LF, "Þíèêñ"
STRING_CR, "Ìàê"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Zeile %d, Spalte %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Ligne %d, colonne %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Linea %d, colonna %d"
STRING_CRLF, "Windows (CR+LF)"
STRING_LF, "Unix (LF)"
STRING_CR, "Mac (CR)"
STRING_CRLF, "Windows (CR+LF)"
STRING_LF, "Unix (LF)"
STRING_CR, "Mac (CR)"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Ìàêèíòîø"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Ìàêèíòîø"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
STRING_CRLF, "Windows"
STRING_LF, "Unix"
STRING_CR, "Mac"
+STRING_LINE_COLUMN, "Line %d, column %d"
case WM_KEYUP:
{
switch (wParam)
case WM_KEYUP:
{
switch (wParam)
TCHAR szMarginRight[MAX_PATH];
TCHAR szHeader[MAX_PATH];
TCHAR szFooter[MAX_PATH];
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;
int iEncoding;
int iEoln;
#define STRING_CR 0x184
#define STRING_LICENSE 0x185
#define STRING_CR 0x184
#define STRING_LICENSE 0x185
-#define STRING_LINE 0x186
-#define STRING_COLUMN 0x187
+#define STRING_LINE_COLUMN 0x186
base_length = (GetSystemMetrics(SM_CXSCREEN) > GetSystemMetrics(SM_CYSCREEN))?
GetSystemMetrics(SM_CYSCREEN) : GetSystemMetrics(SM_CXSCREEN);
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 );
dy = dx * 3 / 4;
SetRect( &Globals.main_rect, 0, 0, dx, dy );