diff --git a/programs/wordpad/De.rc b/programs/wordpad/De.rc index 9eb0bb8cde5..59bf46be4cd 100644 --- a/programs/wordpad/De.rc +++ b/programs/wordpad/De.rc @@ -69,6 +69,7 @@ BEGIN BEGIN MENUITEM "&Bullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "&Hintergrund" BEGIN MENUITEM "&System\tCtrl+1", ID_BACK_1 @@ -117,6 +118,20 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rich-Text-Format (*.rtf)" diff --git a/programs/wordpad/En.rc b/programs/wordpad/En.rc index 2ba824ae597..be576f653ce 100644 --- a/programs/wordpad/En.rc +++ b/programs/wordpad/En.rc @@ -69,6 +69,7 @@ BEGIN BEGIN MENUITEM "&Bullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "Backgroun&d" BEGIN MENUITEM "&System\tCtrl+1", ID_BACK_1 @@ -117,6 +118,21 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)" diff --git a/programs/wordpad/Fr.rc b/programs/wordpad/Fr.rc index 7b443c247f4..b1f8c0c8d30 100644 --- a/programs/wordpad/Fr.rc +++ b/programs/wordpad/Fr.rc @@ -69,6 +69,7 @@ BEGIN BEGIN MENUITEM "&Bullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "&Fond" BEGIN MENUITEM "&Système\tCtrl+1", ID_BACK_1 @@ -117,6 +118,20 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)" diff --git a/programs/wordpad/Hu.rc b/programs/wordpad/Hu.rc index bada8f21f70..4ba225e4ab1 100644 --- a/programs/wordpad/Hu.rc +++ b/programs/wordpad/Hu.rc @@ -69,6 +69,7 @@ BEGIN BEGIN MENUITEM "&Bullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "&Háttér" BEGIN MENUITEM "&Rendszer\tCtrl+1", ID_BACK_1 @@ -117,6 +118,20 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)" diff --git a/programs/wordpad/Ko.rc b/programs/wordpad/Ko.rc index c1d28a31c4a..bd03994ad47 100644 --- a/programs/wordpad/Ko.rc +++ b/programs/wordpad/Ko.rc @@ -70,6 +70,7 @@ BEGIN BEGIN MENUITEM " °­Á¶ Á¡(&U)" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "¹è°æ(&B)" BEGIN MENUITEM "½Ã½ºÅÛ(&S)\tCtrl+1", ID_BACK_1 @@ -118,11 +119,18 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END -STRINGTABLE DISCARDABLE +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" BEGIN - STRING_ALIGN_LEFT, "Left" - STRING_ALIGN_RIGHT, "Right" - STRING_ALIGN_CENTER, "Center" + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 END STRINGTABLE DISCARDABLE @@ -138,6 +146,13 @@ BEGIN STRING_UNITS_CM, "cm" END +STRINGTABLE DISCARDABLE +BEGIN + STRING_ALIGN_LEFT, "Left" + STRING_ALIGN_RIGHT, "Right" + STRING_ALIGN_CENTER, "Center" +END + STRINGTABLE DISCARDABLE BEGIN STRING_DEFAULT_FILENAME, "¹®¼­" diff --git a/programs/wordpad/Nl.rc b/programs/wordpad/Nl.rc index 1c8a1acfd82..2d63e85ca41 100644 --- a/programs/wordpad/Nl.rc +++ b/programs/wordpad/Nl.rc @@ -69,6 +69,7 @@ BEGIN BEGIN MENUITEM "&Bullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "&Achtergrond" BEGIN MENUITEM "&Systeem\tCtrl+1", ID_BACK_1 @@ -117,6 +118,20 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)" diff --git a/programs/wordpad/No.rc b/programs/wordpad/No.rc index 23c7af38aeb..b2d685b131a 100644 --- a/programs/wordpad/No.rc +++ b/programs/wordpad/No.rc @@ -69,6 +69,7 @@ BEGIN BEGIN MENUITEM "&Punktmerking" ID_BULLET MENUITEM "&Avsnitt . . ." ID_PARAFORMAT + MENUITEM "&Tabulatorer . . ." ID_TABSTOPS POPUP "&Bakgrunn" BEGIN MENUITEM "&System\tCtrl+1", ID_BACK_1 @@ -117,6 +118,20 @@ BEGIN PUSHBUTTON "&Avbryt", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabulatorer" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tabulatorstopp", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Avbryt", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Fjern all&e", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rikt tekstformat (*.rtf)" diff --git a/programs/wordpad/Pl.rc b/programs/wordpad/Pl.rc index d472c29b709..1819e1b5fea 100644 --- a/programs/wordpad/Pl.rc +++ b/programs/wordpad/Pl.rc @@ -70,6 +70,7 @@ BEGIN BEGIN MENUITEM "&Bullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "Tab&s . . ." ID_TABSTOPS POPUP "&T³o" BEGIN MENUITEM "&System\tCtrl+1", ID_BACK_1 @@ -118,6 +119,20 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Tekst sformatowany - RTF (*.rtf)" diff --git a/programs/wordpad/Ru.rc b/programs/wordpad/Ru.rc index 35b1971e507..6677dabf3e4 100644 --- a/programs/wordpad/Ru.rc +++ b/programs/wordpad/Ru.rc @@ -67,6 +67,7 @@ BEGIN BEGIN MENUITEM "B&ullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "&Ôîí" BEGIN MENUITEM "&Ñèñòåìíûé\tCtrl+1", ID_BACK_1 @@ -115,6 +116,20 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)" diff --git a/programs/wordpad/Tr.rc b/programs/wordpad/Tr.rc index ed80290c20f..3d0190695ea 100644 --- a/programs/wordpad/Tr.rc +++ b/programs/wordpad/Tr.rc @@ -71,6 +71,7 @@ BEGIN BEGIN MENUITEM "&Bullet points" ID_BULLET MENUITEM "&Paragraph . . ." ID_PARAFORMAT + MENUITEM "&Tabs . . ." ID_TABSTOPS POPUP "&Arkaplan" BEGIN MENUITEM "S&istem\tCtrl+1", ID_BACK_1 @@ -119,6 +120,20 @@ BEGIN PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 END +IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +Caption "Tabs" +FONT 8, "MS SHell DLg" +BEGIN + GROUPBOX "Tab stops", 0, 10, 10, 120, 90 + COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE | CBS_SORT + 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 + PUSHBUTTON "&Cancel", IDCANCEL, 137, 33, 50, 15 + PUSHBUTTON "Remove al&l", ID_TAB_EMPTY, 137, 51, 50, 15 +END + STRINGTABLE DISCARDABLE BEGIN STRING_RICHTEXT_FILES_RTF, "Rich text format (*.rtf)" diff --git a/programs/wordpad/resource.h b/programs/wordpad/resource.h index 858ce9f1906..95374a88aac 100644 --- a/programs/wordpad/resource.h +++ b/programs/wordpad/resource.h @@ -75,8 +75,13 @@ #define ID_NEWFILE_ABORT 100 +#define ID_TAB_ADD 100 +#define ID_TAB_DEL 101 +#define ID_TAB_EMPTY 102 + #define ID_DATETIME 1600 #define ID_PARAFORMAT 1601 +#define ID_TABSTOPS 1602 #define IDC_STATUSBAR 2000 #define IDC_EDITOR 2001 @@ -90,10 +95,12 @@ #define IDC_PARA_RIGHT 2009 #define IDC_PARA_FIRST 2010 #define IDC_PARA_ALIGN 2011 +#define IDC_TABSTOPS 2012 #define IDD_DATETIME 2100 #define IDD_NEWFILE 2101 #define IDD_PARAFORMAT 2102 +#define IDD_TABSTOPS 2103 #define IDB_TOOLBAR 100 #define IDB_FORMATBAR 101 diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c index 97c9ef86790..b06f3096856 100644 --- a/programs/wordpad/wordpad.c +++ b/programs/wordpad/wordpad.c @@ -68,6 +68,7 @@ static UINT ID_FINDMSGSTRING; static WCHAR wszFilter[MAX_STRING_LEN*4+6*3+5]; static WCHAR wszDefaultFileName[MAX_STRING_LEN]; static WCHAR wszSaveChanges[MAX_STRING_LEN]; +static WCHAR units_cmW[MAX_STRING_LEN]; static char units_cmA[MAX_STRING_LEN]; @@ -107,6 +108,7 @@ static void DoLoadStrings(void) LoadStringW(hInstance, STRING_PROMPT_SAVE_CHANGES, p, MAX_STRING_LEN); LoadStringA(hInstance, STRING_UNITS_CM, units_cmA, MAX_STRING_LEN); + LoadStringW(hInstance, STRING_UNITS_CM, units_cmW, MAX_STRING_LEN); } static void AddButton(HWND hwndToolBar, int nImage, int nCommand) @@ -1081,6 +1083,13 @@ static int current_units_to_twips(float number) return twips; } +static void append_current_units(LPWSTR buffer) +{ + static const WCHAR space[] = {' '}; + lstrcatW(buffer, space); + lstrcatW(buffer, units_cmW); +} + static void number_with_units(LPWSTR buffer, int number) { float converted = (float)number / 567; @@ -1281,6 +1290,135 @@ static INT_PTR CALLBACK paraformat_proc(HWND hWnd, UINT message, WPARAM wParam, return FALSE; } +static INT_PTR CALLBACK tabstops_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch(message) + { + case WM_INITDIALOG: + { + HWND hTabWnd = GetDlgItem(hWnd, IDC_TABSTOPS); + PARAFORMAT pf; + WCHAR buffer[MAX_STRING_LEN]; + int i; + + pf.cbSize = sizeof(pf); + pf.dwMask = PFM_TABSTOPS; + SendMessageW(hEditorWnd, EM_GETPARAFORMAT, 0, (LPARAM)&pf); + SendMessageW(hTabWnd, CB_LIMITTEXT, MAX_STRING_LEN-1, 0); + + for(i = 0; i < pf.cTabCount; i++) + { + number_with_units(buffer, pf.rgxTabs[i]); + SendMessageW(hTabWnd, CB_ADDSTRING, 0, (LPARAM)&buffer); + } + SetFocus(hTabWnd); + } + break; + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDC_TABSTOPS: + { + HWND hTabWnd = (HWND)lParam; + HWND hAddWnd = GetDlgItem(hWnd, ID_TAB_ADD); + HWND hDelWnd = GetDlgItem(hWnd, ID_TAB_DEL); + HWND hEmptyWnd = GetDlgItem(hWnd, ID_TAB_EMPTY); + + if(GetWindowTextLengthW(hTabWnd)) + EnableWindow(hAddWnd, TRUE); + else + EnableWindow(hAddWnd, FALSE); + + if(SendMessageW(hTabWnd, CB_GETCOUNT, 0, 0)) + { + EnableWindow(hEmptyWnd, TRUE); + + if(SendMessageW(hTabWnd, CB_GETCURSEL, 0, 0) == CB_ERR) + EnableWindow(hDelWnd, FALSE); + else + EnableWindow(hDelWnd, TRUE); + } else + { + EnableWindow(hEmptyWnd, FALSE); + } + } + break; + + case ID_TAB_ADD: + { + HWND hTabWnd = GetDlgItem(hWnd, IDC_TABSTOPS); + WCHAR buffer[MAX_STRING_LEN]; + + GetWindowTextW(hTabWnd, buffer, MAX_STRING_LEN); + append_current_units(buffer); + + if(SendMessageW(hTabWnd, CB_FINDSTRINGEXACT, -1, (LPARAM)&buffer) == CB_ERR) + { + float number = 0; + + if(!number_from_string(buffer, &number, TRUE)) + { + MessageBoxW(hWnd, MAKEINTRESOURCEW(STRING_INVALID_NUMBER), + wszAppTitle, MB_OK | MB_ICONINFORMATION); + } else + { + SendMessageW(hTabWnd, CB_ADDSTRING, 0, (LPARAM)&buffer); + SetWindowTextW(hTabWnd, 0); + } + } + SetFocus(hTabWnd); + } + break; + + case ID_TAB_DEL: + { + HWND hTabWnd = GetDlgItem(hWnd, IDC_TABSTOPS); + LRESULT ret; + ret = SendMessageW(hTabWnd, CB_GETCURSEL, 0, 0); + if(ret != CB_ERR) + SendMessageW(hTabWnd, CB_DELETESTRING, ret, 0); + } + break; + + case ID_TAB_EMPTY: + { + HWND hTabWnd = GetDlgItem(hWnd, IDC_TABSTOPS); + SendMessageW(hTabWnd, CB_RESETCONTENT, 0, 0); + SetFocus(hTabWnd); + } + break; + + case IDOK: + { + HWND hTabWnd = GetDlgItem(hWnd, IDC_TABSTOPS); + int i; + WCHAR buffer[MAX_STRING_LEN]; + PARAFORMAT pf; + float number; + + pf.cbSize = sizeof(pf); + pf.dwMask = PFM_TABSTOPS; + + for(i = 0; SendMessageW(hTabWnd, CB_GETLBTEXT, i, + (LPARAM)&buffer) != CB_ERR && + i < MAX_TAB_STOPS; i++) + { + number_from_string(buffer, &number, TRUE); + pf.rgxTabs[i] = current_units_to_twips(number); + } + pf.cTabCount = i; + SendMessageW(hEditorWnd, EM_SETPARAFORMAT, 0, (LPARAM)&pf); + } + /* Fall through */ + case IDCANCEL: + EndDialog(hWnd, wParam); + return TRUE; + } + } + return FALSE; +} + static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam) { HWND hToolBarWnd, hFormatBarWnd, hReBarWnd; @@ -1778,6 +1916,13 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam) } break; + case ID_TABSTOPS: + { + HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hWnd, GWLP_HINSTANCE); + DialogBoxW(hInstance, MAKEINTRESOURCEW(IDD_TABSTOPS), hWnd, tabstops_proc); + } + break; + default: SendMessageW(hwndEditor, WM_COMMAND, wParam, lParam); break;