From 92d4e45e80291ab9d712b5d6378280b1b8dac545 Mon Sep 17 00:00:00 2001 From: Daniel Reimer Date: Wed, 11 Mar 2009 12:11:28 +0000 Subject: [PATCH] Translate the ReactOS MediaPlayer into German and Polish (Maciej Bialas). Sync WinHLP32 and WordPad with Wine HEAD. svn path=/trunk/; revision=39950 --- .../base/applications/mplay32/lang/de-DE.rc | 29 +++++++++++ .../base/applications/mplay32/lang/pl-PL.rc | 31 ++++++++++++ reactos/base/applications/mplay32/rsrc.rc | 2 + reactos/base/applications/winhlp32/winhelp.c | 50 ++++++------------- reactos/base/applications/wordpad/Da.rc | 2 +- reactos/base/applications/wordpad/De.rc | 2 +- reactos/base/applications/wordpad/En.rc | 5 +- reactos/base/applications/wordpad/Fr.rc | 2 +- reactos/base/applications/wordpad/Hu.rc | 2 +- reactos/base/applications/wordpad/Ja.rc | 2 +- reactos/base/applications/wordpad/Ko.rc | 3 +- reactos/base/applications/wordpad/Nl.rc | 2 +- reactos/base/applications/wordpad/No.rc | 2 +- reactos/base/applications/wordpad/Pl.rc | 2 +- reactos/base/applications/wordpad/Pt.rc | 2 +- reactos/base/applications/wordpad/Ru.rc | 2 +- reactos/base/applications/wordpad/Si.rc | 2 +- reactos/base/applications/wordpad/Sv.rc | 2 +- reactos/base/applications/wordpad/Tr.rc | 2 +- reactos/base/applications/wordpad/Zh.rc | 4 +- reactos/base/applications/wordpad/wordpad.c | 29 +++++++++-- reactos/base/applications/wordpad/wordpad.h | 1 + 22 files changed, 122 insertions(+), 58 deletions(-) create mode 100644 reactos/base/applications/mplay32/lang/de-DE.rc create mode 100644 reactos/base/applications/mplay32/lang/pl-PL.rc diff --git a/reactos/base/applications/mplay32/lang/de-DE.rc b/reactos/base/applications/mplay32/lang/de-DE.rc new file mode 100644 index 00000000000..622fdf6f10f --- /dev/null +++ b/reactos/base/applications/mplay32/lang/de-DE.rc @@ -0,0 +1,29 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDR_MAINMENU MENU +BEGIN + POPUP "&Datei" + BEGIN + MENUITEM "Ö&ffnen...", IDM_OPEN_FILE + MENUITEM "Sch&ließen", IDM_CLOSE_FILE + MENUITEM SEPARATOR + MENUITEM "&Beenden", IDM_EXIT + END + POPUP "&Hilfe" + BEGIN + MENUITEM "&Über...", IDM_ABOUT + END +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ALL_TYPES_FILTER "Alle Unterstützten (*.wav, *.cda, *.midi, *.mid, *.avi)\0*.wav;*.cda;*.midi;*.mid;*.avi\0" + IDS_TOOLTIP_PLAY "wiedergabe" + IDS_TOOLTIP_STOP "Stopp" + IDS_TOOLTIP_EJECT "Auswerfen" + IDS_TOOLTIP_BACKWARD "Zurück" + IDS_TOOLTIP_SEEKBACK "Schneller Rücklauf" + IDS_TOOLTIP_SEEKFORW "Schneller Vorlauf" + IDS_TOOLTIP_FORWARD "Weiter" + IDS_APPTITLE "ReactOS Multimedia Player" +END diff --git a/reactos/base/applications/mplay32/lang/pl-PL.rc b/reactos/base/applications/mplay32/lang/pl-PL.rc new file mode 100644 index 00000000000..f7d308ec7b4 --- /dev/null +++ b/reactos/base/applications/mplay32/lang/pl-PL.rc @@ -0,0 +1,31 @@ +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +//By Maciej Bialas + +IDR_MAINMENU MENU +BEGIN + POPUP "&Plik" + BEGIN + MENUITEM "&Otwórz...", IDM_OPEN_FILE + MENUITEM "&Zamknij", IDM_CLOSE_FILE + MENUITEM SEPARATOR + MENUITEM "&WyjdŸ", IDM_EXIT + END + POPUP "&Pomoc" + BEGIN + MENUITEM "&O programie...", IDM_ABOUT + END +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ALL_TYPES_FILTER "Wszystkie formaty (*.wav, *.cda, *.midi, *.mid, *.avi)\0*.wav;*.cda;*.midi;*.mid;*.avi\0" + IDS_TOOLTIP_PLAY "Odtwarzaj" + IDS_TOOLTIP_STOP "Zatrzymaj" + IDS_TOOLTIP_EJECT "Wysuñ" + IDS_TOOLTIP_BACKWARD "Przeskocz do ty³u" + IDS_TOOLTIP_SEEKBACK "Przewiñ do ty³u" + IDS_TOOLTIP_SEEKFORW "Przewiñ do przodu" + IDS_TOOLTIP_FORWARD "Przeskocz do przodu" + IDS_APPTITLE "ReactOS Multimedia Player" +END diff --git a/reactos/base/applications/mplay32/rsrc.rc b/reactos/base/applications/mplay32/rsrc.rc index 9c19630f93b..5e400c134c0 100644 --- a/reactos/base/applications/mplay32/rsrc.rc +++ b/reactos/base/applications/mplay32/rsrc.rc @@ -1,5 +1,7 @@ #include #include "resource.h" +#include "lang/de-DE.rc" #include "lang/en-US.rc" +#include "lang/pl-PL.rc" #include "lang/ru-RU.rc" diff --git a/reactos/base/applications/winhlp32/winhelp.c b/reactos/base/applications/winhlp32/winhelp.c index 7a9e093e5d7..d62649ffa85 100644 --- a/reactos/base/applications/winhlp32/winhelp.c +++ b/reactos/base/applications/winhlp32/winhelp.c @@ -274,9 +274,7 @@ HLPFILE_WINDOWINFO* WINHELP_GetWindowInfo(HLPFILE* hlpfile, LPCSTR name) { strcpy(mwi.type, "primary"); strcpy(mwi.name, "main"); - if (hlpfile && !LoadString(Globals.hInstance, STID_WINE_HELP, - mwi.caption, sizeof(mwi.caption))) - strcpy(mwi.caption, hlpfile->lpszTitle); + LoadString(Globals.hInstance, STID_WINE_HELP, mwi.caption, sizeof(mwi.caption)); mwi.origin.x = mwi.origin.y = mwi.size.cx = mwi.size.cy = CW_USEDEFAULT; mwi.style = SW_SHOW; mwi.win_style = WS_OVERLAPPEDWINDOW; @@ -1265,8 +1263,7 @@ static LRESULT CALLBACK WINHELP_MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, { WINHELP_WINDOW *win; WINHELP_BUTTON *button; - RECT rect; - INT curPos, min, max, dy, keyDelta; + INT keyDelta; HWND hTextWnd; LRESULT ret; @@ -1381,42 +1378,23 @@ static LRESULT CALLBACK WINHELP_MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, case WM_KEYDOWN: keyDelta = 0; + win = (WINHELP_WINDOW*) GetWindowLongPtr(hWnd, 0); + hTextWnd = GetDlgItem(win->hMainWnd, CTL_ID_TEXT); switch (wParam) { case VK_UP: - case VK_DOWN: - keyDelta = GetSystemMetrics(SM_CXVSCROLL); - if (wParam == VK_UP) - keyDelta = -keyDelta; - - case VK_PRIOR: - case VK_NEXT: - win = (WINHELP_WINDOW*) GetWindowLongPtr(hWnd, 0); - hTextWnd = GetDlgItem(win->hMainWnd, CTL_ID_TEXT); - curPos = GetScrollPos(hTextWnd, SB_VERT); - GetScrollRange(hTextWnd, SB_VERT, &min, &max); - - if (keyDelta == 0) - { - GetClientRect(hTextWnd, &rect); - keyDelta = (rect.bottom - rect.top) / 2; - if (wParam == VK_PRIOR) - keyDelta = -keyDelta; - } - - curPos += keyDelta; - if (curPos > max) - curPos = max; - else if (curPos < min) - curPos = min; - - dy = GetScrollPos(hTextWnd, SB_VERT) - curPos; - SetScrollPos(hTextWnd, SB_VERT, curPos, TRUE); - ScrollWindow(hTextWnd, 0, dy, NULL, NULL); - UpdateWindow(hTextWnd); + SendMessage(hTextWnd, EM_SCROLL, SB_LINEUP, 0); + return 0; + case VK_DOWN: + SendMessage(hTextWnd, EM_SCROLL, SB_LINEDOWN, 0); + return 0; + case VK_PRIOR: + SendMessage(hTextWnd, EM_SCROLL, SB_PAGEUP, 0); + return 0; + case VK_NEXT: + SendMessage(hTextWnd, EM_SCROLL, SB_PAGEDOWN, 0); return 0; - case VK_ESCAPE: MACRO_Exit(); return 0; diff --git a/reactos/base/applications/wordpad/Da.rc b/reactos/base/applications/wordpad/Da.rc index 8af908092b0..d09e90f9b72 100644 --- a/reactos/base/applications/wordpad/Da.rc +++ b/reactos/base/applications/wordpad/Da.rc @@ -150,7 +150,7 @@ Caption "Tabulatorer" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Tabulatorstop", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Tilføj", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Fjern", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/De.rc b/reactos/base/applications/wordpad/De.rc index 9e748c2cf9d..5b4b176a905 100644 --- a/reactos/base/applications/wordpad/De.rc +++ b/reactos/base/applications/wordpad/De.rc @@ -152,7 +152,7 @@ Caption "Tabstopps" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Tabstoppposition", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Festlegen", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Löschen", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/En.rc b/reactos/base/applications/wordpad/En.rc index eecfef4c283..dd099e13349 100644 --- a/reactos/base/applications/wordpad/En.rc +++ b/reactos/base/applications/wordpad/En.rc @@ -150,7 +150,7 @@ Caption "Tabs" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Tab stops", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Add", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Remove", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 @@ -239,5 +239,6 @@ BEGIN STRING_WRITE_ACCESS_DENIED, "You do not have access to save the file." STRING_OPEN_FAILED, "Could not open the file." STRING_OPEN_ACCESS_DENIED, "You do not have access to open the file." - STRING_PRINTING_NOT_IMPLEMENTED, "Printing not implemented" + STRING_PRINTING_NOT_IMPLEMENTED, "Printing not implemented" + STRING_MAX_TAB_STOPS, "Cannot add more than 32 tab stops." END diff --git a/reactos/base/applications/wordpad/Fr.rc b/reactos/base/applications/wordpad/Fr.rc index b26d69622e1..459dd0ed82b 100644 --- a/reactos/base/applications/wordpad/Fr.rc +++ b/reactos/base/applications/wordpad/Fr.rc @@ -150,7 +150,7 @@ Caption "Tabulations" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Arrêts de tabulation", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Ajouter", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Supprimer", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Hu.rc b/reactos/base/applications/wordpad/Hu.rc index 42933a13a5a..94ceda5a789 100644 --- a/reactos/base/applications/wordpad/Hu.rc +++ b/reactos/base/applications/wordpad/Hu.rc @@ -150,7 +150,7 @@ Caption "Tabs" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Tab stops", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Add", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Remove", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Ja.rc b/reactos/base/applications/wordpad/Ja.rc index 6133a4a7e2a..09e48aafdf5 100644 --- a/reactos/base/applications/wordpad/Ja.rc +++ b/reactos/base/applications/wordpad/Ja.rc @@ -153,7 +153,7 @@ CAPTION "タブã®è¨­å®š" FONT 9, "MS Shell Dlg" BEGIN GROUPBOX "タブã®åœæ­¢ä½ç½®(&T)", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "追加(&A)", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "削除(&R)", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Ko.rc b/reactos/base/applications/wordpad/Ko.rc index 6ea4e46812a..7bfaf00e767 100644 --- a/reactos/base/applications/wordpad/Ko.rc +++ b/reactos/base/applications/wordpad/Ko.rc @@ -152,7 +152,7 @@ Caption " FONT 9, "MS Shell Dlg" BEGIN GROUPBOX "ÅÇ Á¤Áö", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "´õÇϱâ(&A)", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "Áö¿ì±â(&R)", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "È®ÀÎ(&O)", IDOK, 137, 15, 50, 15 @@ -242,4 +242,5 @@ BEGIN STRING_OPEN_FAILED, "ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù." STRING_OPEN_ACCESS_DENIED, "ÆÄÀÏÀ» ¿­ ±ÇÇÑÀÌ ¾ø½À´Ï´Ù." STRING_PRINTING_NOT_IMPLEMENTED, "Àμâ´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù" + STRING_MAX_TAB_STOPS, " ÅÇÁßÁö´Â 32°³ ÀÌ»ó Ãß°¡ ÇÒ ¼ö ¾ø½À´Ï´Ù." END diff --git a/reactos/base/applications/wordpad/Nl.rc b/reactos/base/applications/wordpad/Nl.rc index a0a405ef4ed..3c82c7e68bf 100644 --- a/reactos/base/applications/wordpad/Nl.rc +++ b/reactos/base/applications/wordpad/Nl.rc @@ -151,7 +151,7 @@ Caption "Tabs" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Tab stops", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Toevoegen", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Verwijderen", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/No.rc b/reactos/base/applications/wordpad/No.rc index b34973e5126..6261c6fb81d 100644 --- a/reactos/base/applications/wordpad/No.rc +++ b/reactos/base/applications/wordpad/No.rc @@ -150,7 +150,7 @@ Caption "Tabulatorer" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Tabulatorstopp", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Legg til", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Fjern", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Pl.rc b/reactos/base/applications/wordpad/Pl.rc index 590d9a79f23..47ff1bd0e3f 100644 --- a/reactos/base/applications/wordpad/Pl.rc +++ b/reactos/base/applications/wordpad/Pl.rc @@ -151,7 +151,7 @@ Caption "Tabulatory" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Pozycje tabulatorów", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Dodaj", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Usuñ", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 57, 15 diff --git a/reactos/base/applications/wordpad/Pt.rc b/reactos/base/applications/wordpad/Pt.rc index a263f4c06f6..b246c700bcd 100644 --- a/reactos/base/applications/wordpad/Pt.rc +++ b/reactos/base/applications/wordpad/Pt.rc @@ -152,7 +152,7 @@ Caption "Tabula FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Marca de tabulação", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Adicionar", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Remover", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 135, 15, 55, 15 diff --git a/reactos/base/applications/wordpad/Ru.rc b/reactos/base/applications/wordpad/Ru.rc index f25a68889e2..e4371993991 100644 --- a/reactos/base/applications/wordpad/Ru.rc +++ b/reactos/base/applications/wordpad/Ru.rc @@ -150,7 +150,7 @@ Caption " FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Ïîçèöèè òàáóëÿöèè", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Óñòàíîâèòü", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "Î&÷èñòèòü", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&ÎÊ", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Si.rc b/reactos/base/applications/wordpad/Si.rc index de7726c4be0..3be81b82c45 100644 --- a/reactos/base/applications/wordpad/Si.rc +++ b/reactos/base/applications/wordpad/Si.rc @@ -152,7 +152,7 @@ Caption "Tabulatorji" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Položaji tabulatorja", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Dodaj", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Odstrani", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&V redu", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Sv.rc b/reactos/base/applications/wordpad/Sv.rc index 565f9f73321..d56cc068ecc 100644 --- a/reactos/base/applications/wordpad/Sv.rc +++ b/reactos/base/applications/wordpad/Sv.rc @@ -152,7 +152,7 @@ Caption "Tabulatorer" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Tabulatorstopp", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "Lägg &till", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "Ta &bort", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Tr.rc b/reactos/base/applications/wordpad/Tr.rc index 1822620fab6..bf0eefdd0aa 100644 --- a/reactos/base/applications/wordpad/Tr.rc +++ b/reactos/base/applications/wordpad/Tr.rc @@ -152,7 +152,7 @@ Caption "Tabs" FONT 8, "MS SHell DLg" BEGIN GROUPBOX "Tab stops", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "&Add", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "&Remove", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/Zh.rc b/reactos/base/applications/wordpad/Zh.rc index 2c9a536a776..5c11ab79963 100644 --- a/reactos/base/applications/wordpad/Zh.rc +++ b/reactos/base/applications/wordpad/Zh.rc @@ -155,7 +155,7 @@ Caption "标签" FONT 9, "MS Shell Dlg" BEGIN GROUPBOX "标签åœç‚¹", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "添加(&A)", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "删除(&R)", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "确定(&O)", IDOK, 137, 15, 50, 15 @@ -380,7 +380,7 @@ Caption "標籤" FONT 9, "MS Shell Dlg" BEGIN GROUPBOX "標籤åœé»ž", -1, 10, 10, 120, 90 - COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE DEFPUSHBUTTON "添加(&A)", ID_TAB_ADD, 20, 80, 45, 15 PUSHBUTTON "刪除(&R)", ID_TAB_DEL, 72, 80, 45, 15 PUSHBUTTON "確定(&O)", IDOK, 137, 15, 50, 15 diff --git a/reactos/base/applications/wordpad/wordpad.c b/reactos/base/applications/wordpad/wordpad.c index 0120d4ee81c..c74d140c7ff 100644 --- a/reactos/base/applications/wordpad/wordpad.c +++ b/reactos/base/applications/wordpad/wordpad.c @@ -1636,15 +1636,36 @@ static INT_PTR CALLBACK tabstops_proc(HWND hWnd, UINT message, WPARAM wParam, LP if(SendMessageW(hTabWnd, CB_FINDSTRINGEXACT, -1, (LPARAM)&buffer) == CB_ERR) { float number = 0; + int item_count = SendMessage(hTabWnd, CB_GETCOUNT, 0, 0); if(!number_from_string(buffer, &number, TRUE)) { MessageBoxWithResStringW(hWnd, MAKEINTRESOURCEW(STRING_INVALID_NUMBER), wszAppTitle, MB_OK | MB_ICONINFORMATION); - } else - { - SendMessageW(hTabWnd, CB_ADDSTRING, 0, (LPARAM)&buffer); - SetWindowTextW(hTabWnd, 0); + } else if (item_count >= MAX_TAB_STOPS) { + MessageBoxWithResStringW(hWnd, MAKEINTRESOURCEW(STRING_MAX_TAB_STOPS), + wszAppTitle, MB_OK | MB_ICONINFORMATION); + } else { + int i; + float next_number = -1; + int next_number_in_twips = -1; + int insert_number = current_units_to_twips(number); + + /* linear search for position to insert the string */ + for(i = 0; i < item_count; i++) + { + SendMessageW(hTabWnd, CB_GETLBTEXT, i, (LPARAM)&buffer); + number_from_string(buffer, &next_number, TRUE); + next_number_in_twips = current_units_to_twips(next_number); + if (insert_number <= next_number_in_twips) + break; + } + if (insert_number != next_number_in_twips) + { + number_with_units(buffer, insert_number); + SendMessageW(hTabWnd, CB_INSERTSTRING, i, (LPARAM)&buffer); + SetWindowTextW(hTabWnd, 0); + } } } SetFocus(hTabWnd); diff --git a/reactos/base/applications/wordpad/wordpad.h b/reactos/base/applications/wordpad/wordpad.h index 8126fdd6d77..ece183fc1c2 100644 --- a/reactos/base/applications/wordpad/wordpad.h +++ b/reactos/base/applications/wordpad/wordpad.h @@ -200,6 +200,7 @@ #define STRING_OPEN_FAILED 1709 #define STRING_OPEN_ACCESS_DENIED 1710 #define STRING_PRINTING_NOT_IMPLEMENTED 1711 +#define STRING_MAX_TAB_STOPS 1712 LPWSTR file_basename(LPWSTR);