wordpad: Add initial print preview support.
This commit is contained in:
parent
7fa0590e5a
commit
cd64bf8e4d
|
@ -28,6 +28,7 @@ BEGIN
|
||||||
MENUITEM "Speichern &unter...", ID_FILE_SAVEAS
|
MENUITEM "Speichern &unter...", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Beenden", ID_FILE_EXIT
|
MENUITEM "&Beenden", ID_FILE_EXIT
|
||||||
|
@ -203,6 +204,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -28,6 +28,7 @@ BEGIN
|
||||||
MENUITEM "Save &as . . .", ID_FILE_SAVEAS
|
MENUITEM "Save &as . . .", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "E&xit", ID_FILE_EXIT
|
MENUITEM "E&xit", ID_FILE_EXIT
|
||||||
|
@ -203,6 +204,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -28,6 +28,7 @@ BEGIN
|
||||||
MENUITEM "Enregistrer &sous...", ID_FILE_SAVEAS
|
MENUITEM "Enregistrer &sous...", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Page setup . . .", ID_PRINTSETUP
|
MENUITEM "Page setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Quitter", ID_FILE_EXIT
|
MENUITEM "&Quitter", ID_FILE_EXIT
|
||||||
|
@ -203,6 +204,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -28,6 +28,7 @@ BEGIN
|
||||||
MENUITEM "Mentés má&sként...", ID_FILE_SAVEAS
|
MENUITEM "Mentés má&sként...", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Page setup . . .", ID_PRINTSETUP
|
MENUITEM "Page setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Kilépés", ID_FILE_EXIT
|
MENUITEM "&Kilépés", ID_FILE_EXIT
|
||||||
|
@ -203,6 +204,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -29,6 +29,7 @@ BEGIN
|
||||||
MENUITEM "다른 이름으로 저장(&A)...", ID_FILE_SAVEAS
|
MENUITEM "다른 이름으로 저장(&A)...", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "나가기(&X)", ID_FILE_EXIT
|
MENUITEM "나가기(&X)", ID_FILE_EXIT
|
||||||
|
@ -197,6 +198,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -28,6 +28,7 @@ BEGIN
|
||||||
MENUITEM "Ops&laan als...", ID_FILE_SAVEAS
|
MENUITEM "Ops&laan als...", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Afsluiten", ID_FILE_EXIT
|
MENUITEM "&Afsluiten", ID_FILE_EXIT
|
||||||
|
@ -203,6 +204,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -28,6 +28,7 @@ BEGIN
|
||||||
MENUITEM "Lagre &som . . .", ID_FILE_SAVEAS
|
MENUITEM "Lagre &som . . .", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Skriv ut . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Skriv ut . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "&Forhåndsvisning . . .", ID_PREVIEW
|
||||||
MENUITEM "&Utskriftformat . . .", ID_PRINTSETUP
|
MENUITEM "&Utskriftformat . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Avslutt", ID_FILE_EXIT
|
MENUITEM "&Avslutt", ID_FILE_EXIT
|
||||||
|
@ -203,6 +204,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rik tekst"
|
STRING_VIEWPROPS_RICHTEXT, "Rik tekst"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Skriv ut"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Neste side"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Forrige side"
|
||||||
|
STRING_PREVIEW_CLOSE, "Lukk"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -29,6 +29,7 @@ BEGIN
|
||||||
MENUITEM "Z&apisz jako...", ID_FILE_SAVEAS
|
MENUITEM "Z&apisz jako...", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Za&koñcz", ID_FILE_EXIT
|
MENUITEM "Za&koñcz", ID_FILE_EXIT
|
||||||
|
@ -204,6 +205,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -28,6 +28,7 @@ BEGIN
|
||||||
MENUITEM "Ñîõðàíèòü &êàê...", ID_FILE_SAVEAS
|
MENUITEM "Ñîõðàíèòü &êàê...", ID_FILE_SAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Â&ûõîä", ID_FILE_EXIT
|
MENUITEM "Â&ûõîä", ID_FILE_EXIT
|
||||||
|
@ -202,6 +203,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -32,6 +32,7 @@ BEGIN
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
MENUITEM "&Print . . .\tCtrl+P", ID_PRINT
|
||||||
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
MENUITEM "Pag&e setup . . .", ID_PRINTSETUP
|
||||||
|
MENUITEM "Print previe&w . . .", ID_PREVIEW
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Çýk", ID_FILE_EXIT
|
MENUITEM "&Çýk", ID_FILE_EXIT
|
||||||
END
|
END
|
||||||
|
@ -206,6 +207,14 @@ BEGIN
|
||||||
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
STRING_VIEWPROPS_RICHTEXT, "Rich text"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
STRING_PREVIEW_PRINT, "Print"
|
||||||
|
STRING_PREVIEW_NEXTPAGE, "Next page"
|
||||||
|
STRING_PREVIEW_PREVPAGE, "Previous page"
|
||||||
|
STRING_PREVIEW_CLOSE, "Close"
|
||||||
|
END
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
STRING_UNITS_CM, "cm"
|
STRING_UNITS_CM, "cm"
|
||||||
|
|
|
@ -36,6 +36,9 @@
|
||||||
#define ID_FIND 1014
|
#define ID_FIND 1014
|
||||||
#define ID_FIND_NEXT 1015
|
#define ID_FIND_NEXT 1015
|
||||||
|
|
||||||
|
#define ID_PREVIEW_NEXTPAGE 1016
|
||||||
|
#define ID_PREVIEW_PREVPAGE 1017
|
||||||
|
|
||||||
#define ID_ALIGN_LEFT 1100
|
#define ID_ALIGN_LEFT 1100
|
||||||
#define ID_ALIGN_CENTER 1101
|
#define ID_ALIGN_CENTER 1101
|
||||||
#define ID_ALIGN_RIGHT 1102
|
#define ID_ALIGN_RIGHT 1102
|
||||||
|
@ -67,6 +70,8 @@
|
||||||
#define ID_TOGGLE_FORMATBAR 1501
|
#define ID_TOGGLE_FORMATBAR 1501
|
||||||
#define ID_TOGGLE_STATUSBAR 1502
|
#define ID_TOGGLE_STATUSBAR 1502
|
||||||
|
|
||||||
|
#define PREVIEW_BUTTONS 4
|
||||||
|
|
||||||
#define FILELIST_ENTRIES 4
|
#define FILELIST_ENTRIES 4
|
||||||
#define FILELIST_ENTRY_LENGTH 33
|
#define FILELIST_ENTRY_LENGTH 33
|
||||||
|
|
||||||
|
@ -75,6 +80,11 @@
|
||||||
#define BANDID_RULER 0
|
#define BANDID_RULER 0
|
||||||
#define BANDID_STATUSBAR 1
|
#define BANDID_STATUSBAR 1
|
||||||
|
|
||||||
|
#define BANDID_PREVIEW_BTN1 4
|
||||||
|
#define BANDID_PREVIEW_BTN2 5
|
||||||
|
#define BANDID_PREVIEW_BTN3 6
|
||||||
|
#define BANDID_PREVIEW_BTN4 7
|
||||||
|
|
||||||
#define ID_WORDWRAP_NONE 0
|
#define ID_WORDWRAP_NONE 0
|
||||||
#define ID_WORDWRAP_WINDOW 1
|
#define ID_WORDWRAP_WINDOW 1
|
||||||
#define ID_WORDWRAP_MARGIN 2
|
#define ID_WORDWRAP_MARGIN 2
|
||||||
|
@ -145,7 +155,12 @@
|
||||||
#define STRING_VIEWPROPS_TEXT 1412
|
#define STRING_VIEWPROPS_TEXT 1412
|
||||||
#define STRING_VIEWPROPS_RICHTEXT 1413
|
#define STRING_VIEWPROPS_RICHTEXT 1413
|
||||||
|
|
||||||
#define STRING_UNITS_CM 1414
|
#define STRING_PREVIEW_PRINT 1414
|
||||||
|
#define STRING_PREVIEW_NEXTPAGE 1415
|
||||||
|
#define STRING_PREVIEW_PREVPAGE 1416
|
||||||
|
#define STRING_PREVIEW_CLOSE 1417
|
||||||
|
|
||||||
|
#define STRING_UNITS_CM 1418
|
||||||
|
|
||||||
#define STRING_DEFAULT_FILENAME 1700
|
#define STRING_DEFAULT_FILENAME 1700
|
||||||
#define STRING_PROMPT_SAVE_CHANGES 1701
|
#define STRING_PROMPT_SAVE_CHANGES 1701
|
||||||
|
|
|
@ -138,6 +138,36 @@ static void AddButton(HWND hwndToolBar, int nImage, int nCommand)
|
||||||
SendMessageW(hwndToolBar, TB_ADDBUTTONSW, 1, (LPARAM)&button);
|
SendMessageW(hwndToolBar, TB_ADDBUTTONSW, 1, (LPARAM)&button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void AddTextButton(HWND hWnd, int string, int command, int id)
|
||||||
|
{
|
||||||
|
REBARBANDINFOW rb;
|
||||||
|
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hMainWnd, GWLP_HINSTANCE);
|
||||||
|
static const WCHAR button[] = {'B','U','T','T','O','N',0};
|
||||||
|
WCHAR text[MAX_STRING_LEN];
|
||||||
|
HWND hButton;
|
||||||
|
RECT rc;
|
||||||
|
|
||||||
|
LoadStringW(hInstance, string, text, MAX_STRING_LEN);
|
||||||
|
hButton = CreateWindowW(button, text,
|
||||||
|
WS_VISIBLE | WS_CHILD, 5, 5, 100, 15,
|
||||||
|
hMainWnd, (HMENU)command, hInstance, NULL);
|
||||||
|
|
||||||
|
rb.cbSize = sizeof(rb);
|
||||||
|
rb.fMask = RBBIM_SIZE | RBBIM_CHILDSIZE | RBBIM_STYLE | RBBIM_CHILD | RBBIM_IDEALSIZE | RBBIM_ID;
|
||||||
|
rb.fStyle = RBBS_NOGRIPPER | RBBS_VARIABLEHEIGHT;
|
||||||
|
rb.hwndChild = hButton;
|
||||||
|
rb.cyChild = rb.cyMinChild = 22;
|
||||||
|
rb.cx = rb.cxMinChild = 90;
|
||||||
|
rb.cxIdeal = 100;
|
||||||
|
rb.wID = id;
|
||||||
|
|
||||||
|
rc.bottom = 22;
|
||||||
|
rc.right = 90;
|
||||||
|
|
||||||
|
SendMessageW(hWnd, RB_INSERTBAND, -1, (LPARAM)&rb);
|
||||||
|
SetWindowPos(hButton, 0, 0, 0, 90, 22, SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER);
|
||||||
|
}
|
||||||
|
|
||||||
static void AddSeparator(HWND hwndToolBar)
|
static void AddSeparator(HWND hwndToolBar)
|
||||||
{
|
{
|
||||||
TBBUTTON button;
|
TBBUTTON button;
|
||||||
|
@ -696,6 +726,12 @@ static HDC make_dc(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static LONG twips_to_pixels(int twips, int dpi)
|
||||||
|
{
|
||||||
|
float ret = ((float)twips / ((float)567 * 2.54)) * (float)dpi;
|
||||||
|
return (LONG)ret;
|
||||||
|
}
|
||||||
|
|
||||||
static LONG devunits_to_twips(int units, int dpi)
|
static LONG devunits_to_twips(int units, int dpi)
|
||||||
{
|
{
|
||||||
float ret = ((float)units / (float)dpi) * (float)567 * 2.54;
|
float ret = ((float)units / (float)dpi) * (float)567 * 2.54;
|
||||||
|
@ -1003,6 +1039,33 @@ static LPWSTR dialog_print_to_file(void)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int get_num_pages(FORMATRANGE fr)
|
||||||
|
{
|
||||||
|
int page = 0;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
page++;
|
||||||
|
fr.chrg.cpMin = SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE,
|
||||||
|
(LPARAM)&fr);
|
||||||
|
} while(fr.chrg.cpMin < fr.chrg.cpMax);
|
||||||
|
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void char_from_pagenum(FORMATRANGE *fr, int page)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for(i = 1; i <= page; i++)
|
||||||
|
{
|
||||||
|
if(i == page)
|
||||||
|
break;
|
||||||
|
|
||||||
|
fr->chrg.cpMin = SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE, (LPARAM)fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void print(LPPRINTDLGW pd)
|
static void print(LPPRINTDLGW pd)
|
||||||
{
|
{
|
||||||
FORMATRANGE fr;
|
FORMATRANGE fr;
|
||||||
|
@ -1041,16 +1104,7 @@ static void print(LPPRINTDLGW pd)
|
||||||
fr.chrg.cpMax = SendMessageW(hEditorWnd, EM_GETTEXTLENGTHEX, (WPARAM)>, 0);
|
fr.chrg.cpMax = SendMessageW(hEditorWnd, EM_GETTEXTLENGTHEX, (WPARAM)>, 0);
|
||||||
|
|
||||||
if(pd->Flags & PD_PAGENUMS)
|
if(pd->Flags & PD_PAGENUMS)
|
||||||
{
|
char_from_pagenum(&fr, pd->nToPage);
|
||||||
int i;
|
|
||||||
for(i = 1; i <= pd->nToPage; i++)
|
|
||||||
{
|
|
||||||
if(i == pd->nFromPage)
|
|
||||||
break;
|
|
||||||
|
|
||||||
fr.chrg.cpMin = SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE, (LPARAM)&fr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
StartDocW(fr.hdc, &di);
|
StartDocW(fr.hdc, &di);
|
||||||
|
@ -1156,6 +1210,200 @@ static void dialog_print(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef struct _previewinfo
|
||||||
|
{
|
||||||
|
int page;
|
||||||
|
int pages;
|
||||||
|
HDC hdc;
|
||||||
|
HDC hdcSized;
|
||||||
|
RECT window;
|
||||||
|
} previewinfo, *ppreviewinfo;
|
||||||
|
|
||||||
|
static previewinfo preview;
|
||||||
|
|
||||||
|
static void preview_bar_show(BOOL show)
|
||||||
|
{
|
||||||
|
HWND hReBar = GetDlgItem(hMainWnd, IDC_REBAR);
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if(show)
|
||||||
|
{
|
||||||
|
AddTextButton(hReBar, STRING_PREVIEW_PRINT, ID_PRINT, BANDID_PREVIEW_BTN1);
|
||||||
|
AddTextButton(hReBar, STRING_PREVIEW_NEXTPAGE, ID_PREVIEW_NEXTPAGE, BANDID_PREVIEW_BTN2);
|
||||||
|
AddTextButton(hReBar, STRING_PREVIEW_PREVPAGE, ID_PREVIEW_PREVPAGE, BANDID_PREVIEW_BTN3);
|
||||||
|
AddTextButton(hReBar, STRING_PREVIEW_CLOSE, ID_FILE_EXIT, BANDID_PREVIEW_BTN4);
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
for(i = 0; i < PREVIEW_BUTTONS; i++)
|
||||||
|
SendMessageW(hReBar, RB_DELETEBAND, SendMessageW(hReBar, RB_IDTOINDEX, BANDID_PREVIEW_BTN1+i, 0), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void preview_exit(void)
|
||||||
|
{
|
||||||
|
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hMainWnd, GWLP_HINSTANCE);
|
||||||
|
HMENU hMenu = LoadMenuW(hInstance, xszMainMenu);
|
||||||
|
|
||||||
|
set_bar_states();
|
||||||
|
preview.window.right = 0;
|
||||||
|
preview.window.bottom = 0;
|
||||||
|
preview.page = 0;
|
||||||
|
preview.pages = 0;
|
||||||
|
ShowWindow(hEditorWnd, TRUE);
|
||||||
|
|
||||||
|
preview_bar_show(FALSE);
|
||||||
|
|
||||||
|
SetMenu(hMainWnd, hMenu);
|
||||||
|
registry_read_filelist(hMainWnd);
|
||||||
|
|
||||||
|
update_window();
|
||||||
|
}
|
||||||
|
|
||||||
|
static LRESULT print_preview(void)
|
||||||
|
{
|
||||||
|
FORMATRANGE fr;
|
||||||
|
GETTEXTLENGTHEX gt;
|
||||||
|
HDC hdc;
|
||||||
|
RECT window, background;
|
||||||
|
HBITMAP hBitmapCapture, hBitmapScaled;
|
||||||
|
int bmWidth, bmHeight, bmNewWidth, bmNewHeight;
|
||||||
|
float ratioWidth, ratioHeight, ratio;
|
||||||
|
int xOffset, yOffset;
|
||||||
|
int barheight;
|
||||||
|
HWND hReBar = GetDlgItem(hMainWnd, IDC_REBAR);
|
||||||
|
PAINTSTRUCT ps;
|
||||||
|
|
||||||
|
hdc = BeginPaint(hMainWnd, &ps);
|
||||||
|
GetClientRect(hMainWnd, &window);
|
||||||
|
|
||||||
|
fr.hdcTarget = make_dc();
|
||||||
|
fr.rc = get_print_rect(fr.hdcTarget);
|
||||||
|
fr.rcPage.left = 0;
|
||||||
|
fr.rcPage.top = 0;
|
||||||
|
fr.rcPage.bottom = fr.rc.bottom + margins.bottom;
|
||||||
|
fr.rcPage.right = fr.rc.right + margins.right;
|
||||||
|
|
||||||
|
bmWidth = twips_to_pixels(fr.rcPage.right, GetDeviceCaps(hdc, LOGPIXELSX));
|
||||||
|
bmHeight = twips_to_pixels(fr.rcPage.bottom, GetDeviceCaps(hdc, LOGPIXELSY));
|
||||||
|
|
||||||
|
hBitmapCapture = CreateCompatibleBitmap(hdc, bmWidth, bmHeight);
|
||||||
|
|
||||||
|
if(!preview.hdc)
|
||||||
|
{
|
||||||
|
RECT paper;
|
||||||
|
|
||||||
|
preview.hdc = CreateCompatibleDC(hdc);
|
||||||
|
fr.hdc = preview.hdc;
|
||||||
|
gt.flags = GTL_DEFAULT;
|
||||||
|
gt.codepage = 1200;
|
||||||
|
fr.chrg.cpMin = 0;
|
||||||
|
fr.chrg.cpMax = SendMessageW(hEditorWnd, EM_GETTEXTLENGTHEX, (WPARAM)>, 0);
|
||||||
|
|
||||||
|
paper.left = 0;
|
||||||
|
paper.right = bmWidth;
|
||||||
|
paper.top = 0;
|
||||||
|
paper.bottom = bmHeight;
|
||||||
|
|
||||||
|
if(!preview.pages)
|
||||||
|
preview.pages = get_num_pages(fr);
|
||||||
|
|
||||||
|
SelectObject(preview.hdc, hBitmapCapture);
|
||||||
|
|
||||||
|
char_from_pagenum(&fr, preview.page);
|
||||||
|
|
||||||
|
FillRect(preview.hdc, &paper, GetStockObject(WHITE_BRUSH));
|
||||||
|
SendMessageW(hEditorWnd, EM_FORMATRANGE, TRUE, (LPARAM)&fr);
|
||||||
|
SendMessageW(hEditorWnd, EM_FORMATRANGE, FALSE, 0);
|
||||||
|
|
||||||
|
EnableWindow(GetDlgItem(hReBar, ID_PREVIEW_PREVPAGE), preview.page > 1);
|
||||||
|
EnableWindow(GetDlgItem(hReBar, ID_PREVIEW_NEXTPAGE), preview.page < preview.pages);
|
||||||
|
}
|
||||||
|
|
||||||
|
barheight = SendMessageW(hReBar, RB_GETBARHEIGHT, 0, 0);
|
||||||
|
ratioWidth = ((float)window.right - 20.0) / (float)bmHeight;
|
||||||
|
ratioHeight = ((float)window.bottom - 20.0 - (float)barheight) / (float)bmHeight;
|
||||||
|
|
||||||
|
if(ratioWidth > ratioHeight)
|
||||||
|
ratio = ratioHeight;
|
||||||
|
else
|
||||||
|
ratio = ratioWidth;
|
||||||
|
|
||||||
|
bmNewWidth = (int)((float)bmWidth * ratio);
|
||||||
|
bmNewHeight = (int)((float)bmHeight * ratio);
|
||||||
|
hBitmapScaled = CreateCompatibleBitmap(hdc, bmNewWidth, bmNewHeight);
|
||||||
|
|
||||||
|
xOffset = ((window.right - bmNewWidth) / 2);
|
||||||
|
yOffset = ((window.bottom - bmNewHeight + barheight) / 2);
|
||||||
|
|
||||||
|
if(window.right != preview.window.right || window.bottom != preview.window.bottom)
|
||||||
|
{
|
||||||
|
DeleteDC(preview.hdcSized),
|
||||||
|
preview.hdcSized = CreateCompatibleDC(hdc);
|
||||||
|
SelectObject(preview.hdcSized, hBitmapScaled);
|
||||||
|
|
||||||
|
StretchBlt(preview.hdcSized, 0, 0, bmNewWidth, bmNewHeight, preview.hdc, 0, 0, bmWidth, bmHeight, SRCCOPY);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.top = barheight;
|
||||||
|
FillRect(hdc, &window, GetStockObject(GRAY_BRUSH));
|
||||||
|
|
||||||
|
SelectObject(hdc, hBitmapScaled);
|
||||||
|
|
||||||
|
background.left = xOffset - 2;
|
||||||
|
background.right = xOffset + bmNewWidth + 2;
|
||||||
|
background.top = yOffset - 2;
|
||||||
|
background.bottom = yOffset + bmNewHeight + 2;
|
||||||
|
|
||||||
|
FillRect(hdc, &background, GetStockObject(BLACK_BRUSH));
|
||||||
|
|
||||||
|
BitBlt(hdc, xOffset, yOffset, bmNewWidth, bmNewHeight, preview.hdcSized, 0, 0, SRCCOPY);
|
||||||
|
|
||||||
|
DeleteDC(fr.hdcTarget);
|
||||||
|
preview.window = window;
|
||||||
|
|
||||||
|
EndPaint(hMainWnd, &ps);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static LRESULT preview_command(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
switch(LOWORD(wParam))
|
||||||
|
{
|
||||||
|
case ID_FILE_EXIT:
|
||||||
|
PostMessageW(hMainWnd, WM_CLOSE, 0, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ID_PREVIEW_NEXTPAGE:
|
||||||
|
case ID_PREVIEW_PREVPAGE:
|
||||||
|
{
|
||||||
|
HWND hReBar = GetDlgItem(hMainWnd, IDC_REBAR);
|
||||||
|
RECT rc;
|
||||||
|
|
||||||
|
if(LOWORD(wParam) == ID_PREVIEW_NEXTPAGE)
|
||||||
|
preview.page++;
|
||||||
|
else
|
||||||
|
preview.page--;
|
||||||
|
|
||||||
|
preview.hdc = 0;
|
||||||
|
preview.window.right = 0;
|
||||||
|
|
||||||
|
GetClientRect(hMainWnd, &rc);
|
||||||
|
rc.top += SendMessageW(hReBar, RB_GETBARHEIGHT, 0, 0);
|
||||||
|
InvalidateRect(hMainWnd, &rc, TRUE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ID_PRINT:
|
||||||
|
dialog_print();
|
||||||
|
preview_exit();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void dialog_about(void)
|
static void dialog_about(void)
|
||||||
{
|
{
|
||||||
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hMainWnd, GWLP_HINSTANCE);
|
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtr(hMainWnd, GWLP_HINSTANCE);
|
||||||
|
@ -2175,9 +2423,18 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
case ID_PREVIEW:
|
case ID_PREVIEW:
|
||||||
{
|
{
|
||||||
static const WCHAR wszNotImplemented[] = {'N','o','t',' ',
|
int index = reg_formatindex(fileFormat);
|
||||||
'i','m','p','l','e','m','e','n','t','e','d','\0'};
|
DWORD tmp = barState[index];
|
||||||
MessageBoxW(hWnd, wszNotImplemented, wszAppTitle, MB_OK);
|
barState[index] = 0;
|
||||||
|
set_bar_states();
|
||||||
|
barState[index] = tmp;
|
||||||
|
ShowWindow(hEditorWnd, FALSE);
|
||||||
|
preview_bar_show(TRUE);
|
||||||
|
|
||||||
|
preview.page = 1;
|
||||||
|
preview.hdc = 0;
|
||||||
|
SetMenu(hWnd, NULL);
|
||||||
|
InvalidateRect(0, 0, TRUE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2541,14 +2798,20 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPara
|
||||||
return OnNotify( hWnd, wParam, lParam );
|
return OnNotify( hWnd, wParam, lParam );
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
return OnCommand( hWnd, wParam, lParam );
|
if(preview.page)
|
||||||
|
return preview_command( hWnd, wParam, lParam );
|
||||||
|
else
|
||||||
|
return OnCommand( hWnd, wParam, lParam );
|
||||||
|
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
if(prompt_save_changes())
|
if(preview.page)
|
||||||
|
{
|
||||||
|
preview_exit();
|
||||||
|
} else if(prompt_save_changes())
|
||||||
{
|
{
|
||||||
registry_set_options();
|
registry_set_options();
|
||||||
registry_set_formatopts_all();
|
registry_set_formatopts_all();
|
||||||
|
@ -2583,6 +2846,11 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPara
|
||||||
DoOpenFile(file);
|
DoOpenFile(file);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case WM_PAINT:
|
||||||
|
if(preview.page)
|
||||||
|
return print_preview();
|
||||||
|
else
|
||||||
|
return DefWindowProcW(hWnd, msg, wParam, lParam);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return DefWindowProcW(hWnd, msg, wParam, lParam);
|
return DefWindowProcW(hWnd, msg, wParam, lParam);
|
||||||
|
|
Loading…
Reference in New Issue