wordpad: Add tab stops dialog.

This commit is contained in:
Alexander Nicolaysen Sørnes 2007-08-23 01:27:50 +02:00 committed by Alexandre Julliard
parent fd129c23d9
commit 695a94f139
12 changed files with 307 additions and 4 deletions

View File

@ -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)"

View File

@ -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)"

View File

@ -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)"

View File

@ -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)"

View File

@ -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, "문서"

View File

@ -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)"

View File

@ -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)"

View File

@ -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)"

View File

@ -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)"

View File

@ -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)"

View File

@ -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

View File

@ -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;